独立于三大FPGA平台采用modelsim仿真
文章目錄
- 背景
- 1、Modelsim對Alteral器件的獨立仿真
- 1.1 對Quartus 的仿真
- 1.2 對quartus 獨立仿真實際案例
- 1.3 保存波形文件
- 2、Modelsim對ISE Xilinx器件的獨立仿真
- 3、Modelsim對vivado Xilinx器件的獨立仿真
背景
獨立于三大FPGA平臺進行仿真,可以加快仿真速度,所以,完全有必要掌握以下,而且,我很納悶兒的事情是每次修改了verilog后,修改了TB后,都要重新啟動modelsim,這一點也讓驗證仿真的過程變得十分慢,而且每次都要在modelsim中,我們才知道tb的語法是否正確,這一點也讓我覺得挺煩的。所以本篇文章開始致力于解決這件頭疼的事情。另外modelsim SE版本是最高級的版本,而集成在這三大器件廠商的版本都是OEM版本,SE版和OEM版在功能和性能上有較大的差別,比如,對于大家都關心的仿真速度問題,以Xilinx公司提供的OEM版本modelsim XE為例,對于代碼少于40 000行的設計,SE要快10倍,而超過40 000行的設計,modelsim SE要快40倍。此外,SE還支持linux平臺。
1、Modelsim對Alteral器件的獨立仿真
后仿真又稱之為時序仿真,是利用SDF文件對原有設計進行時序標注。后仿真從一定程度上可以反映設計的時序性能,modelsim本身并不能生成后仿真需要的SDF文件,但是由于Modelsim對多數FPGA廠商的支持,使其可以利用其它FPGA工具生成的SDF文件進行時序仿真。
1.1 對Quartus 的仿真
工具:modelsim SE-64 10.4 Quartus 13.1
當我們成功編譯完verilog程序后,不用再simulation 設置里面匹配 tb 文件,此時,就可以把Quartus軟件關閉了,接下來轉為使用modelsim。
啟動modelsim ,編譯對應器件的庫文件。也就是說,modelsim中需要有Alteral的器件庫文件,這樣才能調用這些器件庫文件。為此,為了一勞永逸,我們需要在我們的modelsim中添加Alteral的器件庫,然后編譯進modelsim中。以下文本經過我多次檢測,走了不少彎路,倒騰了很久。
- 建立庫
新建一個名字為ALT的庫,當然上圖不是空的,這是我成功后的圖片。
- 新建空文件
在modelsim中,在默認路徑下面建立庫,此時庫里面是空的。然后在modelsim的安裝路徑中新建一個空文件。
- 編譯入庫
只有通過編譯,我們才能添加到庫中,我們把目錄切換到上述圖片的路徑下面,然后點擊編譯
注意選擇編譯到的庫,另外選擇alteral的安裝路徑下eda-》simlib,這里注意了,選擇所有的verilog文件,不要全部.v和.vhd全部選,至于為什么,我之前試過好多次,全選后用verilog寫的程序開啟仿真會導致錯誤。由于,我本身也不會VHDL,這里我們就只選擇所有的.v文件,通過編譯入庫吧。實際上,我們只需要我們需要的alteral_primerite.v以及cycloneiv_atoms.v入庫即可,但是這里,我們就把所有都編譯入庫吧。
-修改ini
由于我們切換modelsim的工作路徑過后,我們添加的編譯的器件庫就會消失,為了解決這個問題,我們可以在ini文件中,找到我們定義的庫名,此處為ALT,ini中寫的是ALT=ALT ,我們更改為:
重啟軟件,這樣我們切換目錄,完全不影響了
- 開始仿真
在開始仿真前,我們要新建一個工程,把用到的.v文都包含進一個新建的文件夾中,包括我們用到的IP的.v文件。
然后在文件中新建一個工程。然后開始點擊start simulation
如上圖所示,選中要仿真的頂層實體,并且庫,選擇我們之前設置的ALT庫,里面包含了我們的各種器件。當然,也包含了我們需要的cyclone iv的RAM IP核。
- 注意事項
首先,有時候點擊編譯是灰色的,這個時候,是因為我們的工程中已經編譯完成了添加進來的實體。我們只需要繼續添加即可,或者我們要添加器件庫的話,就切換路徑到默認路徑(安裝路徑)
有時候切換路徑按鈕也是灰色的,這個時候需要在仿真里面,終止仿真。
此外,有些情況下,我們還需要關閉當前工程,恢復到無工程狀態。
最后一點心得體會就是:不管modelsim的操作如何,思路很簡單,要仿真,就得添加庫進來,要添加庫,只能通過編譯入庫,這樣就可以調用這些庫里面的函數和定義了。最后開啟仿真即可。
1.2 對quartus 獨立仿真實際案例
對于一個modelsim工程來說,需要有這幾個文件組成:程序硬件設計verilog文件(包括IP的.v文件)、匹配的器件庫文件、測試激勵輸入文件。
這里,我們要說的是需要先在quartus里面寫好激勵文件vt,編譯,這樣才能生成匹配的器件庫。前面所說的方法,我們的用戶往往電腦并不是這樣設置的,所以,在項目交接過程中,我們最好提供給用戶一個完整的modelsim工程,這樣才能稱得上獨立的modelsim工程。下面,我就以一個實際的例子來說明。
如上圖所示verilog_libs里面包含了匹配的器件庫。
如上圖所示,拷貝匹配的器件庫到RAM工程文件夾中。另外,我們還需要拷貝.v文件
另外,把vt文件改成v文件,并把vt文件里面的名字改寫成tb
然后·在modelsim中建立工程
進行編譯
在開始編譯的庫選擇中,選擇我們modelsim工程文件中的這兩個文件
在如下圖的i 1中右鍵點擊add wave就可以將所有的寄存器變量加入wave中觀察
如下圖所示,我們可以看到沒有延遲。所采用的是功能仿真。
至此功能仿真完畢,我們又該如何增加時序仿真呢?下面我接著來講解一番
我們向modelsim工程中添加vo文件,并拷貝到modelsim文件夾中來
然后編譯仿真即可
從上圖,我們可以看到出現了延時,以及跳變
1.3 保存波形文件
當我們一次運行了modelsim后,想要保存下來,以便下次直接打開,而不需要重新運行,我們點擊保存。如下圖所示,會提示我們保存為.do文件。這個文件包含了我們在modelism的波形操作設置,包括添加波形等等。如何看懂do文件的內容,后續我會補充。如下圖,點擊保存即可。
接下來,我們下次要打開波形的時候,首先打開.wlf文件,然后再進行運行
do wave.do
后續,我會繼續完善怎么運行modelsim,由于獨立運行modelsim不是必要條件,所以,我們也不急于求成,以后再慢慢來商討,本次,先有了庫的概念,然后進行后仿真的操作。雖然,我個人覺得,還有很多問題要解決,比如,如何進行前仿真,如何保存波形數據,如何與matlab互聯等等,都是要解決的問題。這些問題,暫且留到以后吧。
參考:Modelsim電子系統分析及仿真 第七章
2、Modelsim對ISE Xilinx器件的獨立仿真
對于modelsim,對ISE器件的仿真也是同樣的道理,我們最重要的是添加ISE的xilinx器件庫,這里我已經把庫添加進去了,如果你還沒有把xilinx的庫添加進去,你可以按照聯合仿真,然后拷貝用到庫,再手動仿真。當然也可以先添加入庫,詳見:modelsim加入xilinx ISE庫的方法
如上圖所示
另外注意了,我們需要拷貝 RAM_IP.v 文件
如上圖所示,注意添加xilinxcorelib文件。
這里要特別注意的一點是,請務必關掉優化,不然不能添加波形。
之后我們如果我們需要再次打開此modelsim工程,仍然可以保存do文件。然后打開wlf文件后在 run do文件即可
3、Modelsim對vivado Xilinx器件的獨立仿真
這里由于我vivado的器件庫并沒有添加到Modelsim中,這里我將其添加到modelsim中,因為只要我添加進去,ISE就不能自動調用Modelsim了。這里,我先更改一下ini文件,將vivado的Xilinx庫添加進去,后續我再刪除。
這里,我就暫時不給出例子了,其實都是一樣的步驟。
總結一下,就是加入器件庫,然后編譯仿真。
總結
以上是生活随笔為你收集整理的独立于三大FPGA平台采用modelsim仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xilinx RAM IP核的使用
- 下一篇: FPGA实现数字信号处理的定点运算