文档库 最新最全的文档下载
当前位置:文档库 › modelsim时序仿真

modelsim时序仿真

modelsim时序仿真
modelsim时序仿真

利用ModelSim SE6.0C实现时序仿真

时间:2007-04-05 来源: 作者: 点击:2743 字体大小:【大中小】

1) 打开一个工程文件。

2) 打开Settings设置栏,选择EDA Tools Settings下的Simulation栏。在右边出现的设置栏中将“Tool name”的下拉菜单选择“ModelSim(Verilog)”(如果工程用VHDL语言实现,则可以选择“ModelSim(VHDL)”;如果ModelSim使用的是for Altera的专用版本,则可以选择“ModelSim-Altera(Verilog)”或“ModelSim-Altera(VHDL)”)。

另外在设置栏中还有其他的核选框。

1.如果选中“Maintain hierarchy”,则表示在做时序仿真时就能看到像在功能仿真的工

程文件层次结构,可以找到定义的内部信号。因为在做后仿时,源文件中的信号名

称已经没有了,被映射为软件综合后自己生成的信号名,观察起来很不方便。这个

设置与ISE里综合右键属性的Keep Hierarchy选择YES的功能是一样的。

2.如果选中“Generate netlist for functional simulation only”,则表示只能做功能仿真。

3) 点击“Start Compilation”按钮编译工程,完成之后在当前的工程目录下可以看到一个名为“Simulation”的新文件夹,下面的“ModelSim”文件夹下包括仿真需要的.vo网表文件和包含延迟信息的.sdo文件。

4) 打开ModelSim软件(或者在Quartus下“Settings->EDA Tools Setting->Simulation”出现的设置栏中选中“Run this tool automatically after compilation”,直接从Quartus下调用ModelSim软件),可以在当前工程目录下新建一个Project。在Project标签栏内点击右键,出现在快捷菜单中选择“Add to Project->Existing File…”。加入当前工程目录的

“\Simulation\ModelSim\”路径下的.vo文件、TestBench文件和对应当前工程所选择器件的网表文件。

比如:当前工程选择的器件是Cyclone系列,Quartus安装目录在“C:\altera”路径下。因此需要在“C:\altera\quartus50\eda\sim_lib”路径下找到“cyclone_atom.v”的网表文件导入到ModelSim下的Project。如果是其他器件亦是如此,只要在此目录下找到对应有“_atom”后缀的.v文件。当然整个大前提是ModelSim SE版本已经加入了Alterta的仿真库,不过ModelSim-Altera版本就不会存在这样的问题。

5) 在出现的Project标签栏的快捷菜单中选择“Add to Project->Simulation Configuration”,会出现如上图所示的名为“Simulation1”的仿真配置。右键点击选择“Properties”,弹出的“Simulation Properties”对话框中有几个标签栏。

在“Design”标签栏内需要选择仿真的文件,也就是TestBench文件。

在“SDF”标签栏内需要选择包含延迟信息的文件,即Quartus下生成的.sdo文件。这里建议将.sdo文件与ModelSim的工程文件(.mpf文件)放在同一个目录下,不然ModelSim会报类似无法读取.sdo文件的错误。当加入.sdo文件时,需要在如下图所示的“Apply to Region”的编辑框内填写延迟信息文件作用的区域。

举个例子来说明:

1.TestBench文件中定义了测试文件的Module名称为ConvEncdTestBnch。

2.TestBench文件中调用待测顶层文件的实例名为top_encode_1。(top_encode

top_encode_1(clk, rst, dataIn, serialData, parData);这是TestBench文件中调用顶层的语句)

3.所以在作用区域内需要填写“/ConvEncdTestBnch/top_encode_1”。

6) 右键点击名为“Simulation1”的仿真配置,快捷菜单中选择“Execute”命令,执行仿真。

7) 指定延时文件sdo 路径时,特别注意“域”的指定,否则用户会在timing 仿真中报load error “can’t find instance file”. 指定的域可以从sim标签页查看sim 的top 层,或要仿真的对象。另外,时序仿真时,一定要记住要把顶层top.v 用top.vo 替换。同时要确保预编译的库中每个库的名字必需遵循altera的要求,比如:cylcone 的device 库必需命名为cycclone, maxii 的device命名为maxii, flex10Ke 和acex1K 都命名为flex10Ke,详细查看文档附件。Simulation.pdf

