ModelSim-Altera_6.5仿真入门教程

合集下载

使用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 窗口,观察各个信号传递关系。

在quartusII中用modelsim-altera仿真

在quartusII中用modelsim-altera仿真

在quartusII中用modelsim_altera做功能仿真1.设置modelsim_altera的执行路径(即其安装路径中的可执行文件的路径)(1)Tool→Options(2)打开如下图:(3)选择general →EDA Tool Options,在右侧的窗口中选择Modelsim_Altera,在Location of Executable中单击,用浏览的方式找到该软件的安装路径中的可执行文件路径,单击确定。

到此仿真软件的设置基本完成了。

2.项目仿真当我们建立一个新的项目时是需要对其中代码进行仿真的,整个过程需要三步:2.1首先,要预先设置仿真软件;下面介绍如何预设仿真软件。

1.Assignments→Settings…2.打开如下界面3选择“Simulation”,右侧设置按上图设置。

2.2其次,仿真之前需要编写测试平台,测试平台有两种的方法:●直接建立XX.v文件●在quartusII中自动生成测试平台模板文件,文件为XX.vt文件下面介绍如何自动生成测试平台模板文件。

1.Processing→Start→Start Test Bench Template Writer注意:要生成testbench模板的前提条件是为项目选择预用的仿真软件,然后模块必须编译成功。

Testbench模板生成后的默认路径为:项目目录\simulation\modelsim\项目名.vt(因为刚才在预设置仿真软件时的“Output Directory”选择的是默认的值simulation\modelsim)。

2.对于自动生成的测试平台模版需要打开修改测试激励信号,这里不做介绍,很简单的。

2.3改写完后要在项目里添加测试平台文件到项目里。

1.Assignments→Settings…2.在打开界面做如下操作:(1)选择“Compile test bench”,然后单击“Test Benches…”(2)打开下面的窗口(3)单击“New”打开下面的窗口,且按图中填写相关信息这个窗口是用来输入testbench的资料和选择testbench的路径的。

ModelSim-Altera使用方法.pdf[1]

ModelSim-Altera使用方法.pdf[1]

平台软件: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仿真必会教程

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搞定,波形神马的就出现了。

手把手教你使用Modsim做仿真

手把手教你使用Modsim做仿真

手把手教你使用Modsim做仿真使用Altera的fpga已有两年了,由于之前有做单片机编程经验,时序都是写好上板测,系统做大了之后,觉得效率比较低,于是想使用Modsim来做仿真,以直观地看出每个时钟内信号的状态。

本文目的是了解使用Modsim的步骤,作者已预先写好了源码和测试代码。

使用软件平台:ModelSim-Altera 6.5b + Quartus II 9.11,打开Modsim软件后,通过File / New / Project 建立工程,如图1-1所示:图1-1 建立工程2,此时出现图1-2界面,需要设定工程名称和保存路径,库文件使用默认路径,图1-2 设定工程名称和路径3,创建好工程和路径之后点击“OK”按钮,可出现添加文件的选项窗口,如图1-3所示:图1-3添加文件的选项窗口4,此处由于已编辑好了所有文件,因此选择“Add Existing File”选项,找到文件保存位置并添加,界面如图1-4所示:图1-4 添加文件到工程5,选择好已写好的文件,点击“打开”可添加进工程,如图1-5所示:图1-5 已添加必要文件6,此时可以通过“编译”按钮进行编译和查错,在编译通过之后可看到文件状态“Status”由“?”变为“√”,在消息窗口中有文件编译完成的提示,如图1-6所示:图1-6 编译通过7,编译完成之后可开始仿真,选中“Library / work / testfile”点击鼠标右键,选择“Simulate”,如图1-7所示:图1-7 Simulate 选项8,此时modsim软件出现图1-8所示界面:图1-8 仿真界面9,在左侧“sim”显示区域空白处点击鼠标右键,添加需要查看波形的寄存器名称,并点击“run”开始仿真,程序计算完毕,将显示出仿真的波形,如图1-9所示:图1-9 仿真结果出现波形之后,可通过“放大/缩小”选项和时间渐进条来查看波形。

仿真时间如果不合适,可自行设定,并回到图1-7所示位置,重新开始仿真。

