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

Altera ModelSim 6.5仿真入門教程

Modelsim的功能仿真和時(shí)序仿真
使用 ModelSim 進(jìn)行設(shè)計(jì)仿真詳解
modelsim仿真詳細(xì)過(guò)程(功能仿真與時(shí)序仿真)

仿真軟件ModelSim及其應(yīng)用,ModelSim的仿真流程
Modelsim仿真教程Modelsim的基礎(chǔ)入門基礎(chǔ)教程免費(fèi)下載

Modelsim與MATLAB的聯(lián)合仿真
基于ModelSim使用二聯(lián)合Quarus自動(dòng)仿真教程

基于ModelSim使用四ModelSim手動(dòng)仿真教程
如何夾帶modelsim的仿真波形白底黑線
ModelSim手動(dòng)仿真教程
芯片設(shè)計(jì)之Modelsim仿真工具
Vivado調(diào)用Modelsim仿真

評(píng)論