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新手入门

1. 新手任务 1.1 任务介绍 用ModelSim的编辑器实现并仿真以下功能(语言为Verilog): 50M时钟下,系统复位sys_rst_l无效后,当计数使能cnt_en为1时,一个8位的计数器开始计数,cnt_data[7:0]为输出的计数;否则若cnt_en为0,计数停止并保持不变。 同时,利用cnt_data的值对FPGA内部的FIFO进行读写操作。当cnt_data[2]为0时,进行一个写FIFO操作,否则,当cnt_data[2]为1时,进行一个读FIFO操作。读潜伏周期为2。 1.2 实现流程 1.2.1 建立工程 打开ModelSim65 SE后,界面如图1.2.1-1所示。 选择File-New-Project,如图1.2.1-2所示。然后弹出Creat Poject对话框,如图1.2.1-3所示。 选择工程路径,本例中为D:\lsp\EDA\model_samples\test,工程名仍为test,点击OK,工程建立完毕,同时,弹出Add Items to the Project对话框,如图1.2.1-4所示。 可以选择创建新的文件或者加入已有的文件。本例中采用创建新的文件。弹出Creat Project File对话框,如图1.2.1-5所示。将语言设为verilog,文件名取为modelsim_study,点击OK,完成整个工程的建立。 这时的主界面上,在Project选项卡中有了刚刚建立的新文件modelsim_study.v文件,如图1.2.1-6所示;在Library选项卡中,有了一个work库,为当前的工作库,如图1.2.1-7所示。 图1.2.1-1 图1.2.1-2 图1.2.1-3 图1.2.1-4 图1.2.1-5 图1.2.1-6 图1.2.1-7 1.2.2 编写并编译程序 在Project选项卡中双击modelsim_study.v文件,会在界面右侧出现文本编辑器,如图1.2.2-1所示。 程序编写完成后,在Project选项卡中右击文件,选择Compile-Compile Selected,如图1.2.2-2所示。编译完成后,Status栏中显示为绿色的“对”号。 图1.2.2-1 图1.2.2-2 1.2.3 建立和编写TestBanch 在文本编辑模式下,选择Source-Show Language Templates,出现几种常用的模板,如图1.2.3-1所示。在language templates一栏中双击Create TestBanch,弹出Create TestBanch Wizard对话框。如图1.2.3-2所示。 在Create TestBanch Wizard对话框中选中Work工作库中的modelsim_study文件,点击Next-,弹出新的对话框如图1.2.3-3所示。 点击Finish后得到一个TestBanch文件。在Project选项卡以及Library的Work工作库中都可以看到一个新的文件modelsim_study_tb.v文件。如图1.2.3-4所示。该模板中提供了对你所写的文件的例化,接下来就是继续完善,也就是写激励的过程了。这里先写个很简单的激励。 写激励首先要定义好时间单位,用`timescale语句。其指令格式为:`timescale time_unit/time_precision,time_unit为时间单位,time_precision为延时的精度。这里均设为1ns。 然后写初始化,使用initial begin end语句。定义开始时各个信号的初始状态。如设置系统复位信号sys_rst_l先有效,50ns后无效,则可写成:sys_rst_l=0;#50 sys_rst_l=1。具体的初始化激励代码如图1.2.3-5所示。 接着,定义时钟信号。如果复位信号也与时钟同步,可以先定义时钟,再初始化复位信号,可以预防竞争冲突。时钟信号的定义如图1.2.3-6,时钟频率为50M。 再接着,编写了一个FIFO的简单模型。可参见附件。特别需要注意的是,ModelSim软件自己生成的TestBanch模型中,例外时的参数传递使用的“#()”形式,这样的形式不能被正确的Load,因此,这一部分需要修改为图1.2.3-7所示。 编译modelsim_study_tb.v,成功后,TestBanch编写完毕,可以进行仿真了。 图1.2.3-1 图1.2.3-2 图1.2.3-3 图1.2.3-4 图1.2.3-5 图1.2.3-6 图1.2.3-7 1.2.4 仿真 选择Simulate-Start Simulate,弹出Start Simulate对话框,如图1.2.4-1所示。在Design一栏中选择Work库下的modelsim_s

文档评论(0)

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

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

1亿VIP精品文档

相关文档