預編譯verilog
⑴ 和verilog預編譯的區別
這兩種語言都是用於數字電子系統設計的硬體描述語言,而且都已經是 IEEE 的標准。 VHDL 1987 年成為標准,而 Verilog 是 1995 年才成為標準的。這個是因為 VHDL 是美國軍方組織開發的,而 Verilog 是一個公司的私有財產轉化而來的。
⑵ 如何在modelsim中添加altera的模擬庫
1.設置模擬庫路徑 打開ModelSim安裝目錄(我用的是ModelSim SE 6.2版本,安裝在D:\ModelSim\Installfiles目錄下),新建文件夾altera,我們就在該目錄下存放預編譯的各種Altera庫。 啟動ModelSim SE 6.2,在主窗口執行【File】/【Change Directory】命令將路徑轉到altera文件夾。或在命令行中執行cd D:/ModelSim/Installfiles/altera。
2.新建庫 Quartus II中提供的模擬庫文件存放的路徑是...\altera\80\quartus\eda\sim_lib,每個庫文件提供了兩種形式:.v(Verilog)
格式和.vhd(VHDL)格式兩種,根據你所用的語言選擇使用。用於編譯資源庫的文件有220model.v,220model.vhd,220pack.vhd,altera_mf.v,altera_mf.vhd,altera_mf_components.vhd,altera_primitives.v,altera_primitives.vhd,altera_primitives_components.vhd文件。網上的很多教程都是把這些文件一起編譯,這樣適用於Verilog和VHDL混合模擬,但如果只用一種語言,如Verilog則完全沒必要全部編譯。下面以該目錄下的altera_mf.v為例介紹建立預編譯庫的方法。 註:ModelSim中模擬庫可以分為兩大類:第一類是工作庫(working),默認值為「work」目錄,work目錄中包含當前工程下所有被編譯的設計單元,編譯前必須建立一個work庫,並且每個編譯有且僅有一個work庫;第二類是資源庫(resource),存儲能被當前編譯引用的設計單元,在編譯期間允許有多個resource庫。 在主窗口中選擇【File】/【New】/【Library】命令,新建一個名為altera_mf的庫。
3.編譯庫 方便起見在altera文件夾下新建目錄src,把用於編譯資源庫的文件復制到src文件夾中。 在主菜單中選【Compile】/【Compile】命令,彈出Compile Source Files對話框,library中選擇你剛才建立的庫名
altera_mf,查找范圍你選擇altera_mf.v文件,剛才你已經把它復制到了...\altera\src目錄下。執行編譯命令。
繼續按照步驟2和3中介紹的方法添加剩下的幾個庫。添加完成後如下圖所示。
4.配置modelsim.ini文件 這一步是為了將前面建立的庫添加進系統庫,以後就不用再重復添加了。 ModelSim安裝根目錄下的配置文件modelsim.ini的只讀屬性去掉,用記事本或其他文本編輯程序打開。在[Library]下修改前面
添加的庫的路徑。注意修改後關閉並改回只讀屬性。 註:第1步設置的模擬庫路徑必須在ModelSim的安裝目錄下才能事業能夠此相對路徑。 altera_primitives = $MODEL_TECH/../altera/altera_primitives 220model = $MODEL_TECH/../altera/220model altera_mf = $MODEL_TECH/../altera/altera_mf
5.添加Altera底層硬體原語模擬庫(ATOM) 在時序模擬時,必須載入所使用到的對應於具體Altera器件的底層硬體原語的模擬庫(ATOM)。 上面編譯了Altera三個資源庫文件:220model.v,altera_mf.v,altera_primitives.v,編譯通過之後。根據我們選用的具體器件型號繼續編譯我們所需要的器件底層原語模擬庫文件,比如我們選擇使用的是cycloneii,所以編譯cycloneii_atoms.v。
另外,在進行模擬的時候,還要注意將上述已經編譯的相關庫添加到當前的工程中,以便相關lpm之類的核的調用,操作如下:在Start Simulation窗口的libraries一欄下進行添加,如圖:
然後再選擇work目錄中當前工程的頂層實體進行模擬即可。
若是要進行時序模擬,則還應在SDF一欄進行.sdo延時文件的添加。
⑶ 如何用Modelsim模擬
step1:在qurtus改變編譯選項:
assignments->EDA tool setting:選擇verilog還是vhdl。
step2:編譯。你會在你的工程所在目錄 看到一個simulation的目錄,這裡面有你生成的網表文件和標准延時文件。
step3:在目錄:\quartus\eda\sim_lib找到你選用器件對應的庫文件,將庫文件和網表文件以及延時文件和testbench文件放在同一目錄,在modelsim里進行編譯庫文件、網表文件以及bench文件。
step4:編譯成功後,然後進行load,在load design的時候,需要制定延時文件的路徑,以及延時文件作用的區域,延時文件的左右區域就是testbench裡面調用頂層文件取的名字。
step5:打開signal窗口(view->signal)和wave窗口(view->signal),將你希望模擬的信號添加進去。
Step:模擬。。。
利用ModelSim SE6.0C實現時序模擬!!!
1) 打開一個工程文件。
2) 打開Settings設置欄,選擇EDA Tools Settings下的Simulation欄。在右邊出現的設置欄中將「Tool name」的下拉菜單選擇「ModelSim(Verilog)」(如果工程用VHDL語言實現,則可以選擇「ModelSim(VHDL)」;如果ModelSim使用的是for Altera的專用版本,則可以選擇「ModelSim-Altera(Verilog)」或「ModelSim-Altera(VHDL)」)。
另外在設置欄中還有其他的核選框。
如果選中「Maintain hierarchy」,則表示在做時序模擬時就能看到像在功能模擬的工程文件層次結構,可以找到定義的內部信號。因為在做後仿時,源文件中的信號名稱已經沒有了,被映射為軟體綜合後自己生成的信號名,觀察起來很不方便。這個設置與ISE里綜合右鍵屬性的Keep Hierarchy選擇YES的功能是一樣的。
如果選中「Generate netlist for functional simulation only」,則表示只能做功能模擬。
3) 點擊 「Start Compilation」按鈕編譯工程,完成之後在當前的工程目錄下可以看到一個名為「Simulation」的新文件夾,下面的「ModelSim」文件夾下包括模擬需要的.vo網表文件和包含延遲信息的.sdo文件。
4) 打開ModelSim軟體(或者在Quartus下「Settings->EDA Tools Setting->Simulation」出現的設置欄中選中「Run this tool automatically after compilation」,直接從Quartus下調用ModelSim軟體),可以在當前工程目錄下新建一個Project。在Project標簽欄內點擊右鍵,出現在快捷菜單中選擇「Add to Project->Existing File…」。加入當前工程目錄的「\Simulation\ModelSim\」路徑下的.vo文件、TestBench文件和對應當前工程所選擇器件的網表文件。
比如:當前工程選擇的器件是Cyclone系列,Quartus安裝目錄在「C:\altera」路徑下。因此需要在「C:\altera\quartus50\eda\sim_lib」路徑下找到「cyclone_atom.v」的網表文件導入到ModelSim下的Project。如果是其他器件亦是如此,只要在此目錄下找到對應有「_atom」後綴的.v文件。當然整個大前提是ModelSim SE版本已經加入了Alterta的模擬庫,不過ModelSim-Altera版本就不會存在這樣的問題。
5) 在出現的Project標簽欄的快捷菜單中選擇「Add to Project->Simulation Configuration」,會出現如上圖所示的名為「Simulation1」的模擬配置。右鍵點擊選擇「Properties」,彈出的「Simulation Properties」對話框中有幾個標簽欄。
在「Design」標簽欄內需要選擇模擬的文件,也就是TestBench文件。
在「SDF」標簽欄內需要選擇包含延遲信息的文件,即Quartus下生成的.sdo文件。這里建議將.sdo文件與ModelSim的工程文件(.mpf文件)放在同一個目錄下,不然ModelSim會報類似無法讀取.sdo文件的錯誤。當加入.sdo文件時,需要在如下圖所示的「Apply to Region」的編輯框內填寫延遲信息文件作用的區域。
舉個例子來說明:
TestBench文件中定義了測試文件的Mole名稱為ConvEncdTestBnch。
TestBench文件中調用待測頂層文件的實例名為top_encode_1。(top_encode top_encode_1(clk, rst, dataIn, serialData, parData);這是TestBench文件中調用頂層的語句)
所以在作用區域內需要填寫「/ConvEncdTestBnch/top_encode_1」。
6) 右鍵點擊名為「Simulation1」的模擬配置,快捷菜單中選擇「Execute」命令,執行模擬。
7) 指定延時文件sdo 路徑時,特別注意「域」的指定,否則用戶會在timing 模擬中報load error 「can』t find instance file」. 指定的域可以從sim標簽頁查看sim 的top 層,或要模擬的對象。另外,時序模擬時,一定要記住要把頂層top.v 用 top.vo 替換。同時要確保預編譯的庫中每個庫的名字必需遵循altera的要求,比如:cylcone 的device 庫必需命名為cycclone, maxii 的device命名為maxii, flex10Ke 和acex1K 都命名為flex10Ke,詳細查看文檔附件。Simulation.pdf
8) 提供一個testbench 的模板。
利用ModelSim SE6.0C實現功能模擬
功能模擬流程比較簡單,一般不會出現什麼問題,這里不再多述。