基于單片機(jī)軟硬件聯(lián)合仿真解決方案
虛擬網(wǎng)卡
做系統(tǒng)仿真,必須輸入來自真實(shí)世界的激勵(lì),并將仿真系統(tǒng)的輸出傳遞到真實(shí)世界。即便是不能連接到真實(shí)世界,也應(yīng)該提供模擬真實(shí)世界的輸入,并對(duì)仿真系統(tǒng)的輸出進(jìn)行檢測(cè)和分析。
對(duì)于Mini Web卡來說,它和真實(shí)環(huán)境是通過網(wǎng)口連接的。使用虛擬網(wǎng)卡技術(shù),能夠?qū)D3中的MAC C Model與虛擬網(wǎng)卡進(jìn)行通訊。
對(duì)于運(yùn)行在Windows系統(tǒng)上的應(yīng)用程序來說,它并不知道網(wǎng)卡是虛擬的還是真實(shí)的,應(yīng)用程序通過虛擬網(wǎng)卡收發(fā)數(shù)據(jù),事實(shí)上是與仿真系統(tǒng)在進(jìn)行網(wǎng)絡(luò)通信。
這樣就可以使用TFTP向Mini Web卡仿真系統(tǒng)傳遞網(wǎng)頁文件,使用IE瀏覽Mini Web卡仿真系統(tǒng)中的網(wǎng)頁,Mini Web卡的所有功能都能夠被檢驗(yàn)。
使用網(wǎng)絡(luò)臭探器Sniffer可以監(jiān)控虛擬網(wǎng)卡的報(bào)文流,方便協(xié)議調(diào)試。
仿真加速技術(shù)
軟硬件聯(lián)合仿真,影響仿真速度的瓶頸在HDL代碼部分的仿真。如果不設(shè)法提高HDL代碼部分的仿真速度,軟件調(diào)試就非常低效。
提高硬件仿真速度的方法之一是軟件硬件仿真采用事件同步,只在CPU訪問IO時(shí)保持軟件和硬件是同步的。
仿真加速方法之二是硬件仿真系統(tǒng)時(shí)鐘休眠。對(duì)于Mini Web卡來說,只有DMA Controller是受時(shí)鐘控制的,軟件沒有操作DMA Controller的期間,DMA Controller的運(yùn)作是毫無意義的,所以可以在非DMA操作期間,對(duì)時(shí)鐘進(jìn)行休眠;ISS51在每次IO訪問時(shí),給出與上次IO訪問的時(shí)間差,這個(gè)時(shí)間差經(jīng)過處理可以作為時(shí)鐘休眠的時(shí)間段。如果ISS51連續(xù)進(jìn)行IO訪問,就不會(huì)產(chǎn)生時(shí)鐘休眠了。DMA Controller工作于查詢方式,可以采用時(shí)鐘休眠技術(shù),而不會(huì)導(dǎo)致仿真與真實(shí)結(jié)果的不一致。
方法之三是,縮短SMART MEDIA仿真模型中的一些長(zhǎng)延時(shí)的時(shí)間參數(shù)。因?yàn)樵诘却齋MARTMEDIA進(jìn)入就緒狀態(tài)時(shí),CPU必須連續(xù)查詢IO,影響仿真速度。我們主要用于軟件功能驗(yàn)證,這種修改也是可以接受的。
方法之四,在軟件設(shè)計(jì)上,謹(jǐn)慎使用外部中斷,因?yàn)橐坏┲袛鄦?dòng),ISS51需要在每個(gè)機(jī)器周期查詢是否有中斷信號(hào),導(dǎo)致軟件仿真和硬件仿真在每個(gè)指令上都進(jìn)行同步,影響仿真速度。如果一定要使用外部中斷,建議用C模型代替Verilog模型,這樣可不影響仿真速度;或者由用戶根據(jù)外部模塊產(chǎn)生外部中斷的時(shí)機(jī),使用ISS51的控制命令,在恰當(dāng)時(shí)刻使能ISS51的中斷模塊。
在一個(gè)普通PC (CPU為AMD速龍1000,SDRM512M 133),運(yùn)行Mini Web卡仿真系統(tǒng),使用PING命令測(cè)試Mini Web卡仿真系統(tǒng)的響應(yīng)速度:
Reply from 10.10.112.76: bytes=32 time=64ms TTL=128
使用IE打開Mini Web卡仿真系統(tǒng)中的網(wǎng)頁文件,感覺和撥號(hào)上網(wǎng)的速度差不太多。創(chuàng)建多個(gè)TFTP連接,同時(shí)向仿真系統(tǒng)傳遞或下載網(wǎng)頁文件,同時(shí)使用IE進(jìn)行網(wǎng)頁瀏覽,都無響應(yīng)中斷現(xiàn)象出現(xiàn)。
總結(jié)
使用軟硬件聯(lián)合仿真,Mini Web卡不需要硬件就能進(jìn)行全部功能的仿真,增強(qiáng)了系統(tǒng)設(shè)計(jì)成功的信心。軟硬件聯(lián)合仿真方便系統(tǒng)設(shè)計(jì)調(diào)整,可以在設(shè)計(jì)前期*估性能,方便軟件和硬件的debug,是一個(gè)值得推廣的技術(shù)。
評(píng)論