8) 提供一个testbench 的模板。

利用ModelSim SE6.0C实现功能仿真

功能仿真流程比较简单,一般不会出现什么问题,这里不再多述。

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

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软件。

时序逻辑电路设计

引言 人类社会进步,各种仪器测试设备的以电子设备代替成为趋势,各类测试仪器都希望通过电子设备来实现。电子设备在实现相应参数的测量时,具有简单容易操作,而且数据便于计算机处理等优点。目前科技的飞速进展与集成电路的发展应用,有密不可分的关系。十九世纪工业革命主要以机器节省人力,二十世纪的工业的革命则主要以电脑为人脑分劳。而电脑的发展归于集成电路工业。 集成电路是将各种电路器件集成于半导体表面而形成的电路。近年来集成电路几乎成为所有电子产品的心脏。由于集成电路微小化的趋向,使电子产品得以“轻、薄、短、小”。故集成电路工业又称微电子工业。差不多在同时数字计算机的发展提供了应用晶体管的庞大潜在市场。 20世纪90年代以后,电子科学和技术取得了飞速的发展,其标志就是电子计算机的普及和大规模集成电路的广泛应用。在这种情况下,传统的关于数字电路的内容也随之起了很大的变化,在数字电路领域EDA工具已经相当成熟,无论是电路内容结构设计还是电路系统设计,以前的手工设计都被计算机辅助设计或自动设计所取代。 通过长期的学习微电子专业理论知识,我们应该多动手实践把理论知识与实践相结合,加强对理论知识的把握。本文是十进制同步计数器的设计,对十进制同步计数器的设计进行电路原理图设计以及仿真,版图设计,版图验证。 1 设计技术要求 (1)项目名称:十进制同步计数器的设计 (2)使用工艺:2.0um硅栅工艺(tanner)或者1.0um硅栅工艺(cadence) (3)供电电源:5V (4)输入要求:异步清除,CMOS电平 (5)进行原理图设计,并完成电路的仿真 (6)版图设计,完成LVS一致性检验,生成相应的GDSII文档 2 设计构思及理论 2.1 设计思路 十进制同步计数器的设计可以细化成下列步骤: ①建立最简原始状态图。 ②确定触发器级数,进行状态编码。 ③用状态装换卡诺图化简,求状态方程和输出方程。 ④查自启动特性。 ⑤确定触发类型,求驱动方程。 ⑥画逻辑图。

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->Vector Waveform File。如下图所示,左边空白栏处是节点名的列表区,右边空白栏处是仿真波形的显示区。波形编辑窗口默认时间为1us,如果想改变仿真时间,可以选择Edit菜单下End Time,在弹出的对话框中选择需要的时间。将新建的波形仿真文件保存下来。

5)将需要仿真的信号加入波形编辑窗口。在列表区任一位置双击或者点击右键选择“Insert Node or Bus…”,弹出的对话框点击“Node Finder”按钮。在“Node Finder”界面中点击“List”按钮,有关信号的列表会出现在界面的左边,双击需要观察的信号加入至界面右边。如果工程中用到了很多信号,在左边列表中也会显示很多(Named编辑框默认的是*通配符),可以在Named编辑框中添加需要的信号名称实现模糊查找。界面中“Filter”下拉框中默认的是“Pins: all”,也就是说将要列出的信号都是IO管脚。如果需要观察一些内部信号,可以改变下拉框的参数,比如“Registers: Pre-Synthesis”。下图显示了仿真信号加入波形编辑窗口的情况。对于有些总线信号可以改变其显示的进制格式,比如二进制、八进制、十进制和十六进制。在列表中对应信号点击右键选择 “Properties”,弹出的对话框中选择“Radix”下拉框实现进制的转换。

ModelSim作布局布线后仿真的库问题

