Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第8-13章 第13章

上传人:E**** 文档编号:89353365 上传时间:2019-05-23 格式:PPT 页数:124 大小:1.46MB
返回 下载 相关 举报
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第8-13章 第13章_第1页
第1页 / 共124页
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第8-13章 第13章_第2页
第2页 / 共124页
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第8-13章 第13章_第3页
第3页 / 共124页
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第8-13章 第13章_第4页
第4页 / 共124页
Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第8-13章 第13章_第5页
第5页 / 共124页
点击查看更多>>
资源描述

《Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第8-13章 第13章》由会员分享,可在线阅读,更多相关《Verilog HDL数字系统设计——原理、实例及仿真 教学课件 ppt 作者 康磊 第8-13章 第13章(124页珍藏版)》请在金锄头文库上搜索。

1、第13章 ModelSim仿真工具,13.1 ModelSim概述 13.2 设计输入 13.3 设计Testbench 13.4 设计验证与仿真 13.5 ModelSim的调试 13.6 相关文件介绍,13.1 ModelSim概述 ModelSim仿真工具是Mentor Graphics的子公司Model Technology公司开发的硬件描述语言的仿真软件。该软件是业界最优秀的HDL语言仿真软件之一,是单一内核支持VHDL和Verilog HDL混合仿真的仿真器。它提供了友好的调试环境,支持PC和UNIX、Linux混合平台,并提供有完善和高性能的验证功能,具有仿真速度快、编译代码与仿

2、真平台无关、全面支持业界广泛的标准等优点。,ModelSim仿真工具的主要特点如下: (1) 本地编译结构,编译仿真速度快,跨平台、跨版本仿真。 (2) 先进的数据流窗口,可以迅速追踪到产生错误或者不稳定状态的原因。 (3) 性能分析工具可帮助分析性能瓶颈,加速仿真。 (4) 代码覆盖率检测确保了测试的完备性。 (5) 先进的信号检测功能,可以方便地访问VHDL、Verilog HDL或者两者混合设计中的底层信号。 (6) 支持加密IP。 (7) 可以实现与MATLAB的Simulink的联合仿真。,13.1.1 ModelSim的运行模式 ModelSim的运行模式有以下4种: (1) 用户

3、图形界面(GUI)模式:在主窗口中直接输入操作命令并执行,这是该软件的主要操作方式之。 (2) 交互式命令(Cmd)模式:没有图形化的用户界面,仅仅通过命令控制台输入的命令完成相应工作。 (3) Tcl和宏(Macro)模式:可执行扩展名为do的宏文件或Tcl语法文件,完成与在GUI主窗口逐条输入命令等同的功能。 (4) 批处理文件(Batch)模式:在DOS、UNIX或Linux操作系统下执行批处理文件,完成软件功能。,13.1.2 ModelSim的仿真流程 ModelSim基本应用的仿真步骤分为如下4步: (1) 创建工程。包括创建 .mpf后缀的工程文件,建立库并将逻辑库映射到物理目录

4、。 (2) 设计输入。向工程中添加有效的设计单元,包括设计文件、ModelSim管理文件夹、仿真环境设置等。可以将这些文件拷贝到工程目录,也可以简单地将它们映射到本地。 (3) 编译设计文件。进行语法检查并完成编译。 (4) 运行仿真。对指定的设计单元进行仿真。 图13.1给出了在ModelSim工程中仿真一个设计的基本流程,该流程是基本的仿真流程。,图13.1 ModelSim的基本仿真流程,13.2 设 计 输 入 这里通过一个简单的实例,即具有同步置数、异步复位功能的4位二进制计数器来学习如何使用ModelSim软件进行功能仿真。 计数器是数字系统设计中最基本的功能模块之一,是对时钟信号

5、的个数进行计数的时序逻辑器件,用来实现数字测量、状态控制等功能。4位二进制计数器的接口如图13.2所示。其中data30是4位数据输入端,out30是4位数据输出端,clk和rst是时钟信号和复位信号,load是置数端。当load有效时,停止计数,data30的数据将被直接赋给out30。,图13.2 同步置数、异步复位的4位 二进制计数器,13.2.1 创建工程 创建工程的操作步骤如下: (1) 启动软件。双击桌面上的ModelSim图标,启动ModelSim SE 6.5e软件,显示如图13.3的Main主窗口界面。由图可见,Main窗口主要由菜单栏、工具栏、工作区、命令窗口和状态栏组成。

6、,图13.3 Main主窗口界面,(2) 通过FileNewProject菜单命令创建一个新工程,如图13.4所示。,图13.4 创建工程,(3) 自动弹出Create Project对话框,如图13.5所示。在Project Name文本框中填写项目名称,这里输入count4。Project Location是工作目录,可通过Browse按钮来选择或改变。ModelSim不能为一个工程自动建立一个目录,因此最好自己定义保存路径。本例中保存的路径为“E: /count4”。Default Library Name说明所做的设计被编译到哪一个库中,这里使用默认值work。单击OK按钮,此步骤后产

7、生的工程文件 .mpf文件被创建并存储于所选择的目录下。在编译完设计文件后,在Workspace窗口的Library中就会出现work库。 (4) 设置好项目名称及保存路径后,点击OK按钮,即完成一个新工程的创建。,图13.5 Create Project对话框,13.2.2 向工程中添加文件 在创建完工程后,需要向工程中添加文件。在图13.5所示的界面中单击OK按钮,则自动弹出图13.6所示的窗口。在该窗口中,可以选择创建新设计的文件,添加已存在的文件,建立仿真结构或添加用于管理的文件夹。,图13.6 向工程添加文件,1创建新设计的文件 选择“Create New File”,启动如图13.

