Modelsim使用简明指南

Modelsim使用简明指南
Modelsim使用简明指南

Modelsim使用简明指南

1 前言

作为一种简单易用,功能强大的逻辑仿真工具,Modelsim具有广泛的应用。这里对ModelSim作一个入门性的简单介绍。首先介绍ModelSim的代码仿真,然后介绍门级仿真和时序验证。

2 代码仿真

在完成一个设计的代码编写工作之后,可以直接对代码进行仿真,检测源代码是否符合功能要求。这时,仿真的对象为HDL代码,比较直观,速度比较快,可以进行与软件相类似的多种手段的调试(如单步执行等)。在设计的最初阶段发现问题,可以节省大量的精力。

2.1 代码仿真需要的文件

1.设计HDL源代码:可以使VHDL语言或Verilog语言。

2.测试激励代码:根据设计要求输入/输出的激励程序,由于不需要进行综合,书写具有很大的灵活性。

3.仿真模型/库:根据设计内调用的器件供应商提供的模块而定,如:FIFO(Altera常用的FIFO有:lpm_fifo /lpm_fifo_dc等)、DPRAM等。

2.2 代码仿真步骤

1.建立工程:在ModelSim中建立Project。如图2.1所示,点击File?New?Project,得到Creata Project的弹出窗口,如图2.2所示。在Project Name栏中填写你的项目名字,建议和你的顶层文件名字一致。Project Location是你的工作目录,你可通过Brose按钮来选择或改变。Ddfault Library Name可以采用工具默认的work。

图2.1

图2.2

2.给工程加入文件:ModelSim会自动弹出Add Items to the project窗口,如图2.3所示。选择Add Exsiting File后,根据相应提示将文件加到该Project中。

图2.3

3.编译:编译(包括源代码和库文件的编译)。编译可点击Comlile?Comlile All来完成。

4.装载文件:如图2.4,点击Simulate?Simulate…后,如图2.5所示,选定顶层文件(激励文件),ADD加入,然后点击LOAD,装载。

图2.4

图2.5

5.开始仿真:同过菜单:View -> Structure,View -> Signals,View -> Wave打开Structure,Signals,Wave三个窗口。在Structure窗口内选定你所要观察的信号所在的模块,然后在Signals窗口选定信号,同过鼠标左键拖放到Wave窗口,如图2.6。然后在Wave窗口,点击run all,运行,在波形窗口就可以看到信号的仿真波形。如图2.7.

图2.6

图2.7

6.波形信号的保存:有时,在波形窗口内拖放了较多的信号,可以保存起来以后调入。在wave窗口,File -> Save format,保存成*.do文件。以后需要调入时,在modelsim主窗口命令行内执行:do *.do即可。

3 门级仿真和时序仿真

使用综合软件综合后生成的门级网表或者是实现后生成的门级模型进行仿真,不加入时延文件的仿真就是门级仿真。可以检验综合后或实现后的功能是否满足功能要求,其速度比代码功能仿真要慢,但是比时序仿真要快。

在门级仿真的基础上加入时延文件“.sdf”文件的仿真就是时延仿真。优点是:比较真实的反映逻辑的时延与功能,缺点是速度比较慢,如果逻辑比较大,那么需要很长的时间。

在这里仿真以Altera的器件为例。利用经过综合布局布线的网表和具有时延信息的反标文件进行仿真,可以比较精确的仿真逻辑的时序是否满足要求。

3.1 仿真需要的文件

1.综合布局布线生成的网表文件

2.测试激励

3.元件库

4.时序仿真的话,还需要综合布局布线生成的具有时延时延信息的反标文件(sdf)3.2 仿真步骤

1.在Quartus2中正确设置仿真工具:如图3.1所示,点击Quartus2的Assignment菜单下的EDA Tools Settings,进入图3.2。在图3.2中,点击EDA tool type,再在Tools Settings 的下拉菜单中,根据你所使用的语言与Modelsim的版本,作相应的选择。

图3.1

图3.2

2. 用Qusrtus2产生仿真所需要的网表与SDF文件:在作了第一步的正确设置后,每当你完成一次编译,Quartus2会自动在你的当前Project目录下生成一个simulation目录,在该目录下有一个modelsim的目录。在该目前下,就有我们所要的文件。如果使用VHDL语言,网表文件是.VHO,SDF文件是SDO;如果是使用Verilog语言,网表文件是.VO,SDF 文件也是SDO。你也可以通过Quartus2的Processing?EDA Tool Post-Compilation

Commands?Write Output Netlists来产生以上的文件,该方法如图3.3所示。

图3.3

3.在ModelSim中建立Project:与代码仿真相似,建立工程,并加入文建。不同的是,门级仿真或时序仿真,则是加入综合后的网表文件,源代码文件不需要,要将其从Project 中删除。

4.编译源代码和网表:源代码的编译可点击Comlile?Comlile All来完成。

5.库文件的编译:库文件的编译如下所述

在成功建立Project后,Modelsim会增加一个页面,点击Modelsim左下角的Library,

出现如图3.4所示画面,图3.5是上图2.左下角的放大。

图3.4

图3.5

如图3.6所示,点击File?New?Library。得到图3.7,在Library Name中输入库名,该名应和Altera的库名保持一致。在作代码仿真(功能仿真)时,需要编译的库为220model 和altera_mf。在作门级仿真(时序仿真)时,所需编译的库因所用HDL语言的不同而不同。假设用Stratix器件,对VHDL,所要编译的库文件为STRATIX_ATOMS.VHD和

STRA TIX_ATOMS_COMPONENTS.VHD;对Verilog语言,则需编译STRA TIX_ATOMS.V文件。

图3.6 图3.7根据所用器件,在 Modelsim中生成相应的库之后。在对其进行编译之前是不能使用的。首先在图3.4中,确认你刚才所加的库已经生成。以下以编译220moel库为例,来说明库的编译过程。如图3.8所示,点击Compile Compile后,弹出图3.9所示窗口。

图3.8

图3.9

在Library窗口中选择220model,在查找范围(I)中,将其目录定位到Quartus2安装目录下的EDA\sim_lib,Altera的所有仿真库文件都在这个目录下。

可以看到,在该目录下,有220model.v,220model.vhd,220model_87.vhd和220pack.vhd 几个文件;其中220model.v是Verilog的库文件,220model.vhd(93标准),220model_87.vhd (87标准)和220pack.vhd是VHDL库文件。在编译VHDL库文件时,要注意设置Default Options中的use 1993 Language Syntax。

这里,我们依次选定220pack.vhd,220model.vhd,并将Default Options中的use 1993 Language Syntax打上勾,按下Compile按钮。在图3.4的界面中,如果220model的边上出现了一个“+”号,则完成了这个库的编译。按照同样的方法,你可以完成其他库的编译。

6.仿真准备:至此,我们已经准备好了仿真所需要的所有文件:源代码或网表文件,testbench文件,库文件,SDF文件。下面开始仿真。如图3.10所示,点击Simulate Simulate…后,

图3.10

图3.11

弹出图3.11所示窗口。在Design下,点开wok,双击你的testbench图2.标,再单击Add按钮。在Libraries下,单击Add按钮,将刚才所编译的库文件加入,本例中加入了220moel。如图3.12所示

图3.12

对于时序仿真,还要加入反标(sdf)文件,单击SDF,再单击Add,将SDF文件加入。如图3.13。

图3.13

同过Browse加入SDF文件,在Apply to Region框内填入反标文件所对应的模块。在图2.中,disco_test为测试激励程序,u1为被仿真的模块在激励程序中的例化名字。单击ok 将sdf文件加入,然后单击load,就可已开始仿真了。

7.开始仿真:与代码仿真一样,在这里不在说明。

modelsim完美教程

准备事项 1.ModelSim试用版下载 2.范例程序下载(史丹佛大学一门课的期末专题Implememtation of Viterbi Decoder:constrain length K=3, code rate R=1/2, register-exchange) 整个project共含7个Verilog程序:system.v (top-level) |-- clkgen.v |-- chip_core.v |-- controller.v |-- spu.v |-- acs4.v |-- acs1.v (或是另外一个Verilog的简单例子,可以从C:\ SynaptiCAD\ Examples\ TutorialFiles\ VeriLoggerBasicVerilo gSimulation\ add4.v and add4test.v) (或是另外一个VHDL的简单例子,可以从C:\ Modeltech_5.7e\ examples\ adder.vhd and testadder.vhd) ModelSim PE /LE /SE 差别在哪? 本篇文章内容主要在教导软件使用,以Verilog程序为范例。假设各位读者已经熟悉Verilog,废话不多说,让我们马上来见识一下ModelSim ... 快速上手四部曲:建立Project、引进HDL Files、Compile、模拟(Simulate/Loading and Run) 1.建立一个新的Project 1-1 第一次执行程序时,可以从[开始] \ [程序集] \ ModelSim SE \ ModelSim;或是执行ModelSim在桌面的快捷方式

Quartus ii 10.0教程(包含modelsim仿真)

Quartus ii 10.0教程 说明 本文的部分章节,来源于本人翻译的Terasic DE2-115的英文入门文档。 平台 硬件:艾米电子EP2C8-2010增强版套件 软件:Quartus II 10.0 + ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容 ?典型的CAD流程 ?开始 ?新建工程 ?录入Verilog设计 ?编译设计 ?引脚分配 ?仿真设计电路 ?编程及配置到FPGA器件 ?测试设计电路 典型的CAD流程 计算机辅助设计(CAD)软件,使得运用可编程逻辑器件实现所需逻辑电路,变得容易。比如现场可编程门阵列(FPGA)。典型的FPGA CAD设计流程如图1所示。

图1 典型的FPGA CAD设计流程 CAD流程包含以下步骤: ?设计输入——所需电路可通过原理图方式或硬件描述语言方式(如Verilog或VHDL)进行设计。 ?综合——输入的设计被综合进入由逻辑元素(LEs,FPGA芯片提供)组成的电路中。 ?功能仿真——综合电路被测试以验证其功能是否正确,次仿真不考虑时序因素。 ?布局布线——CAD Fitter工具决定网表中定义的LEs如何布置成FPGA芯片中的实际LEs。 ?时序分析——分析已布局布线电路中的不同路径的传播延迟,用以指示所需电路的性能。 ?时序仿真——测试已布局布线电路,验证其是否在功能和时序上都正确。 ?编程及配置——设计的电路,通过编程配置开关,被实现到一个物理的FPGA芯片。 配置开关用于配置LEs和建立所需线路连接。 本指南介绍Quartus II软件的基本特征。展示如何使用Verilog硬件描述语言来设计和实现电路。使用GUI来实现Quartus II指令。通过本份指南,读者将学习到: ?新建工程 ?使用Verilog代码录入设计 ?将综合的电路布局到Altera FPGA ?分配电路的输入输出到FPGA上的指定引脚 ?仿真设计电路 ?编程配置艾米电子EP2C8核心板上的FPGA芯片 1. 开始 在Quartus II中设计的每个逻辑电路或子电路,叫做一个工程。软件每次运行一个工程,并将所有信息保存在单一文件夹中。欲开始一个新的逻辑电路设计,第一步就是新建一个文件夹来保存文件。为了保存本指南的设计文件,在D盘新建introtutorial文件夹。指南者运行的范例为一个简单的双路灯控电路。 打开Quartus II软件,将看到类似于图2的画面。该显示画面包括若干窗口,用户可使用鼠标选择,以访问Quartus II软件的相关功能。Quartus II提供的大多数命令都可用菜单形式来访问。例如,在图2中,在File标签下点击左键,可打开如图3所示的菜单。用左键单击Exit可退出Quartus II软件。

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模擬驗證HDL code 1.在模擬前先準備好我們要模擬的電路檔案(Verilog HDL,TestBench,…) 2. 打開ModelSim,新建一個Project,鍵入Project name 按OK。此處我們的library name 為default library name “work”不必更改。 3.然後再加入我們所要模擬的電路檔案(若尚未準備,可開啟新檔案再將code 鍵入)選Add Existing File,將我們已編輯好的檔案加入。 將我們所需要的檔案加入,按Browse選擇我們所需檔案count.v,

count_test.vt),按下OK。 再將先前所開啟的增加檔案的視窗關閉,按close。 4.按下compile all。

Compile成功沒有顯示出錯誤訊息, 則開始模擬波形 5.按下Simulation, 選擇檔案所在的Library (work), 點選TestBench的Module Name t_Gap_finder 按OK 6.承接上步驟將會跳出以下視窗,若要將所有訊號加入波型中觀察則選擇在 testbench的module name: count_tst按滑鼠右鍵選擇→ Add → Add to Wave。

7.在波型畫面按下Run All開始模擬 跑完後會跳出下面視窗選擇否則可觀察模擬波形,若按下是則會將ModelSim關閉。

8.觀察波形圖是否與功能符合,若與設計不符則修改設計並重複執行Step 4到 Step 8 Testbench語法 `timescale 1 ps/ 1 ps 前面的1ps代表程式中最小的時間單位 後面的1ps代表運算的精準度

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所示窗口。 图2.6 创建工程文件夹 2. 输入文件名称:LED_FLOW,然后选择文件类型为Verilog。 图2.7 输入工程文件信息 3. 单击OK,关闭本对话框。新的工程文件将会在工程窗口显示。单击Close,以关闭Add Items to the Project。 图2.8 新的设计文件LED_FLOW.v 4. 双击打开LED_FLOW.v文件(注意:若是Verilog文件已经关联了其他的文本编辑器,则双击后在关联的文本编辑器中打开)。 图2.9 LED_FLOW代码输入窗口 在LED_FLOW.v输入下面的测试平台代码:

ModelSim使用的一点心得体会

ModelSim使用的一点心得- - 1、至今还没有弄明白为什么要用ModelSim,因为看波形Quartus II自带的工具就可以了啊。 2、我刚刚接触modelsim,我想大多数菜鸟跟我一样,看过如何使用ModelSim的介绍,说句实话,那些介绍写的都太过简单,仿佛大家都不屑写上一些比较“弱智”的步骤,恰恰就是这些看似累赘的步走,难为我好久。 教程上都写道,modelsim的简单使用方法如下:建立库- 影射库到物理目录- 编译代码- 启动仿真。首先建立库就叫我头晕。库的概念用在这儿实在不合适,把我吓坏了,也就没心思看下一步了。在我看来,教程应该这么写: <1> 建立一个目录modelsimStudy。用任何文本编辑器编辑一个简单的例子程序,比如计数器counter.vhd。有clk、ena、reset输入,cnt作为输出。 <2> 打开Modelsim,首先create project,工程名随意取了,比如命名为test,目录设在modelsimStudy下,默认的库work不变(这样就不用管什么建立库之类的东西了)。然后add existing file,把counter.vhd加入当前工程。 <3> 编译这个文件,通过之后,work下面会出现counter这个实体。然后选中它,右键,simulate(左键双击也可)。 <4> ModelSim有很多窗口(新手就怕这个),一开始只要选择view下面的objects 和wave窗口就行了。旧版的signal窗口在6.0的版本改名为Objects(这个我是摸索了好久才发现的,是不是太笨了?)。wave窗口刚打开时是空的,需要在objects窗口的add -> wave -> signals in region。这时,wave上就有clk\ ena \ reset等信号了。 <5> 我们给clk来个输入激励,在object窗口中选中clk,右键选clock,给它定义个时钟。

modelsim 使用指南

Modelsim使用简明指南 1 前言 作为一种简单易用,功能强大的逻辑仿真工具,Modelsim具有广泛的应用。这里对ModelSim作一个入门性的简单介绍。首先介绍ModelSim的代码仿真,然后介绍门级仿真和时序验证。 2 代码仿真 在完成一个设计的代码编写工作之后,可以直接对代码进行仿真,检测源代码是否符合功能要求。这时,仿真的对象为HDL代码,比较直观,速度比较快,可以进行与软件相类似的多种手段的调试(如单步执行等)。在设计的最初阶段发现问题,可以节省大量的精力。 2.1 代码仿真需要的文件 1.设计HDL源代码:可以使VHDL语言或Verilog语言。 2.测试激励代码:根据设计要求输入/输出的激励程序,由于不需要进行综合,书写具有很大的灵活性。 3.仿真模型/库:根据设计内调用的器件供应商提供的模块而定,如:FIFO(Altera常用的FIFO有:lpm_fifo /lpm_fifo_dc等)、DPRAM等。 2.2 代码仿真步骤 1.建立工程:在ModelSim中建立Project。如图2.1所示,点击File?New?Project,得到Creata Project的弹出窗口,如图2.2所示。在Project Name栏中填写你的项目名字,建议和你的顶层文件名字一致。Project Location是你的工作目录,你可通过Brose按钮来选择或改变。Ddfault Library Name可以采用工具默认的work。

图2.1 图2.2 2.给工程加入文件:ModelSim会自动弹出Add Items to the project窗口,如图2.3所示。选择Add Exsiting File后,根据相应提示将文件加到该Project中。 图2.3 3.编译:编译(包括源代码和库文件的编译)。编译可点击Comlile?Comlile All来完成。 4.装载文件:如图2.4,点击Simulate?Simulate…后,如图2.5所示,选定顶层文件(激励文件),ADD加入,然后点击LOAD,装载。

modelsim使用 + 前仿真 + 后仿真 + verilog

Modelsim 6.0 使用教程 1. Modelsim简介 Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。 对于初学者,modelsim自带的教程是一个很好的选择,在Help->SE PDF Documentation->Tutorial里面.它从简单到复杂、从低级到高级详细地讲述了modelsim的各项功能的使用,简单易懂。但是它也有缺点,就是它里面所有事例的初期准备工作都已经放在example文件夹里,直接将它们添加到modelsim就可以用,它假设使用者对当前操作的前期准备工作都已经很熟悉,所以初学者往往不知道如何做当前操作的前期准备。 2.安装 同许多其他软件一样,Modelsim SE同样需要合法的License,通常我们用Kengen产生license.dat。 ⑴.解压安装工具包开始安装,安装时选择Full product安装。当出现Install Hardware Security Key Driver时选择否。当出现Add Modelsim To Path选 择是。出现Modelsim License Wizard时选择Close。 ⑵.在C盘根目录新建一个文件夹flexlm,用Keygen产生一个License.dat,然后 复制到该文件夹下。 ⑶.修改系统的环境变量。右键点击桌面我的电脑图标,属性->高级->环境变量-> (系统变量)新建。按下图所示内容填写,变量值内如果已经有别的路径了, 请用“;”将其与要填的路径分开。LM_LICENSE_FILE = c:\flexlm\license.dat

Modelsim Simulation操作技巧

Modelsim Simulation操作技巧 一、Modelsim文件操作技巧 1.项目工程目录分配 如上图所示,在altera的整个设计的工程目录之中,若是单纯的逻辑设计(不上nios2系统),一斑文件目录结构为此: Wave_test工程目录下,分为以下几个分支 1)db:为Quartus II 编译产生的文件,通常占去了工程的大部分空间,打包时可删除. 2)incremental_db:为Quartus II 编译产生的文件,通常占去了工程的大部分空间,打包 时可删除. 3)src :Quartus II中源代码存放目录 4)simulaiton :Modelsim Simulation 仿真工程目录(前仿,后仿,布局布线后的仿真), 在quartus II中设置好Modelsim路径后,simulation文件夹会自动生成。 a)presynth:前仿,即纯粹的功能仿真,综合前的仿真 i.src :testbench测试源代码存放目录 ii.work :工程库 注:若不综合,纯粹的功能仿真,可在Modelsim中建立编写文件并进行仿真。 b)postsynth:后仿,即综合后的功能仿真 i.src :testbench测试源代码存放目录 ii.work :工程库 注:若不进行后仿,此目录可以删除(但最好养成良好的代码风格)

c)postlayout :后仿,布局布线后的时序仿真(只进行功能仿真没必要此) i.src :testbench测试源代码存放目录 ii.work :工程库 注:若不进行后仿,此目录可以删除(但最好养成良好的代码风格) 5)res :其他文件存放目录 二、Modelsim仿真操作技巧 1.多个testbench文件 若有多个testbench文件,要对波形进行仿真,可在Libyryr-work中选中要进行仿真的testbench文件,右键单击选择simulation即可(此步骤也可以省去选择design units的麻烦),之后同样打开wave,添加message,run…… 2.Transcript command 以下是最常用的命令,出了用脚本,也可以在gui中用按钮来操作。 1)run 1000ns :但不运行1000ns(可修改) 2)run all :全速运行,直到break 3)step :单步运行 4)restart :仿真复位 5)等等

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) begin if(!reset) clk_out=0; else clk_out=~clk_out; end endmodule 编辑完成后,点击保存。

文件名要与module后面的名称相同。 5.再新建一个测试文件,步骤同上面新建的主程序文件,文件名后缀改为.vt 程序代码如下: `timescale 1ns/100ps `define clk_cycle 50 module top; reg clk,reset; wire clk_out; always #`clk_cycle clk=~clk; initial

begin clk=0; reset=1; #10 reset=0; #110 reset=1; #100000 $stop; end half_clk m0( .reset(reset), .clk_in(clk), .clk_out(clk_out)); Endmodule 6.添加文件,编译文件 先右键点击左边空白处,选择add to project→existing File 选择刚刚新建的两个文件。按ctrl键可以同时选择两个,选择打开,下一步点击ok

Quartus与Modelsim的联合功能仿真

Modelsim SE 10.0.c入门教程 小小龙https://www.360docs.net/doc/c415482375.html, 结合黑金FPGA开发板的所用的软件quartus 11.0与modelsim10.0c, 本文介绍给初学者介绍Modesim SE 入门,Modesim SE 入门视频可在https://www.360docs.net/doc/c415482375.html,上下载! 大家知道,自从quartus 10以后,quartus就不自带的波形仿真软件,想要仿真需自己安装第三方软件(如modelsim等),闲话我就不多说,下面主要介绍如何在quartus 11.0中如何调用modelsim 10.0c以及testbench的编写。 下面就以一个计数器为例进行讲解(黑金开发板DB4CE平台),前提需安装quartus11.0 、modelsim10.0c,好了,切入正题。 新建工程时在出现的画面中按如下设置

根据仿真软件及语言进行选择,上图我们用到的软件为modelsim, 语言:Verilog HDL 下面我们编写一个计数器程序,在quartus中编写count128.v文件, 代码如下:

程序实现对clk的128分频 下一步告诉大家怎样编写仿真测试文件testbench,如下操作 至此,testbench模板已经OK!,生成的文件为.vt,位于工程文件夹simulation\modelsim中,如下

有了模板,但只是给了我们一个架构,还需要编写仿真文件,打开模板,来瞧瞧里面到底有些什么

注意:testbench中规定 a)输入一律为reg型变量,输出为wire型; b)可以有不可综合的语句;for,while等; 根据count128.v,测试文件testbench为 只要给时钟clk和rst_n赋值变OK了

ModelSim新手使用手册

ModelSim最基本的操作,初次使用ModelSim的同学,可以看看,相互学习。 无论学哪种语言,我都希望有个IDE来帮助我创建一个工程,管理工程里的文件,能够检查我编写代码的语法错误,能够编译运行出现结果,看看和预期的结果有没有出入,对于Verilog语言,我用过Altera的Quartus II,Xilinx的ISE,还有ModelSim(我用的是Altera 官网的ModelSim_Altera),甚至MAXPlus II,不过感觉这软件太老了,建议还是前三者吧。 学Verilog,找一本好书很重要,参考网友的建议,我也买了一本夏宇闻老师的《Verilog 数字系统设计教程》,用Quartus II来编写代码,个人觉得它的界面比ISE和ModelSim友好,我一般用它编写代码综合后自动生成testbench,然后可以直接调用ModelSim仿真,真的很方便,但学着学着,发现夏老师书里的例子很多都是不可综合的,比如那些系统命令,导致很多现象都发现不了,偶然间我直接打开了ModelSim,打开了软件自带的英文文档,步骤是:Help ->PDF Documentation->Tutorial如下所示: 打开文档的一部分目录: 往下读发现其实ModelSim可以直接创建工程,并仿真的。下面以奇偶校验为例叙述其使用过程(当然前提是你在Altera官网下载了ModelSim并正确安装了)。 1.打开软件,新建一个工程,并保存到自定义的目录中(最好别含中文路径) 2.点击Project,弹出窗口问是否关闭当前工程,点击Yes,接着又弹出如下窗口

我个人的习惯是把Project Name和Default Library Name写成一样,自己定义Project Location。又弹出如下窗口: 3.点击Close(我的版本不能Create New File,其实新建好了工程一样可以新建.v文件),然后点击屏幕下方的Project标签: 如果一开始不是如上图所示的界面,那么可以点击如下图所示红色标记的按键变成上图界面:

modelsim仿真必会教程

Modelsim功能仿真新手教程 By wangjun850725@https://www.360docs.net/doc/c415482375.html, 操作系统: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教程中都讲得很丰富,但忽视了对整个仿真过程的清晰解读,而且都是拿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;

如何在Quartus II 里使用Modelsim

当我们使用QuartusII,但是大多数朋友都习惯用Modelsim SE来做仿真,由于Quaruts有很多本身器件的特色,所以造成了在仿真上的麻烦,当然网路上也有一些讲解,但是都是不太系统,特别是对初学者来说,使用的时候还是感到一头雾水。本文的目的就是一个如何在Quartus 使用Quartus 和Modelsim 仿真的例子。 2.建立QuartusII 工程。 这里目的只是建立一个很简单很简单的QuartusII 的工程,逻辑采用原理图方式绘制。 里面就是一个简单的DFF, 输入信号: datain , clk