modelsim仿真流程

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使用教程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新手入门仿真教程

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点击缩小键,如图,就可以看到波形啦到此结束!初学者,如有错误,欢迎指出。

Altera_Modelsim仿真资料

Altera_Modelsim仿真资料

ModelSim学习笔记(一)初学ModelSimSE时被迷糊了几天的若干概念黄俊April 2007以前用的是LATTICE的,ispLEVER有自带了一个OEM版的ModelSim。

要仿真时,不需要添加库,用起来比较方便,自己有点懒,所以就一直凑合着用。

现在转向用ALTERA 了,ALTERA也有OEM版的ModelSim,也不用添加库。

后来听说ModelSim SE的功能更强大,速度更快,所以就决定把ModelSim SE好好摸索一下,再多学习一点关于TestBench 技巧方面的知识。

我的学习资料主要是ModelSim SE自带的教程、ALTERA提供的资料以及edacn上面ModelSim专栏由网友们上传的资料。

因为是初学,加上看到英文资料一大堆,烦都烦死,而有些中文文档可能是有些步骤没有讲清楚,我实际按照文档上面说的一步一步做下来也老是完成不了,花了不少时间。

我于是就想自己摸清楚后,把步骤截图下来,整理清楚,做成笔记。

一方面加深自己的认识,另一方面对初学者也许会有些许用处。

我近期计划陆续整理出以下几个方面的学习笔记:初学ModelSimSE时被迷糊了几天的若干概念在ModelSimSE中添加ALTERA仿真库的详细步骤用ModelSimSE进行功能仿真和时序仿真的方法(ALTERA篇)ModelSimSE中常用到的几个命令及DO文件的学习笔记近来学到的几招TestBench的技巧MSN: paulhuang_sz@E-mail: huangjun5927@Blog: /index.php/2599初学ModelSimSE时被迷糊了几天的若干概念1、什么是库?2、什么是设计单元?3、如何添加ALTERA仿真库?4、ModelSim的流程有哪些,实际开发中哪种流程最适用?5、操作ModelSim要学习哪些操控方式?1、什么是库(Library)?(1)我理解的库就是用来存放已编译好的设计单元(Design Units)的文件夹。

ModelSim后仿真 详细流程介绍

ModelSim后仿真 详细流程介绍
综合后门级功能仿真,综合 工具给出的仿真网表已经是 与生产厂家的器件的底层元 件模型对应起来了,可估计 门延时对电路带来的影响。
考虑的是理想化的情况, 没有门延迟,没有布线延 迟。只关注代码的行为级 功能描述是否正确。
只能估计门延时,不能估计线延 时,仿真结果和布线后的实际情 况还有一定的差距,并不十分准 确。由于目前综合工具比较成熟, 一般省去此环节的仿真,直接进 行下一步仿真。
延时信息
目录
仿真的基本概念
后仿真前的基本准备工作
后仿真的基本操作步骤
后仿真前的基本准备工作
ModelSim库
库文件,是指已经编译通过的设计文件的总体。 ModelSim中有两种库类型:
工作库
1.库的内容会随着使用者 更新设计文件和重新编译 而变化; 2.存放当前设计文件编译 Description of the business 后产生的设计单元; 3.编译前必须先创建好工 作库; 4.每次编译只允许有一个 工作库; 5.默认的工作库名是work
仿真的基本概念
什么是仿真?
仿真的一般性含义是:使用EDA工具,通过对设计 的实际工作情况进行模拟,验证设计的正确性。
仿真过程,是正确实现设计的关键环节,用来验证设计者的设 计思想是否正确,及在设计实现过程中各种分布参数引入后, 其设计的功能是否依然正确无误。
仿真的基本概念
什么是仿真?
仿真的一般性含义是:使用EDA工具,通过对设计 的实际工作情况进行模拟,验证设计的正确性。
LPM
altera_mf
调用了 lpm 元件的设计仿真时需要
调用了 Altera 的MegaFunction的设计仿真时需要
调用了 Altera 的原语(primitive )的设计仿真时需要

Modelsim的功能仿真的详细过程适合初学者

Modelsim的功能仿真的详细过程适合初学者

