modesim仿真.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
modesim仿真

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編譯。 比較建議的方式,還是學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 / Verilog 1?/*? 2?(C) OOMusou 2008 3? 4?Filename??? : Counter.v 5?Compiler??? : Quartus II 8.1 / ModelSim-Altera 6.3g 6?Description : simple counter 7?Release???? : 01/30/2009 1.0 8?*/ 9? 10?`timescale 1ns/100ps 11? 12?module Counter ( 13?? input??????? CLK, 14?? input??????? RST_N, 15?? output [3:0] CNT 16?); 17? 18?reg [3:0] cnt; 19?assign CNT = cnt; 20? 21?always@(posedge CLK, negedge RST_N) begin 22?? if (!RST_N) 23???? cnt = #5?4h0; 24?? else 25???? cnt = #5 cnt +?1b1;? 26?end 27? 28?endmodule 复制代码 一個很簡單的counter,從0數到15重複數。由於要使用ModelSim作前仿,所以在reg做了delay,不過這在Quartus II作合成時會自動忽略, 因為delay並非可合成的Verilog。 一般寫給FPGA的RTL,都不會去設定timescale,不過由於要用ModelSim作前仿,所以要加上timescale。 Counter_tb.v / Verilog? 1?/*? 2?(C) OOMusou 2008 3? 4?Filename??? : Counter_tb.v 5?Compiler??? : Quartus II 8.1 / ModelSim-Altera 6.3g 6?Description : simple counter testbench 7?Release???? : 01/30/2009 1.0 8?*/ 9? 10?`timescale 1ns/100ps 11? 12?module Counter_tb; 13? 14?reg??????? clk; 15?reg??????? r

文档评论(0)

vshoulrengb3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档