下面是基于在Altera Quartus II 下如何調(diào)用ModelSim 進(jìn)行仿真的一個(gè)實(shí)例。 不能否認(rèn),Quartus II(我用的7.0)無法像ISE 那樣方便的直接調(diào)用ModelSim,而是需要額外的做一些工作。這確實(shí)給我們的仿真調(diào)試帶來了一些不便。特權(quán)同學(xué)也是在摸索了好久以后才徹底搞定這個(gè)問題,下面分享下,力求明白易懂,讓大家少走一些彎路。 1、 打開Quartus II,新建一個(gè)工程,工程代碼如下(只是做一個(gè)簡(jiǎn)單的二分頻電路): module modelsim_test( clk,rst_n,div ); input clk; //系統(tǒng)時(shí)鐘 input rst_n; //復(fù)位信號(hào),低有效 output div; //2 分頻信號(hào) reg div; always @ (posedge clk or negedge rst_n) if(!rst_n) div <= 1'b0; else div <= ~div; endmodule 2、 進(jìn)入菜單欄的Assignments EDA Tool Settings,進(jìn)入如下界面: 雙擊“EDA tools”下的“Simulation”選項(xiàng),彈出如下界面: 點(diǎn)擊Tool name 最右側(cè)的下拉條,選擇“ModelSim”,在彈出的界面做如下設(shè)置: 3、 以上設(shè)置完成,重新編譯工程。 打開工程目錄,看到多了一個(gè)“simulation”文件夾,再打開該文件夾下的“modelsim”文件夾?吹接腥齻(gè)文件,其中.vo 文件就是我們的代碼布局布線信息。仿真還需要幾個(gè)文件,我們把它們都拷貝到該目錄下。 4、 打開“C:altera70quartusedasim_lib”(具體quartus 軟件安裝文件的根目錄視您的實(shí)際情況而定,大體路徑都一樣),因?yàn)槲覀冇玫氖荕AX II器件,所以把“maxii_atoms.v”拷貝到3 中提到的目錄下,這個(gè)文件是仿真元件庫(kù)。 5、 編寫一個(gè)工程RTL 源碼的Testbench 文件,用于作為仿真激勵(lì)(具體如何編寫清參考相關(guān)數(shù)據(jù)文檔資料)。這個(gè)實(shí)例的testbench 如下: module vtf_test; // Inputs reg clk; reg rst_n; // Output wire div; modelsim_test u1( .clk(clk), .rst_n(rst_n), .div(div) ); initial begin clk = 0; forever #10 clk = ~clk; //產(chǎn)生50MHz 的時(shí)鐘 end initial begin rst_n = 0; #1000 rst_n = 1; //上電后1us 復(fù)位信號(hào) #1000; $stop; end endmodule 將該文件命名為tb_test.v,保存到3 提到的文件夾下。 6、 在wokspace 的library 面板的空白處單擊右鍵,選擇“new”→“l(fā)ibrary” 在新彈出界面中做如下設(shè)置,然后點(diǎn)擊“OK”。 7、 啟動(dòng)ModelSim 軟件,點(diǎn)擊菜單欄的Compilecompile 命令,彈出如下界面: Library 選擇剛才新建的“work_test”,查找范圍定位到我們3 提到的文件夾下。全選在該目錄下可以看到的文件,點(diǎn)擊Compile(注意該文件夾必須在全英文/數(shù)字路徑下,否則會(huì)出錯(cuò)無法編譯)。 8、 我們回到wokspace 的library 面板,work_test 多處了下拉框,點(diǎn)擊后如下: 我們右鍵單擊vtf_test 文件,在彈出的菜單中選擇Simulation 9、 執(zhí)行上面的操作后,軟件自動(dòng)彈出wokspace 的sim 面板如下: 在vtf_test 欄單擊右鍵,在彈出菜單中選擇AddAdd to Wave。然后軟件將彈出波形窗口。 10、 波形窗口如下: 這時(shí)我們點(diǎn)擊全速編譯(一次不行,多點(diǎn)一次,工具欄倒數(shù)第三個(gè)按鈕), 然后點(diǎn)擊觀看全部波形(放大縮小按鈕后面一個(gè)藍(lán)色按鈕)。 11、 仿真結(jié)果如下: 可以看到div 信號(hào)確實(shí)是clk 的二分頻。呵呵,基本的操作就到此結(jié)束了。 |