11 看波形文件为
12 右击输出信号
13 在 Format 中点击 Analog,观看模拟信号,改变宽带
14 正旋波
6.
选择 Compile > Compile,出现如下窗口。同时选中 4 个文件。
7 打开 work 编译 双击 wave_top,wave_top 相当与 test加波形文件
10 在 Transcript 栏中打 run 10us (自己根据实际的情况)
Modelsim 中的功能仿真
1. modelsim 中库的编译 1. 自己新建一个文件夹,如 D:\modelsimpro\modelsim,将 需要的文件拷贝到 (如果用到了 IP 核, 该文件夹下。 那要把 altera_mf.v 加入, 还要把 cycloneii_atoms.v 所用的) 2. 点击 modelsim 的图标,打开 modelsim 的界面窗口。 3. 选择 File > Change Directory,选择步骤 1 中的目录,点击 OK。 4. 选择 File > New > Library。 5. 在 library name 与 library physical name 两栏中均填 work.点击 OK。

modelsim基本仿真流程

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"按钮。

在弹出的对话框中,选择要仿真的信号和时钟,并设置仿真时间范围。

使用ModelSim进行仿真

使用ModelSim进行仿真

使用Modelsim仿真本文档主要介绍单独用Modelsim进行FPGA仿真的具体步骤以及相关仿真文件的生成方法。

对于FPGA设计,仿真主要分为三类:功能仿真、综合后仿真和时序仿真。

功能仿真是在理想的状态下(不考虑延迟)验证电路的功能是否符合设计要求。

综合后仿真,即门级仿真,是对综合后的门级网表文件进行仿真,此时只考虑门的延时,而没有加入延时文件。

时序仿真是在综合后仿真的基础上加上延时文件,这综合考虑了设计的路径延时和门延时的情况,以验证电路在实际电路有各种延时的情况下是否有错误。

下面我们将分步骤讲解用ModelSim进行FPGA仿真的方法。

一、 用ModelSim编译Quartus II的库1.先到modelsim的安装目录下找到文件”modelsim.ini”,将其属性改为可写。

2.启动Modelsim,点击File‐>New‐>Library,在弹出的【creat a new library】窗口中选中a new library and a logical mapping to it,然后在Library Name下填入Altera,点击OK。

3.在主菜单中选择compile‐>compile…,在弹出的【Compile Source Files】窗口上,通过窗口上【library】下拉菜单选择库名Altera,在【查找范围】中选择quartus安装目录下的…\quartus\eda\sim_lib目录,选择所需要编译的库(如不确定,可全选),点击【compile】,编译完成后,点击【done】。

二、 用Modelsim进行仿真a.ModelSim的功能仿真主要流程如下:1.新建一个工程,打开File‐>New‐>Project,输入工程名,指定工程保存的路径,然后添加文件,如下图:在project的空白处,单击右键也可以再添加存在的文件或创建新的文件。

2.添加文件到工程中去。

modelsim详细图文使用教程(菜鸟基础教程)

modelsim详细图文使用教程(菜鸟基础教程)

