- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(笔记) 如何使用ModelSim作前仿真与后仿真? (SOC) (Quartus II) (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编译。
比较建议的方式,还是学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 ://oomusou blogs 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 = #5 cnt +?1b1;? 26?end27?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 ://oomusou blogs 3?4?Filename??? : Counter_tb.v5?Compiler??? : Quartus II 8.1 / ModelSim-Altera 6.3g6?Description : simple counter testbench7?Release???? : 01/30/2009
您可能关注的文档
- 新ASP动态网页设计实用案例教程 许新华 电子教案 第2章 VBScript.ppt
- 电工技能实训刘靖电子教案第一章安全用电讲义.ppt
- 英语本科毕业论文语域理论下的商务英语修辞研究.doc
- panel data methods for microeconometrics using stata:用stata为微观面板数据方法..pdf
- 四川广安爱众股份有限公司 2012 年度社会责任报告.pdf
- vk工程成本管理程序_secret.doc
- 安徽省宣城八校2015届高三11月联考历史 Word版含答案( 2014高考).doc
- 澳门的中小学生在课余后普遍有补习的情况.doc
- 毕业设计(论文)_基于AT89C51单片机的数字温度计设计.doc
- 中建某高层悬挑防护棚施工方案.doc
文档评论(0)