Modelsim仿真

合集下载

ModelSim后仿真详细流程介绍PPT课件

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的仿真教程

ModelSim的仿真1.仿真的分类仿真过程是正确实现设计的关键环节,用来验证设计者的设计思想是否正确,及在设计实现过程中各种分布参数引入后,其设计的功能是否依然正确无误。

仿真主要分为功能仿真和时序仿真。

功能仿真是在设计输入后进行;时序仿真是在逻辑综合后或布局布线后进行。

1). 功能仿真( 前仿真)功能仿真是指在一个设计中,在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。

布局布线以前的仿真都称作功能仿真,它包括综合前仿真(Pre-Synthesis Simulation )和综合后仿真(Post-Synthesis Simulation )。

综合前仿真主要针对基于原理框图的设计; 综合后仿真既适合原理图设计, 也适合基于HDL 语言的设计。

2). 时序仿真(后仿真)时序仿真使用布局布线后器件给出的模块和连线的延时信息,在最坏的情况下对电路的行为作出实际地估价。

时序仿真使用的仿真器和功能仿真使用的仿真器是相同的,所需的流程和激励也是相同的;惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,时序仿真后的信号加载了时延,而功能仿真没有。

后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。

其输入文件为从布局布线结果中抽象出来的门级网表、Testbench 和扩展名为SDO 或SDF 的标准时延文件。

SDO 或SDF 的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。

一般来说后仿真是必选的,检查设计时序与实际的FPGA运行情况是否一致,确保设计的可靠性和稳定性。

2.仿真的作用1).设计出能工作的电路:因此功能仿真不是一个孤立的过程,其和综合、时序分析等形成一个反馈工作过程,只有这个过程收敛,各个环节才有意义。

modelsim仿真小结

modelsim仿真小结

Modelsim仿真小结Modelsim的基本仿真流程大致分以下几个步骤:建库、编译工程、前后仿真、调试等。

Modelsim仿真既可以在modelsim界面操作,也可以用do文件实现,这里结合学习的教程、网上看到的资料,和实际遇到的一些问题,分别做一整理小结。

1.建库建库包括Altera库和Xilinx库,同时都包括Verilog和VHDL。

这里只建了Verilog库,VHDL 和Verilog步骤相同。

对于Altera库主要包括lpm元件库、Mega_Function库atera_mf、altera原语库altera_primitive和各器件系列模型库。

前三种是调用altera模块的必备库,第四种是进行综合后功能仿真和布线后时序仿真需要的库,和器件系列有关,只选对应系列即可。

Altera库创建和编译步骤如下:a)在Modelsim安装目录下新建文件夹,命名altera_lib,以存放编译后的库文件,可以在altera_lib下新建Verilog和VHDL两个子文件夹,分别存放Verilog和VHDL库。

b)打开Modelsim,新建Library,file ->new->library ..c)如下图,创建lpm库,路径E:\modeltech_10.1a\altera_lib\Verilog\lpmd)添加库文件,并编译,compile -> compile …,出现compile source files窗口,library指定到lpm下,查找围,选quartus安装目录下…eda\sim_lib目录里的仿真原型文件:220model.v ,点c ompile ,点done。

到此,lpm库建立完毕。

e)同理,建立altera_mf库添加altera_mf.v ,建立primitive库添加altera_primitive.v建立各系列的模型库,命名可用系列名加_ver“xxx_ver”,也可随意吧,添加各系列的xxx_atoms.v。

Modelsim 自动化仿真平台搭建

Modelsim 自动化仿真平台搭建

Modelsim do文件的自动化仿真 创建虚拟信号
虚拟信号可以把实际信号转化为更人性化的信号,比如将信号的数值转化为字符显示,例如状 态机的跳转可以用虚拟信号标注这样更清晰。
virtual type { {1 IDLE} {2 READ} {4 WRITE} {8 STOP} } state_struc 以上简历一个虚拟的结构体,结构体的名字叫state_struc
Modelsim do文件的自动化仿真 Tcl语言的语法
vlib:创建库。格式vlib <library name>,默认库的名字为work 示例: vlib work vmap:映射逻辑库名,将逻辑库名映射库路径。语法格式vmap work <library name> 示例:vlib work work vdir:显示指定库的内容 。语法格式vdir –lib <library name> 示例:vdir –lib work vlog:编译Verilog 源代码,库名缺省编译到work本地库,文件按顺序编译。语法格式 vlog
modelsim将加载两次,这种结果不是我们想要的。 .SDO文件并不是标准的延时文件,如果想转到标准的延迟文件可以用以下命令,sdf文件比
sdo文件小加载速度快。sdf文件采用了gzip压缩。 sdfcom netlist/my_design.sdo netlist/my_design.sdf
Modelsim 自动化仿真平台源自Modelsim GUI仿真流程
1. 打开Modelsim 软件,建一个工程文件夹,简历Modelsim 仿真工程。 2. 在用户窗口界面加入需要仿真的所有代码和库文件。 3. 编译有文件 4. 选择testbench顶层文件启动仿真。 5. 选择所要观察的目标信号,并将其加入到波形观察窗口,如需更改bus显示