ModelSim作布局布线后仿真的库问题 Modelsim是目前最流行的应用最广泛的FPGA仿真器,是Mentor Graphics的子公司Model T echnology开发的。因为Modelsim好学易用,调试方便,仿真速度快,功能强大,所以很多芯片厂商的开发系统都OEM Mentor Graphics公司的Modelsim仿真器,包括Xilinx,Alter a,Lattice和Actel等。Modelsim是一个单内核仿真器,同一个内核可以进行VHDL仿真、V erilog仿真和VHDL/Verilog混合仿真;支持所有的VHDL和Verilog标准;采用直接编译技术 (Direct-Compiled),大大提高了HDL编译和仿真速度。 Modelsim支持三个层次的仿真:RTL仿真、综合后仿真和布局布线后仿真。为了加快仿真速 度,一般情况下设计中调用的库都是已经进行编译过的,然后对设计进行仿真,此时仿真器直接调用库中已经编译过的单元,而不是再次对设计中的单元模块进行编译。所以如果要对设计进行综合后仿真和布局布线后仿真,必须先对设计中调用的库进行编译处理。这也是本文的重点内容。因为每个厂商的库不一样,而且同一个厂商,不同的器件库就有可能不同,所以下面就目前国内比较常用的几个公司的芯片的库问题分别进行探讨。1.Xilinx公司的器件: 其库的处理方式有两种,一种是在Xilinx的网站上,我们可以下载到压缩文件xilinx_lib _4.zip,解压缩后有一个xilinx_lib_4.tcl(将来的版本可能会升级)。单独运行Models im,然后在工具菜单中有一项是执行宏(这里Modelsim5.5 和5.6、5.7有一些差异,不过在5.5中仍可以找到执行宏Execute Macro),运行xilinx_lib_4.tcl后可以看到。 你可以根据你的厂商软件版本选择,指定Xilinx 的安装路径,在Install Path中指定你编 译后的数据将要放的目录位置(可以是任何一个目录,最好是设计者数据盘中的某个目录,因为库编译一次就可以了,重新安装软件不需要重新编译库)。对于Xilinx作布局布线后仿真只需要simprim库即可;如果要作综合后仿真,就需要编译Unisim库;如果设计中调用了 CoreGen产生的核就需要编译CoreGen库。这应该根据设计者的具体情况进行选择。 如果编译完了后,在Modelsim中库会自动变为标准库(注意:Xilinx提供的早期脚本文件作不到这一点)。所谓标准库,也就是说这个库会和IEEE这些库一样,当Modelsim启动时,这 些库会自动加载,里面的单元在VHDL代码中可以随意调用。比如:在布局布线后的VHDL 文 件中大家可以看到Library simprim这样的语句。当然也可以自己手动改变这些库的性质,只用修改在Modelsim安装路径下的Modelsim.ini文件即可。比如:修改后的Modelsim.ini 可以看到为 [Library] std = $MODEL_TECH/../std ieee = $MODEL_TECH/../ieee verilog = $MODEL_TECH/../verilog std_developerskit = $MODEL_TECH/../std_developerskit synopsys = $MODEL_TECH/../synopsys modelsim_lib = $MODEL_TECH/../modelsim_lib

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在桌面的快捷方式

ModelSim入门指导答辩

QUESTA-SIM(QuestaSim)10.2入门指南平台 软件:Questa-Sim 10.2 版本Starter Edition,也适用于高版本的ModelSim软件。内容 一. 设计流程 典型设计流程包括如下所示: (1)设计输入 设计的行为或结构描述 (2)RTL仿真(ModelSim) 功能仿真 验证逻辑模型(没有使用时间延迟) 可能要求编辑设计 (3)综合 把设计翻译成原始的目标工艺 最优化——合适的面积要求和性能要求 (4)布局和布线 映射设计到目标工艺里指定位置 指定的布线资源应被使用 (5)门级仿真(ModelSim) 时序仿真 验证设计一旦编程或配置将能在目标工艺里工作 可能要求编辑设计 (6)时序分析 (7)验证合乎性能规范 可能要求编辑设计 (8)版图设计 (9)仿真版图设计 (10)在板编程和测试器件 使用QuestaSi/ModelSim仿真的基本流程为: 图1.1 使用QuestaSim仿真的基本流程 2 开始 1.1 新建工程 打开QuestaSim后,其画面如图2.1所示。