8、7所示的Create Project File界面,在File Name一栏中输入文件名称,在Add file as type中选择Verilog选项,点击OK按钮。,图13.7 Create Project File界面,工程中需要添加的文件包括模块文件和测试用的激励文件。本例中创建的4位二进制计数器的模块文件为count4.v,激励文件为count4_tp.v。 创建好文件后,在图13.8所示主窗口的Project中可以看到已建立的与工程同名的count4.v模块文件,文件类型为Verilog。双击count4.v文件,出现图13.8右侧所示的编写源代码的Source窗口。在该Source

9、窗口中可以编写、修改Verilog HDL源代码。,图13.8 添加文件代码,2添加已存在的文件 我们也可以为当前工程count4添加已存在的文件。在如图13.6所示的窗口中选择“Add Existing File”,启动如图13.9所示的Add file to Project 界面,可以使用Browse按钮选择向工程添加需要的文件,这里的文件类型为默认,单击OK按钮完成文件的添加。,图13.9 Add file to Project 界面,13.2.3 建立库 ModelSim软件中库的含义是存储已编译过的设计单元的目录,Verilog设计文件中的所有模块和信息必须被编译到一个或多个库中。M

10、odelSim库包含有以下信息:可重指定执行的代码、调试信息和从属信息等。在如图13.3所示的Main主窗口界面的工作区中展开库,能看到库中的文件,但未编译过的文件在库内是看不到的。,1建立库 建立库的方法有两种。 方法一:在用户界面模式下,选择FileNewLibrary菜单命令,出现如图13.10所示的界面。其中,Create中各选项的含义如下: a new library:表示建立一个新库。 a map to an existing library:表示建立一个到已存在库的映射。 a new library and a logical mapping to it:表示建立一个逻辑映射的新

11、库。,图13.10 创建新库,在Library Name栏内输入要创建库的名称,在Library Physical Name处输入存放库的文件名称。 方法二:在命令模式下执行vlib命令,语法格式为 vlib 其中,lib_name为库名。 例如:输入 vlib my_lib 表明创建库my_lib,如图13.11所示,则在目前工程所在路径下生成my_lib库,在下次启动软件后可看到my_lib库的保存路径为“E: /count4/my_lib”,如图13.12所示。,图13.11 执行vlib命令,图13.12 创建新库,如果要删除某库,只需在如图13.12所示的Library中选中该库名,

12、点击右键,在快捷菜单中选择delete即可。例如,选择delete删除my_lib库后,如图13.13所示,my_lib库显示为unavailable,下次启动软件后my_lib库被删除。,图13.13 删除库,2映射库到物理目录 一般情况下,ModelSim软件可以在当前工程所保存的路径下查找到所需要的库。如果需要在所创建的工程中使用其他库中编译好的文件,则需要将所建立的库映射到含有该文件的设计单元所在的物理目录中。映射库到物理目录的方法有两种。 方法一:若选择如图13.14所示的a map to an existing library项,新建一个到已存在库的映射,则需单击Browse按钮选

13、择已经存在的库。例如建立一个名为my_lib的库映射到E:/count4/work,则在工作区的my_lib库中已经包含work库中编译过的文件count4.v和count4_tp.v,如图13.15所示。,图13.14 映射库到物理目录,图13.15 库中所包含的文件,方法二:在命令模式下执行vmap命令,语法格式为 vmap 其中,logical_name为逻辑库名,directory_name为物理目录的全路径名。 例如,执行vmap my_lib work 命令可以同样实现上述功能。,13.3 设计Testbench 13.3.1 Testbench的基本结构 利用Verilog HD

14、L编写Testbench的基本结构如下: module test_bench; 信号或变量定义声明; 使用initial或always语句来产生激励波形; 实例化设计模块; 监控和比较输出响应; endmodule,激励文件经常使用的过程块是always块和initial块。所有的过程块都是在0时刻同时启动。它们是并行的,在模块中不分前后。其中initial块只执行一次,always块只要符合触发条件就会立即执行。 监控被测模块的输出响应的方法为:在initial 块中,用系统任务$time和$monitor。$time返回当前的仿真时刻,$monitor只要在其变量列表中有某一个或某几个变量

15、值发生化,就在仿真单位时间结束时显示其变量列表中所有变量的值。,13.3.2 时钟信号的产生 时钟是时序电路设计关键的参数,本节专门介绍产生仿真验证过程所需要的各类时钟信号。 1普通时钟信号 所谓普通时钟信号,是指占空比为50%的时钟信号,也是最为常用的时钟信号,如图13.16所示。,图13.16 占空比为50%的时钟信号,普通时钟信号可通过initial语句和always语句产生,方法如下: (1) 基于initial语句的方法(见代码13.1)。 【代码13.1】 用initial语句产生时钟信号。,(2) 基于always语句的方法(见代码13.2)。 【代码13.2】 用always语

16、句产生时钟信号。 parameter period =20; reg clk; initial clk =1b0; always #(period/2) clk=clk;,2自定义占空比的时钟信号 自定义占空比的时钟信号通过always模块可以快速实现。代码13.3是产生25%时钟信号代码的实例。,3有限循环的时钟信号 上述语句产生的时钟信号都是无限的,可采用repeat语句来产生有限循环的时钟信号,其实现见代码13.4。,4相位偏移的时钟信号 相位偏移是两个时钟信号之间的相对概念,指两个时钟信号在时间上有延迟。产生相移时钟信号的代码见代码13.5。,13.3.3 复位信号的产生 1异步复位信号 异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。异步复位信号的实现见代码13.6。,2同步复位信

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号