令新手頭疼的modelsim庫編譯


估計很多人買了CB哥的書來看吧,他們在學習modelsim仿真的過程中可能遇到過明明是按照書上的步驟添加器件庫的了,但還是出現如下的錯誤:

仿真出錯

    首先,我想說的是CB哥書上的modelsim-altera10.1d是隨QuartusII一起安裝的,它已經編譯了altera的器件庫。它是一個免費版的仿真工具,不需要破解,當然它的功能不是最強大的,仿真速度也不是最快的,但已經可以滿足我們一般的仿真了。有些人可能裝了速度較快的SE版本的不帶altera器件庫的modelsim,這時器件庫的問題就來了,尤其是那些新手。為了搞定上圖的錯誤,在這里給出了一種解決辦法,希望對大家有所幫助。

(1)在我們的設計中經常會用到宏定義模塊,這是就需要我們添加altera器件庫,其中必要的編譯資源文件有quartusII安裝目錄/eda/sim_lib下的220model.v和altera_mf.v(以Verilog描述電路),另外還常用到PLL,因此還要目標器件庫,如quartusII安裝目錄/eda/sim_lib下的cycloneive_atoms.v等。接下來,讓我們開始編譯我們指定的器件庫。以上一篇博文安裝的modelsim se 6.5g來進行庫的編譯,首先在modelsim的安裝目錄下新建altera文件。

編譯正確

(2)啟動modelsim仿真軟件,點擊“File”--->“Change Directory…”,在彈出的對話框中選擇剛剛在modelsim安裝目錄下新建的altera文件,點擊“確定”。

lujing

(3)點擊“File”--->“New”--->”Library…”,輸入庫的名字:220model以新建一個庫,點擊“OK”。

新建庫

(4)點擊“Compile”--->”Compile…”,在彈出的對話框中,選Library為剛剛新建的220model,查找范圍為quartusII安裝目錄/eda/sim_lib,選擇220model.v,然后點擊“Compile”,“Done”。

編譯庫1

(5)同理,在altera文件下新建庫文件altera_mf和cycloneive_atoms,然后將quartusII安裝目錄/eda/sim_lib下的編譯資源文件altera_mf.v和cycloneive_atoms.v編譯到相應的庫文件。

新建庫1

新建庫2

新建庫3

新建庫4

(6)接着將上面編譯的庫添加到modelsim.ini文件中。右擊modelsim安裝目錄下的modelsim.ini文件,選擇“屬性”,去掉只讀。

配置1

去掉只讀

(7)打開modelsim.ini文件,添加如下內容,然后關閉文件,並加上只讀屬性。

添加1

只讀

(8)以后打開modelsim,都可以看到我們添加的庫。

庫

(9)接下來,以CB哥的Sobel邊緣檢測例程為例進行仿真,看是否還出現之前的錯誤。打開modelsim工程,點擊“Compile”--->”Compile All”,結果出現以下問題:

找不到文件1

(10)根據錯誤提示可知,找不到源文件,原因是我改變了modelsim工程的路徑,從而無法找到源文件。解決方法是將工程中的源文件刪掉(切不可勾選從磁盤中刪除),重新加載源文件。

刪除源文件

刪除源文件1

添加源文件1

添加源文件2

(11)從新全編譯源文件,發現編譯都通過。

編譯通過1

(12)點擊“Simulate”--->”Start Simulation…”,由於本設計中使用了Shift_RAM和PLL,需在Libraries選項卡下添加搜索庫220model、altera_mf和cycloneive_atoms。

搜索庫1

搜索庫2

(13)切換到Design選項卡,展開庫work,選中Video_Image_Processor_TB,點擊“OK”開始仿真。

仿真1

(14)結果發現沒有信號出來,由編譯信息可以設計被優化了。

優化1

(15)解決的辦法是將modelsim.ini文件的“VoptFlow = 1”改為“VoptFlow = 0”(修改之前記得把modelsim.ini屬性去掉,修改完后把只讀改回來)。

解決優化

(16)有時還會出現下面的問題,我個人的解決方法是重新建立工程,不知大家是否有更好的辦法(希望互相告知)。

重建工程

(17)重建工程后,再進行仿真就大功告成了。

成功

    我暈,現在已經凌晨2:30了,今早8:30還要實習呢!該睡了,88,晚安*^_^*

 

    補充:如果第(15)點改的是當前工程下的modelsim.ini文件,就不會出現第(16)點的問題;或者通過菜單Simulate——>Start Simulate,然后將“Enable Optimization”的鈎鈎去掉也可解決該問題。

轉載至http://blog.chinaaet.com/crazybird/p/39702#


免責聲明!

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



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