基于單片機軟硬件聯(lián)合仿真解決方案
虛擬網(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í)結果的不一致。
方法之三是,縮短SMART MEDIA仿真模型中的一些長(cháng)延時(shí)的時(shí)間參數。因為在等待SMARTMEDIA進(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ù)。
評論