如何使用ModelSim作前仿真与後仿真.doc_第1页
如何使用ModelSim作前仿真与後仿真.doc_第2页
如何使用ModelSim作前仿真与後仿真.doc_第3页
如何使用ModelSim作前仿真与後仿真.doc_第4页
如何使用ModelSim作前仿真与後仿真.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CPLD FPGA1.CPLD FPGA 芯片设计推广 欢迎采购 2.定制FPGA功能IP服务 3.承接软、硬件系统设计主页博客相册|个人档案 |好友 查看文章(筆記) 如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)2009-06-04 15:00Abstract本文介紹使用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編譯。比較建議的方式,還是學ASIC那招:寫testbench先對每個module作前仿真,再對每個module作後仿真,最後再燒入FPGA測試。這種方式的優點是:1.testbench比waveform editor可更靈活的描述電路規格。2.testbench可使用Verilog的系統函數,如$display()、$fwrite().等。但要使用testbench作仿真,單獨Qaurtus II並無法做到,就得使用ModelSim了,這又牽涉到前仿真與後仿真。所謂的前仿真,就是Quartus II的Functional Simulation,不考慮電路的門延遲與線延遲,重點在觀察電路在理想環境下的行為與設計構想是否一致1。由於沒經過fitter階段,所以模擬速度很快。前仿真結果正確,並不表示將來結果結果正確,但若前仿真結果不正確,則將來結果一定不正確。所謂的後仿真,就是Quartus II的Timing Simulation,考慮了電路的門延遲與線延遲,由於經過fitter階段,所以模擬結果最為精準。但fitter在Quartus II編譯需耗費很多時間,所以建議前仿真正確後,再考慮後仿真。使用Quartus II的waveform editor作前仿真與後仿真,我就不再多談,本文主要是談如何使用ModelSim-Altera作前仿與後仿。1.使用GUI的方式在ModelSim-Altera作前仿真。2.使用DO macro在ModelSim-Altera作前仿真。3.使用Quartus II + ModelSim-Altera作後仿真。Counter.v / Verilog1 /* 2 (C) OOMusou 2008 3 4 Filename : Counter.v5 Compiler : Quartus II 8.1 / ModelSim-Altera 6.3g6 Description : simple counter7 Release : 01/30/2009 1.08 */9 10 timescale 1ns/100ps11 12 module Counter (13 input CLK,14 input RST_N,15 output 3:0 CNT16 );17 18 reg 3:0 cnt;19 assign CNT = cnt;20 21 always(posedge CLK, negedge RST_N) begin22 if (!RST_N) 23 cnt = #5 4h0;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,編譯所有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 MacroCounter_wave.do / ModelSim Macro 1 #compile2 vlog Counter.v3 vlog Counter_tb.v4 5 #simulate6 vsim Counter_tb7 8 #probe signals9 add wave *10 11 #300 ns12 run 300 ns最後前仿結果。3.使用Quartus II + ModelSim-Altera作後仿真Step 1:設定Quartus II使用ModelSim-Altera作後仿真Assignments - Settings - Category :EDA Tool Settings - Simulation:Tool name:ModelSim-Altera選取Run gate-level simulation automatically after compilationFormat for output netlist:VerilogTime scale:1 nsStep 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 be

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论