如何使用ModelSim作前仿真与后仿真.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文档。上传文档
查看更多
如何使用ModelSim作前仿真与后仿真

(笔记) 如何使用ModelSim作前仿真与后仿真? (SOC) (Quartus II) (ModelSim) 2009-06-04 15:00 Abstract 本文介绍使用ModelSim做前仿真,并搭配Quartus II与ModelSim作后仿真。 Introduction 使用环境:Quartus II + 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 modul

文档评论(0)

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

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

1亿VIP精品文档

相关文档