ModelSim后仿真 详细流程介绍
modelsim后仿真详解

modelsim后仿真想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀。
为了这个问题,我在网上找了很多的资料,但发现这些资料往往说的不明白。
一些步骤被作者有意无意地省略掉,这常常给读者造成不必要的麻烦,所以我决定写下这一篇文章,把这3天我努力的结果拿出来,与大家分享。
首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。
1, ModelSim Se 6.1b2, Synplify Pro 7.5.13, ISE 5.2i (这个是老了点)4, WindowsXP(这个应该没有多大的关系)还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
我的邮箱是vf1983cs@。
有空大家多交流。
一、为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_ver d:/Xilinx/verilog/src/simprims/*.v其中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。
ModelSim-Altera_6.5仿真入门教程

平台软件: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按钮后,在主体窗口的下方将出现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所示窗口。
图2.6 创建工程文件夹2. 输入文件名称:LED_FLOW,然后选择文件类型为Verilog。
使用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,synplify,ISE后仿真流程

我想很多人跟我一样,被M o d e l S i m的后仿真搞的头晕脑胀。
为了这个问题,我在网上找了很多的资料,但发现这些资料往往说的不明白。
一些步骤被作者有 意无意地省略掉,这常常给读者造成不必要的麻烦,所以我决定写下这一篇文章,把这3天我努力的结果拿出来,与大家分享。
首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了M o d e l S i m后仿真的问题,那就可能是软件版本的问题。
1, M o d e l S i m S e6.1b2, S y n p l i f y P r o7.5.13, I S E5.2i(这个是老了点)4, W i n d o w s X P(这个应该没有多大的关系)还有就是我使用的是v e r i l o g,我想V H D L的方法与v e r i l o g是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
我的邮箱是v f1983c s@163.c o m。
有空大家多交流。
一、 为m o d e l s i m生成3个库。
首先,介绍一下这三个库。
S i m p r i m_v e r:用于布局布线后的仿真。
U n i s i m_v e r:如果要做综合后的仿真,还要编译这个库。
X i l i n x c o r e l i b_v e r:如果设计中调用了C o r e G e n产生的核,则还需要编译这个库。
我们要为m o d e l s i m生成的是标准库。
所谓的标准库就是m o d e l s i m运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然m o d e l s i m找不到。
第一步:在m o d e l s i m环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作s i m p r i m_v e r。
Modelsim仿真方法总结

Modelsim仿真方法总结第一篇:Modelsim 仿真方法总结Modelsim 仿真方法总结Modeling 仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真。
Modelsim各版本的使用方法大体一致,Modelsim仿真主要分为前仿真和后仿真。
下面来具体介绍modelsim 的仿真方法,涉及quartus-modelsim联合(使用)仿真的差异会特别提示。
前仿真与后仿真说明 1.1 前仿真前仿真也称为功能仿真、行为仿真。
旨在验证电路的功能是否符合设计要求,其特点是不考虑延迟(包括门延迟与线延迟),主要验证电路与理想情况是否一致。
前仿真需要用到RTL级代码(由源代码经过综合后产生)与T estbench。
1.2)后仿真后仿真也称为时序仿真或者布局布线仿真。
是指在电路已经映射到特定的工艺环境以后,综合考虑门延迟与线延迟的影响,验证电路在一定的时序条件下是否存在时序违规以及能否满足设计构想的过程。
需要用到的文件是——从布局布线结果中抽象出来的门级网表、testbench和后缀名为sdo或者sdf的标准时延文件。
注:扩展名为sdo和sdf的标准时延文件包含门延迟与实际布线延迟,能较好的反应芯片的实际工作情况。
二)modelsim仿真主要有以下几个步骤:(1)建立库并映射库到物理目录;(2)编译源代码(包括Testbench);(3)执行仿真;解释:①库:modelsim中有两类仿真库。
一种是工作库,默认名为work;另一种是资源库。
Work库中存放当前工程下所有已经编译过的文件,所以编译前一定要建立一个work库。
资源库存放work库中已经编译文件所要调用的资源,这样的资源可能有很多,它们被存放在不同的资源库内。
(例如要想对综合在cyclone芯片中的设计做后仿真,就需要有一个名为cyclone_ver的资源库。
)映射库用于将已经预编译好的文件所在目录映射为一个modelsim可识别的库。
ModelSim的前后仿真(Quartus)

利用Quartus5.0实现功能仿真1)打开一个工程文件。
2)打开Settings设置栏,选择Fitting Settings下的Simulator栏。
在右边出现的设置栏中将“Simulation Mode”的下拉菜单选择“Functional”,即可以实现软件下的功能仿真。
(下拉菜单中有“Functional”、“Timing”和“Timing using Fast Timing Model”,分别代表可以在Quartus软件下实现功能仿真,时序仿真和快速时序仿真。
最后一项一般不选,如果在Settings->Timing Requirement->More Settings下“Report Combined Fast/Slow Timing”选项设为“On”,就可以选择最后一项。
编译的报告里也会分别列出最快和最慢的时序报告。
)3)选择“Processing”菜单下的“Generate Functional Simulation Netlist”命令,否则将无法启动仿真。
4)新建一个波形仿真文件,文件后缀名为.vwf。
选择File菜单下的New->Other Files->VectorWaveform File。
如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。
波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间。
将新建的波形仿真文件保存下来。
5)将需要仿真的信号加入波形编辑窗口。
在列表区任一位置双击或者点击右键选择“InsertNode or Bus…”,弹出的对话框点击“Node Finder”按钮。
在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。
如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。
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仿真详解 -回复

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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
延时信息
目录
仿真的基本概念
后仿真前的基本准备工作
后仿真的基本操作步骤
后仿真前的基本准备工作
ModelSim库
库文件,是指已经编译通过的设计文件的总体。 ModelSim中有两种库类型:
工作库
1.库的内容会随着使用者 更新设计文件和重新编译 而变化; 2.存放当前设计文件编译 Description of the business 后产生的设计单元; 3.编译前必须先创建好工 作库; 4.每次编译只允许有一个 工作库; 5.默认的工作库名是work
第一步:选中modelsim.ini文件,右键单击属性,将只读属性去掉。 第二步:用写字板或其它工具打开modelsim.ini文件,在[Library]这个位置下面 添加如下2行: altera_base_v = F:/Modelsim 6.5/altera/altera_base_v altera_device = F:/Modelsim 6.5/altera/altera_device
仿真的基本概念
仿真的分类?
前仿真 后仿真
功能仿真
仿真
时序仿真
综合前仿真 综合后仿真
布局布线后仿真
仿真的基本概念
仿真的分类?
功能仿真(前仿真)是指在一个设计中, 在设计实 现前对所创建的逻辑进行的验证其功能是否正确的 过程。
综合前仿真 这个阶段的仿真可以用来 检查代码中的语法错误以 及代码行为的正确性,其 中不包括延时信息。
后仿真前的基本准备工作
Altera仿真库建立步骤
1.在ModelSim安装目录中建立两个文件夹,一个是用于存放公用的 库给它取名altera_base_v;另一个是用于存放您要用到的特定的器 件库,取名为altera_device。
比如,F:\Modelsim 6.5\altera\altera_base_v
目录
仿真的基本概念
后仿真前的基本准备工作
后仿真的基本操作步骤
后仿真的基本操作步骤
时序仿真的流程
所用例子:divider_module.v
1.新建一个project,建立divider_module工程,建立work工作库,把 quartus II综合后的simulation文件夹里的几个文件一起复制到当前工 程目录下,向工程添加三个文件——divider_module.v, divider_module_tb.v 和 divider_module.vo,如下图所示。
仿真的基本概念
布局布线后仿真(时序仿真)
功能仿真VS布局布线后仿真
仿真的基本概念
布局布线后仿真(时序仿真)
输入文件
1
设计源代码和 testbench激励 文件
2
从布局布线结 果中抽象出来 的门级网表 (.vo文件)
3
扩展名为 SDO 或 SDF 的标准时延 文件(一般用 Quartus生成 的.sdo文件)
后仿真前的基本准备工作
ModelSim库
前三种库是调用了相应的ALTERA 设计模块的设计进行仿真时必备 的库。第四种库是进行综合后功能仿真和布线后时序仿真必备的库。
LPM
altera_mf
调用了 lpm 元件的设计仿真时需要
调用了 Altera 的MegaFunction的设计仿真时需要
调用了 Altera 的原语(primitive )的设计仿真时需要
资源库
1.资源库是静态不变的, 可以作为使用者设计的而 一个部分被直接调用; 2.存放着所有可以被当前 编译操作调用的已经编译 过的设计单元; 3.每次编译允许同时调用 多个资源库; 4. ALTERA的仿真库也属 于资源库的一种
后仿真前的基本准备工作
ModelSim库
一个工程里面,资源库可以同时有多个,PLD 厂家的仿真库其实可 以看成资源库的一种。我们一般要建四种库:
第三步:保存文件。 第四步:关闭modelsim.ini文件后,再次将其只读属性打开。
6.最后,在Library的面板位置鼠标右击选择Refresh,或者退出 modelsim重新启动。
后仿真前的基本准备工作
Altera仿真库建立步骤
至此,仿真库就完全建好了。 库建好后,ModelSim指向任何一个目录下或新建任何一个工程 (project )时,ALTERA 的仿真库都会出现在资源库当中,如下图 所示:
后仿真的基本操作步骤
时序仿真的流程
6.最后,点击大窗口“Start Simulation”中的“OK”,如果前 面都正确的话会出现下图所示结果。
7.进入到把信号添加到wave窗口,以及进行运行仿真分析。这 两步比较简单,具体不再分析,添加完波形信号如下图所示。
后仿真的基本操作步骤
时序仿真的流程
后仿真前的基本准备工作
Altera仿真库建立步骤
3.从主菜单栏中选择 Compile->Compile…,弹出一个对话框,点中 Library下拉菜单,由“work”改为“altera_base_v”,点中查找范 围下拉菜单,指向 Quartus II 安装目录\quartus\eda\sim_lib,选中下 图所示中的220model.v、altera_mf.v和altera_primitives.v三个文件, 进行编译。
F:\Modelsim6.5\altera\altera_device
后仿真前的基本准备工作
Altera仿真库建立步骤
2.启动ModelSim SE。建立两个新库,从主菜单选择File->New-> Li logical mapping to it”,在 “Library Name”填写“altera_base_v”,Library Physical Name填 写文件夹绝对路径,如图所示。
后仿真的基本操作步骤
时序仿真的流程
5.选中选项卡中的SDF,步骤分别是点击“add”,在弹出的Add SDF Entry 窗口中,在SDF File中,点击“Browse”选择找到ModelSim中的工程目录的 标准延时文件devider_module_v.sdo,作用域填写测试平台文件的例化模块 名i1,最后点击“OK”确定,如下图所示。
altera_primitive
元件库
例如 cyclone. 在仿真中必用的特定型号的 FPGA/CPLD 的库
后仿真前的基本准备工作
ModelSim库
安装好Quartus II 后,在其安装目录下 altera\…\quartus\eda\sim_lib 里面存放了所有的仿真原型文件(simulation model files )。每个 PLD 厂家的开发软件装好后都有相应的目录存放这些仿真原型文件。
后仿真的基本操作步骤
时序仿真的流程
THANKS!
LPM
altera_mf
调用了 lpm 元件的设计仿真时需要
调用了 Altera 的MegaFunction的设计仿真时需要
调用了 Altera 的原语(primitive )的设计仿真时需要
altera_primitive
元件库
例如 cyclone. 在仿真中必用的特定型号的 FPGA/CPLD 的库
综合后门级功能仿真,综合 工具给出的仿真网表已经是 与生产厂家的器件的底层元 件模型对应起来了,可估计 门延时对电路带来的影响。
考虑的是理想化的情况, 没有门延迟,没有布线延 迟。只关注代码的行为级 功能描述是否正确。
只能估计门延时,不能估计线延 时,仿真结果和布线后的实际情 况还有一定的差距,并不十分准 确。由于目前综合工具比较成熟, 一般省去此环节的仿真,直接进 行下一步仿真。
后仿真前的基本准备工作
Altera仿真库建立步骤
5.编译库结束后,为了在每次新建工程的时候不需要重新编译 Altera的仿真库,需要修改Modelsim的安装目录下的modelsim.ini文 件。
第一步:选中modelsim.ini文件,右键单击属性,将只读属性去掉。 第二步:用写字板或其它工具打开modelsim.ini文件,在[Library]这个位置下面 添加如下2行: altera_base_v = F:/Modelsim 6.5/altera/altera_base_v altera_device = F:/Modelsim 6.5/altera/altera_device
仿真的基本概念
什么是仿真?
仿真的一般性含义是:使用EDA工具,通过对设计 的实际工作情况进行模拟,验证设计的正确性。
仿真验证是FPGA设计过程中非常重要的一个环节,大家不要忽略。
仿真验证工作占设计总工作量的70% “在这个设计规模达数百万门的ASIC、可复用的知识产权(IP)和系统芯片(SOC) 的时代,仿真验证占到了设计总工作量的70%左右。设计团队应该配备能够正确描述 仿真验证需求的工程师和专门进行验证的工程师。仿真验证工程师的数量甚至是RTL 设计人员的两倍。” ----《Writing Testbenches》 【美】Janick Bergeron
后仿真前的基本准备工作
Altera仿真库建立步骤
4.同样的方法步骤编译altera_device器件库。在编译这个库时选择 的文件为一些器件文件如图所示。当然为了加快编译速度,也可以 选择只用到的器件库文件。
后仿真前的基本准备工作
Altera仿真库建立步骤
5.编译库结束后,为了在每次新建工程的时候不需要重新编译 Altera的仿真库,需要修改Modelsim的安装目录下的modelsim.ini文 件。
综合后仿真
仿真的基本概念
仿真的分类?
布局布线后仿真(后仿真),即时序仿真,是指使用 布局布线后综合工具给出的模块和连线的延时信息, 在最坏的情况下对电路的行为作出实际的评估。