續(xù)上
許久沒更新了,間歇性來寫寫,還是繼續(xù)Modelsim中關(guān)于內(nèi)存的操作,涉及的文件可在文末自行獲取,本篇對應(yīng)memory的文件夾。
準(zhǔn)備
把文件準(zhǔn)備好后,啟動軟件,將路徑設(shè)置成文件對應(yīng)的路徑,然后
命令行示例
#依次進(jìn)行即可,路徑對應(yīng)自己的
cd E:/Soft_File/Sim_File/memory
vlog *.v
庫里面出現(xiàn)work庫,且包含以下編譯后的內(nèi)容
雙擊ram_tb載入仿真,并選擇Memory List的窗口
雙擊spram1對應(yīng)的mem,會直接在右窗口加載mem中的地址與值,由于還沒啟動仿真,所以這時還是未知態(tài)
點(diǎn)擊運(yùn)行的圖標(biāo),或者命令行:run -all,仿真在$stop處停止,然后再返回mem的數(shù)據(jù)列表,可以看到數(shù)據(jù)已經(jīng)更新為運(yùn)行值了
顯示設(shè)置
有時為了方便分析,就需要對數(shù)據(jù)重新排列,比如我們數(shù)據(jù)是個8bit的,然后想讓其與地址一一對應(yīng),可以按下面的使用過程進(jìn)行
在窗口內(nèi)右鍵,然后點(diǎn)Properties
出現(xiàn)的窗口可以對顯示做設(shè)置,把地址改成10進(jìn)制顯示,數(shù)據(jù)改為無符號十進(jìn)制,每行只顯示1個值(千萬別把words看成word的了,和字長啥的沒關(guān)系)
設(shè)置好后,OK就會出現(xiàn)顯示地址遞增對應(yīng)數(shù)據(jù)的結(jié)果
數(shù)據(jù)定位
排好數(shù)據(jù)后,肯定還需要掌握搜索定位的功能,如果想按地址進(jìn)行定位,就在地址的隊(duì)列中右鍵,然后點(diǎn)Goto
然后輸入要定位到的地址值,比如輸100
OK后就直接跳到了對應(yīng)的地址
此外還可以直接進(jìn)行相對地址的跳轉(zhuǎn),比如想讓233的地址出現(xiàn)在111地址的位置,就直接在111上雙擊,然后輸入233,回車后直接進(jìn)行跳轉(zhuǎn)
如果是數(shù)據(jù)中有特征信息,想從數(shù)據(jù)上進(jìn)行定位,就在數(shù)據(jù)列中右鍵,然后Find
比如搜個233的數(shù)據(jù),如果具有重復(fù),還需要找,就點(diǎn)Find Next繼續(xù)查找
導(dǎo)出數(shù)據(jù)
如果想把運(yùn)行至某時刻時的數(shù)據(jù)做保存(本例程已經(jīng)直接運(yùn)行至停止的位置),可以使用Export進(jìn)行導(dǎo)出,在Memory List界面選中要導(dǎo)出的對應(yīng)內(nèi)存變量或者直接在想導(dǎo)出的那個Memory Data中右鍵,然后Export...
出現(xiàn)窗口中設(shè)置導(dǎo)出的數(shù)據(jù)范圍和格式信息,此處就只導(dǎo)出0~233地址的數(shù)據(jù),格式MTI(Verilog的格式可以導(dǎo)出后用于后續(xù)代碼直接進(jìn)行讀取做初始化),地址和數(shù)據(jù)采用剛剛同樣的配置,然后修改好文件名后就OK
接著就可以用其他軟件打開查看了
最后再導(dǎo)出個無地址信息的數(shù)據(jù),待會需要用到
初始化內(nèi)存
打開spram3的mem,方便分析初始化的效果,把屬性設(shè)成和剛剛spram1的一樣
數(shù)據(jù)界面右鍵,然后Import
選擇剛剛導(dǎo)出的文件,其他設(shè)置如下,然后OK
數(shù)據(jù)發(fā)生更新,然后定位到233的地址,可以明顯看到把數(shù)據(jù)全部完成新的初始化
接下來再演示下指定位置,且在可用數(shù)據(jù)小于指定長度時填充其他數(shù)據(jù),進(jìn)行初始化,為方便看,先定位到1000的地址處
然后Import,在地址范圍處填好起止地址,然后文件要選無地址信息的那個文件
1000處的地址開始發(fā)生更新
跳轉(zhuǎn)到1233的位置,從1234的地址開始填充從0開始的遞增數(shù),直到1500地址處停止
手動賦值
打開spram2的mem
接著數(shù)據(jù)處右鍵,點(diǎn)Change或者直接選中要修改的區(qū)域后再點(diǎn)Change
出現(xiàn)的界面填寫要覆蓋的地址區(qū)域以及要填充的數(shù)字,設(shè)置好后,OK
從0x11到0x22地址的數(shù)據(jù)都被從0開始的遞增數(shù)覆蓋
除了這種批量性的修改數(shù)據(jù)值,還可以直接雙擊單個要改的,回車后即可實(shí)現(xiàn)直接單個修改
結(jié)束
關(guān)于Memory的知識,大概就分享到這吧。
審核編輯:湯梓紅
-
仿真
+關(guān)注
關(guān)注
50文章
4086瀏覽量
133639 -
Memory
+關(guān)注
關(guān)注
1文章
77瀏覽量
29047 -
ModelSim
+關(guān)注
關(guān)注
5文章
174瀏覽量
47234
原文標(biāo)題:Modelsim的仿真之路(Memory小技能)
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論