<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機軟硬件聯(lián)合仿真解決方案

單片機軟硬件聯(lián)合仿真解決方案

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

作者Email: goldbull.nease.net 摘要:本文介紹一種嵌入式系統仿真方法,通過(guò)一種特殊設計的指令集仿真器ISS將軟件調試器軟件Keil uVision2和硬件語(yǔ)言仿真器軟件Modelsim連接起來(lái),實(shí)現了軟件和硬件的同步仿真。 關(guān)鍵詞:BFM,TCL,Verilog,Vhdl,PLI,Modelsim,Keil uVision2,ISS,TFTP,HTTP,虛擬網(wǎng)卡,Sniffer,SMART MEDIA,DMA,MAC,SRAM,CPLD 縮略詞解釋?zhuān)? BFM:總線(xiàn)功能模塊。在HDL硬件語(yǔ)言仿真中,BFM完成抽象描述數據和具體的時(shí)序信號之間的轉換。 PLI:Verilog編程語(yǔ)言接口,是C語(yǔ)言模塊和Verilog語(yǔ)言模塊之間交換數據的接口定義。 TCL:字面意思是工具命令語(yǔ)言,是一種解釋執行語(yǔ)言,流行EDA軟件一般都集成有TCL。使用TCL用戶(hù)可以編寫(xiě)控制EDA工具的腳本程序,實(shí)現工具操作自動(dòng)化。 ISS:CPU指令集仿真器,可以執行CPU的機器碼。 TFTP:簡(jiǎn)單文件傳輸協(xié)議,Windows的tftp.exe既是該協(xié)議的客戶(hù)端實(shí)現。 SMART MEDIA:一種存儲卡,常用于數碼相機、MP3。 DMA:直接內存訪(fǎng)問(wèn)。用于外部設備之間高速數據轉移。 MAC:媒體接入控制器。本文中是指網(wǎng)卡芯片。 前言 傳統的嵌入式系統中,設計周期、硬件和軟件的開(kāi)發(fā)是分開(kāi)進(jìn)行的,并在硬件完成后才將系統集成在一起,很多情況下,硬件完成后才開(kāi)始進(jìn)行實(shí)時(shí)軟件和整體調試。是一種在物理原型可用前,能盡早開(kāi)始調試程序的技術(shù)。 有可能使軟件設計工程師在設計早期著(zhù)手調試,而采用傳統的方法,設計工程師直到硬件設計完成才能進(jìn)行除錯處理。有些軟件可在沒(méi)有硬件支持的情況下完成任務(wù)的編碼,如不涉及到硬件的算法。與硬件相互作用的編碼在獲得硬件之前編寫(xiě),但只有在硬件上運行后,才能真正對編碼進(jìn)行調試。通過(guò)采用技術(shù),可在設計早期開(kāi)始這一設計調試過(guò)程。由于軟件的開(kāi)發(fā)通常在系統開(kāi)發(fā)的后段完成,在設計周期中較早的開(kāi)始調試有可能將使這一項目提早完成,該技術(shù)會(huì )降低首次將硬件和軟件連接在一起時(shí)出現意外而致使項目延期完成所造成的風(fēng)險。 在取得物理原型前,采用軟硬件聯(lián)合仿真技術(shù)對硬件和軟件之間的接口進(jìn)行驗證,將使你不會(huì )花太多的時(shí)間在后期系統調試上。當你確實(shí)拿到物理原型開(kāi)始在上面跑軟件的時(shí)候,你會(huì )發(fā)現經(jīng)過(guò)測試的軟件部分將會(huì )正常工作,這會(huì )節省項目后期的大量時(shí)間及努力。 軟硬件聯(lián)合仿真系統由一個(gè)硬件執行環(huán)境和一個(gè)軟件執行環(huán)境組成,通常軟件環(huán)境和硬件環(huán)境都有自己的除錯和控制界面,軟件通過(guò)一系列由處理器啟動(dòng)的總線(xiàn)周期與硬件的交互作用。本文以一個(gè)Mini Web卡的開(kāi)發(fā)介紹一種軟硬件聯(lián)合仿真系統。 該方案的核心是采用一個(gè)51仿真引擎GoldBull ISS51(以下簡(jiǎn)稱(chēng)ISS51),ISS51是51開(kāi)發(fā)環(huán)境Keil uVision2的一個(gè)插件,ISS51具有連接Keil和硬件仿真環(huán)境Modelsim的接口,可以實(shí)現軟硬件同步仿真。在該系統中,Keil作為軟件調試界面,Modelsim作為硬件仿真和調試界面,ISS51負責軟件執行、監控軟件斷點(diǎn)、單步執行、內存和寄存器數據返回給Keil、CPU總線(xiàn)時(shí)序產(chǎn)生和捕獲、內部功能模塊(如定時(shí)器,串口)的運行等功能。 Mini Web卡介紹 Mini Web卡是一個(gè)運行在上的Web服務(wù)器,提供網(wǎng)口連接,有大容量文件系統,提供TFTP和HTTP服務(wù)。盡管軟件系統比較復雜,但優(yōu)化編譯后,執行代碼還不足25K,為后續升級留下了足夠空間。