版权所有,翻录必究!
天津大学
电子信息工程学院
戴鹏
总结:
建立工程编写主程序和测试程序编译仿真观察波形。 写了很多,但是应该讲得很详细了吧,希望对大家的学习有所帮 助。
版权所有,翻录必究!
写完代码后,不能马上就编译,要先保存,否则,编译无效。我们会看到“保存”的 图标是两色的,而且 half_clk.v 后的“?”还存在,这说明你没有保存文件,
这时,只需要点击保存,就会发现“保存”的图标变成了阴影,这样编译才有效,而 就是这么不起眼但至关重要的一步“保存” ,往往被很多初学者忽视,最终怀疑程序和
出现下框, 写入测试程序的名字 half_clk_tb, tb 是 testbench 的意思, 注意选 verilog, Ok。
这样就把 half_clk_tb.v 加载到了 project 中,双击 half_clk_tb.v 在右边的程序编辑区 中编写代码: `timescale 1ns/1ns
天津大学
电子信息工程学院
戴鹏
Modelsim 详细使用方法
很多的 modelsim 教程中都讲得很丰富,但忽视了对整个仿真过程的清晰解读,而且都 是拿 counter 范例举例子,有些小白就不会迁移了。这里我们着眼于能顺利的跑通一个自己 写的程序,一步一步的讲解,如果你是一个初学者,这再适合你不过了,虽然貌似字写得比 较多,那是因为写得相当的详细,一看就会啦 O(∩_∩)O~
版权所有,翻录必究!
天津大学
软件问题。其实只是没保存。
电子信息工程学院
戴鹏
2、写测试程序(testbench):每一个主程序(实现我们需要的某种功能的程序) ,都要 配套的编写一个测试程序,为什么?这里不打算细说,testbench 是给主程序提供时钟和 信号激励,使其正常工作,产生波形图,具体请参看 verilog 教课书。 在 half_clk.v 下方的空白区域内右键,选择 Add to Project New File

Modelsim6.5基本仿真步骤

Modelsim6.5基本仿真步骤
1、建立文件夹,准备文件
复制以下路径文件到新建的仿真目录下(我的仿真目录是/我的文档/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仿真⼊门ModelSim仿真⼊门之⼀:软件介绍编写这个教程之前,为了让不同⽔平阶段的⼈都能阅读,我尽量做到了零基础⼊门这个⽬标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度。

如果您是FPGA开发⽅⾯的初学者,那么这个教程⼀定能够帮助你在仿真技术上越过新⼈的台阶;如果您是FPGA开发的⽼⼿,这篇⽂档也并⾮对您没有帮助,您可以把教程发给其他刚⼊门的同事,免去您亲⾃上阵指导的⿇烦,把主要的精⼒放在更有价值的地⽅。

⼀、FPGA设计仿真验证简介严格来讲,FPGA设计验证包括功能仿真、时序仿真和电路验证,它们分别对应整个开发流程的每⼀个步骤。

仿真是指使⽤设计软件包对已实现的设计进⾏完整的测试,并模拟实际物理环境下的⼯作情况。

功能仿真是指仅对逻辑功能进⾏模拟测试,以了解其实现的功能是否满⾜原设计的要求,仿真过程没有加⼊时序信息,不涉及具体器件的硬件特性,如延时特性等,因此⼜叫前仿真,它是对HDL硬件描述语⾔的功能实现情况进⾏仿真,以确保HDL语⾔描述能够满⾜设计者的最初意图。

时序仿真则是在HDL可以满⾜设计者功能要求的基础上,在布局布线后,提取有关的器件延迟、连线延时等时序参数信息,并在此基础上进⾏的仿真,也成为后仿真,它是接近于器件真实运⾏状态的⼀种仿真。

⼆、仿真软件ModelSim及其应⽤HDL的仿真软件有很多种,如VCS、VSS、NC-Verilog、NC-VHDL、ModelSim等,对于开发FPGA来说,⼀般是使⽤FPGA⼚家提供的集成开发环境,他们都有⾃⼰的仿真器,如Xilinx公司的ISE,Altera公司的Quartus II等,但是这些⼚家开发的仿真器的仿真功能往往⽐不上专业的EDA公司的仿真⼯具,如ModelSim AE(Altera Edition)、ModelSim XE(Xilinx Edition)等。

Quartus II设有第三⽅仿真⼯具的接⼝,可以直接调⽤其他EDA公司的仿真⼯具,这极⼤地提⾼了EDA设计的⽔平和质量。

ModelSim入门教程

ModelSim入门教程

• 在出现的Add Simulation Configuration对话框的右下角打开optimization options, 打开后切换到Options选项卡页面,在optimization Level中选择Disable optimization, 如图:
25
• 点击ok后,返回Add Simulation Configuration对话框,在Optimization栏中关闭 Enable Optimiztion,再展开work目录,选中test_counter8,之后save保存,如图:
它支持verilogvhdl以及他们的混合仿真它可以将整个程序分步执行使设计者直接看到他的程序下一步要执行的语句而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值可以在dataflow窗口查看某一单元或模块的输入输出的连续变化等比quartus自带的仿真器功能强大的多是目前业界最通用的仿真器之一
10
11
3.为工程添加文件 工程建立后,选择Add Exsiting File后,根据相应提示将文件加到该Project中 这里是count4.v和其测试向量count_tp.v,源代码如下:
12
13
4.编译文件 编译(包括源代码和库文件的编译)。编译可点击ComlileComlile All来完成。
注:/electronic/76/electrical202060214186 _1.html
8
仿真
仿真分为功能仿真,门级仿真,时序仿真
功能仿真(前仿真,代码仿真)
主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路 门延迟与线延迟,主要是验证电路与理想情况是否一致。可综合FPGA代 码是用RTL级代码语言描述的,其输入为RTL级代码与Testbench.在设计 的最初阶段发现问题,可节省大量的精力

Modelsim的仿真教程

Modelsim的仿真教程

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

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

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

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

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

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

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

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

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

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

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

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

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

modelsim-altera 仿真设置

modelsim-altera 仿真设置

1、设置modelsim-altera的执行路径(即其安装路径中的可执行)(1)Tool->Option(2)General -> EDA Tool Option ,在右侧的窗口中选择Modelsim-Altera , 在Location Of Execatable中单击,并找到该软件的安装路径中的可执行文件路径,单击确定。

2、项目仿真2.1预先设置仿真软件(建立测试文件前必须选好仿真软件,且项目模块必须编译成功)(1)Assignments ->Settings(2)选择“Simulation”,设置方式如下图注:第三步要放到流程2.3再做2.2建立测试文件Processing ->Start ->Start Test Bench Template Writer2.3将Testbench链接到仿真环境下(1)Assignments ->Settings(2)选择“Simulation”,点击NativeLink settings下的Compile testbench中“Test Benches”(3)在弹出的窗口中点击“New”添加Testbench文件(该文件默认存放的路径:项目(4)目录\simulation\modelsim\项目名称.vt)第2步一定要加后缀“_vlg_tst”不然会出错第4步浏览找到Testbench文件(该文件默认存放的路径:项目(4)目录\simulation\modelsim\项目名称.vt)(4)然后一路“OK”下去。

2.4编辑TestBench文件(记得点保存)需要编辑TestBench文件中的内容,在Quarters II Files中找到其路径(该文件默认存放的路径:项目目录\simulation\modelsim\项目名称.vt)打开就好,或者直接在Modulsim中编辑更方便。

3、执行仿真选择Tools ->Run EDA Simulation Tool ->EDA RTL Simulation,然后会自动运行Modelsim_altera软件并进行编译和波形仿真。

modelsim下创建Altera仿真库的问题汇总

modelsim下创建Altera仿真库的问题汇总

ModelSim SE中Altera仿真库的添加在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:·Quartus不支持Testbench;·调用了megafunction或者lpm库之类的Altera的函数;·时序仿真要在Modelsim下做仿真。

下面以Altera器件为例,介绍如何在ModelSim中加入Altera的仿真库,Quartus II软件中自带有Altera的仿真库,只要把它拿到ModelSim中去编译一下就可以了,具体步骤如下:1.设置仿真库路径打开ModelSim安装目录(我用的是ModelSim SE 6.5版本,安装在D:/ModelSim_6.5b目录下),新建文件夹altera,我们就在该目录下存放预编译的各种Altera库。

启动ModelSim SE 6.5,在主窗口执行【File】/【Change Directory】命令将路径转到altera 文件夹。

或在命令行中执行cd D:/ModelSim_6.5b/altera。

2.新建库Quartus II中提供的仿真库文件存放的路径是.../altera/91/quartus/eda/sim_lib,每个库文件提供了两种形式:.v(V erilog)格式和.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文件。

网上的很多教程都是把这些文件一起编译,这样适用于V erilog和VHDL混合仿真,但如果只用一种语言,如V erilog则完全没必要全部编译。

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

平台软件: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。

图2.7 输入工程文件信息3. 单击OK,关闭本对话框。

新的工程文件将会在工程窗口显示。

单击Close,以关闭Add Items to the Project。

图2.8 新的设计文件LED_FLOW.v4. 双击打开LED_FLOW.v文件(注意:若是Verilog文件已经关联了其他的文本编辑器,则双击后在关联的文本编辑器中打开)。

图2.9 LED_FLOW代码输入窗口在LED_FLOW.v输入下面的测试平台代码:view sourceprint?01`timescale1ns/1ns02module LED_FLOW;0304reg CLOCK_50M;05reg RST_N;06wire[9:0] LED;0708led led_inst09(10 .clk_50M(CLOCK_50M),11 .reset_n(RST_n),12 .led(LED)13);1415initial16begin17 CLOCK_50M = 0;18 while(1)19 #10 CLOCK_50M = ~CLOCK_50M; 20end2122initial23begin24 RST_N = 0;25 while(1)26 #10 RST_N = 1;27end2829initial30begin31 $display($time,"CLOCK_50M=%d RST_N=%d LED =%d", CLOCK_50M, RST_N, LED);32end3334endmodule录入完代码后,单击Save。