图2.1 QuestaSim画面 1. 创建工作目录E:/QuestaSim/, 在其路径下创建子文件夹/ip、/prj、/rtl、/tb, prj是QuestaSim工程主文件夹,ip是仿真模型目录,rtl 是代码目录,tb是testbench目录。 2. 选择File>New>Preject创建一个新工程。打开的Create Project对话框窗口,可以指定工程的名称、路径和缺省库名称。一般情况下,设定Default Library Name为work。指定的名称用于创建一个位于工程文件夹内的工作库子文件夹。该对话框如图2.2所示,此外还 允许通过修改初始化文件QuestaSim.ini文件来映射库设置。 图2.2 创建工程的对话框 2. 设置Project Name为BG0806,Project Location为E:/QuestaSim/prj, 勾选Copy Library Mappings ,点击OK。 3. 出现Add Items to the Project的对话框,如图2.3所示,

modelsim仿真详细过程

由于我们只需要了解仿真的完整过程,所以不需要自己写源文件和测试文件(也称为testbench)。一下就是简单的源文件和测试文件(亲自测试过)。 //源文件 module compare(equal,a,b); input a,b; output equal; assign equal=(a==b)?1:0; endmodule //测试文件 `timescale 1ns/1ns `include"./compare.v" module comparetest; reg a,b; wire equal; initial begin a=0; b=0; #100 a=0;b=1; #100 a=1;b=1;

#100 a=1;b=0; #100 $stop; end compare compare1(.equal(equal),.a(a),.b(b)); endmodule 有了源文件和测试文件下面就开始用modelsim进行仿真了。 步骤一:新建工程和.v文件(也就是源文件和测试文件) 打开modelsim软件,点击file,选择new—>project 然后就会弹出下面窗口: 然后在project name那一栏写上工程名(随便去,一般是字母),在project location选择工程路径(路径最好没有中文,听说的),然后点OK。进入下个界面:

然后点击小框里面的“create new file”.弹出界面: 在file name中写下源文件名,由于这是比较两数的大小,我取为:compare。在“add file as type”中选择verilog,点OK,然后有:

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代表運算的精準度

Modelsim 仿真步骤总结

Modelsim 仿真步骤总结 Modelsim 仿真主要有以下三个方面:各版本的方法大体一致。(1)建立库并映射库到物理目录; (2)编译源代码(包括testbench); (3)执行仿真; 下面具体演示每一步的操作方法及流程,为力求简洁,其中有多种操方法的只介绍一种。 一)建立库的演示: 步骤为——启动modelsim>点击file菜单>(Change Directory)>new>(project)>library.注括号内的步骤非必须。 1.1)启动modelsim; (1.2)点击file菜单,此时若需更改路径,可以点击其中的Change Directory.(注modelsim会自动默认路径。我们也可以在1.1步骤之前建立一个文件夹用于modelsim的工程,再将路径更改到我们新建的文件夹路径。)

(1.3)点击file子菜单中的new,选择project用于新建立一个modelsim工程。(虽然此步非必须,但是建立一个新工程有益 于接下来整个仿真文件的管理。)

1.4)点击file子菜单new,再点击new下的library,用于建立 一个库。(仔细观察1.3步,新建工程的同时亦可建立库)。 至此,modelsim仿真第一大步建立库的工作完毕。

