1、modelsim仿真Abstract本文介紹使用ModelSim做前仿真,並搭配Quartus II與ModelSim作後仿真。Introduction使用環境:Quartus II 8.1 + ModelSim-Altera 6.3g由於FPGA可重複編程,所以不少開發人員就不寫testbench,直接使用Quartus II的programmer燒進開發板看結果,或者使用Quartus II自帶的Waveform Editor進行仿真,這種方式雖然可行,但僅適用於小project,若project越寫越大,Quartus II光做fitter就很耗時間,一整天下來都在作Quartus II
2、編譯。比較建議的方式,還是學ASIC那招:寫testbench先對每個module作前仿真,再對每個module作後仿真,最後再燒入FPGA測試。這種方式的優點是:1.testbench比waveform editor可更靈活的描述電路規格。2.testbench可使用Verilog的系統函數,如$display()、$fwrite().等。但要使用testbench作仿真,單獨Qaurtus II並無法做到,就得使用ModelSim了,這又牽涉到前仿真與後仿真。所謂的前仿真,就是Quartus II的Functional Simulation,不考慮電路的門延遲與線延遲,重點在觀察電路在理想
3、環境下的行為與設計構想是否一致1。由於沒經過fitter階段,所以模擬速度很快。前仿真結果正確,並不表示將來結果結果正確,但若前仿真結果不正確,則將來結果一定不正確。所謂的後仿真,就是Quartus II的Timing Simulation,考慮了電路的門延遲與線延遲,由於經過fitter階段,所以模擬結果最為精準。但fitter在Quartus II編譯需耗費很多時間,所以建議前仿真正確後,再考慮後仿真。使用Quartus II的waveform editor作前仿真與後仿真,我就不再多談,本文主要是談如何使用ModelSim-Altera作前仿與後仿。1.使用GUI的方式在ModelSim
4、-Altera作前仿真。2.使用DO macro在ModelSim-Altera作前仿真。3.使用Quartus II + ModelSim-Altera作後仿真。Counter.v / Verilog1/*2(C) OOMusou 2008 34Filename : Counter.v5Compiler : Quartus II 8.1 / ModelSim-Altera 6.3g6Description : simple counter7Release : 01/30/2009 1.08*/910timescale 1ns/100ps1112module Counter (13 input
5、 CLK,14 input RST_N,15 output 3:0 CNT16);1718reg 3:0 cnt;19assign CNT = cnt;2021always(posedge CLK, negedge RST_N) begin22 if (!RST_N) 23 cnt = #54h0;24 else25 cnt New ProjectStep 2:Add Existing File將Counter.v與Counter_tb.v加入Step 3:Compile All選擇Counter.v或者Counter_tb.v,按滑鼠右鍵,選擇Compile-Compile All,編譯所有
6、Verilog code。編譯成功。Step 4:Simulate在Library tab選擇Counter_tb,按滑鼠右鍵,選Simulate。Simulate成功。Step 5:Add Signal to Wave將欲觀察的信號從Objects加入Wave,加入clk,rst_n與cnt。最後結果。Step 6:Run 300ns最後前仿結果。2.使用DO macro在ModelSim-Altera作前仿真ModelSim也提供macro的方式,以上所有的GUI操作,都可以使用TCL script描述。Step 1與Step 2與之前一樣。Step 3:Execute MacroCoun
7、ter_wave.do / ModelSim Macro 1#compile2vlog Counter.v3vlog Counter_tb.v45#simulate6vsim Counter_tb78#probe signals9add wave *1011#300 ns12run300 ns 复制代码最後前仿結果。3.使用Quartus II + ModelSim-Altera作後仿真Step 1:設定Quartus II使用ModelSim-Altera作後仿真Assignments - Settings - Category :EDA Tool Settings - Simulation
8、:Tool name:ModelSim-Altera選取Run gate-level simulation automatically after compilationFormat for output netlist:VerilogTime scale:1 ns Step 2:設定testbench 在同一頁的NativeLink settings選擇Compile test bench,按下TestBenches.加入Counter_tb.v。比較詭異的是,Test bench name、Top level module in test bench與Design instance name in test bench無法自己抓到,必須自己填。 Step 3:編譯與模擬 Processing - Start Compilation
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1