图2.10 输入testbench代码5. 选择File>New>Source>Verilog,创建新的Verilog文件,如图2.11所示。

图2.11 创建新的Verilog文件6. 录入下面的代码,录入画面如图2.12 所示。

view sourceprint?1`timescale1ns/1ns2module led(3 input clk_50M, // System clock 50MHz4 input reset_n, // System reset5 output reg[9:0] led // led6);78reg[13:0] counter = 0;9reg[3:0] state = 0;view sourceprint?01always@ (posedge clk_50M, negedge reset_n)02 if(!reset_n)03 counter <= 0;04 else05 counter <= counter + 1'b1;0607always@ (posedge counter[13])08 if(!reset_n)09 state <= 0;10 else11 begin12 if(state == 4'b1001)13 state <= 0;14 else15 state <= state + 1'b1;16 end1718always@ (posedge clk_50M, negedge reset_n)19 if(!reset_n)20 led <= 0;21 else22 begin23 case(state)24 4'b0000: led <= 10'b00000_00001;25 4'b0001: led <= 10'b00000_00010;26 4'b0010: led <= 10'b00000_00100;27 4'b0011: led <= 10'b00000_01000;28 4'b0100: led <= 10'b00000_10000;29 4'b0101: led <= 10'b00001_00000;30 4'b0110: led <= 10'b00010_00000;31 4'b0111: led <= 10'b00100_00000;32 4'b1000: led <= 10'b01000_00000;33 4'b1001: led <= 10'b10000_00000;34 default: led <= 10'b00000_00001;35 endcase36 end3738endmodule图2.12 录入新文件7. 选择File>Save,输入文件名:led.v,单击Save,如图2.13所示。

图2.13 保存led.v8. 选择Project>Add to Project>Existing File,如图2.14所示。

图2.14添加文件到工程中9. 单击Browse,选择led.v,如图2.15 所示。

图2.15 选择待加入工程的文件10. 单击打开,在Add file to the project窗口,单击OK。

2.3 编译文件在Project标签下的Status列的问号,表示文件尚未编译进工程,或者在最后编译前,源文件有所改动。

欲编译文件,选择Compile<Compile ALL,或者右击Project标签,选择Compile>Compile All。

1. 倘若此处没有错误,编译成功的消息,就会在Transcript窗口如图2.6所示。

图2.16 编译成功3 仿真工程3.1 开始仿真1. 单击Library图标,选择work,单击+以展开选项,然后选择LED_FLOW。

单击右键,选择编译,如图3.1所示。

图3.1 单击Simulate2. 单击Simulate,到达图3.2所示画面。

图3.2 仿真窗口4. 在图3.2中,单击LED_FLOW,单击右键,然后选择Add>To Wave>All Items in region,然后单击左键。

出现图3.3所示画面。

图3.3 Add To Wave3.2 仿真设置1. 完成上述最后一步后,波形窗口出现。

图3.4 波形窗口2. 在Run Length列输入仿真时间长度为10ms,如图3.5所示。

图3.5 设置Run Length3. 单击Run按钮,如图3.6所示。

图3.6 运行仿真4. 运行若干秒后,将会如图3.9所示的仿真结果。

图3.7 显示仿真结果5. 连续单击Zoom Out图标,可查看仿真的完整波形,如图3.8所示。

图3.8 波形窗口6. 单击鼠标所指的+,展开LED_FLOW的波形,如图3.9所示。

图3.9 展开波形通过放大/缩小波形,可以观察到LED的值在保持变化,即LED的时序效果。

若将其移植到Quartus II 中,适当配置后,经过综合、时序分析、引脚分配、配置及下载等,即可实现跑马灯的效果。

至此,仿真的所有进程完毕。

相关文档
最新文档