资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四讲第四讲 modelsimmodelsim软件的仿真和测试软件的仿真和测试4.1 4.1 仿真简介仿真简介 仿真是指在软件环境下,验证电路的行为和设计意图是否仿真是指在软件环境下,验证电路的行为和设计意图是否 一致。一致。 简化的仿真验证系统框图如下:简化的仿真验证系统框图如下:TestVector 测试向量DUT 测试内容Testbench 测试模板仿真系 统软件 、硬件 运行比较判断 输出、存 储结果4.1 4.1 仿真简介(续仿真简介(续1 1) 仿真与验证主要包括仿真与验证主要包括3 3个方面的内容:个方面的内容:第一是仿真系统的组织原则,主要是如何有效的测试目标第一是仿真系统的组织原则,主要是如何有效的测试目标 系统的理论和方法;系统的理论和方法;第二是测试模板与测试向量的设计;第二是测试模板与测试向量的设计;最后是仿真工具的使用。最后是仿真工具的使用。 一般来说,仿真分为三种类型,即功能仿真、综合后功能仿真一般来说,仿真分为三种类型,即功能仿真、综合后功能仿真 和时序仿真,分别对应于设计输入后、综合完成后、布局布线和时序仿真,分别对应于设计输入后、综合完成后、布局布线 完成后等步骤,这些步骤也是仿真的切入点。完成后等步骤,这些步骤也是仿真的切入点。4.1 4.1 仿真简介(续仿真简介(续2 2)1 1、功能仿真、功能仿真 功能仿真也称为前仿真,主旨在于验证电路功能是否符合设计要求,功能仿真也称为前仿真,主旨在于验证电路功能是否符合设计要求, 其特点是不考虑电路门延时与路径延时,考察重点为电路在理想环境其特点是不考虑电路门延时与路径延时,考察重点为电路在理想环境 下的行为和设计构想是否一致。下的行为和设计构想是否一致。 可综合仿真代码是用可综合仿真代码是用RTLRTL级代码语言描述的,功能仿真的输入是设计级代码语言描述的,功能仿真的输入是设计 的的RTLRTL代码,也就是代码,也就是HDLHDL源文件与源文件与TestbenchTestbench. .。 2 2、综合后仿真、综合后仿真 综合后仿真的主旨在于验证综合后的电路结构是否与设计意图相符,综合后仿真的主旨在于验证综合后的电路结构是否与设计意图相符, 是否存在歧义综合结果。是否存在歧义综合结果。 综合后仿真的输入是从综合得到的一般性逻辑网表抽象出的仿真模型综合后仿真的输入是从综合得到的一般性逻辑网表抽象出的仿真模型 和综合产生的延时文件,综合时的延时文件仅仅能估算门延时,而不和综合产生的延时文件,综合时的延时文件仅仅能估算门延时,而不 包含布线延时信息,所以延时信息不十分准确。包含布线延时信息,所以延时信息不十分准确。4.1 4.1 仿真简介(续仿真简介(续3 3)3 3、时序仿真、时序仿真 时序仿真也称为布局布线后仿真或者后仿真,是指电路已经映射到特时序仿真也称为布局布线后仿真或者后仿真,是指电路已经映射到特 定的工艺环境后,综合考虑电路的路径延时与门延时的影响,验证电定的工艺环境后,综合考虑电路的路径延时与门延时的影响,验证电 路的行为是否能够在一定时序条件下满足设计构想的功能。路的行为是否能够在一定时序条件下满足设计构想的功能。 时序仿真主要目的在于验证电路是否存在时序违规,其输入为从布局时序仿真主要目的在于验证电路是否存在时序违规,其输入为从布局 布线抽象出的门级网表、布线抽象出的门级网表、TestbenchTestbench以及扩展名为以及扩展名为SDOSDO的标准延时文的标准延时文 件。件。 一般来说,时序仿真是必选步骤,通过时序仿真能检查设计时序与实一般来说,时序仿真是必选步骤,通过时序仿真能检查设计时序与实 际运行情况是否一致,确保设计的可靠性和稳定性。际运行情况是否一致,确保设计的可靠性和稳定性。4.2 4.2 ModelsimModelsim简介简介 ModelsimModelsim是一种第三方是一种第三方EDAEDA仿真工具。仿真工具。 ModelsimModelsim仿真工具是仿真工具是ModelModel公司开发的,它支持公司开发的,它支持VerilogVerilog、VHDLVHDL 以及两者的混合仿真,可以将整个程序分步执行,它在程序执以及两者的混合仿真,可以将整个程序分步执行,它在程序执 行的任何步骤任何时刻都可以查看任意变量的当前值,可以查行的任何步骤任何时刻都可以查看任意变量的当前值,可以查 看某一单元或模块的输入输出的连续变化等。看某一单元或模块的输入输出的连续变化等。 其主要特点是仿真速度快,仿真精度高,而且支持其主要特点是仿真速度快,仿真精度高,而且支持VHDLVHDL、 VerilogVerilog HDL HDL以及两者的混合使用,是目前业界最流行最通用的以及两者的混合使用,是目前业界最流行最通用的 仿真器之一仿真器之一。4.2.1 4.2.1 ModelsimModelsim的图形用户界面的图形用户界面 ModelsimModelsim 6.1 6.1软件在默认的条件下提供了主窗口、源文件窗口、信号软件在默认的条件下提供了主窗口、源文件窗口、信号 窗口、波形窗口、数据流窗口、进程窗口、存储器窗口、列表窗口等窗口、波形窗口、数据流窗口、进程窗口、存储器窗口、列表窗口等 不同窗口,如下图。不同窗口,如下图。4.2.1 4.2.1 ModelsimModelsim的图形用户界面(续的图形用户界面(续1 1) 主窗口:主窗口主窗口:主窗口mainmain在在ModelsimModelsim启动时直接打开,是其他窗口运行的启动时直接打开,是其他窗口运行的 基础。基础。 源文件窗口:源文件窗口源文件窗口:源文件窗口sourcesource主要用来显示和编辑主要用来显示和编辑HDLHDL源文件代码源文件代码 。 波形窗口:波形窗口是最常用的窗口之一,主要是用来查看仿真结果波形窗口:波形窗口是最常用的窗口之一,主要是用来查看仿真结果 。 数据流窗口:数据流窗口数据流窗口:数据流窗口DataflowDataflow是一般仿真软件都提供的一个通用是一般仿真软件都提供的一个通用 窗口,通过该窗口可以跟踪设计中的物理连接、事件的传播,也可以窗口,通过该窗口可以跟踪设计中的物理连接、事件的传播,也可以 用来跟踪寄存器、网线和进程等,极大的丰富了调试方法并对其进行用来跟踪寄存器、网线和进程等,极大的丰富了调试方法并对其进行 显示,也可以显示设计中的内部连接。显示,也可以显示设计中的内部连接。 列表窗口:列表窗口使用表格的形式显示仿真结果。列表窗口:列表窗口使用表格的形式显示仿真结果。 进程窗口:进程窗口显示了仿真中用到的所有进程列表。进程窗口:进程窗口显示了仿真中用到的所有进程列表。 信号窗口信号窗口ObjectObject主要是用来选择需要查看的信号,同时可以在仿真过主要是用来选择需要查看的信号,同时可以在仿真过 程中强制某一个信号的值发生变化,也可以通过信号窗口的程中强制某一个信号的值发生变化,也可以通过信号窗口的 Edit/ForceEdit/Force和和Edit/ClockEdit/Clock命令将任意信号强制转化成时钟信号。命令将任意信号强制转化成时钟信号。 寄存器窗口寄存器窗口MemoryMemory可以显示设计中寄存器的内容。使用此窗口可以可以显示设计中寄存器的内容。使用此窗口可以 通过加载源文件或改变存储器内容的方式对设计中的存储器进行初始通过加载源文件或改变存储器内容的方式对设计中的存储器进行初始 化,同时窗口中的内容也可以保存成一个存储器文件,以便日后使用化,同时窗口中的内容也可以保存成一个存储器文件,以便日后使用 。4.2.1 4.2.1 ModelsimModelsim的图形用户界面的图形用户界面( (续续2)2) 在在ModelsimModelsim的主窗口的工具栏中常用快捷键图标的功能如下表:的主窗口的工具栏中常用快捷键图标的功能如下表:4.2.2 4.2.2 ModelsimModelsim仿真步骤仿真步骤( (续续1)1)1 1、建立库、建立库仿真库是指存储已经编译设计单元(仿真库是指存储已经编译设计单元(design unitsdesign units)的目录。)的目录。 ModelsimModelsim中仿真库可以分为工作库(中仿真库可以分为工作库(WorkingWorking)和资源库()和资源库(ResourceResource )两大类。)两大类。 建立仿真库的常用方建立仿真库的常用方 法有两种:一是在界面模法有两种:一是在界面模 式下,执行主菜单命令式下,执行主菜单命令 File/New/LibraryFile/New/Library,打开,打开 Create a New LibraryCreate a New Library对对 话框,选择第一项生成一话框,选择第一项生成一 个新库并映射它,如右图个新库并映射它,如右图 图所示。二是在命令行模图所示。二是在命令行模 式下也可以在主窗口执行式下也可以在主窗口执行 vlibvlib命令建立新库,语法命令建立新库,语法 格式如下:格式如下:VlibVlib 4.2.2 4.2.2 ModelsimModelsim仿真步骤仿真步骤( (续续2)2)2 2、映射库到物理目录;、映射库到物理目录;映射是将已经编译好的设计单元映射为一个库,库路径内的文件应该是映射是将已经编译好的设计单元映射为一个库,库路径内的文件应该是 已经编译好的。已经编译好的。常用操作方法有两种:一是常用操作方法有两种:一是 在界面模式下,执行主菜单命令在界面模式下,执行主菜单命令 File/New/LibraryFile/New/Library,打开,打开Create aCreate aNew Library New Library对话框,选择第二对话框,选择第二 项映射已经编译好的库,单击项映射已经编译好的库,单击 browsebrowse按钮选择所已经编译好按钮选择所已经编译好 的库,如右图所示;第二种方法的库,如右图所示;第二种方法 是命令模式下主窗口执行是命令模式下主窗口执行vmapvmap命命 令,语法格式如下:令,语法格式如下:VmapVmap4.2.2 4.2.2 ModelsimModelsim仿真步骤仿真步骤( (续续3)3)3 3、编译源代码、编译源代码 GUIGUI图像界面模式下编译文件的快捷方式是建立一个工程图像界面模式下编译文件的快捷方式是建立一个工程 ,在工程中添加所要编译的文件,然后执行主窗口的,在工程中添加所要编译的文件,然后执行主窗口的 CompileCompile子菜单中的各种命令或者是右键单击工程中的文子菜单中的各种命令或者是右键单击工程中的文 件执行件执行CompileCompile的不同命令。的不同命令。 如果编译的是如果编译的是VHDLVHDL源文件,其编译顺序由文件的排列顺源文件,其编译顺序由文件的排列顺 序决定,如果是序决定,如果是VerilogVerilog源文件,其编译顺序也是由文件的源文件,其编译顺序也是由文件的 排列顺序决定,但文件编译的顺序并不重要。排列顺序决定,但文件编译的顺序并不重要。 4.2.2 4.2.2 ModelsimModelsim仿真步骤仿真步骤( (续续4)4)4 4、 启动仿真器并加载设计顶层启动仿真器并加载设计顶层(1 1)执行主)执行主 菜单中的命令菜单中的命令 Simulate/Simulate/ Start Simulate Start Simulate 打开仿真对话打开仿真对话 框,指定需要框,指定需要 仿真的设计单仿真的设计单 元,然后点击元,然后点击 OKOK,如图所示,如图所示4.2.2 4.2.2 ModelsimModelsim仿真步骤仿真步骤( (续续5)5)4 4、 启动仿真器并加载设计顶层启动仿真器并加载设计顶层(2 2)在主
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号