Modelsim 中文
详细介绍modelsim的使用方法
ModelSim产品简介(13)
Signals 窗口
• 紧跟Structure窗口 – 显示Structure窗口的当前层HDL项的名称和 值 • 层次 - (+)可展开的, (-)已展开的 • VHDL 信号,Verilog 线网, 寄存器变量和已命名 的时间
• 可拖放到Wave和List窗口
ModelSim产品简介(14)
ModelSim产品简介(11)
Process 窗口 • 显示外部和内部的处理 • View -> Active
– 显示当前仿真众所有在执行前预定的 processes
• View -> In Region
– 显示在Structure 窗口中选定的所有 processes 的名字
ModelSim产品简介(12)
ModelSim产品简介(17)
Variables窗口
• 列出 HDL 项的名称 – VHDL – 常数, generics 和变量 – Verilog – 寄存器变量 • 到当前过程的路径被显示在左下 • 树层次 - (+)可展开的, (-)已展开的 • 可改变 – 选择HDL项改变值 • 可浏览 – 在Wave 或 List 窗口 或 log 文件的项 – 选择变量或层中的变量
ModelSim产品简介(9)
Source 窗口
ModelSim产品简介(10)
Source 窗口 • 描述
– 显示所选的HDL项的信息
• 检查
– 显示所选HDL项当前仿真值
1) 高亮信号, 变量, 常数, 线网, 或寄存器 2) 右击鼠标 (或 Object Menu -> Examine/Description)
ModelSim/XE
modelsim的.do语法
在进行 .do 语法讨论之前,首先需要了解 ModelSim 是什么,以及它的作用和特点。
ModelSim 是 Mentor Graphics 公司出品的一款功能强大的 HDL 仿真工具,广泛应用于数字电子电路设计和验证领域。
它支持 Verilog、VHDL 和 SystemVerilog 三种主流硬件描述语言,可以帮助工程师们进行仿真、调试和验证设计的正确性和功能性。
对于 .do 语法,它是 ModelSim 中常用的一种脚本语言,可以用于自动化执行一系列的仿真操作,提高工作效率和减少重复性工作。
在实际的工程项目中,合理地使用 .do 文件能够极大地简化仿真流程,并且方便地进行批量的仿真测试。
熟练掌握 .do 语法对于提高工作效率和质量是非常重要的。
下面通过几个方面来深入探讨和解析 .do 语法在 ModelSim 中的应用:1. .do 文件的基本结构和语法在编写 .do 文件时,需要了解其基本结构和语法规则。
可以用“#”表示注释,用“run”命令表示运行仿真等。
还可以在 .do 文件中引入其他 .do 文件,实现模块化的脚本编写,提高代码的重用性和可维护性。
2. .do 文件在仿真流程中的应用在实际工程项目中,通常会有多个仿真测试用例需要执行,使用 .do文件可以很方便地对这些测试用例进行批量执行。
.do 文件也可以用于设置仿真的参数,比如时钟周期、仿真时长等,从而更加灵活地进行仿真调试。
3. .do 文件与仿真结果的分析和处理除了执行仿真测试,.do 文件还可以用于对仿真结果进行分析和处理。
可以在 .do 文件中加入分析波形的命令,或者导出仿真波形和数据。
这些操作可以帮助工程师更加直观地了解设计的性能和行为。
总结回顾:通过以上的介绍和分析,我们可以看到 .do 文件在 ModelSim 中的应用非常广泛,对于提高工作效率和质量有着重要的作用。
合理地使用 .do 文件可以简化仿真流程,减少重复性工作,以及方便地进行批量的仿真测试。
Modelsim使用说明
Modelsim 使用简明指南1 前言作为一种简单易用,功能强大的逻辑仿真工具,Modelsim 具有广泛的应用。
这里对ModelSim 作一个入门性的简单介绍。
首先介绍ModelSim 的代码仿真,然后介绍门级仿真和时序验证。
和时序验证。
2 代码仿真在完成一个设计的代码编写工作之后,可以直接对代码进行仿真,检测源代码是否符合功能要求。
这时,仿真的对象为HDL 代码,比较直观,速度比较快,可以进行与软件相类似的多种手段的调试(如单步执行等)。
在设计的最初阶段发现问题,在设计的最初阶段发现问题,可以节省大量的精力。
可以节省大量的精力。
2.1 代码仿真需要的文件1.设计HDL 源代码:源代码:新建一个“文本文档”文件,在记事本中输入HDL 源代码,使用V erilog 语言编程。
语言编程。
2.测试激励代码:.测试激励代码:在同一个文件中,根据设计要求输入/输出的激励程序,由于不需要进行综合,书写具有很大的灵活性。
有很大的灵活性。
3.保存该文件后退出,然后重命名该文件,.保存该文件后退出,然后重命名该文件,使该文件后缀名由使该文件后缀名由.txt 变为.v 。
如:t81.v 。
4. 该文件保存在你所建立的工作目录中,如:D\VLSItext\t1如果要修改该文件,仍然可以选择用仍然可以选择用记事本记事本打开编辑再保存,记事本相当于是一源代码输入软件。
输入软件。
注:所有的文件名及目录名均要求是英文,无中文字符。
2.2 代码仿真步骤1.建立工程:在ModelSim 中建立Project 。
如图2.1所示,点击File ðNew ðProject ,得到Creata Project 的弹出窗口,如图2.2所示。
在Project Name 栏中填写你的项目名字,建议和你的顶层文件名字一致,如t81。
Project Location 是你的项目目录,你可通过Brose 按钮来选择或改变,建议项目目录选择为你所保存源代码的目录,如:D\VLSItext\t1。
ModelSim和QuestaSim功能简介及应用
ModelSim是工业界最优秀的语言仿真器,它提供最友好的调试环境,是作FPGA、ASIC设计的RTL级和门级电路仿真的首选。
它支持PC和UNIX、LINUX平台,是单一内核支持VHDL和Verilog混合仿真的仿真器。
它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真,编译仿真速度业界最快,编译的代码与平台无关,便于保护IP核,具有个性化的图形界面和用户接口,为用户加快调试提供强有力的手段。
全面支持VHDL和Verilog语言的IEEE 标准,以及IEEE VITAL 1076.4-95 标准,支持C语言功能调用, C的模型,基于SWIFT的SmartModel逻辑模型和硬件模型。
ModelSim支持RTL仿真,门级仿真,时序仿真:主要特点:*采用直接编译结构,编译仿真速度最快;*单一内核无缝地进行VHDL和Verilog混合仿真;*与机器和版本无关,便于数据移植和库维护;*与机器无关的编译代码编于保护和利用IP;*简单易用和丰富的图形用户界面,快速全面调试;*Tcl/Tk用户可定制仿真器;*完全支持VHDL/Verilog国际标准,完全支持Verilog 2001;*支持众多的ASIC和FPGA厂家库;*集成的Performance analyzer帮助分析性能瓶颈,加速仿真;*灵活的执行模式,Debug模式可以进行高效的调试,效率模式大幅度提高仿真速度。
*加强的代码覆盖率功能Code coverage,能报告出statement 、branch、condition、* expression、toggle、fsm等多种覆盖率情况,进一步提高了测试的完整性;*同一波形窗口可以显示多组波形,并且能进行多种模式的波形比较(Wave Compare);*先进的Signal Spy功能,可以方便地访问VHDL 或者 VHDL 和Verilog 混合设计中的下层模块的信号,便于设计调试;*支持加密IP;*集成的 C调试器,支持用C 语言完成测试平台和模块;支持64位的OS; ModelSim用户界面:ModelSim设计流程:ModelSim coverage验证:ModelSim Dataflow窗口QuestaSim是第一个基于标准的单核验证引擎,集成了一个HDL模拟器,一个约束求解器,一个判断引擎,功能覆盖,以及一个通用的用户界面。
ModelSim
先进功能
Complete Flow Solution for Multi-Million Gate FPGA Design 2002 – SH slide 3 Copyright 1999-2002, Mentor Graphics.
1) 高亮选中 高亮选中signal, variable, constant, wire, 或reg 2) 用鼠标器右键点击 或者 选择菜单Object -> 选择菜单 Examine/Description
Complete Flow Solution for Multi-Million Gate FPGA Design 2002 – SH
slide 12
Copyright 1999-2002, Mentor Graphics.
结构(structure)窗口
设计结构的层次化视图 – VHDL(方)- Package, component实例,generate和 block声明 – Verilog(圆)- module实例,命名的 fork,命名的begin,task和 function – 实例标号, entity/module, architecture – 作为source和signals窗口的当前 区域,更新process和variables窗 口
slide 16 Copyright 1999-2002, Mentor Graphics.
Complete Flow Solution for Multi-Million Gate FPGA Design 2002 – SH
ModelSim使用的一点心得体会
ModelSim使用的一点心得- -1、至今还没有弄明白为什么要用ModelSim,因为看波形Quartus II自带的工具就可以了啊。
2、我刚刚接触modelsim,我想大多数菜鸟跟我一样,看过如何使用ModelSim的介绍,说句实话,那些介绍写的都太过简单,仿佛大家都不屑写上一些比较“弱智”的步骤,恰恰就是这些看似累赘的步走,难为我好久。
教程上都写道,modelsim的简单使用方法如下:建立库- 影射库到物理目录- 编译代码- 启动仿真。
首先建立库就叫我头晕。
库的概念用在这儿实在不合适,把我吓坏了,也就没心思看下一步了。
在我看来,教程应该这么写:<1> 建立一个目录modelsimStudy。
用任何文本编辑器编辑一个简单的例子程序,比如计数器counter.vhd。
有clk、ena、reset输入,cnt作为输出。
<2> 打开Modelsim,首先create project,工程名随意取了,比如命名为test,目录设在modelsimStudy下,默认的库work不变(这样就不用管什么建立库之类的东西了)。
然后add existing file,把counter.vhd加入当前工程。
<3> 编译这个文件,通过之后,work下面会出现counter这个实体。
然后选中它,右键,simulate(左键双击也可)。
<4> ModelSim有很多窗口(新手就怕这个),一开始只要选择view下面的objects 和wave窗口就行了。
旧版的signal窗口在6.0的版本改名为Objects(这个我是摸索了好久才发现的,是不是太笨了?)。
wave窗口刚打开时是空的,需要在objects窗口的add -> wave -> signals in region。
这时,wave上就有clk\ ena \ reset等信号了。
<5> 我们给clk来个输入激励,在object窗口中选中clk,右键选clock,给它定义个时钟。
modelsim使用教程
modelsim使用教程ModelSim是一款常用的硬件描述语言(HDL)仿真工具,本教程将向您介绍如何使用ModelSim进行仿真。
步骤1:安装ModelSim首先,您需要下载和安装ModelSim软件。
在您的电脑上找到安装程序并按照提示进行安装。
步骤2:创建工程打开ModelSim软件,点击"File"菜单中的"New",然后选择"Project"。
在弹出的对话框中,选择工程的存储位置,并为工程命名。
点击"OK"完成工程创建。
步骤3:添加设计文件在ModelSim的工程窗口中,右键点击"Design"文件夹,选择"Add Existing File"。
然后选择包含您的设计文件的目录,并将其添加到工程中。
步骤4:配置仿真设置在工程窗口中,右键点击"Design"文件夹,选择"Properties"。
在弹出的对话框中,选择"Simulation"选项卡。
在"Top level entity"字段中,选择您的设计的顶层模块。
点击"Apply"和"OK"保存设置。
步骤5:运行仿真在ModelSim的工具栏中,找到"Simulate"按钮,点击并选择"Start Simulation"。
这将打开仿真窗口。
在仿真窗口中,您可以使用不同的命令来控制和观察设计的行为。
步骤6:查看仿真结果您可以在仿真窗口中查看信号波形、调试设计并分析仿真结果。
在仿真窗口的菜单栏中,您可以找到一些常用的查看和分析工具,如波形浏览器、信号分析器等。
步骤7:结束仿真当您完成仿真时,可以选择在仿真窗口的菜单栏中找到"Simulate"按钮,并选择"End Simulation"以结束仿真。
modelsim的详细使用方法
一、简介ModelSim是一款由美国Mentor Graphics公司推出的集成电路仿真软件,广泛应用于数字电路和系统设计领域。
它提供了强大的仿真和验证功能,能够帮助工程师快速高效地进行电路设计与验证工作。
本文将详细介绍ModelSim的使用方法,以帮助读者更好地掌握这一工具的操作技巧。
二、安装与配置1. 下载ModelSim安装包,并解压到指定目录2. 打开终端,进入ModelSim安装目录,执行安装命令3. 安装完成后,配置环境变量,以便在任何目录下都能够调用ModelSim程序4. 打开ModelSim,进行软件注册和授权,确保软件可以正常运行三、工程创建与管理1. 新建工程:在ModelSim主界面点击“File” -> “New” -> “Project”,输入工程名称和存储路径,选择工程类型和目标设备,点击“OK”完成工程创建2. 添加文件:在工程目录下右键点击“Add Existing”,选择要添加的源文件,点击“OK”完成文件添加3. 管理工程:在ModelSim中可以方便地对工程进行管理,包括文件的增删改查以及工程参数的设置等四、代码编写与编辑1. 在ModelSim中支持Verilog、VHDL等多种硬件描述语言的编写和编辑2. 在ModelSim主界面点击“File” -> “New” -> “File”,选择要新建的文件类型和存储位置,输入文件名称,点击“OK”完成文件创建3. 在编辑器中进行代码编写,支持代码高亮、自动缩进、语法检查等功能4. 保存代码并进行语法检查,确保代码符合规范,没有错误五、仿真与调试1. 编译工程:在ModelSim中进行代码编译,生成仿真所需的可执行文件2. 设置仿真参数:在“Simulation”菜单下选择“S tart Simulation”,设置仿真时钟周期、输入信号等参数3. 运行仿真:点击“Run”按钮,ModelSim将开始对设计进行仿真,同时显示波形图和仿真结果4. 调试设计:在仿真过程中,可以通过波形图和仿真控制面板对设计进行调试,查找并解决可能存在的逻辑错误六、波形查看与分析1. 查看波形:在仿真过程中,ModelSim会生成相应的波形文件,用户可以通过“Wave”菜单查看波形并进行波形分析2. 波形操作:支持波形的放大、缩小、平移、选中等操作,方便用户对波形进行分析和观察3. 波形保存:用户可以将波形结果保存为图片或文本文件,以便日后查阅和分析七、性能优化与验证1. 时序优化:在设计仿真过程中,可以通过观察波形和性能分析结果,对设计进行优化,提高设计的时序性能2. 逻辑验证:通过对仿真的结果进行逻辑验证,确保设计符合预期的逻辑功能3. 时序验证:对设计的时序性能进行验证,确保信号传输和时钟同步的正确性八、项目输出与文档整理1. 输出结果:在仿真和验证完成后,可以将仿真结果、波形图和性能分析结果输出为文本文件或图片,方便后续的文档整理和报告撰写2. 结果分析:对仿真结果和验证结果进行详细的分析,确定设计的性能和功能是否符合设计要求3. 文档整理:根据仿真和验证结果,进行文档整理和报告撰写,为后续的设计和优化工作提供参考九、总结与展望ModelSim作为一款专业的集成电路仿真软件,具有着强大的功能和丰富的特性,可以帮助工程师进行电路设计与验证工作。
modelsim使用方法
modelsim使用方法ModelSim 是一种功能强大的硬件描述语言 (HDL) 模拟工具,支持VHDL和Verilog,可用于设计和验证数字系统。
本文将介绍如何使用ModelSim。
**安装 ModelSim****创建项目**在启动 ModelSim 后,首先需要创建一个新的项目。
选择 "File" 菜单,然后选择 "New" -> "Project"。
在打开的对话框中,选择项目的文件夹和项目名称,然后点击 "OK"。
**添加设计文件和测试文件**在项目中,您需要添加设计文件和测试文件。
选择 "Project" 菜单,然后选择 "Add to Project" -> "Add Files". 在打开的对话框中,选择您的设计文件 (VHDL 或 Verilog) 和测试文件,然后点击 "OK"。
**设置仿真**在编译代码之后,下一步是设置仿真选项。
选择 "Simulate" 菜单,然后选择 "Start Simulation"。
在打开的对话框中,选择您的顶层模块。
您还可以选择以 GUI 模式还是批处理模式运行仿真。
在设置仿真之前,您可以添加信号波形文件以在仿真过程中显示波形。
选择 "Simulate" -> "Wave" -> "Add Waveform". 然后,选择信号波形文件 (.do 或 .vcd),并点击 "OK"。
**运行仿真**设置仿真选项后,您可以开始执行仿真。
通过选择 "Simulate" -> "Run",可以运行单步或连续仿真。
ModelsimSETutorial的翻译
《Modelsim SE Tutorial》的翻译第1课创建一个projectproject是关于HDL设计的一个集合,它减少了与工具的交互,便于组织文件和仿真设置。
Project至少有一个work库和一个存储于.mpf文件中的会话状态。
一个project还可以包括:✧HDL源文件或对源文件的引用;✧其他文件如README文件,或其他project文件;✧本地库;✧对全局库的引用。
1.启动Modelsim用快捷图标,或从开始菜单启动,或从DOS提示符运行Modelsim.exe。
当出现Welcome画面时,单击“Close”按钮,将其关闭,则进入Modelsim 的Main窗口。
2.创建一个project在Main窗口中执行File/New/Project菜单命令,会弹出一个“Create Project”对话框,如图所示,键入Project名(这里起名为test),选择其存储路径为当前工作目录(即源文件所在目录D:\Modelsim_5.6\examples\projects\V erilog),缺省的库名为work。
单击“OK”按钮,则在Main窗口的工作区域会出现一个空白的Project窗口,并出现“Add Items to the project”对话框。
3.在Project中加入文件若源文件已存在,则单击“Add Existing File”,会弹出一个“Add file to project”对话框,单击Browse按钮选择需要加入的文件(这里选择D:\Modelsim_5.6\examples\projects\V erilog下的8位加法计数器counter.v及其测试文件tcounter.v),选中“Reference from current location”单选钮,单击“OK”。
若源文件不存在,则单击“Create New File”,或执行File/New/Sourse/V erilog 菜单命令,自行编写源程序。
Modelsim初级使用教程(转)
Modelsim初级使用教程(转)一、 Modelsim简介Modelsim仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。
对于初学者,modelsim自带的教程是一个很好的选择,在Help->SE PDF Documentation->Tutorial里面.它从简单到复杂、从低级到高级详细地讲述了modelsim的各项功能的使用,简单易懂。
但是它也有缺点,就是它里面所有事例的初期准备工作都已经放在example文件夹里,直接将它们添加到modelsim就可以用,它假设使用者对当前操作的前期准备工作都已经很熟悉,所以初学者往往不知道如何做当前操作的前期准备。
二、安装同许多其他软件一样,Modelsim SE 同样需要合法的License,通常我们用Kengen产生license.dat。
1 解压安装工具包开始安装,安装时选择Full product安装。
当出现Install Hardware Security Key Driver时选择否。
当出现Add Modelsim T o Path选择是。
出现Modelsim License Wizard时选择Close。
2 在C盘根目录新建一个文件夹flexlm,用Keygen产生一个License.dat,然后复制到该文件夹下。
若License通过,但是打开ModelSim仍出错,则将系统时间调到2008年之前,重新生成License,再将时间调回来即可。
3 修改系统的环境变量。
右键点击桌面我的电脑图标,属性->高级->环境变量->(系统变量)新建。
modelsim仿真详解 -回复
modelsim仿真详解-回复什么是ModelSim仿真?ModelSim是一种著名的仿真工具,用于数字和模拟电路的功能仿真和时序仿真。
它是由美国Mentor Graphics公司开发的,提供了一整套的仿真、调试和验证功能,广泛应用于电子设计自动化领域。
ModelSim仿真工具可以模拟数字电路的行为和时序,在仿真过程中可以观察和分析电路的运行状态,以验证设计的正确性。
它支持Verilog和VHDL两种高级硬件描述语言,并且提供了强大的波形编辑和调试功能,便于用户分析和调试设计中的问题。
ModelSim仿真的基本原理和流程是什么?ModelSim仿真的基本原理是利用编译过程将Verilog或VHDL代码转化为可执行的仿真模型,然后通过激励文件对模型进行驱动和刺激,最后观察波形输出并进行分析。
下面是ModelSim仿真的基本流程:1. 编写设计代码:使用Verilog或VHDL语言编写设计代码,包括设计模块、信号连接、时钟和复位逻辑等。
2. 创建测试平台:编写测试平台代码,包括生成激励信号和检查输出结果的内容。
3. 编译设计代码:使用ModelSim提供的编译器将设计代码编译成仿真模型,产生可执行的仿真对象文件。
4. 创建仿真模型:使用ModelSim提供的工具和命令,创建仿真模型并加载仿真对象文件。
5. 配置仿真环境:设置仿真时钟、仿真时间、仿真启动方式等仿真环境参数,准备仿真的相关设置。
6. 运行仿真:启动仿真过程,模拟电路的行为和时序,并根据测试平台的激励信号来驱动设计,产生波形输出。
7. 观察波形:利用ModelSim提供的波形窗口,观察和分析仿真波形结果,验证设计的正确性。
8. 调试和分析:根据波形结果来调试和分析电路中的问题,定位和解决设计中的错误,优化电路的性能。
ModelSim仿真工具的优势是什么?ModelSim仿真工具在电子设计自动化领域具有很高的知名度和广泛的应用,其主要优势如下:1. 支持多种设计语言:ModelSim支持Verilog和VHDL两种常用的硬件描述语言,用户可以根据自己的需求选择合适的语言进行设计和仿真。
仿真工具Modelsim的使用方法简述
仿真工具Modelsim的使用
Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。
它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。
使用 modelsim
打开 modelsim,选择菜单 file→new→project
创建工程文件夹和名称
然后点击OK.
然后创建一个新的文件夹.
创建文件名称选择文件类别,我们选择verilog. 然后双击工程窗口的文件或者右键选择“edit”之后编程并保存.
之后,右键点击文件选择compile列表
在状态窗口可以看见运行结果的错误或者报警。
如果结果顺利就可以编写测试程
序。
右键点击工程菜单并添加一个新的工程文件。
命名、编程和纠错。
如果编译所有文件是成功的就可以模拟这一工程。
单击project窗口附近的library。
然后再展开work工程。
右击hfad_test和模拟或者您可以点击模拟按钮
然后会看到一个simulate窗口在project窗口附近。
右击hfad_test,然后add → to wave → all items in region
将看到波行窗。
现在可以确定模拟时间和运行。
十六进制。
完成了一个工程。
modelsim概念
modelsim概念
ModelSim是一种用于模拟和调试数字电路的工具。
它是一款
功能强大、易于使用的硬件描述语言仿真工具,可以支持各种硬件描述语言,如VHDL和Verilog。
通过模拟电路行为和时序,开发人员可以在不进行物理实现的情况下验证电路设计的正确性。
ModelSim具有以下主要概念:
1. 实体(Entity):实体是描述电路中的模块或组件的基本单位。
它定义了该模块的输入和输出,并描述了其行为和功能。
2. 架构(Architecture):架构是实体的具体实现。
它定义了实体的内部逻辑,包括信号处理、逻辑运算、时序和状态等。
3. 进程(Process):进程是一个并发程序单元,用于描述并
行运行的代码块。
在ModelSim中,进程可以用于模拟并行的
行为或时序逻辑。
4. 仿真模型(Simulation Model):仿真模型是将设计通过仿
真语言(如VHDL或Verilog)编译生成的模型。
它可以用于
对电路进行仿真,验证设计的正确性,并观察电路在不同输入情况下的行为。
5. 波形(Waveform):波形是显示信号随时间变化的图形。
在ModelSim中,可以通过波形窗口查看电路信号的变化情况,以便进行调试和验证。
6. 仿真时钟(Simulation Clock):仿真时钟是用于控制电路模拟时间的时钟信号。
它可以模拟电路中的时序行为,并在仿真过程中确定信号的变化顺序和时间延迟。
通过使用这些概念,开发人员可以使用ModelSim来创建、仿真和调试数字电路设计,并快速验证其正确性。
ModelSim 指南说明书
ModelSim Guide CPR E 281: Digital LogicIntroductionModelSim is a software for simulating hardware related tasks such as those normally performed on the Altera FPGA Board. Due to the coronavirus pandemic we are not allowed to use these boards this semester, because they cannot be easily disinfected after each use. Therefore, we will use ModelSim to simulate our circuit designs.Starting ModelSimVDI provides a virtual Windows 10 or Linux desktop with the same software as our physical computer labs. VDI works both on-campus and off-campus and can be used from almost any computing device (https:///vdi/).How to Connect to VDIIf you are off campus you no longer need to connect to the VPN before using VDI (unless you want to; instructions for VPN are posted here: https:///).1.Download the client for Windows or Mac: https:///2.Install the client with all the defaults.unch the VMware Horizon Client4.Click the New Server icon on the Horizon Client Home window (the plus buttonon the top left), enter https:// for the name of the Connection Server, and click Connect.5.Enter your IASTATE NetID in the form of*****************and password6.Double click on the Windows Lab VDI icon.You should now be able to access Quartus Prime remotely, as well as your U: drive. When you are finished using the VDI session, make sure anything that you want to keep saved on your U: drive. Otherwise, it will be deleted after you logout. You can exit the VDI session via several methods:1.Start Menu > Log off2.Start Menu > Shut Down3.Quit the VMware View ClientAll sessions are automatically destroyed after 2 hours of inactivity or logoff/shutdown.To open ModelSim, simply search for ModelSim on the start menu as shown in Figure 1.Figure 1: Starting ModelSIM from the start menu.Creating a New ProjectAfter starting ModelSim, click on File > New > Project and select a directory for the project as shown in Figure 2 and Figure 3. This directory will contain all files for the new project.Figure 2: Selecting a directory for a new project.Figure 3: Selecting a directory for a new project.After completing these steps, ModelSim creates necessary project and preset files to later ease the process of opening projects and view previous simulation logs.Adding Files to ModelSimThe next step is to add files to the project. There are two options, either to createa new file within ModelSim’s built-in text editor or add an existing file from the directory. The choice is made with the pop-up window shown in Figure 4, which should show up automatically after creating a new project. The files that can beadded here are .v files, i.e., Verliog HDL files.Figure 4: Pop-up window to select file additions.What Are Verilog HDL (.v) Files?ModelSim can simulate circuits described using a Hardware Description Language (HDL). In this class we will use a language called Verilog, or sometimes Verilog HDL. There are two ways to create a Verilog (.v) file:1.Describe the functionality of the circuit directly in Verilog using a text editor.2.Create a block diagram file (.bdf) for the circuit using a software packagecalled Quartus. Then, convert the .bdf file to a .v file so that it can besimulated with ModelSim.Using Quartus to Convert a Block Diagram File to a Verilog HDL FileUsing the start menu, search for Quartus and start the application as shown in Figure 5.Figure 5: Starting Quartus from the start menu.Load the desired block diagram file (*.bdf) that you want to convert to a Verilog (*.v)file. Then, go to File > Create/Update > Create HDL Design from Current File as shown in Figure 6. A pop-up window will prompt you for the format of the output file. Make sure to select “Verolog HDL” as shown in Figure 7. Click OK and let Quartus dothe remaining work. The resulting *.v file is now in the same directory and is ready tobe opened by ModelSim.Note: After converting the file it should be added to a project in ModelSim so that it can be simulated (see the previous page).Figure 6: Converting a .bdf file to a .v file.Figure 7: Prompt for choosing the destination of the converted .v file.Compiling FilesTo compile a file, right click on the file name within the project directory and then Compile > Compile All (see Figure 8). If the compilation is successful, a green tickmark will appear in the status column for this file.Figure 8: Compiling files in ModelSim.Starting a SimulationBefore you proceed to this step, make sure that all files in your project are compiled successfully. This is necessary because there could be dependencies between the files.To run the simulation click Simulate > Start Simulation as shown in Figure 9. A pop-up window will prompt you to select the file that you want to simulate. In the “Design” tab, look for an item called “work” and then click the “+” button that is immediately to its left (see Figure 10). This will show more files. Click on the file that you want to test and then click OK.Figure 9: Starting a simulation in ModelSim.Figure 10: Selecting the file to be simulated from the work directory.Figure 11: Starting a simulation and invoking the wave form diagram.A simulation window should pop-up as shown in Figure 11. Double click the file name to add all input/signal/output variables to be analyzed. Then click on a variable name that pops up on the right and press “CTRL-W” to add waveforms. No actual wave forms should show up since the variables have no initial value yet. This is shown in Figure 12.Figure 12: Adding variables and incorporating them into the wave form.Edge-Case TestingNow, it’s time to finally test the circuit! For this example, we will hard code (or force) the values of the input variables for this circuit. This next step is important! Click on the desired input variable and not on an output variable. Then, right click and choose Force as shown in Figure 13. This allows you to force a value for that input indefinitely, orat least until it is forced to another value manually.Figure 13: Forcing values for an input.Another way to test is to create a testbench (if you’re interested look up some YouTubetutorials on this subject), but that is out of the scope of this class.After completing all of these steps, it is time to see some results. There is a command prompt at the bottom that allows for typing in commands in ModelSim syntax.Using these commands, we can quickly tell ModelSim to complete tasks, instead of looking for them in the dropdown menus. Please ensure that all input variables have a forced value before doing this step. On the command prompt type “run 100”, which lets the wave form simulate edge cases for 100 ns. The output variable now shows an expected output. In this case, the output of 0 AND 0 is 0! This is shown in Figure 14.Figure 14: Wave form showing 0 AND 0 for which the output is 0.QuestionsIf you have any questions or comments, please email your lab TA for further assistance.。
主要内容Modelsim介绍与应用
3、Modelsim 功能仿真(续)
Modelsim仿真的主要步骤: 执行一个仿真前先建立一个单独的文件夹,
将当前路径修改到该文件夹下,后面的操作都 在此文件夹下进行,以防止工程间的误操作。
1)建立库(有时可以映射库) 2)编译原代码(包括Testbench) 3)执行仿真
数据流跟踪
功能
观察设计中信号的物理连接 跟踪信号在设计中的传播 找到未知信号的来源
打开数据流观察窗口
法一:右键Workspace\sim中测试文件 Add ->Add to Dataflow
法二:双击信号波形 法三:命令 view dataflow
add dataflow clk
vlog -cover bcst verge_test.v vlog -cover bcst verge_test_tb.v vsim -coverage verge_test_tb
三个窗口
Missed Coverage 列出没有执行的代码 Instance Coverage 显示分析的统计结果 Details 显示未执行代码的详细信息
9 注意:Modelsim 只读写ASCII 码
2)灵活的调试模式
当编译失败,或者仿真出现异常结果时,我们 需要进行调试。
调试方法:
设置断点,单步运行源代码 观察代码覆盖率 数据流跟踪 用Profiler分析程序的性能
设置断点
右键Workspace\Sim中的测试文件,点击 Edit。
选择Design选项work库中的测试文件, 点击OK。 命令:vsim test_counter
modelsim使用简介
1
基本仿真步骤
建立工程
填写工程的路径和名称
默认新建的工程放在 work工作库下
设置完点击OK
2
新建文件
若新建verilog文件,点击此控件 填写文件名,
3
编写模块
上述设置完后弹出编写程序窗口,编写程序,保存
4
将上述文件加入到新建的Project中
10
弹出相应窗口,开始仿真
选择要观测的信号
11
若没有弹出上述窗口,请选择View--Objects
12
13
开始仿真,查看仿真结果
14
15
测试结果: 系统时刻 0 10 20 30 寄存器变量值 a=0 b=1 s=0 out=0 a=1 b=1 s=0 out=1 a=1 b=0 s=0 out=1 a=1 b=0 s=1 out=0
基于ModelSim的仿真
ModelSim仿真工具是Mentor公司开发的。它支持 Verilog、VHDL以及它们的混合仿真,它可以将整个程序分 步执行,使设计者直接看到他的程序下一步要执行的语句, 而且在程序执行的任何步骤任何时刻都可以查看任意变量的 当前值,可以在Dataflow窗口查看某一单元或模块的输入输 出的连续变化等,是目前业界最通用的仿真器之一。
5
编译代码
没有编译过的文件 ,Status=?
编译成功, Status=√
6
编写仿真平台
7
编译代码
编译失败(有语法 错误),Status=x
双击此行,会提示哪一行有什么错误
8
修改文件,保存并重新编译,直到成功为止。
9
装载仿真文件
装载的是仿真平台
注意:若optimization 被选中,一定要去掉
modelsim(中文)
IEEEpure
– 包含唯一IEEE 认可的 std_logic_1164 packages – 用于仿真加速
IEEE
– 包含预编译的Synopsys和IEEE 算法包 – 给std_logic的基本类型 – 用于仿真加速
18
vlib <library_name> 命令
建立库 缺省值是 work
<library_name> _info any_verilog_module _primary.dat _primary.vhd verilog.asm any_vhdl_unit _primary.dat <arch_name>.dat <arch_name>.asm _lock
这个命令在局部目 录建立一个库目录 然后为它设立映射
-> vlib my_lib -> vmap my_lib my_lib
24
映射库 (UI)
用Add 按钮建立一 个新的库和映射
25
其他的库命令
vdel
– – – – 从指定的库中删除一个完整的库或者一个设计单元 UI) Design -> Library Browser (删除库或者映射) UI) Design -> View Library Contents (删除设计单元) Cmd) vdel -lib <library_name> <design_unit>
3
典型的PLD设计流程 设计流程 典型的
设计输入
– 设计的行为或结构描述
RTL仿真(ModelSim)
– 功能仿真 – 验证逻辑模型(没有使用时间延迟) – 可能要求编辑设计
综合
modelsim unforce用法
modelsim unforce用法
ModelSim的unforce用法是用于取消在测试过程中对信号的强制赋值。
在仿真
过程中,我们可能会对某些信号进行强制赋值以验证设计是否满足预期行为。
然而,有时候我们需要取消这些强制赋值,以恢复信号的原始行为。
unforce命令用于取消先前使用force命令对信号进行的强制赋值。
它的语法如下:
unforce [/scope] signal
其中,/scope是可选的参数,表示取消对特定作用域下的信号进行的强制赋值。
如果未指定作用域,则取消所有作用域下的强制赋值。
signal表示要取消强制赋值
的信号。
使用unforce命令可以非常方便地取消强制赋值,而无需修改测试代码或重新
编译设计。
这对于动态调试和修改仿真行为非常有用。
下面是一个示例:
1. 使用force命令对信号A进行强制赋值:
force A 1
2. 对信号B进行强制赋值:
force B 0
3. 取消对信号A的强制赋值:
unforce A
在这个示例中,我们首先使用force命令将信号A设置为1,信号B设置为0。
然后,通过unforce命令取消对信号A的强制赋值。
此时,信号A将恢复为原始的
未经强制赋值的值,而信号B仍保持为0。
通过unforce命令,我们可以轻松地管理信号的强制赋值,以便更好地进行设计验证和调试工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
需要库在工作目录里没有定位 用vmap命令
21
2
映射逻辑库名
语法: vmap <logical_name> <directory_path>
UI) 从主菜单: Design -> Browse Libraries Design -> Create a New Library Cmd) 从主体的记录窗口: ModelSim> vmap my_work c:/my_design/my_lib
ModelSim 使用教程
1
典型的PLD设计流程
2
典型的PLD流程
设计规范 修改设计 设计输入 RTL仿真 设计综合 布局和布线 门级仿真 时序分析 系统上验证 系统产品
3
典型的PLD设计流程
设计输入
– 设计的行为或结构描述
– 文件按出现的顺序被编译 – Compilation order/dependencies (next slide)
‘87 VHDL是缺省的
– UI) 用Default Options 按钮设为‘93 – Cmd) 用 -93 选项(必须是第一个参数)
缺省编译到工作库
– 例如. Vcom -93 my_design.vhd
19
建立库(UI)
选择 a new library only 和 输入库名
这个命令在局部目录 建立一个库子目录
-> vlib lpm_sim
20
映射逻辑库名
必须映射一个逻辑库名到库路径(定位)
– 在库路径里的文件必须已经被编译 – 支持相对的, 绝对的, 和软件路径名
在信息上双击,引起 错误的代码在 Source 窗口被点亮
32
4
启动仿真器
UI) Design -> Load New Design Cmd) vsim -lib <library_name> <top_level_design> VHDL
– vsim top_entity top_architecture • 仿真 Entity/Architecture 对 • 也能选择一个结构
门级仿真 (ModelSim)
– 时序仿真 – 验证设计一旦编程或配置将能在目标工艺里工作 – 可能要求编辑设计
时序分析 验证合乎性能规范
– 可能要求编辑设计
版图设计
– 仿真版图设计 – 在板编程和测试器件
5
ModelSim概览
6
ModelSim 仿真工具
注意: 当库中涉及的设计单元被改变时设计单元必须重新分析。
27
VHDL Design Units Dependencies
Entity before Architecture Package Declaration before Package Body Design units must compiled before being referenced
映射现有的库(UI)
选择 a new library and a logical mapping to it a 输入库名
这个命令在局部目 录建立一个库目录 然后为它设立映射
-> vlib my_lib -> vmap my_lib my_lib
24
映射库 (UI)
RTL仿真(ModelSim)
– 功能仿真 – 验证逻辑模型(没有使用时间延迟) – 可能要求编辑设计
综合
– 把设计翻译成原始的目标工艺 – 最优化 • 合适的面积要求和性能要求
布局和布线
– 映射设计到目标工艺里指定位置 – 指定的布线资源应被使用
4
典型的PLD设计流程
IEEEpure
– 包含唯一IEEE 认可的 std_logic_1164 packages – 用于仿真加速
IEEE
– 包含预编译的Synopsys和IEEE 算法包 – 给std_logic的基本类型 – 用于仿真加速
18
vlib <library_name> 命令
22
映射现有的库(UI)
选择 a map to an existing library 和 输入库名
用这个命令可映射一个设计 单元已经预编译的库目录
浏览库目录
-> vmap lpm_sim c:/Quartus/library/lpm
23
structure结构窗口
Wave&list 波形和列表窗口 process处理窗口:
Signal&variable信号和变量窗口 dataflow数据流窗口
12
ModelSim实现方法
交互式的命令行 (Cmd)
– 唯一的界面是控制台的命令行, 没有用户界面
用户界面 (UI)
Verilog
– vsim top_level1 top_level2 • 仿真多个top级模块
33
启动仿真器 (UI)
选择仿真器的分辨率
选择库
选择顶级module 或 entity/architecture
34
启动仿真器(UI)
指定 SDF文件
建立库 缺省值是 work
<library_name> _info any_verilog_module _primary.dat _primary.vhd verilog.asm any_vhdl_unit _primary.dat <arch_name>.dat <arch_name>.asm _lock
vdir
– 显示指定库的内容 – UI) Design -> View Library Contents – Cmd) vdir -lib <library_name>
26
3
编译源代码(VHDL)
UI) Design -> Compile Cmd) vcom -work <library_name> <file1>.vhd <file2>.vhd
用Add 按钮建立一 个新的库和映射
25
其他的库命令
vdel
– 从指定的库中删除一个完整的库或者一个设计单元 – UI) Design -> Library Browser (删除库或者映射) – UI) Design -> View Library Contents (删除设计单元) – Cmd) vdel -lib <library_name> <design_unit>
使用定时值的等级的 类型 (如果不是顶级)
35
vsim 命令的参数
参数
– -t <time_unit> • 指定仿真的时间分辨率 • 单位可以是{fs, ps, ns, ms, sec, min, hr} • 如果用了 Verilog的 ‘timescale指令, 将使用整个设计中的最小的 时间精度 • 可选项(缺省是 ns) – -sdfmin | -sdftyp | -sdfmax <instance>=<sdf_filename> • 注释SDF文件 • 可选项 • 使用实例名也是可选项; 如果没有使用, SDF用于顶级
– 能接受菜单输入和命令行输入 – 课程主要讨论
批处理模式
– 从DOS或UNIX命令行运行批处理文件 – 不讨论
13
基本仿真步骤
1 2 3 建立库 映射库到物理目录 编译源代码 - 所有的HDL代码必须被编译 - Verilog和VHDL是不同的 启动仿真器 执行仿真
– 许可 Verilog 或者 VHDL,但是不同时许可
ModelSim/PLUS
– 设计者能立刻混合仿真Verilog 和 VHDL
ModelSim/SE
– 首要的版本 – PLUS的所有功能连同附加功能
8
ModelSim OEM 功能
提供完全的标准
– – – – – – ‘87 VHDL ‘93 VHDL IEEE 1364-’95 Verilog SDF 1.0 - 3.0 VITAL 2.2b VITAL ‘95
易用的界面
– 通用的平台
9
用ModelSim 仿真
10
课程安排
基本的仿真步骤 用户界面 功能仿真 Quartus输出仿真文件 时序仿真
Model 技术公司的 ModelSim
main主窗口: source源窗口
16
ModelSim 设计单元
主要
– 在一个特定的库中必须有唯 一的名字 – VHDL • Entities(实体) • Package Declarations(包 声明) • Configurations(结构) – Verilog • Modules(模块) • User Defined Primitives (用户定义原语)
4 5
14
1
建立ModelSim库
UI) 从主菜单里面: Design -> Create a New Library Cmd) 从main, 记录窗口: ModelSim> vlib <库名>
15
ModelSim 库
包含编译设计单元的目录
– VHDL 和 Verilog 都被编 work) • 包含当前被编译的设计单元 • 编译前必须建立一个working库 • 每个编译只允许一个 – Resource • 包含能被当前编译引用的设计单元 • 在编译期间允许多个 • VHDL库能通过LIBRARY和USE子句引用