ModelSim仿真流程

ModelSim仿真流程

ModelSim仿真流程关于ModelSim仿真流程EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

下面店铺准备了关于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,会出现对话框,提示我们是否确认退出仿真,我们点击是退出仿真;。

modelsim+ISE后仿真流程

modelsim+ISE后仿真流程

一、为modelsim 添加ISE的3 个仿真库。

首先,介绍一下这三个库。

Simprim_ver:用于布局布线后的仿真。

Unisim_ver :如果要做综合后的仿真,还要编译这个库。

Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。

我们要为modelsim生成的是标准库。

所谓的标准库就是modelsim运行后,会自动加载的库。

不过这方面我还不是很肯定。

因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。

第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。

第二步:新建库,库名起作simprim_ver。

我们首先就是要建的就是这个库。

第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_ver C:/Xilinx/12.4/ISE_DS/ISE/verilog/src/simprims/*.v (注意斜线的方向是与windows默认方向相反的)其中的c:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。

以下凡是要根据自己系统环境改变的内容,我都会用绿色标出,并加一个下划线。

编译完之后,你会发现你的工程文件夹下出现了一个simprim文件夹,里面又有很多个文件夹。

这些就是我们要的库了。

第四步:按照上面的方法,编译另外两个库。

所需要键入的命令分别如下:vlog –work unisim_ver C:/Xilinx/12.4/ISE_DS/ISE/verilog/src /unisims/*.vvlog -work xilinxcorelib_ver C:/Xilinx/12.4/ISE_DS/ISE/verilog/src /XilinxCoreLib/*.v第五步:把库建好后,接下来的事情就是使它成为modelsim的标准库。

这只要修改modelsim安装目录下的modelsim.ini文件就可以了。

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仿真流程-经验总结1.Modelsim简介略。

2.modelsim仿真流程:modelsim基本的仿真流程包括建立库、建立工程并编译、仿真、调试、但在libero环境中运行modelsim时,软件自动映射库和生成工程文件。

其中功能仿真、综合仿真以及后仿真分别映射presynth、postsynth和postlayout库。

基本流程是:建立工作库→编译源代码→启动仿真→分析、调试。

2.1建立库并映射在modelsim中,任何使用VHDL、Verilog HDL、SystemC等语言实现的设计,都被编译到一个库中。

♥方法一:File>New>Library选择新建并映射到该库;♥方法二:在modelsim>提示符下运行命令vlib work2-建立库,vmap work work2-建立映射库;2.2建立工程Modelsim仿真需要建立自己的工程,同时modelsim还提供了文件夹管理工程的功能。

♥step1:File>New>project,并指定库文件名;♥step2:新建文件或导入文件;2.3编译文件建立好工程后,使用compile功能对源文件进行编译。

Libero环境启动modelsim时,系统执行run.do脚本文件自动编译源文件。

♥鼠标右击文件,选择compile All对所有的工程文件执行编译操作;♥启动仿真,使用simulation>start simulation>选择design选项卡功能使modelsim进入仿真状态,之后可以运行仿真。

在libero环境下,运行modelsim直接从运行仿真这一步骤开始。

♥运行仿真可以设置仿真时间或选择仿真全部♥tcl命令:do run.do –当设计修改后,使用此命令重新导入设计;Do wave.do-打开波形列表文件,或者向当前波形添加列表;Restart-复位当前仿真,从0时刻重新仿真;Run 1ms-运行仿真1ms时间;Run all-运行全部的仿真;在libero环境下,可以自己编写脚本文件代替run.do文件,在项目比较大的情况下可以大大简化仿真的操作。

使用ModelSim的仿真步骤

使用ModelSim的仿真步骤:
1.建立工程:选file/new/project菜单,打开Create Project窗口.
填Project Name栏,为你的工程启一个名子.
按Browse按纽,为你的工程指定一个盘上目录,作为以后工程文件的存放位置.
指定缺省库名为Work库.
2.在出现的ADD ITEMS TO THE PROJECT窗口中选Create New File为当前工程加入一个新建文件,或选Add existing File为当前工程加入一个已存在的文件.
3.选Compile/compile All对当前设计工程进行编译.
4.选Simulate/Star Simulation菜单项,打开仿真器.
5.在仿真器中选Design页,点击WORK页前的加号,打开WORK 库,选一个仿真文件,选好后,点击右下脚的OK按纽.
6.在出现的Object窗口中,会有芯片的引脚列表.选一个引脚,压鼠标右键,弹出一菜单,在其中选Add to wave/Selected Signal菜单项,可将引脚对象加入到Wave窗口中.重复上述过程,将全部引脚加入到Wave波形窗口中.
7.在WAVE中,选一个引脚,用WAVE窗口的工具画加在引脚上的波形.
8.画完输入引脚的波形后,输入RUN –ALL,回车,执行仿真.
注:上述仿真过程,可用命令:
vsim work.filename
启动仿真窗口.
view wave
打开波形窗口
add wave –dec *
加入所有波形信号,以十进制方式force
为每个引脚加入驱动信号
run –all
执行仿真任务。

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两种常用的硬件描述语言,用户可以根据自己的需求选择合适的语言进行设计和仿真。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可编程逻辑器件设计实验报告
实验名称:Modelsim仿真
实验目的:使用Modelsim软件
实验时间:2012 年6月13 日地点:803实验室学生姓名:何超学号:2009118122
实验一1位全加器的仿真
一、Verilog代码
二、测试代码
`timescale 1ns/1ns
module adder_tb;
reg ina,inb,cin;
wire sum,cout;
parameter delay=100;
adder u1(cout,sum,ina,inb,cin);
initial
begin ina=0;inb=0;cin=0;
#delay ina=1;inb=0;cin=0;
#delay ina=0;inb=1;cin=0;
#delay ina=0;inb=0;cin=1;
#delay ina=1;inb=1;cin=0;
#delay ina=1;inb=0;cin=1;
#delay ina=0;inb=1;cin=1;
#delay ina=1;inb=1;cin=1;
#delay;
end
endmodule
三、波形仿真图形
实验二数据选择器的仿真一、VerilogHDL代码
二、测试文件代码
`timescale 1ns/1ns
module mux41_tb;
reg in0,in1,in2,in3;
reg [1:0] select;
wire out;
parameter delay=100;
mux4_1 u1(out,in0,in1,in2,in3,select);
initial
begin
in0=0;in1=0;in2=0;in3=0;select=0;
#delay in0=1;in1=0;in2=0;in3=0;select=0;
#delay in0=0;in1=0;in2=0;in3=0;select=1;
#delay in0=0;in1=1;in2=0;in3=0;select=1;
#delay in0=0;in1=0;in2=0;in3=0;select=2;
#delay in0=0;in1=0;in2=1;in3=0;select=2;
#delay in0=0;in1=0;in2=0;in3=0;select=3;
#delay in0=0;in1=0;in2=0;in3=1;select=3;
#delay in0=0;in1=0;in2=0;in3=0;select=4;
end
endmodule
三、仿真波形
实验三模60计数器的仿真一、V erilogHDL代码
二、测试代码
`timescale 1ns/1ns
module couner_m60_tb;
reg clk,clr_n;
wire[6:0] Q;
parameter delay=1;
integer i;
counter_m60 u1(clk,clr_n,Q);
initial
begin
#delay clk=0;clr_n=1;
#delay clk=1;clr_n=0;
#delay clk=0;clr_n=0;
#delay clk=1;clr_n=1;
for(i=0;i<200;i=i+1)
#delay clk=~clk;
end
endmodule
三、波形仿真
实验四模60BCD码计数器的仿真一、VerilogHDL代码
二、测试文件代码
`timescale 1ns/1ns
module couner_bcd_tb;
reg clk,clr_n;
wire[3:0] Q_h,Q_l;
wire cin_l;
parameter delay=1;
integer i;
counter_bcd u1(clk,clr_n,Q_h,Q_l,cin_l); initial
begin
#delay clk=0;clr_n=1;
#delay clk=1;clr_n=0;
#delay clk=0;clr_n=0;
#delay clk=1;clr_n=1;
for(i=0;i<200;i=i+1)
#delay clk=~clk;
end
endmodule
三、波形仿真
实验五4bit加减计数器的仿真一、VerilogHDL代码
二、测试文件代码
`timescale 1ns/1ns
module counter_updown_tb;
reg clk,clr_n,up_down,ld;
reg [3:0]D;
wire [3:0]Q;
parameter delay=100;
integer i;
counter_updown u1(clk,Q,clr_n,up_down,ld,D);
initial
begin
clk=0;D=0;clr_n=0;up_down=0;ld=0;
#delay clk=1;clr_n=1;
for(i=0;i<200;i=i+1)
#delay clk=~clk;
end
endmodule
三、波形仿真
实验六分频器的仿真一、VerilogHDL代码
二、测试代码
`timescale 1ns/1ns
module fdiv_12__tb;
reg clk_in;
wire clk_12;
wire [3:0] cnt_m;
parameter delay=100;
integer i;
fdiv_12 u1(clk_in , clk_12,cnt_m);
initial
begin
#delay clk_in=0;
for(i=0;i<200;i=i+1)
#delay clk_in=~clk_in;
end
endmodule
三、波形仿真。

相关文档
最新文档