本文引用地址:http://dyxdggzs.com/article/201610/307553.htm
1.gif

51CPU采用SST89系列,這種CPU具有ISP功能,可以通過(guò)RS232串口,直接將目標碼下載到CPU。 DMA控制邏輯是一個(gè)可編程邏輯器件,采用的是ALTERA的CPLD EPM240,主要功能是實(shí)現外圍器件之間的DMA傳遞。因為51CPU進(jìn)行IO訪(fǎng)問(wèn)是很低效的,需要24個(gè)時(shí)鐘周期才能進(jìn)行一次IO訪(fǎng)問(wèn),在外圍設備之間轉移數據則需要更多的時(shí)鐘周期,使用DMA控制邏輯可以達到3個(gè)時(shí)鐘周期就能轉移一個(gè)字節。本系統中處理多種網(wǎng)絡(luò )協(xié)議,需要大量報文收發(fā)和文件系統訪(fǎng)問(wèn),采用DMA可以極大地提高51單片機的數據處理速度。DMA通道主要有MAC芯片與RAM之間的數據塊轉移,SMART MEDIA和RAM之間的數據塊轉移。 網(wǎng)卡芯片采用的是AX88796,主要的優(yōu)點(diǎn)是可以和51CPU方便地接口;支持100M以太網(wǎng),速度高;有較大的接收報文緩存,能夠平滑網(wǎng)絡(luò )流量,減少因51CPU處理速度慢導致的報文丟棄和重發(fā)。 SMART MEDIA是一個(gè)移動(dòng)存儲卡,主要用于存儲文件,Mini Web卡支持8M到256M的SMD卡。 文件系統是Mini Web卡的新開(kāi)發(fā)模塊,文件系統的測試主要通過(guò)TFTP來(lái)進(jìn)行,為此Mini Web卡上的TFTP服務(wù)程序進(jìn)行了特殊設計,支持格式化SMART MEDIA,獲取剩余空間,獲取文件名列表,上傳、下載和刪除文件。 軟硬件聯(lián)合仿真的必要性: Mini Web卡軟件模塊多,軟件開(kāi)發(fā)風(fēng)險較大。軟件對硬件的依賴(lài)較強,FLASH存儲器的訪(fǎng)問(wèn)驅動(dòng)、網(wǎng)卡驅動(dòng)、DMA驅動(dòng),需要軟硬件協(xié)同調試。 文件系統的開(kāi)發(fā),在仿真環(huán)境下更容易和快捷。比如在仿真結束時(shí),可以將SMART MEDIA仿真模型中的數據倒換到磁盤(pán)文件中,在仿真開(kāi)始時(shí),將磁盤(pán)文件中的數據加載到SMART MEDIA仿真模型中,在定位文件系統的問(wèn)題時(shí),這一個(gè)功能很有用。 采用軟硬件聯(lián)合仿真,便于系統前期設計。51單片機的外部RAM訪(fǎng)問(wèn)效率較低,內存拷貝、外部器件之間的數據塊轉移很浪費時(shí)間。將大量數據的拷貝操作或數據塊校驗、比較操作在CPLD內實(shí)現,可以大大改進(jìn)51單片機處理數據的能力。通過(guò)軟硬件聯(lián)合仿真,可以評估CPLD處理數據對性能的改進(jìn)。 Mini Web卡軟硬件聯(lián)合仿真系統: 軟硬件聯(lián)合仿真主要解決的問(wèn)題是系統功能設計與驗證,它不解決電源、濾波電容、總線(xiàn)電平兼容問(wèn)題。 做系統仿真,首先要對硬件系統建模。我們關(guān)注的是系統設計的正確性和可執行性。 系統中的串口只是用來(lái)支持ISP下載軟件,軟件部分沒(méi)有對串口做任何操作,所以系統仿真可以不必考慮。 網(wǎng)卡芯片AX88796,廠(chǎng)商沒(méi)有提供仿真模型。它與CPU的接口符合ISA接口標準,軟件對AX88796的操作是根據NE2000標準網(wǎng)卡芯片設計的,由此我們建立了一個(gè)網(wǎng)卡芯片的仿真模型。我們設計了一個(gè)MAC BFM來(lái)仿真網(wǎng)卡芯片的ISA接口,NE2000定義的寄存器在C模型中實(shí)現,MAC BFM與NE2000寄存器C模型通過(guò)PLI接口交換數據。 SRAM仿真模型是很容易獲取的,很多器件生產(chǎn)商都提供Verilog仿真模型,但器件生產(chǎn)商提供的Verilog仿真模型都包含復雜的延時(shí)控制代碼,這會(huì )影響仿真速度。根據經(jīng)驗,我們可以確保SRAM在單板設計中被正確應用,不會(huì )產(chǎn)生時(shí)序問(wèn)題,所以我們可以采用一個(gè)簡(jiǎn)化的SRAM仿真模型,這是我們自己設計的,有效代碼只有十幾行。 51CPU BFM 負責單片機管腳時(shí)序的產(chǎn)生和捕獲。51CPU BFM是與ISS51緊密捆綁的,由ISS51安裝程序提供。 SMART MEDIA是三星公司提供的仿真模型,我們使用的也是三星公司的同類(lèi)型存儲卡。該模型可以用于驗證軟件操作SMART MEDIA的正確性和DMA Controller的接口時(shí)序。 DMA Controller是Mini Web卡硬件開(kāi)發(fā)的一部分,將邏輯設計代碼應用于仿真,既能檢測邏輯設計的正確性,又能使整個(gè)仿真系統得以正常運轉。 將上述硬件模型連接起來(lái),產(chǎn)生下圖所示硬件系統模型圖: 圖2. Mini Web卡硬件模塊電路圖 圖2中U11為SMART MEDIA仿真模型,U4為DMA Controller模型。 虛擬網(wǎng)卡 做系統仿真,必須輸入來(lái)自真實(shí)世界的激勵,并將仿真系統的輸出傳遞到真實(shí)世界。即便是不能連接到真實(shí)世界,也應該提供模擬真實(shí)世界的輸入,并對仿真系統的輸出進(jìn)行檢測和分析。 對于Mini Web卡來(lái)說(shuō),它和真實(shí)環(huán)境是通過(guò)網(wǎng)口連接的。使用虛擬網(wǎng)卡技術(shù),能夠將圖3中的MAC C Model與虛擬網(wǎng)卡進(jìn)行通訊。 對于運行在Windows系統上的應用程序來(lái)說(shuō),它并不知道網(wǎng)卡是虛擬的還是真實(shí)的,應用程序通過(guò)虛擬網(wǎng)卡收發(fā)數據,事實(shí)上是與仿真系統在進(jìn)行網(wǎng)絡(luò )通信。 這樣就可以使用TFTP向Mini Web卡仿真系統傳遞網(wǎng)頁(yè)文件,使用IE瀏覽Mini Web卡仿真系統中的網(wǎng)頁(yè),Mini Web卡的所有功能都能夠被檢驗。 使用網(wǎng)絡(luò )臭探器Sniffer可以監控虛擬網(wǎng)卡的報文流,方便協(xié)議調試。 仿真加速技術(shù) 軟硬件聯(lián)合仿真,影響仿真速度的瓶頸在HDL代碼部分的仿真。如果不設法提高HDL代碼部分的仿真速度,軟件調試就非常低效。 提高硬件仿真速度的方法之一是軟件硬件仿真采用事件同步,只在CPU訪(fǎng)問(wèn)IO時(shí)保持軟件和硬件是同步的。 仿真加速方法之二是硬件仿真系統時(shí)鐘休眠。對于Mini Web卡來(lái)說(shuō),只有DMA Controller是受時(shí)鐘控制的,軟件沒(méi)有操作DMA Controller的期間,DMA Controller的運作是毫無(wú)意義的,所以可以在非DMA操作期間,對時(shí)鐘進(jìn)行休眠;ISS51在每次IO訪(fǎng)問(wèn)時(shí),給出與上次IO訪(fǎng)問(wèn)的時(shí)間差,這個(gè)時(shí)間差經(jīng)過(guò)處理可以作為時(shí)鐘休眠的時(shí)間段。如果ISS51連續進(jìn)行IO訪(fǎng)問(wèn),就不會(huì )產(chǎn)生時(shí)鐘休眠了。DMA Controller工作于查詢(xún)方式,可以采用時(shí)鐘休眠技術(shù),而不會(huì )導致仿真與真實(shí)結果的不一致。

