- 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的仿真
1.仿真的分类
仿真过程是正确实现设计的关键环节,用来验证设计者的设计思想是否正确,及在设计实现过程中各种分布参数引入后,其设计的功能是否依然正确无误。仿真主要分为功能仿真和时序仿真。功能仿真是在设计输入后进行; 时序仿真是在逻辑综合后或布局布线后进行。
1). 功能仿真 ( 前仿真 )   功能仿真是指在一个设计中, 在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。 布局布线以前的仿真都称作功能仿真, 它包括综合前仿真( Pre-Synthesis Simulation )和综合后仿真( Post-Synthesis Simulation )。 综合前仿真主要针对基于原理框图的设计 ; 综合后仿真既适合原理图设计 , 也适合基于 HDL 语言的设计。 2). 时序仿真(后仿真)   时序仿真使用布局布线后器件给出的模块和连线的延时信息, 在最坏的情况下对电路的行为作出实际地估价。 时序仿真使用的仿真器和功能仿真使用的仿真器是相同的, 所需的流程和激励也是相同的; 惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时, 并且在仿真结果波形图中,时序仿真后的信号加载了时延, 而功能仿真没有。 
后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以
后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构
想的过程,是否存在时序违规。其输入文件为从布局布线结果中抽象出来的门级网表、Testbench 和扩展名为 SDO 或 SDF 的标准时延文件。SDO 或 SDF 的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。一般来说后仿真是必选的,检查设计时序与实际的 FPGA 运行情况是否一致,确保设计的可靠性和稳定性。2.仿真的作用
1).?设计出能工作的电路:因此功能仿真不是一个孤立的过程,其和综合、时序分析等形成一个反馈工作过程,只有这个过程收敛,各个环节才有意义。而孤立的功能仿真通过是没有意义的,如果在时序分析过程中发现时序不满足需要更改代码,则功能仿真必须从新进行。因此正确的工作流程是:将设计划分成便于团队协调工作的
将设计划分成便于团队协调工作的“模块”
编写/修改模块代码  (电路的90%的性能由   Coding Style 决定)
在模块及进行功能仿真
针对特定的期间或工艺综合模块,分析电路是否满足时序约束要求
不满足
2).代码排错:功能仿真是代码排错的最重要的手段之一。4).仿真检验代码质量的一个重要手段。测试激励的代码覆盖率至少要达到95%以上,才能基本认为代码在逻辑上是通过质量控制的,才能进入综合步骤;5).在大的设计中,如果想通过一个激励就验证完一个设计或者模块是不现实的。一方面是从逻辑功能上很难做到;另外一方面是因为如果在一个激励中包括了各种情况,整个仿真过程的速度会随着计算机内存的消耗而成线性下降,效率低下,而利用仿真能很好地解决这些问题。6).通常的做法是每一个激励只验证电路功能的某个方面。整个电路的功能验证由数个激励共同完成。在这种验证方法中代码覆盖率更显重要,因为可以通过代码覆盖率来控制激励对功能的覆盖程度。7).modelsim的Code coverage不但能记录各个激励对代码的“行覆盖”和“分支覆盖”,而且能够将各个激励的覆盖记录进行合并,做到对覆盖率的全面监测。
3.仿真的过程1).综合前的功能仿真
下面以一个线性反馈移位寄存器为例用ModelSim进行功能仿真,由于用编写do文件的方法进行仿真能极大提高仿真设计的效率,我们采用编写do文件的方式来仿真。 
1编写TestBench文件。
2编写do文件。
3打开ModelSim,打开命令File-New-Project,在窗口中输入工程名LFSR_MS,并制定do文件所在文件夹路径。
      
4命令控制栏中直接输入“run sim.do”按回车进行仿真,并查看波形。
2).综合后功能仿真
<1>为工程添加库文件。去除modelsim安装目录下modelsim.ini的只读属性(使得这个.ini的配置文件可以被修改)
<2>打开Modelsim,更改目录File-Change directory到根目录下。
<3>新建一个库取名为alteralibrary。我使用的是Modelsim的6.2b版本,步骤是:File- New-Library,打开之后在Library Name中写上alteralibrary,点击ok就可以了。
在Quartus安装目录先找到四个库文件,我的目录是F:\Program Files\ Quartus\quartus \eda\sim_lib,并复制到
                 原创力文档
原创力文档 
                        

文档评论(0)