quartus ii中仿真rom時遇到的問題(待完善)


1.modelsim仿真只支持.hex,並不支持.mif(Memory Initialzation File)。

2.在Matlab中生成.mif文件,然后再quartus中打開,轉換為hex格式后另存為。

3.讓modelsim支持hex,https://wenku.baidu.com/view/48e7216704a1b0717fd5dda0.html?re=view

4..hex文件要在modelsim工程下,還是quartus工程下???

以上是之前遇到這個問題時候在網上找到的解決方法,就先放着。

 

這個問題搞了兩天了,今天終於有些明白了,寫出來記錄一下。

一、modelsim能不能調用.mif文件。

  對於這個問題,我的答案是(網上有好多帖子都說modelsim只支持.hex,不支持.mif),其實持不支持的觀點也並不是錯了。下面我就來說說我的理解。

  當.mif中的數據是非負數時,modelsim是能夠支持的,當存在負數時,modelsim就會將它默認作為0進行處理,並且給出常遇到的錯誤提示:

ERROR: sin.mif, line 2055, Invalid Altera-mif record.

這個提示指出了在.mif中出現的負數的位置,line 2055,你可以去.mif文件中查看這一行中的數據,或者是在這一行的附近,應該會是一個負數。之所以說modelsim支持.hex文件,是因為負數在存儲時,是按照補碼的形式存的,而.mif默認是按照十進制或者說是原碼進行存儲的。

二、rom仿真中出現的問題。

   解決了上面的問題,那么再來看看如何在modelsim中調用rom。(如果你要存儲的數據中含有負數,那就生成.hex文件吧,生成的方法可以在參照文章開頭的2中那樣去處理)。

  仿真rom無非是查找表中的數據,那么就會有地址和數據,上面解決了數據的問題,再來看看地址的處理。當你把存儲地址的變量聲明為reg類型時,切記要進行初始化,因為reg類型的數據,默認的初始值是不定的,即為x。(准備再寫一個介紹仿真時初始化的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM