modelsim仿真必会教程
使用ModelSim仿真入门
1.点击 ModelSim实验 下载实验文档,保存并解压到D:盘根目录下。
2.启动 ModelSim6.0,执行 File 菜单下的 Change Directory... 命令。
在随后弹出的对话框中,选择 D:\exam 文件夹,点击“OK”按扭。
3.执行 File->New 菜单下的 Library 命令,在随后弹出的对话框上,点击“OK”按钮,建立 work 库。
4.执行 File->New 菜单下的 Project 命令,在随后弹出的对话框的 Project Name 栏,输入 counter,点击“OK”按钮。
5.点击“Use Current Ini”按钮。
6.点击“Add Existing File”图标。
在随后弹出的对话框上,通过点击“Browse...”按钮,选中 D:\exam文件夹下的 tb.v、counter.v 文件,然后点击“OK”按钮。
点击 Add Item to Project 对话框的“Close”按钮。
7.在 Workspace 窗口里,点击右键。
在弹出菜单中点击 Compile 下的 Compile All 命令。
8.在 Simulate 菜单下,点击 Start Simulation... 命令。
9.在随后弹出的对话框中,将 Design Unit 项设为 work 库下 tb 单元,将 Resolution 设为 ns,然后点击“OK”按钮。
10.执行 View->Debug Windows 菜单下的 Wave 命令,打开 Wave 窗口。
11.在 Objects 窗口下,点击右键。
在弹出菜单下,点击 Add to Wave 下的 Signals in Design 命令。
12.在 Transcript 窗口里,输入 run 10 ms 命令。
13.进入 Wave 窗口,观察各个信号的波形,是否与原设计相符。
14.在 Wave 窗口里,双击 cnt 的波形,打开 dataflow 窗口,观察各个信号传递关系。
modelsim仿真流程
1、运行ModelSim,如果上一次使用ModelSim建立过工程,这时候会自动打开上一次所建立的工程;2、点击File->New->Project,在Project Name中我们输入建立的工程名,在Project Location中输入工程保存的路径,注意ModelSim不能为一个工程自动建立一个目录,这里我们最好是自己在Project Location中输入路径来为工程建立目录,在Default Library Name中为我们的设计编译到哪一个库中,这里我们使用默认值,这样,在我们编译设计文件后,在Workspace窗口的Library 中就会出现 work库。
这里我们输入完以后,点击OK;3、如果提示我们给定的工程路径不存在,是否建立该路径,我们的目的就是为工程建立一个新目录,因此,点击确定;4、点击Create New File可以为工程添加新建的文件,点击Add Existing File 为工程添加已经存在的文件,点击Create Simulation为工程添加仿真,点击Create New Folder可以为工程添加新的目录。
这里我们点击Create New File;5、我们在File Name中输入文件名称,Add file as type为输入文件的类型为VHDL、Verilog、TCL或text,这里我们使用默认设置VHDL,Folder为新建的文件所在的路径,Top Level为在我们刚才所设定的工程路径下。
点击OK;并在Add items to the Project窗口点击Close关闭该窗口;6、这时候在Workspace窗口中出现了Project选项卡,在其中有文件名.vhd,其状态栏有一个问号,表示未编译,我们双击该文件,这时候出现编辑窗口,在其中我们输入我们的设计文件7、点击File->Save,并退出该窗口(File->Close);8、在WorkSpace窗口的文件名.vhd上点击右键,选择Compile->Compile All;9、在脚本窗口中将出现一行绿色字体Compile of DivClkHDL.vhd was successful.,说明文件编译成功,在该文件的状态栏后有一绿色的对号,表示编译成功;10、下面我们开始仿真,点击菜单Simulate->Simulate,展开Design选项卡下的work库,并选中其中的behavioral,这是在Simulate中出现了work.实体名(behavioral)表示我们所要仿真的对象,Resolution为仿真的时间精度,这里我们使用默认值,点击OK;11、为了观察波形窗口,我们点击菜单View->Wave;12、这时候出现的Wave窗口为空,里面什么都没有,我们要为该窗口添加我们需要观察的对象,首先在主窗口而不是波形窗口中点击View-> Signals打开信号列表窗口,在改窗口中点击Add->Wave->Signals in Design,这时候在波形窗口中就可以看到这些信号了;13、下面我们就开始仿真了,在主窗口中输入命令对信号进行驱动仿真14、退出仿真,在主窗口中点击Simulate->End Simulation,会出现对话框,提示我们是否确认退出仿真,我们点击是退出仿真;15、仿真结果分析;。
ModelSim后仿真详细流程介绍PPT课件
延时信息
2021/3/9
8
目录
仿真的基本概念 ➢后仿真前的基本准备工作
后仿真的基本操作步骤
2021/3/9
9
后仿真前的基本准备工作
▪ ModelSim库
库文件,是指已经编译通过的设计文件的总体。
ModelSim中有两种库类型:
工作库
资源库
1.库的内容会随着使用者 更新设计文件和重新编译 而变化; ▪2D.e存sc放ript当ion前of设th计e b文usi件nes编s 译 后产生的设计单元; 3.编译前必须先创建好工 作库; 4.每次编译只允许有一个 工作库; 5.默认的工作库名是work
2021/3/9
14
后仿真前的基本准备工作
▪ Altera仿真库建立步骤
2.启动ModelSim SE。建立两个新库,从主菜单选择File->New-> Library,选中“a new library and a logical mapping to it”,在“Library Name”填写“altera_base_v”,Library Physical Name填写文件夹绝 对路径,如图所示。
2021/3/9
13
后仿真前的基本准备工作
▪ Altera仿真库建立步骤
1.在ModelSim安装目录中建立两个文件夹,一个是用于存放公用的 库给它取名altera_base_v;另一个是用于存放您要用到的特定的器件 库,取名为altera_device。
比如,F:\Modelsim 6.5\altera\altera_base_v F:\Modelsim6.5\altera\altera_device
注意:要把 Enable optimization 前 面的勾去掉,即不进行自动优化。
Modelsim的仿真教程
ModelSim的仿真1.仿真的分类仿真过程是正确实现设计的关键环节,用来验证设计者的设计思想是否正确,及在设计实现过程中各种分布参数引入后,其设计的功能是否依然正确无误。
仿真主要分为功能仿真和时序仿真。
功能仿真是在设计输入后进行;时序仿真是在逻辑综合后或布局布线后进行。
1). 功能仿真( 前仿真)功能仿真是指在一个设计中,在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。
布局布线以前的仿真都称作功能仿真,它包括综合前仿真(Pre-Synthesis Simulation )和综合后仿真(Post-Synthesis Simulation )。
综合前仿真主要针对基于原理框图的设计; 综合后仿真既适合原理图设计, 也适合基于HDL 语言的设计。
2). 时序仿真(后仿真)时序仿真使用布局布线后器件给出的模块和连线的延时信息,在最坏的情况下对电路的行为作出实际地估价。
时序仿真使用的仿真器和功能仿真使用的仿真器是相同的,所需的流程和激励也是相同的;惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,时序仿真后的信号加载了时延,而功能仿真没有。
后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。
其输入文件为从布局布线结果中抽象出来的门级网表、Testbench 和扩展名为SDO 或SDF 的标准时延文件。
SDO 或SDF 的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。
一般来说后仿真是必选的,检查设计时序与实际的FPGA运行情况是否一致,确保设计的可靠性和稳定性。
2.仿真的作用1).设计出能工作的电路:因此功能仿真不是一个孤立的过程,其和综合、时序分析等形成一个反馈工作过程,只有这个过程收敛,各个环节才有意义。
QUARTUSⅡ10波形仿真(ModelSim)入门教程
QUARTUSⅡ10仿真(ModelSim)入门教程平台软件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition内容1 设计流程使用ModelSim仿真的基本流程为:图1.1 使用ModelSim仿真的基本流程2 开始2.1 新建工程打开ModelSim后,其画面如图2.1所示。
图2.1 ModelSim画面1. 选择File>New>Preject创建一个新工程。
打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。
一般情况下,设定Default Library Name为work。
指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。
该对话框如图2. 2所示,此外还允许通过选择.ini文件来映射库设置,或者将其直接拷贝至工程中。
图2.2 创建工程的对话框2. 按照图2.3所示,设置Project Name为LED_FLOW,Project Location为D:/led_flow。
图2.3 输入工程信息当单击OK按钮后,在主体窗口的下方将出现Create Project标签,如图2.4所示。
图2.4 Project标签3. 之后,将出现Add Items to the Project的对话框,如图2.5所示。
图2.5 在工程中,添加新项目2.2 在工程中,添加新项目在Add Items to the Project对话框中,包括以下选项:∙Create New File——使用源文件编辑器创建一个新的Verilog、VHDL、TCL或文本文件∙Add Existing File——添加一个已存在的文件∙Create Simulation——创建指定源文件和仿真选项的仿真配置∙Create New Folder——创建一个新的组织文件夹1. 单击Create New File。
打开图2.6所示窗口。
Modelsim仿真新手入门最详细教程
Modelsim仿真新⼿⼊门最详细教程2021年11⽉15⽇00 安装包/版本我是提前在⽹上下好的(但这⼀点也给我的实验造成了“⿇烦”),⽤的是Modelsim SE-64 2020.4版本的,学校实验室的似乎不同。
但最终没有太⼤影响。
01 配置环境步骤学校有⼀个⽂档,在机房电脑照做就⾏。
我因为是⾃⼰下载的,配置与机房软件有所不同,所以⼜平添了很多⿇烦。
01-0 verilog⽂件这个代码可以在很多地⽅编写:Visual Studio Code⾥有Verilog的插件;还可以有更强⼤的语⾔编辑器:Nodepad++。
这⾥我使⽤的是Nodepad++,因为看上去专业⼀点。
Nodepad++的页⾯效果如图:其实第⼀次上机,⽼师会给⼤家⽰例⽂件(包括设计代码与测试代码),跑出来⽰例波形就⾏。
01-1 具体步骤1. 新建⼀个⽤于安放project的⽂档,放在哪⾥都⾏。
把前⾯做出的.v⽂件添加到这个⽂档。
留意⼀下路径。
2. 打开modelsim,在jumpstart中create a new project。
3. 在弹出的提⽰框⾥browse,找到刚才的⽂件夹。
选中。
填写project 名,注意要与.v⽂件⾥的module名保持⼀致。
点击ok。
4. 进⼊页⾯后会是这样⼦:注意此处两个⽂件后⾯应当都有问号,代表没有编译。
先逐个右击⽂件add to this project确保加⼊。
5. 在上⽅提⽰栏中complie->compile all。
稍等些许会看到⽂件后问号全部变为对勾,表⽰代码编译通过,没有问题。
如果此步出错则代表代码有bug。
在下⾯的Transcript中上翻查找错误。
6. 点击上⽅Simulate->start simulation。
由于注意与实验室不同的,选中下⾯的Enable optimization,再在右侧Optimization Options中的Visibility中选中Apply full visibility....7. 接着在work⾥找到测试代码的⽂件,选中。
【翻译】modelsim指南之基本仿真(digital logic)
Introduction本文将一步步实现以下基本仿真流程:1.创建设计工作库2.编译设计单元3.加载设计4.运行仿真本文用到的设计文件本文的范例是一个8位的二进制加法计数器和相关的测试文件。
保存路径:Verilog-<install_dir>/examples/tutorials/verilog/basicSimulation/counter.v and tcounter.v相关阅读用户手册的章节:设计库、Verilog和SystemVerilog仿真。
参考命令:vlib,vmap,vlog,vcom,view,run.创建设计工作库在你仿真前,必须先创建一个库并编译源码到这个库。
1.创建一个新目录并复制本文的设计文件。
Copy counter.v 和tcounter.v2. 启动modelsim。
a. windows下双击快捷方式启动,你将看到modelsim的欢迎对话框,单击Close.b. 选择File > Change Directory 指定到第一步创建的目录。
3. 创建工作库。
a. 选择File > New > Library.弹出一个对话框,可以指定库名等选项。
如图1。
图1 创建一个新库b. 在Library Name项输入work(如果它没有自动输入)。
c. 单击OK.modelsim创建了一个目录work并写了一个名为_info的文件到这个目录。
这个_info文件必须保持在work文件夹以区分他是modelsim的库。
不要从你的操作系统里修改这个文件夹里的内容;所有操作应该在modelsim里进行。
modelsim也把work库添加到库窗口(图2)并记录库映射作为未来参考(modelsim.ini)。
图2当你在第3步单击确定后,Transcript窗口显示以下内容:vlib workvmap work work这两行命令等于你的菜单操作。
编译设计单元创建工作库后,接着就准备编译你的源文件。
modelsim仿真必会教程
Modelsim功能仿真新手教程By wangjun850725@操作系统:win7软件版本:modelsim6.5se本文只针对初学者,让他们少走点弯路,modelsim软件本身感觉还是比较难以使用的。
本人才疏学浅,但有颗助人的心。
大神请跳过,不要鄙视我。
如有错误,请不吝指点。
QQ群:41143927建立工程省略N字,这没有什么好说的。
几乎所有的软件都是以工程为基础的。
添加设计文件因为我已经编辑好了文件,所以直接添加已经存在的。
没有人会用modelsim自带的编辑器来写程序(要是没有选择,我宁愿用记事本,如果你用了,我佩服你)。
编译文件没有什么好说的,添加进去的文件全部编译就好了。
如果你看编译后的文件后面还有一个问号,你不爽,鼠标右键更新下就好了开始仿真Modelsim se版本是可以手动描绘激励波形的,但这种方法太笨,太烦,修改起来很不方便,所以直接放弃。
Simulate里有个start simulate,点开这里有几点要说明下1.要点开work库,找到你testbench对应的那个模块2.Resolution选不选关系不大,如果你设计文件指定了仿真时间的话3.Optimization,要把这个勾去掉,不然会优化掉很多信号,这里也坑了我很久。
功能仿真只要这么多,如果做后仿,library里要添加已经编译好的器件库,SDF里要添加.vo,.sdo文件观察波形添加信号到波形窗口的方法有很多,刚学手动添加,后来肯定是要在脚本里指定的,下面会有首先要把设计中的信号添加到wave窗口里。
鼠标左键按住不放,将对应的模块拖到wave窗口里,这是最简单的办法。
如果设计的模块多了,每个模块的信号不能很好的被区分,就可以在每个模块的中间插入一个Divider,信号旁边右键就可以看到,最好给起个名字如果你的模块层次非常的多,信号的路径名字就会占据本来就不大的屏幕时很不爽的。
菜单Wave‐>Wave preference‐>Display signal path里面改成1就可以了运行仿真在Transcript窗口里输入Run 1ms搞定,波形神马的就出现了。
modelsim仿真流程
modelsim仿真流程
ModelsIm仿真流程 ModelSim是一个功能强大且广泛使用的数字电路和模拟软件。
它能够模拟各种不同的电路,包括FPGA、ASIC、流片等,并且可以仿真VHDL、Verilog和SystemC等语言编写的代码。
本文将介绍ModelSim的仿真流程。
1. 建立仿真环境首先,我们需要创建一个仿真环境。
这意味着我们需要创建一个Project文件夹,将仿真所需要的所有文件(包括设计文件、仿真模型以及测试文件等)都放在里面。
我们可以选择使用ModelSim自带的Project Manager工具或者直接使用终端命令行来完成这个工程。
2. 编译设计文件下一步是编译设计文件。
这意味着我们需要把设计文件转换为ModelSim可以理解的仿真模型。
我们可以使用vlib命令来建立一个仿真库,然后使用vlog命令来编译设计文件。
编译完成后,我们需要使用vsim命令进入仿真环境。
3. 进行仿真在仿真界面中,我们可以加载测试文件,然后使用run命令来进行仿真。
这将模拟电路在一个虚拟的环境中运行,并产生仿真结果。
我们可以使用ModelSim提供的信号跟踪和波形查看工具来观察电路的运行状态并分析仿真结果。
4. 仿真结束仿真完成后,我们可以使用exit命令退出仿真环境,并使用ModelSim提供的波形分析和统计工具来评估仿真结果。
如果需要进行更详细的分析,我们可以将波形数据导出到其他工具进行进一步处理。
总之,ModelSim是一个非常强大的数字电路和模拟软件。
掌握其基本操作和仿真流程,可以帮助我们更高效地进行数字电路设计和开发工作。
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新手入门仿真教程1.打开modelsim软件,新建一个library。
2.library命名3.新建一个工程。
3.出现下面界面,点击close。
4.新建一个verilog文件键入主程序。
下面以二分之一分频器为例。
文件代码:module half_clk(reset,clk_in,clk_out); input clk_in,reset;output clk_out;reg clk_out;always@(negedge clk_in)beginif(!reset)clk_out=0;elseclk_out=~clk_out;endendmodule编辑完成后,点击保存。
文件名要与module后面的名称相同。
5.再新建一个测试文件,步骤同上面新建的主程序文件,文件名后缀改为.vt程序代码如下:`timescale 1ns/100ps`define clk_cycle 50module top;reg clk,reset;wire clk_out;always #`clk_cycle clk=~clk;initialbeginclk=0;reset=1;#10 reset=0;#110 reset=1;#100000 $stop;endhalf_clk m0(.reset(reset),.clk_in(clk),.clk_out(clk_out));Endmodule6.添加文件,编译文件先右键点击左边空白处,选择add to project→existing File选择刚刚新建的两个文件。
按ctrl键可以同时选择两个,选择打开,下一步点击ok7选中其中一个,右键,选择complie→complie all出现两个勾,说明编译通过。
出现×,说明文件编译出错,双击×,可以查看错误。
8.终于可以仿真了选择simulate→start simulate。
选择刚刚新建的库里面的top,或者测试文件名称,左下角的enable optimization一定要去掉勾,有勾的画不会出来波形,一定要去掉勾!一定要去掉勾!一定要去掉勾!(本人也不清楚原因,都是初学者,嘻嘻)跳出界面,右键测试文件,选择如下图接下来,选择仿真,run→run all点击缩小键,如图,就可以看到波形啦到此结束!初学者,如有错误,欢迎指出。
modelsim使用技巧
modelsim使用技巧ModelSim是一款常用的仿真工具,用于学习、开发和测试各种数字电路和系统设计。
它提供了大量的功能,可以帮助我们更好地进行仿真、调试和性能优化。
但是,对于初学者来说,熟练使用ModelSim可能需要一些时间和实践。
在本文中,我们将介绍一些ModelSim的使用技巧,以帮助读者更好地掌握这个工具。
一、基本操作1.创建工程在ModelSim中,创建工程是第一步。
可以通过File -> New -> Project来创建一个新的工程。
在工程创建过程中,需要指定工作目录、项目名称和工具链等信息。
在创建工程后,可以右键单击仿真文件夹,并选择添加到工程来添加设计文件。
2.添加仿真文件在ModelSim中,添加仿真文件非常简单。
可以将文件拖放到仿真文件夹、使用File -> Add to Project选项或使用命令行方式添加文件。
一旦添加了仿真文件,可以使用filelist命令查看所有添加的文件。
3.编译设计在ModelSim中,编译由两个阶段组成。
第一阶段称为分析阶段,在此阶段中,设计的各个模块被分析、组合并建立数据结构。
第二阶段称为综合阶段,在此阶段中,数据结构被综合成一个整体,并生成仿真网表。
可以通过compile option来指定编译选项,比如-v库等。
4.运行仿真在ModelSim中,可以通过三种方式来运行仿真。
第一种是在命令行中使用run命令,第二种是通过菜单和工具栏选项来启动仿真,第三种是使用脚本方式启动仿真。
在仿真过程中,可以使用wave、add wave、force、release等命令来控制信号的行为。
二、ModelSim高级技巧1.波形窗口波形窗口是ModelSim中最有用的窗口之一。
可以使用Add Wave按钮打开该窗口。
在波形窗口中,可以查看所有信号的变化情况。
可以使用full view、zoom in、zoom out等选项来放大或缩小波形窗口。
Modelsim仿真详细教程
.10进制计数器测试激励文件的建立 1 .10进制计数器测试激励文件的建立
(2)为了方便仿真,有必要将div30模块进行修改。因 为div30是30,000,000分频,这么大的分频系数, 难于仿 真,所以将div30模块中的分频系数做如下改动。
process(clkin,reset) variable cnt : integer range 0 to 3 :=0; --将分频系数改为3,即6分频; begin if reset = '0' then cnt :=0 ; Reg_clk <= '0'; elsif rising_edge(clkin) then cnt := cnt + 1; if cnt = 3 then cnt := 0; Reg_clk <= not Reg_clk ; end if; end if; end process;
FPGA系统设计与实践
第四章 功能仿真
第四章 功能仿真
内容提要
功能仿真(Function Simulation)的作用是对 源代码进行编译。本章介绍了Model Technology 公 司的Modelsim XE II v5.6e的主要结构、属性设置、 Modelsim XE II v5.6e与ISE5.2的软件接口,测试激 励文件的建立以及Modelsim仿真分析方法。Altera 公司QuartusII3.0仿真器(Simulator) 的主要结构、属 性设置以及仿真分析方法。
信号窗口 波形窗口
变量窗口
数据流窗口
列表窗口
进程窗口
主窗口
主窗口是Modelsim的核心窗口,在缺省(默认)状 态下,在启动Modelsim时会自动打开。主窗口分为 工作区和脚本区两部分。在工作区,可以很方便地 对当前工程的工作库以及所有数据集合进行控制。 在脚本区,可以输入Modelsim的各种命令,命令执 行后会反馈执行后的信息,使用户了解执行的实际 情况。
modelsim 10仿真教程
Modelsim仿真教程一、前期准备1、正确安装好modelsim和quartus软件。
我用的平台的版本是Modelsim SE10.1和Quartus II10.1。
2、在ModelSim中加入Quartus提供的仿真库在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:·Quartus不支持Testbench;·调用了megafunction或者lpm库之类的Altera的函数;·时序仿真要在Modelsim下做仿真。
下面以Altera器件为例,介绍如何在ModelSim中加入Altera的仿真库,Quartus II 软件中自带有Altera的仿真库,只要把它拿到ModelSim中去编译一下就可以了,具体步骤如下:(1).设置仿真库路径打开ModelSim安装目录(我用的是ModelSim SE10.1版本,安装在C:\modeltech_10.1目录下),新建文件夹altera,我们就在该目录下存放预编译的各种Altera库。
启动ModelSim SE,在主窗口执行【File】/【Change Directory】命令将路径转到altera文件夹。
(2).新建库Quartus II中提供的仿真库文件存放的路径是....\altera\10.1sp1\quartus\eda\sim_lib,每个库文件提供了两种形式:.v(Verilog)格式和.vhd(VHDL)格式两种,根据你所用的语言选择使用。
用于编译资源库的文件有220model.v,220model.vhd,220pack.vhd,altera_mf.v,altera_mf.vhd,altera_mf_components.vhd,altera_primitives.v,altera_primitives.vhd,altera_primitives_components.vhd文件。
modelsim基本仿真流程
modelsim基本仿真流程ModelsSim基本仿真流程ModelsSim是一款常用的数字电路仿真工具,主要用于验证和调试硬件设计。
本文将介绍ModelsSim的基本仿真流程,帮助读者了解如何使用ModelsSim进行数字电路仿真。
一、创建工程我们需要创建一个ModelsSim工程。
在ModelsSim界面上方的菜单栏中选择"File",然后选择"New",再选择"Project"。
在弹出的对话框中,输入工程名称和工程路径,点击"OK"按钮即可创建工程。
二、添加设计文件在创建好的工程中,我们需要添加要仿真的设计文件。
在ModelsSim界面左侧的"Project"窗口中,右键点击工程名称,选择"Add Existing File"。
然后选择要添加的设计文件,点击"OK"按钮即可将设计文件添加到工程中。
三、设置仿真编译选项在添加完设计文件后,我们需要设置仿真编译选项。
在ModelsSim 界面左侧的"Project"窗口中,双击工程名称,打开工程设置窗口。
在"Compile"选项卡中,选择仿真模型和仿真器,并设置仿真选项。
根据需要,可以选择不同的仿真模型和仿真器,以及设置仿真时钟周期等参数。
四、编译设计设置完仿真编译选项后,我们需要编译设计。
在ModelsSim界面左侧的"Project"窗口中,右键点击工程名称,选择"Compile"。
ModelsSim将会对设计文件进行编译,生成仿真所需的文件。
五、创建仿真波形在编译设计后,我们需要创建仿真波形。
在ModelsSim界面下方的"Wave"窗口中,点击"New Wave"按钮。
在弹出的对话框中,选择要仿真的信号和时钟,并设置仿真时间范围。
Modelsim6.5基本仿真步骤
复制以下路径文件到新建的仿真目录下(我的仿真目录是/我的文档/MODELSIM/BASICSIMULATION),
Verilog–<install_dir>/examples/tutorials/verilog/basicSimulation/counter.vand tcounter.v
a)在主窗口中选择Simulate > End Simulation
b)输入命令vsim -novopt counter
14、打开之前生成的波形文件
a)输入view wave
b)选择File > Load
c)双击waveedit.do文件
15、导出刚才创建的波形
a)第一种是导出格式为HDL格式的test bench文件。
i.File > Export > Waveform
ii.选择Verilog Testbench(你用什么就选什么)
iii.如果必要的话输入1000for End Time
iv.在文件名中输入“export”然后点OK
v.
vi.通过以上步骤,modelsim就根据波形自动创建了一个名为export.v的test bench文件。
*/
for (i = 4'b0; ((carry == 4'b1) && (i <= 7)); i = i+ 4'b1)
begin
increment[i] = val[i] ^ carry;
carry = val[i] & carry;
end
end
endfunction
always @ (posedge clk or posedge reset)
modelsim详细使用教程(一看就会)
Modelsim详细使用方法很多的modelsim教程中都讲得很丰富,但忽视了对整个仿真过程的清晰解读,而且都是拿counter范例举例子,有些小白就不会迁移了。
这里我们着眼于能顺利的跑通一个自己写的程序,一步一步的讲解,如果你是一个初学者,这再适合你不过了,虽然貌似字写得比较多,那是因为写得相当的详细,一看就会啦O(∩_∩)O~一、建立工程1、在建立工程(project)前,先建立一个工作库(library),一般将这个library命名为work。
尤其是第一次运行modelsim时,是没有这个“work”的。
但我们的project 一般都是在这个work下面工作的,所以有必要先建立这个work。
File→new→library点击library后会弹出一个对话框,问是否要创建work,点击OK。
就能看见work.2、如果在library中有work,就不必执行上一步骤了,直接新建工程。
File→new→project会弹出在Project Name中写入工程的名字,这里我们写一个二分频器,所以命名half_clk,然后点击OK。
会出现由于我们是要仿一个自己写的程序,所以这里我们选择Create New File。
在File Name中写入文件名(这里的file name和刚刚建立的project name可以一致也可以不一致)。
注意Add file as type 要选择成Verilog(默认的是VHDL),然后OK。
发现屏幕中间的那个对话框没有自己消失,我们需要手动关闭它,点close。
并且在project中出现了一个half_clk.V的文件,这个就是我们刚刚新建的那个file。
这样工程就建立完毕了。
二、写代码:1、写主程序:双击half_clk.v文件会出现程序编辑区,在这个区间里写好自己的程序,这里我们写一个简单的二分频的代码:module half_clk_dai(clk_in,rst,clk_out);input clk_in;input rst;output clk_out;reg clk_out;always @(posedge clk_in or negedge rst)beginif(!rst)clk_out<=0;elseclk_out<=~clk_out;endendmodule写完代码后,不能马上就编译,要先保存,否则,编译无效。
ModelSim之命令行仿真入门
ModelSim之命令⾏仿真⼊门下⾯是我们的Tcl仿真步骤:启动ModelSim SE, ⾸先看到在在ModelSim SE右边的窗⼝有ModelSim> 这样的提⽰符。
在提⽰符后,顺序运⾏以下命令:vlib work 该命令的作⽤是在该⽬录下建⽴⼀个work⽬录,请注意不要⽤操作系统来新建⼀个work的⽂件夹,因为⽤操作系统建⽴的work ⽂件夹并没有ModelSim SE⾃动⽣成的_info⽂件。
vmap work work 该命令的作⽤是将⽬前的逻辑⼯作库work和实际⼯作库work映射对应。
vlog camera.v camera_tb.v 该命令的作⽤是编译这些⽂件,要注意的是⽂件可以单独分开编译,但是⼀定要先编译被调⽤的⽂件。
假如是VHDL⽂件就可以⽤vcom file1,file2命令来编译。
vsim camera_tb 仿真命令, 注意后⾯的参数必须为camera_tb.v⽂件中的模块名。
add wave/camera_tb/ * 该命令的作⽤是将testbench⽂件camera_tb.v中模块camera_tb下所有的信号变量加到波形⽂件中去,注意在“*”前要加空格。
这时候你也可以看到wave⽂件被打开。
当然也可以单个信号的添加,例如添加时钟:add wave clk 等等。
run 2000 该命令的作⽤是运⾏2000个单位时间的仿真。
也可以⽤run –all命令来⼀直仿真下去。
这时候就可以在wave窗⼝⽂件中看到你的仿真结果。
当然也可以观察其它窗⼝的结果,⽤view命令显⽰view * 观察包括signals、wave、dataflow等窗⼝⽂件。
也可以分别打开。
例如⽤view signals来观察信号变量。
quit -f/-force/-sim 该命令分别是退出ModelSim(-f/-force)和退出仿真(-sim)。
ModelSim SE6..2b还有⼀个很好⽤的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Modelsim功能仿真新手教程
By wangjun850725@
操作系统:win7
软件版本:modelsim6.5se
本文只针对初学者,让他们少走点弯路,modelsim软件本身感觉还是比较难以使用的。
本人才疏学浅,但有颗助人的心。
大神请跳过,不要鄙视我。
如有错误,请不吝指点。
QQ群:41143927
建立工程
省略N字,这没有什么好说的。
几乎所有的软件都是以工程为基础的。
添加设计文件
因为我已经编辑好了文件,所以直接添加已经存在的。
没有人会用modelsim自带的编辑器来写程序(要是没有选择,我宁愿用记事本,如果你用了,我佩服你)。
编译文件
没有什么好说的,添加进去的文件全部编译就好了。
如果你看编译后的文件后面还有一个问号,你不爽,鼠标右键更新下就好了
开始仿真
Modelsim se版本是可以手动描绘激励波形的,但这种方法太笨,太烦,修改起来很不方便,所以直接放弃。
Simulate里有个start simulate,点开
这里有几点要说明下
1.要点开work库,找到你testbench对应的那个模块
2.Resolution选不选关系不大,如果你设计文件指定了仿真时间的话
3.Optimization,要把这个勾去掉,不然会优化掉很多信号,这里也坑了我很久。
功能仿真只要这么多,如果做后仿,library里要添加已经编译好的器件库,SDF里要添加.vo,.sdo文件
观察波形
添加信号到波形窗口的方法有很多,刚学手动添加,后来肯定是要在脚本里指定的,下面会有
首先要把设计中的信号添加到wave窗口里。
鼠标左键按住不放,将对应的模块拖到wave窗口里,这是最简单的办法。
如果设计的模块多了,每个模块的信号不能很好的被区分,就可以在每个模块的中间插入一个Divider,信号旁边右键就可以看到,最好给起个名字
如果你的模块层次非常的多,信号的路径名字就会占据本来就不大的屏幕时很不爽的。
菜单Wave‐>Wave preference‐>Display signal path里面改成1就可以了
运行仿真
在Transcript窗口里输入
Run 1ms
搞定,波形神马的就出现了。
你要做的工作就是看波形是否是你想要的。
●可以使用想要的快捷键来查看波形。
f,全屏显示波形;c,以波形图上的黄线为轴放大
波形等,具体请baidu。
自动化仿真
一个简单的分频器要你仿真10次,每次都重复上面这些步骤,你也会受不了的,更何况稍
微大一点的设计。
●你需要新建一个文本文档,modelsim的默认后缀名是.do。
但随便什么后缀名都是可以
的。
因为种种其他原因,我把后缀名改成了.tcl。
●一个简单完整的脚本如下
第1行:当你在仿真的时候,可以直接退出去,然后再次开始仿真
第3行:加载你的设计文件,并指定最小时间为ns
第5行:为每个模块都增加一个分隔符,看起来舒服点,上面的图有提到过
第6.7.8:testbench里的信号
……
第14行:指定信号的显示方式是无符号数
第15行:再指定信号显示的颜色
第16行:再指定信号显示的别名,主要用于参数化状态机的时候用
第18行:运行仿真的时间,最大单位是ms,但最大时间不太清楚
设计代码
我为什么不直接贴代码,而是要上图呢?如果你是初学者,抄一遍代码是必要的;如果你不
是,这代码对你也没有意义。
Testbench
先上图,然后再说其他的。
第1行:指定仿真的时间精度
第2行:这样主要是为了在功能仿真时稍微带点延迟,方便观察,有点后仿真的影子
第4行:格式就是那么写的,我不知道为什么
第5.6.7行:你设计文件里的input端口在testbench里要声明为reg;你设计文件里的output 端口在testbench里要定义为wire
第9‐13行:对testbench里reg的初始化时必不可少的
第15行:生成时钟,必不可少
第17行:传递给设计文件的一个参数
第19‐29行:产生复位信号的一个小任务。
写成任务时为了方便的在以后的设计中使用
第31‐40行:对设计文件的例化
●Testbench的语法还是有必要学一学的,特别是那些不可综合的语句。
不然设计写好了,
如何写testbench会让你头疼的。
$random,$readmem还是比较常用的
●多看看别人写的testbench,自然就会看到一些技巧
其他
●乱糟糟的代码是我绝对不能接受的,对齐是最基本的要求
●不要去怀疑modelsim,出现了意想不到的情况首先就要想到是自己的问题。
当然工具
也会有错,但一般人也发现不了(包括你)
●复位,不论在testbench和设计文件里都非常重要。
最关键的是没有初始化modelsim是
不工作的。
红线,蓝线就是你看到的。
红线:为初始化的信号,例如reg;蓝线:为初
始化的信号,例如wire;还有很少见的白色虚线:modelsim模仿外部上拉的情况
●当你不知道一个modelsim操作的命令是什么时,注意看你操作时transcript窗口对应的
命令。
如果没有,去看modelsim手册
●我将脚本的后缀改为tcl的原因是因为vim可以很方便的注释
●Vim有个插件可以很方便的生成例化片段
●推荐你使用vim或emacs编辑器。
补全,snipmate,ctags,and so on,都会让你欲罢不
能。
去看看vim华丽的snipmate吧/v_show/id_XMjQ5MjE3NTA4.html
●https://上有很多语言的各种代码,当然包括verilog。
没事可以去上面看看有
没有你想要的东西
●请原谅我对vim的崇拜。