二)编译源代码(包括testbench): 大家都已知道在quartus中编译源代码的方法,这里说明一下在modelsim中编译源代码及testbench的方法。 步骤为——建立一个新工程(同时建立库)后,会自动提示你四个选项。如图: 选create new file后提示对话框,(也可以在有源文件的情况下选择add existing file到工程中。例如我们用quartus写好文件后,可以用此方法将quartus中的文件添加到modelsim工程中来)让你命名你即将创建的新文件,完毕后,会自动出现一个空白的编辑窗口,在那里输入源代码和testbench。(提示:这样编写完后点保存,便可以直接保存到上面设臵好的work库中。比起另一种方法,不建工程直接建库,再通过菜单栏source添加源

时序逻辑电路的设计方法

5.2 时序逻辑电路的设计方法 本次重点内容: 1、同步时序逻辑电路的设计方法。 2、异步时序逻辑电路的设计方法。 教学过程 5.2.1 同步时序逻辑电路的设计 一、同步时序逻辑电路的设计方法 设计关键:根据设计要求→确定状态转换的规律→求出各触发器的驱动方程。 设计步骤:(先简单介绍,通过以下的举例后,再进行总结,特别再点出设计关键)1.根据设计要求,设定状态,确定触发器数目和类型。画出状态转换图。 2.状态化简 前提:保证满足逻辑功能要求。 方法:将等价状态(多余的重复状态)合并为一个状态。 3.状态分配,列出状态转换编码表 通常采用自然二进制数进行编码。N为电路的状态数。 每个触发器表示一位二进制数,因此,触发器的数目n可按下式确定 2n≥N>2n–1 4.画状态转换卡诺图,求出状态方程、输出方程 选择触发器的类型(一般可选JKF/F或DF/F,由于JK触发器使用比较灵活,因此,在设计中多选用JK触发器。)将状态方程和触发器的特性方程进行比较→驱动方程。 5.根据驱动方程和输出方程画逻辑图。 6.检查电路有无自启动能力。 如设计的电路存在无效状态时,应检查电路进入无效状态后,能否在时钟脉冲作用下自动返回有效状态工作。如能回到有效状态,则电路有自启动能力;如不能,则需修改设计,使电路具有自启动能力。 二、同步时序逻辑电路的设计举例 [例1] 试设计一个同步七进制加法计数器。

解:设计步骤 (1)根据设计要求,设定状态,画状态转换图。 七进制→7个状态→用S0,S1,…,S6表示 状态转换图如下所示: (2)状态化简。 本例中7个状态都是有效状态。 (3)状态分配,列状态转换编码表。 根据式2n≥N>2n–1,→ N=7,n=3,即采用三个触发器。 选用三位自然二进制加法计数编码→列出状态转换编码表。 (4)选择触发器的类型,求出状态方程,驱动方程和输出方程。根据状态转换编码表→得到各触发器次态和输出函数的卡诺图。得 输出方程为: Y= Q2n Q1n

Quartus与Modelsim的联合功能仿真

Modelsim SE 10.0.c入门教程 小小龙https://www.wendangku.net/doc/428262273.html, 结合黑金FPGA开发板的所用的软件quartus 11.0与modelsim10.0c, 本文介绍给初学者介绍Modesim SE 入门,Modesim SE 入门视频可在https://www.wendangku.net/doc/428262273.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功能仿真新手教程 By wangjun850725@https://www.wendangku.net/doc/428262273.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 搞定,波形神马的就出现了。你要做的工作就是看波形是否是你想要的。

实验二 时序逻辑电路的设计[1]

实验二 时序逻辑电路的设计 一、实验目的: 1、 掌握时序逻辑电路的分析方法。 2、 掌握VHDL 设计常用时序逻辑电路的方法。 3、 掌握时序逻辑电路的测试方法。 4、 掌握层次电路设计方法。 5、 理解时序逻辑电路的特点。 二、实验的硬件要求: 1、 EDA/SOPC 实验箱。 2、 计算机。 三、实验原理 1、时序逻辑电路的定义 数字逻辑电路可分为两类:组合逻辑电路和时序逻辑电路。组合逻辑电路中不包含记忆单元(触发器、锁存器等),主要由逻辑门电路构成,电路在任何时刻的输出只和当前时刻的输入有关,而与以前的输入无关。时序电路则是指包含了记忆单元的逻辑电路,其输出不仅跟当前电路的输入有关,还和输入信号作用前电路的状态有关。 2、同步时序逻辑电路的设计方法 同步时序逻辑电路的设计是分析的逆过程,其任务是根据实际逻辑问题的要求,设计出能实现给定逻辑功能的电路。同步时序电路的设计过程: (1)根据给定的逻辑功能建立原始状态图和原始状态表。 ①明确电路的输入条件和相应的输出要求,分别确定输入变量和输出变量的数目和符号; ②找出所有可能的状态和状态转换之间的关系; ③根据原始状态图建立原始状态表; (2)状态化简---求出最简状态图。 合并等价状态,消去多余状态的过程称为状态化简。 等价状态:在相同的输入下有相同的输出,并转换到同一个次态去的两个状态称为等价状态。 (3)状态编码(状态分配)。 给每个状态赋以二进制代码的过程。 根据状态数确定触发器的个数,n n M 221-≤∠(M 为状态数;n 为触发器的个数)。 (4)选择触发器的类型。 (5)求出电路的激励方程和输出方程。 (6)画出逻辑图并检查自启动能力。 3、时序逻辑电路的特点及设计时的注意事项 ①时序逻辑电路与组合逻辑电路相比,输出会延时一个时钟周期。 ②时序逻辑电路一般容易消除“毛刺”。 ③用VHDL 描述时序逻辑电路时,一般只需将时钟信号和异步控制(如异步复位)信号作为敏感信号。

modelsim建库流程_vip

Modelsim建库流程 ——在已有的IEEE库中加入新的库文件 1.将所需要的库对应的vhd文件拷贝至C:\Actel\Libero_v9.0\Model\vhdl_src\ieee 文件夹下; 2.确保modelsim不是处于仿真状态下: 3.编译库中的文件,首先需要选中库,确认如下

4.可以在vhdl模块中调用ieee.math_utility_pkg文件了。 采用上述方法,可以加入math_utility_pkg和fixed_pkg等vhdl-93中没有包括的库文件,增加vhdl语言支持的综合功能。 5.点击modelsim项目文件中的presynth.mpf文件,可以打开这个modelsim项目,然后可 以对所有文件进行编译、仿真等操作。 6.对于定点数运算,需要以下两个库: math_utility_pkg.vhdl - Types used in the fixed point package fixed_pkg_c.vhdl - Fixed-point package (VHDL-93 compatibility version) 而这两个库中又会调用floatfixlib库:这个库包含Actel/Libero_v9.1/Model/vhdl_src/floatfixlib 目录下的三个文件:fixed_pkg_c.vhd, float_pkg_c.vhd, math_utility_pkg.vhd,也就是说,要用这三个文件生成floatfixlib库。 ---------------------------------------------------------------------- Modelsim仿真流程-经验总结 7.Modelsim简介 略。 2.modelsim仿真流程:modelsim基本的仿真流程包括建立库、建立工程并编译、仿真、调试、但在libero环境中运行modelsim时,软件自动映射库和生成工程文件。其中功能仿真、综合仿真以及后仿真分别映射presynth、postsynth和postlayout库。 基本流程是:建立工作库→编译源代码→启动仿真→分析、调试。 8.建立库并映射

如何在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 .

时序逻辑电路设计题

第1题: 设计一个串行数据检测器,对它的要求是:连续输入3个或3个以上的1时输出为1,其他输入情况下输出为0。 答案 输入数据作为输入变量,用X 表示;检测结果为输出变量,用Y 表示。 设电路没有输入1以前的状态为0S ,输入一个1状态为1S ,连续输入两个1后的状态为2S ,连续输入3个1以后的状态为3S 。状态转换图为: 求得触发器的输入方程为:X K XQ J ==101; 1;010==K Q X J 输出方程:1XQ Y = 画出逻辑图 第2题: 试用JK 触发器和门电路设计一个同步七进制计数器。 答案 因为七进制计数器需要有7个不同的状态,所以需要用三个触发器组成。根据题目要求画出状态转换图: 卡诺图为:

从卡诺图得到的状态方程为: 驱动方程为: 设计得到的逻辑电路图为: 第3题:设计一“011”序列检测器,每当输入011码时,对应最后一个1,电路输出为1。答案 画出原始状态图(或称转移图) 输入端X:输入一串行随机信号 输出端Z:当X出现011序列时,Z=1;否则Z=0

选用T 触发器 表达式为: T 触发器的驱动方程为: 第4题: 用JK 触发器设计时序逻辑电路,状态表如下所示: n n Q Q 01 Y Q Q n n /1 11++ A=0 A=1 00 01/0 11/0 01 10/0 00/0 10 11/0 01/0 11 00/1 10/1 答案 所要设计的电路由4个状态,需要用两个JK 触发器实现,求得JK 触发器的激励方程为:100==K J 011Q A K J ⊕== 输出方程:01Q Q Y = 由输出方程和激励方程画电路 A B C D 1/0 0/0 0/0 1/1 0/0 0/0 1/0 1/0 011XQ Q T +=000XQ Q X T +=0 1Q XQ Z =011XQ Q T +=0 00XQ Q X T +=0 1Q XQ Z =

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-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进入仿真;

相关文档