dataout 3.Quartus II 内部时序仿真 在Quartus 内部使用时序仿真,很简单,如果不知道如何使用请参考帮助文件 帮助文件的你可以点击 Help-> Tutorial 。里面有很详细的如何创建一个Wave仿真文件的教程这里就不罗嗦了。 关于如何仿真这里也不废话了。我们进入核心问题。 4.Modelsim SE的仿真 4.1 生成TestBench 文件 由于我们上面已经制作了一个时序仿真文件 *.vwf .Quartus II 提供了把这样文件转换成Testbench 的功能。

具体的操作如下: 在工程菜单里面双击*.vwf 文件,是之打开成为当前激活文件。 然后点击菜单 Files-> Export

会直接打开一个输出框:

我们后面会使用Verilog文件进行仿真,所以这里把后缀名*;.vt 改成为*.V Ok 就生成了 TestBeanch 文件。 4.2 设置启动Modelsim 如何在Quartus II 里面使用Modelsim. 只需要在 Assignment->setting 里面选择如下的选项,在进行整个工程进行编译的时候会自动调用系统的Modelsim SE .

Modelsim的仿真教程

ModelSim的仿真 1.仿真的分类 仿真过程是正确实现设计的关键环节,用来验证设计者的设计思想是否正确,及在设计实现过程中各种分布参数引入后,其设计的功能是否依然正确无误。仿真主要分为功能仿真和时序仿真。功能仿真是在设计输入后进行;时序仿真是在逻辑综合后或布局布线后进行。1). 功能仿真( 前仿真) 功能仿真是指在一个设计中,在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。布局布线以前的仿真都称作功能仿真,它包括综合前仿真(Pre-Synthesis Simulation )和综合后仿真(Post-Synthesis Simulation )。综合前仿真主要针对基于原理框图的设计; 综合后仿真既适合原理图设计, 也适合基于HDL 语言的设计。 2). 时序仿真(后仿真) 时序仿真使用布局布线后器件给出的模块和连线的延时信息,在最坏的情况下对电路的行为作出实际地估价。时序仿真使用的仿真器和功能仿真使用的仿真器是相同的,所需的流程和激励也是相同的;惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,时序仿真后的信号加载了时延,而功能仿真没有。 后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。其输入文件为从布局布线结果中抽象出来的门级网表、Testbench 和扩展名为SDO 或SDF 的标准时延文件。SDO 或SDF 的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。一般来说后仿真是必选的,检查设计时序与实际的FPGA 运行情况是否一致,确保设计的可靠性和稳定性。2.仿真的作用 1).设计出能工作的电路:因此功能仿真不是一个孤立的过程,其和综合、时序分析等形成一个反馈工作过程,只有这个过程收敛,各个环节才有意义。而孤立的功能仿真通过是没有意义的,如果在时序分析过程中发现时序不满足需要更改代码,则功能仿真必须从新进行。因此正确的工作流程是:

