ModelSim后仿真 详细流程介绍
modelsim后仿真详解
![modelsim后仿真详解](https://img.taocdn.com/s3/m/31ea7215f18583d0496459e4.png)
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.5仿真入门教程](https://img.taocdn.com/s3/m/b3e4abd984254b35eefd34f6.png)
平台软件: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的仿真步骤](https://img.taocdn.com/s3/m/addf9168a26925c52cc5bf73.png)
使用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后仿真流程
![ModelSim,synplify,ISE后仿真流程](https://img.taocdn.com/s3/m/828028f8941ea76e58fa047c.png)
我想很多人跟我一样,被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仿真方法总结](https://img.taocdn.com/s3/m/dd3105be6429647d27284b73f242336c1eb9303e.png)
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)
![ModelSim的前后仿真(Quartus)](https://img.taocdn.com/s3/m/23b86f48e45c3b3567ec8bdf.png)
利用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仿真详细教程
![Modelsim仿真详细教程](https://img.taocdn.com/s3/m/c52e582f453610661ed9f40b.png)
.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仿真详解 -回复](https://img.taocdn.com/s3/m/175e5db29f3143323968011ca300a6c30c22f125.png)
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后仿真 详细流程介绍](https://img.taocdn.com/s3/m/843d0f8ebceb19e8b8f6baf6.png)
目录
仿真的基本概念
后仿真前的基本准备工作
后仿真的基本操作步骤
后仿真的基本操作步骤
时序仿真的流程
所用例子: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文件)
后仿真前的基本准备工作
Altera仿真库建立步骤
4.同样的方法步骤编译altera_device器件库。在编译这个库时选择 的文件为一些器件文件如图所示。当然为了加快编译速度,也可以 选择只用到的器件库文件。
后仿真前的基本准备工作
Altera仿真库建立步骤
5.编译库结束后,为了在每次新建工程的时候不需要重新编译 Altera的仿真库,需要修改Modelsim的安装目录下的modelsim.ini文 件。
仿真验证是FPGA设计过程中非常重要的一个环节,大家不要忽略。
仿真验证工作占设计总工作量的70% “在这个设计规模达数百万门的ASIC、可复用的知识产权(IP)和系统芯片(SOC) 的时代,仿真验证占到了设计总工作量的70%左右。设计团队应该配备能够正确描述 仿真验证需求的工程师和专门进行验证的工程师。仿真验证工程师的数量甚至是RTL 设计人员的两倍。” ----《Writing Testbenches》 【美】Janick Bergeron
modelsim怎么仿真波形
![modelsim怎么仿真波形](https://img.taocdn.com/s3/m/fd32378e09a1284ac850ad02de80d4d8d05a017e.png)
modelsim怎么仿真波形ModelSim是一款用于硬件描述语言(HDL)仿真的软件,它支持Verilog、VHDL等多种硬件描述语言。
使用ModelSim进行波形仿真的基本步骤如下:1.新建工程:首先,在ModelSim中创建一个新的工程。
点击左上角的“File”菜单,选择“Project”,然后在弹出的界面中输入工程名字和选择工程路径,点击“OK”完成新建工程。
2.新建或导入工程文件:完成新建工程后,会弹出添加文件界面。
你可以选择“Create New File”来新建工程文件,或者通过“Add Existing File”来加入已有的工程文件。
3.文档编译:添加文件后,文件会有一个问号表示状态未知,需要右键点击选择“Compile all”进行编译。
编译成功后,文档显示为对勾。
4.开始仿真:在“Project”界面点击“Simulate”后,选择“start simulation”。
并选择你的测试文件(tb)作为仿真主文件。
注意,若在“Library”界面直接点击上方的Simulate可能会报错,需要在该界面的work下,选择需要仿真的文件,右键进行Simulate。
5.添加仿真波形:在仿真阶段,会自动出现sim界面。
此时,你需要手动添加观测信号。
在出现的objects窗口中选择你想观察的信号,右键选择“Add to”,然后选择“wave”,再选择“selected signal”。
6.调整仿真时间并运行仿真:你可以设置仿真时间,然后点击仿真图标开始仿真。
仿真结果会在波形窗口中显示出来,你可以放大或缩小波形以便观察。
以上就是在ModelSim中进行波形仿真的基本步骤。
如果你在使用过程中遇到任何问题,建议查阅ModelSim的官方文档或者在线教程,这些资源提供了详细的帮助和指导。
利用ModelSim进行的功能仿真,综合后仿真,时序仿真
![利用ModelSim进行的功能仿真,综合后仿真,时序仿真](https://img.taocdn.com/s3/m/cff15a4f2b160b4e767fcfb4.png)
利用ModelSim进行的功能仿真,综合后仿真,时序仿真功能仿真,就是在理想状态下(不考虑延迟),验证电路的功能是否符合设计的要求。
功能仿真需要:1.TestBench或者其他形式的输入激励2.设计代码(HDL源程序)3.调用器件的模块定义(供应商提供,如FIFO,RAM等等)值得一提的是,可以在ModelSim直接编写TestBench,使用View->Source->Show language templates.综合后仿真(门级仿真),实际上就是将对综合后的门级网表进行仿真,只考虑门延迟,而没有加入时延文件。
在功能仿真之后检验综合的结果是否满足功能要求。
综合后仿真需要:1.综合后的门级网表,注意这里变成了*.vo文件,而不是原来功能仿真中所需要的HD L源代码.2.测试激励3.元件库Altera的仿真库位置为*:\altera\quartus\eda\sim_lib所谓时序仿真,就是在综合后仿真的基础上加上时延文件(sdf文件),综合考虑了路径延迟和门延迟的情况,验证电路是否存在时序违规。
时序仿真需要:1.综合后的门级网表,注意这里变成了*.vo文件,而不是原来功能仿真中所需要的HD L源代码.2.测试激励3.元件库Altera的仿真库位置为*:\altera\quartus\eda\sim_lib4.较门级仿真还需要具有包含时延信息的反标记文件*.sdf可以有两种方法实现门级仿真,或时序仿真。
1.工程编译成功后,自动启用ModelSim来运行门级仿真,前提是要在Quartus II的Options中设置好ModelSim的路径(和有些参考PDF上说的环境变量好像无关,至少我用的Quartus II 9.0 Web Edti on是这样的)具体方法是,进入Quartus9.0->Tools->Options,在Categroy里选中General下的EDA Tool Options,在ModelSim右边的Location of Executable中双击来改变路径,就并且在工程中设置了自动启动ModelSim,就可以自动启用了。
Modelsim工具的一般仿真流程
![Modelsim工具的一般仿真流程](https://img.taocdn.com/s3/m/987b912fe518964bcf847cf9.png)
Modelsim工具的使用仿真流程1.建立work库通常modelsim在使用的时候,和大多数开发软件一样,第一步先建立一个工程。
而modelsim在建立工程之前,一般都要建立一个工作库(library),命名为work,仿真的时候工程就运行在这个库里面。
通常modelsim在第一次运行的时候,并没有work这个库文件,所以没有work库的话,先建立一个work的library,再建立新的工程。
一般的工程路径设置如下:project 放置FPGA的工程文件,source 放置源代码(ipcore, 建议放在工程的根目录下,有同事发现ipcore改变其路径,仿真的时候会出错,并且工程里面要手动添加IP核的文件),simulation 放置modelsim的仿真工程。
新建一个work库。
File New- Library^Hamc Type|旳thlibrary □fate 冋叶 djibs/dltera 兰沖忡阿」iflibraryGsfrfr^r^/vM 」ih 叩袖暮 A 』I F土扛就am_nF 』Pt Library冷忡怕.VFTl ihr^iy U Mr 耳丫日皿 ^clgrsiLibrary U fJter 耳什 d.libqkydbMii r 車 cyclorigii^ver 匸• fbalfi 讨 bIpm Library C :fafcsr^/Y«riag 」ts|cy!cbn“i 』er Library 押 aOEL.TECHT 简 adfbdb Library C; I'dtere/Yf-dJib 訓 pm r 血 IfTTl fCF Library Cii'dterc/Ycrioq itsl|prn vei (K nr 匚E 」b (emipo) Library JHODEL lEO-i/.JirEiJb —机 rrtlA/m 上rrtCWm Library Library SwaEiBL_TEOf.,^IIi J1MCiCiELJEOif,.jbm-2J 2 4-jt^ nrtPA 上虫nrtU^F Library 4MaOELJBOf..#ia_lb Library ^OCEL_lKHf../upfJlb 七 >[■ nrtlJ /in Library 4HariELjEa-v.,Aj^-i.]d 二九 Oiv^fn Libr^^y jH0CEL_lEair..1iO5V'7TTT jrtL 驹肚哼 Ubhfiiy C ; |前岀i ■訝计M 」ibs/sMEef 4t 珂aS_Vd Llbifliy C^i'dlsre/Yri 1匚电_11&4护1口_样「 + A L #_血 ULr^ryinciriELjrciir.js^sd 二 4^ vtaLocu Library iNUDEL.IECHf ../Vt^OCO 二 jL IPlibrary钿 tWEL-TECHLQ*_ 血 iTcddsinni 」ti library 榔口DEL JEO#. /rrcrtslcm 」H函山,ddlibrary $WCiLELJEO*../£td 上 JtL ctdjdsssIc-ptrMt Library iMQLEL_7EO+skps* 抄it丄血 a^ncpsyi Library 4b<GDEL_7EQf ii/syncpsyi 工忙 vsrilog Library!|NCi[jEL_IE'CHf../voracgHl Ubraiy — ■pgM 丄::灯血刃向dl H K , ±O -I Mirai-dtei e_rf dtei 0jrf_W5T J L 业 dteia_^-r +札i y 叭戸■ 1血ryderal ■湘于 土丸1幻畝惟」血 ± -fl.晌 1 JL 布肝■榆 血 (mptr) t-血 + 脚.fil":皿1 七 J^lntFAffltllTmtUMnO5>*TTi占艸 列4_¥・■5i,i_^fd MtdiZDEO■see _____ tn 处加i 」t> 1,直泅4- 血 ^itd rfevd-^rrTS^I : t_ 刊「即裤 £ 血 Wl IJIJtrtrra v UbTs y Lltrof!/li 啊母章 Llbrsr/ Libi Lib ary Libitr^ Llbrcrj^ Ubi-arji Libi BTy Libror^ Lihi aru LltfWy Li 輛屮 Hfeiar^ Ubtar^ Uts a 3LlbiSTy Liti it JLibi CT 'JLltieryUbiery 心灯t 冋vMIJte/dm U.Ttinqghdl Ib5]l 或er 士 nf U idtei ■5,lm1kgJt5jdiiT!r3_Tf_ver ■"LMlteldJ^lkg 」二吋*阳 d.-'if!C\ i^tti 时』hdl 」b5」cytkKiH* G :jairHi^iv**lkgJr^ci<l0rFl!_wi 『Ibsjdbgrs^nfC ; t^tri ■5,lwUcgJb^!dii ,?r3_Tf_ver口 i^tei 讯 \rhdl 」b5」cytki 『前口円忙叭 FijIVfldlrgJr^cyclDnFlI.^『刚建立的work 库是空的,因为里面什么东西都没有,但是当添加了相应的文件后,编译一 次,work 就会有容了。
Modelsim脚本仿真教程
![Modelsim脚本仿真教程](https://img.taocdn.com/s3/m/45c0836358fafab069dc02ee.png)
Modelsim脚本仿真教程
以计数器C OUNTER为例
第1步:建立工程文件夹
在电脑中任意位置建立一个空文件夹(路径不能包含中文),把设计源代码.v文件,仿真激励文件.v,仿真脚本文件.do拷贝到该目录下。
打开Modelsim软件,点击菜单项File->Change Directory..,选择刚才建立的文件夹作为当前工程路径。
第2步:执行脚本文件
在Transcript栏中输入“do sim.do”,按回车键,执行仿真脚本文件。
如果Modelsim软件中没有出现Transcript栏,只需在菜单项选择View->Transcript即可。
第3步:在Wave窗口中观察波形
第4步:结束仿真
在菜单项选择Simulate->End Simulation即可结束当前仿真。
如若波形有错,则修改源代码或激励文件后重新执行第2步。
附件:。
Modelsim6.5基本仿真步骤
![Modelsim6.5基本仿真步骤](https://img.taocdn.com/s3/m/f04832d1240c844769eaee2a.png)
复制以下路径文件到新建的仿真目录下(我的仿真目录是/我的文档/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仿真流程](https://img.taocdn.com/s3/m/4c3a744e76232f60ddccda38376baf1ffc4fe322.png)
modelsim仿真流程ModelSim6.4仿真的操作流程1. ModelSim简介ModelSim是Mentor公司的产品。
在业界,它被认为是最优秀的HDL语言仿真软件。
它提供友好的仿真环境,是支持VHDL和Verilog混合仿真的仿真器。
它采用直接优化的编译技术、T cl/Tk技术和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核。
其个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。
其主要特点可概括如下:RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;VHDL和Verilog混合仿真;源代码模版、项目管理;集成了性能分析、波形比较、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象(Virtual Object)、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;C和T cl/Tk接口,C调试;对SystemC的直接支持和HDL任意混合;支持SystemVerilog的设计功能;对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;ASIC Sign off。
ModelSim分几种不同的版本:它们分别是SE、PE、LE和OEM,其中SE(System Edition)是最高级的版本,PE是版本,LE是版本,而集成在Actel、Atmel、Altera、Xilinx以及Lattice 等FPGA厂商设计工具中的均是其OEM(Original Equipment Manufacture,原始设备生产商)版本。
SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSim XE为例,对于代码少于40000行的设计,ModelSim SE 比ModelSim XE要快10倍;对于代码超过40000行的设计,ModelSim SE要比ModelSim XE快近40倍。
Modelsim仿真流程-经验总结
![Modelsim仿真流程-经验总结](https://img.taocdn.com/s3/m/063fe0cf80c758f5f61fb7360b4c2e3f56272541.png)
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后仿真(基于xilinx)
![modelsim后仿真(基于xilinx)](https://img.taocdn.com/s3/m/dc21625cbe23482fb4da4cfa.png)
Modelsim做后仿真(基于xilinx)一、新建modelsim后仿真库为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_verd:/Xilinx/verilog/src/simprims/*.v其中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。
以下凡是要根据自己系统环境改变的内容,我都会用绿色标出,并加一个下划线。
编译完之后,你会发现你的工程文件夹下出现了一个simprim文件夹,里面又有很多个文件夹。
这些就是我们要的库了。
第四步:按照上面的方法,编译另外两个库。
所需要键入的命令分别如下:vlog -work unisim_ver d:/Xilinx/verilog/src/unisims/*.vvlog -work xilinxcorelib_verd:/Xilinx/verilog/src/XilinxCoreLib/*.v如果你想要编译的是VHDL的库,你需要建立的库分别是simprim,unisim和xilinxcorelib。
这三个库所需要的modelsim指令分别如下:vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_Vcomponents.vhd vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_Vpackage.vhd vcom –work simprim d:Xilinx/VHDL/src/simprims/simprim_VITAL.vhdvcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VCOMP.vhdvcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VPKG.vhdvcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VITAL.vhdvcom –work unisim d:Xilinx/VHDL/src/unisims/unisim_VCFG4K.vhdvcom –work xilinxcorelib d:Xilinx/VHDL/src/ XilinxCoreLib/*.vhd关于VHDL方面,我没有实践过,如果有误的话,改一下应该问题也不大。
modelsim后仿步骤
![modelsim后仿步骤](https://img.taocdn.com/s3/m/67f3a62a5901020207409c3c.png)
Modelsim 后仿真操作步骤后仿就是时序仿真,因为时序仿真是在综合之后故称后仿真。
现将综合到后仿的简单步骤细列如下(并附图):一,综合(所用工具是quartus)1,建立工程,其他不变,只是在选择仿真工具时留意下图红圈处。
(图1)2,设置仿真工具:assignments->settings...->EDA Tool Settings->Simulation 的Toll name 选择modelsim,其他默认设置即可,3,综合,综合成功后,可以看到再工程目录的simulateion->modelsim下面有两个文件.sdo和.vo文件,前者是加了标准延时的时序反标注文件,后者是综合出来的网标文件。
(图2)那么后仿时就是对.vo文件进行仿真,且仿真文件(testbench)就是前仿真时的文件。
只是还要加入库文件,和延时文件(.sdo)。
二,时序方针(所用工具是modelsim)1.首先编译altera 库文件: 在modelsim新建工程,在工程的library下新建一个库命名为sim;(图3)再加入文件,浏览到altera/quartus的安装目录再找eda->sim_lib,(图4)我的是:D:\altera\80\quartus\eda\sim_lib,选择所有.vhdl文件或者.verilog文件(根据自己设计所采用的语言,选择相应的文件,如果阁下是两种语言联合编程,那就把所有的文件全部编译,肯定错不了,我试过了。
),全部编译后,可以在libraray->sim中看到编译后的文件了。
2,在modelsim下建立新的工程,将在quartusII下生成的.vo文件和测试文件testbench加入工程中,(图5)全部编译,通过后,选择状态栏中start simulation打开一个仿真对话框,(图6)选择仿真对象为work->testbench,(图7)再选择library添加库sim,(图8)再选择SDF,添加延时文件.sdo,注意这里在Apply to Region文本框中填上所选择延时文件的作用域,即您老在testbench里面所实例化的顶层文件的实例化名(红色圈出)。
modelsim后仿真过程
![modelsim后仿真过程](https://img.taocdn.com/s3/m/2b2aa6e77c1cfad6195fa7d6.png)
Modelsim后仿真过程具体流程:1、在综合后的网表中关联库文件:在综合后文件开头使用`include "路径/文件名.v"语句即可。
2、新建库:在库信息栏(如图1)空白处右击,选择new,library,打开创建库窗口(如图2),在creat一栏选择新建库并逻辑映射到该库,库名自己命名(注意不要与库信息栏已经存在的库如work、std等起相同的名字,以免冲突),库物理名默认与已命名的库名一致,建议不做修改,然后点击ok。
图1图23、设置文件编译到新建库:在project信息栏(如图3)空白处右击,选择properties,打开工程编译设置窗口(如图4),Do Not Compile不选;点击Compile to library旁边的倒三角,选择自己已新建的库;Place in Folder同样点击旁边的倒三角选择,一般都是默认顶层;然后点击ok。
图3图44、编译与仿真:编译步骤1中所得的综合后的网表文件,并进行仿真,其过程与前仿过程一样,这里不再赘述,但注意此时仿真时要在自己新建的库中找欲仿真模块,与前仿时在work中找欲仿真模块是同样的过程。
疑点回答:(1)`include "路径/文件名.v"中的路径可以是绝对路径,也可以是相对路径,若库文件(.v文件)与综合后的网表文件在同一路径下,则路径可以省略,即为`include "文件名.v"。
(2)在综合后的网表中添加库文件的目的是将他们“关联”成一个文件,这样编译时就可以识别综合后的网表中调用的库元件,也就是实现了库的调用。
(3)我们新建的库只是一个空的可存储编译信息的库类型文件包,并不是实际的引入了库,其目的就是用来存放已关联库文件的综合后的网表的编译信息,至于与实际库信息的关联是通过网表关联实现的;而其他自带的库(work库除外,其用于存放前仿编译信息,也是空的,不含任何库信息)比如std等都是实际存在的,若不新建,直接在这些库中编译会造成不必要的麻烦。
modelsim仿真详细过程(功能仿真与时序仿真)
![modelsim仿真详细过程(功能仿真与时序仿真)](https://img.taocdn.com/s3/m/7cf184ebad51f01dc281f1cf.png)
序,这样比较方便些。软件自带的编辑环境不是很好,使用第三方的编辑工
具是推荐的方法。建议使用UltraEdit或Notepad++这些专业的代码编辑软
件。
UltraEdit偏重于功能的强大和丰富的用户可定制化特性,而
Notepad++更加注重易用性。两者在普通功能上差异不是特别大,根据自己的
喜好选择一款即可。
图5给工程中添加文件
在路径G:\FPGA_Project\ModelSim\counter8下新建两个文件,一个
是counter8.v,一个是test_counter8.v,前者是我们的原始的设计文件,后者
是其相应的仿真测试文件。在这个路径的Windows目录下,在空白处右键选
择新建一个文本文档.TXT格式,然后在这个文件上右键选择UltraEdit或Edit
modelsim仿真详细过程(功能仿真与时序仿真)
ModelSim仿真入门:功能仿真
本实验的目的就是在ModelSim环境下学习掌握该软件的一般仿真测
试流程和仿真测试方法,另外学习编写简单的Test Bench程序并在ModelSim
下进行调试。
实验步骤如下:
1.打开ModelSim软件,如图1所示:
withNotepad++就可以启动相应的代码编辑工具进行编辑了,保存的时候注意
存成.v或格式即可。
新建一个工程,在弹出的对话框中,给该工程命名并指定一个存放的路径,
如图4所示:
图4新建工程
在这里,工程名和你的顶层文件名保持一致是推荐的做法。路径的注
意事项已经说过,这里不再提及。默认的库名就是work,这个无需更改,点
- 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文 件。
综合后仿真
仿真的基本概念
仿真的分类?
布局布线后仿真(后仿真),即时序仿真,是指使用 布局布线后综合工具给出的模块和连线的延时信息, 在最坏的情况下对电路的行为作出实际的评估。