- 1、本文档共205页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1 ModelSim软件的使用 6.1.1 ModelSim软件简介 ModelSim为HDL仿真工具,支持IEEE常见的各种硬件描述语言标准。我们可以利用该软件来实现对所设计的Verilog HDL程序的仿真。ModelSim常见的版本分为ModelSim AE、ModelSim XE和ModelSim SE三种。ModelSim的版本更新得很快,本章使用的版本为ModelSim 6.1 SE版本,该版本支持Verilog HDL的2001标准。 本章为ModelSim的初级教程,读者学完本章可以较为熟练地使用ModelSim进行设计仿真,本章没有也不可能涉及ModelSim的各个方面,要想全面地掌握ModelSim,可以参阅ModelSim附带的文档。 这里以ModelSim SE PLUS 6.1b为例来说明。本节主要说明ModelSim的菜单和工具栏,读者对此有一个初步的了解就可以了。点击“开始—程序—ModelSim SE PLUS 6.1b—ModelSim”或双击桌面上的快捷方式,打开ModelSim软件,出现的界面如图6-1所示。在图的最上端为标题栏;下面一行为菜单栏;再下面为工具栏;左半部分为工作区(Workspace),在其中可以通过双击查看当前的工程及对库进行管理;右半部分为信息显示区,用于显示和编辑文件、显示仿真波形以及其他信息;下面为命令窗口区,在其中出现的命令行及提示信息称为脚本(Transcript);最下面一行为状态栏。 这里要注意的是,有些操作是无法通过菜单和工具栏来完成的,必须使用命令行方式来操作。常用的命令并不多,不是很难掌握,建议大家参阅相关书籍学习仿真中的一些用的命令。 6.1.2 使用图形界面对设计进行仿真 作为一种简单易用、功能强大的逻辑仿真工具,ModelSim的应用广泛。本小节结合Quartus Ⅱ软件,通过一个简单的例子对ModelSim作一个入门性的简单介绍,首先介绍ModelSim的功能仿真,然后介绍时序仿真。 1. 设计块与激励块 本设计是完成一个正弦波信号发生器。正弦波信号发生器的结构如图6-2所示。在每一个时钟上升沿使ROM当前地址的数据输出,同时计数器增1,这对于ROM来说就是指向下一个存放数据的地址。 该设计的顶层文件sin_wave以及底层文件counter_64和rom_64X8的设计源码分别参见例6-1~例6-3。 【例6-1】 顶层设计sin_wave的Verilog HDL代码。 module sin_wave(clk,data); input clk; output [7:0] data; wire [5:0] WIRE0; counter_64 inst1(.clock(clk),.q(WIRE0)); rom_64X8 inst2(.inclock(clk),.address(WIRE0),.q(data)); endmodule 【例6-2】 底层counter_64模块的Verilog HDL代码。 module counter_64 (clock,q); input clock; output [5:0] q; wire [5:0] sub_wire0; wire [5:0] q = sub_wire0[5:0]; lpm_counter lpm_counter_component ( .clock (clock), .q (sub_wire0), .aclr (1b0), .aload (1b0), .aset (1b0), .cin (1b1), .clk_en (1b1), .cnt_en (1b1), .cout (), .data ({6{1b0}}), .eq (), .sclr (1b0), .sload (1b0), .sset (1b0), .updown (1b1)); defparam lpm_counter_component.lpm_direction = UP, lpm_counter_component.lpm_port_updown = PORT_UNUSED, lpm_counter_component.lpm_type = LPM_COUNTER, lpm_counter_component.lpm_width = 6; endmodule 【例6-3】 底层rom_64X8模块的Verilog HDL代码。 module rom_64X8 (address,inclock,q); inp
您可能关注的文档
最近下载
- 附着式抱杆组塔施工方案(外抱杆).doc VIP
- 2025全国普通高等学校体育单招试题语文试卷.docx VIP
- 农村教师公开选调进城考试模拟试题1(初中地理·附参考答案).docx
- 电子式绝缘电阻测试仪讲解文档.ppt VIP
- 驻校教官培训课件.pptx
- GBT 21237-2018 石油天然气输送管用宽厚钢板.pdf
- 安徽泾县国有资产投资运营公司、泾县中小企业融资招聘笔试题库2025.pdf
- 安徽宣城市泾县国有资本投资运营控股集团有限公司招聘笔试题库2025.pdf
- 安徽宣城宁国市国有资产投资运营有限公司招聘笔试题库2023.pdf VIP
- 安徽芜湖市国有资本投资运营有限公司招聘笔试题库2022.pdf VIP
文档评论(0)