2.gif

方法之三是,縮短SMART MEDIA仿真模型中的一些長(cháng)延時(shí)的時(shí)間參數。因為在等待SMART MEDIA進(jìn)入就緒狀態(tài)時(shí),CPU必須連續查詢(xún)IO,影響仿真速度。我們主要用于軟件功能驗證,這種修改也是可以接受的。 方法之四,在軟件設計上,謹慎使用外部中斷,因為一旦中斷啟動(dòng),ISS51需要在每個(gè)機器周期查詢(xún)是否有中斷信號,導致軟件仿真和硬件仿真在每個(gè)指令上都進(jìn)行同步,影響仿真速度。如果一定要使用外部中斷,建議用C模型代替Verilog模型,這樣可不影響仿真速度;或者由用戶(hù)根據外部模塊產(chǎn)生外部中斷的時(shí)機,使用ISS51的控制命令,在恰當時(shí)刻使能ISS51的中斷模塊。 在一個(gè)普通PC (CPU為AMD速龍1000,SDRM512M 133),運行Mini Web卡仿真系統,使用PING命令測試Mini Web卡仿真系統的響應速度: Reply from 10.10.112.76: bytes=32 time=64ms TTL=128 使用IE打開(kāi)Mini Web卡仿真系統中的網(wǎng)頁(yè)文件,感覺(jué)和撥號上網(wǎng)的速度差不太多。創(chuàng )建多個(gè)TFTP連接,同時(shí)向仿真系統傳遞或下載網(wǎng)頁(yè)文件,同時(shí)使用IE進(jìn)行網(wǎng)頁(yè)瀏覽,都無(wú)響應中斷現象出現。 總結 使用軟硬件聯(lián)合仿真,Mini Web卡不需要硬件就能進(jìn)行全部功能的仿真,增強了系統設計成功的信心。軟硬件聯(lián)合仿真方便系統設計調整,可以在設計前期評估性能,方便軟件和硬件的 debug,是一個(gè)值得推廣的技術(shù)。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>