modelsim使用入门(VHDL_

modelsim使用实例(VHDL) 标签: modelsim仿真testbench FPGA 看了几天的modelsim以及如何在quartusII中调用,浏览了N个网页,尝试了N次,......终于初步完成。下面是入门部分介绍。 modelsim是专业的仿真软件,仿真运行速度比同类的其他仿真软件都要快很多。Quartus 自己都不再做仿真器了,普遍使用modelsim,自有其缘由。 这里用的是modelsim-altera(6.6d)版本,与quartus II 11.0搭配。据说Altera公司推出的Quartus软件不同版本对应不同的modelsim,相互之间不兼容。某些功能齐全的modelsim版本可以进行两种语言的混合编程, modelsim-altera只能支持一种语言进行编程(VHDL或者Verilog选其一)。 1、新建工程 打开modelsim-->file-->new-->project 新建工程,输入工程名,文件存放路径后(不可直接放在某盘下,必须放入文件夹中),进入下一步。 在主体窗口下方出现project标签。见下图。

2、新建文件 --create new file:输入名称div10,选择语言VHDL --关闭对话框 新的工程文件将会在工程窗口出现。 3、写入源程序(VHDL) 双击div10.vhd,打开文本编辑器。 实例代码如下(一个十分频的VHDL源代码):library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity div10 is --实体要与工程名相同 port(clk :in std_logic;

用ModelSim仿真Microblaze简易教程

用ModelSim仿真Microblaze简易教程 -1 软件版本 ISE: 8.2.03i EDK: 8.2.02i ModelSim:6.1e 注:EDK XPS的GUI编译工具仅支持ModelSim SE/PE 6.0d or later, excluding 6.1 or 6.1a。我之前用ModelSim XE 6.0a ,编译库的时候出现了很多Error。 0 参考资料 (1) Xilinx: Embedded System Tools Reference Manual. est_rm.pdf, v6.0, June 23, 2006. 在EDK的doc目录下有。 (2) Xilinx: EDK 8.2 MicroBlaze Tutorial in Spartan. EDK_82_MB_Tutorial.pdf。 在Xilinx网站上有,链接 https://www.360docs.net/doc/c415482375.html,/support/techsup/tutorials/EDK_82_MB_Tutorial.pd f (3) Module m07: Using ModelSim to Simulate Your Designs. M07.pdf。 在University of Toronto的一个主页上有,链接 https://www.360docs.net/doc/c415482375.html,/~pc/courses/edk/ 上面有好多入门资料,强烈推荐! 接下来进入正题~~~ 1 编译ISE和EDK的库 (1)安装ModelSim。比如我安装到了E:\Modeltech_6.1e\ 这个目录里。 (2)建两个空目录用来存放编译好的库。我的目录是 E:\xilinx_lib_me\ise\和E:\xilinx_lib_me\edk\。 (3)编译ISE的库。进入Dos命令行界面,敲入: compxlib -s mti_se -arch all -l all -lib all -w -o E:\xilinx_lib_me\ise\ -smartmodel_setup -p E:\Modeltech_6.1e\win32\ 当然,更好的做法是用批处理文件。用任意文本编辑器,把这行命令拷贝到一个新文件里,保存为xxx.bat的批处理文件。然后运行它就可以了。

modelsim仿真教程

本教程使用软件的下载链接如下: https://www.360docs.net/doc/c415482375.html,/download/quartus_modelsim_setup.zip Molelsim仿真使用教程 ——利用quartus生成网表文件Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件,接下来以一个简单的例子介绍modelsim的基本使用方法。 第一步:建立工程,该过程与quartus使用的教程大部分是一样的,区别如下: 在simluation选项中选择MoselSim-Altera作为仿真工具,fomat中的选项根据编程语言进行选择,本教程以VHDL为例。 第三方的仿真工具 所以在此选择

第二步:新建文件: 新建一个源文件,保存为led.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity led is port(led_out : out std_logic_vector(7 downto 0); clk : in std_logic; rst_n : in std_logic ); end led; architecture behavior of led is signal light : std_logic_vector (7 downto 0); begin process(clk,rst_n) begin if(rst_n = '0')then light <= "00000010"; elsif(clk'event and clk ='1' )then if(light = "10000000") then light <= "00000001"; else light <= light(6 downto 0)& '0'; end if; end if; end process; led_out <= light; end behavior; 新建一个testbench 文件,保存为testbench.vhd(testbench是电路的激励文件,在后面章节会详细介绍,这里仅仅作为软件的演示不具体介绍testbench的设计过程): library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.numeric_std.all; entity testbench is end testbench; architecture behavior of testbench is

Quartus+ModelSim-Altera 联合仿真(Verilog版)

Quartus+ModelSim-Altera联合仿真(Verilog版) 作者:L.xiang (注:默认Next/OK/Finish) Step1:新建工程New Project Wizard...设置路径+工程名+entity名(project、entity必须同名); Step2:选择器件:Cyclone II EP2C5F26C8(例如);

Step3:Simulation设置:ModelSim-Altera+Verilog HDL; Step4:新建文件,选Verilog HDL File; Step5:输入代码,并保存为led(.v文件); Step6:调试,修改直到没有Error为止(工程目录下同时自动生成了simulation文件);

Step7:生成Test Bench文件(.vt):Processing->Start->Start Test Bench Template Writer; Step8:工程目录下C:\altera\text\led1\simulation\modelsim打开led.vt文件,并复制“led_vlg_tst”;

Step9:设置Simulation:Assignments+Settings; Step10:Simulation->仿真扫描时间Time scale:100ps(或其它值),Comple test bench-> Tset Benchse...; Step11:点击New...;

Step12:粘贴Test bench name:led_vlg_tst(Step8中已复制),Top level module in test bench:led_vlg_tst(必须和.vt文件里的module名一致); Step13:添加Test bench files:simulation/modelsim/led.vt,并点击Add; Step14:点击,即启动ModelSim进入仿真;

相关文档
最新文档