modelsim实验01计数器仿真实验步骤
Multisim 数字电路仿真实验(计数器)

Multisim 数字电路仿真实验1.实验目的用Multisim 的仿真软件对数字电路进行仿真研究。
2.实验内容实验19.1 交通灯报警电路仿真交通灯故障报警电路工作要求如下:红、黄、绿三种颜色的指示灯在下列情况下属正常工作,即单独的红灯指示、黄灯指示、绿灯指示及黄、绿灯同时指示,而其他情况下均属于故障状态。
出故障时报警灯亮。
设字母R、Y、G 分别表示红、黄、绿三个交通灯,高电平表示灯亮,低电平表示灯灭。
字母Z 表示报警灯,高电平表示报警。
则真值表如表19.1 所示。
逻辑表达式为:Z = R Y G + RG + RY若用与非门实现,则表达式可化为:Z = R Y G ⋅RG ⋅RYMultisim 仿真设计图如图19.1 所示:图19.1 的电路图中分别用开关A、B、C 模拟控制红、黄、绿灯的亮暗,开关接向高电平时表示灯亮,接向低电平时表示灯灭。
用发光二极管LED1 的亮暗模拟报警灯的亮暗。
另外用了一个5V直流电源、一个7400 四2 输入与非门、一个7404 六反相器、一个7420 双4 输入与非门、一个500欧姆电阻。
图19.1 交通灯报警电路原理图在仿真实验中可以看出,当开关A、B、C 中只有一个拨向高电平,以及B、C 同时拨向高电平而A 拨向低电平时报警灯不亮,其余情况下报警灯均亮。
实验19.2 数字频率计电路仿真数字频率计电路的工作要求如下:能测出某一未知数字信号的频率,并用数码管显示测量结果。
如果用2 位数码管,则测量的最大频率是99Hz。
数字频率计电路Multisim 仿真设计图如图19.2 所示。
其电路结构是:用二片74LS90(U1 和U2)组成BCD 码100 进制计数器,二个数码管U3 和U4 分别显示十位数和个位数。
四D 触发器74LS175(U5)与三输入与非门7410(U6B)组成可自启动的环形计数器,产生闸门控制信号和计数器清0 信号。
信号发生器XFG1 产生频率为1Hz、占空比为50%的连续脉冲信号,信号发生器XFG2 产生频率为1-99Hz(人为设置)、占空比为50%的连续脉冲信号作为被测脉冲。
【翻译】modelsim指南之基本仿真(digital logic)

Introduction本文将一步步实现以下基本仿真流程:1.创建设计工作库2.编译设计单元3.加载设计4.运行仿真本文用到的设计文件本文的范例是一个8位的二进制加法计数器和相关的测试文件。
保存路径:Verilog-<install_dir>/examples/tutorials/verilog/basicSimulation/counter.v and tcounter.v相关阅读用户手册的章节:设计库、Verilog和SystemVerilog仿真。
参考命令:vlib,vmap,vlog,vcom,view,run.创建设计工作库在你仿真前,必须先创建一个库并编译源码到这个库。
1.创建一个新目录并复制本文的设计文件。
Copy counter.v 和tcounter.v2. 启动modelsim。
a. windows下双击快捷方式启动,你将看到modelsim的欢迎对话框,单击Close.b. 选择File > Change Directory 指定到第一步创建的目录。
3. 创建工作库。
a. 选择File > New > Library.弹出一个对话框,可以指定库名等选项。
如图1。
图1 创建一个新库b. 在Library Name项输入work(如果它没有自动输入)。
c. 单击OK.modelsim创建了一个目录work并写了一个名为_info的文件到这个目录。
这个_info文件必须保持在work文件夹以区分他是modelsim的库。
不要从你的操作系统里修改这个文件夹里的内容;所有操作应该在modelsim里进行。
modelsim也把work库添加到库窗口(图2)并记录库映射作为未来参考(modelsim.ini)。
图2当你在第3步单击确定后,Transcript窗口显示以下内容:vlib workvmap work work这两行命令等于你的菜单操作。
编译设计单元创建工作库后,接着就准备编译你的源文件。
ModelSim仿真流程

ModelSim仿真流程关于ModelSim仿真流程EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
下面店铺准备了关于ModelSim仿真流程,欢迎大家参考!1、运行ModelSim,如果上一次使用ModelSim建立过工程,这时候会自动打开上一次所建立的工程;2、点击File->New->Project,在Project Name中我们输入建立的工程名,在Project Location中输入工程保存的路径,注意ModelSim不能为一个工程自动建立一个目录,这里我们最好是自己在Project Location中输入路径来为工程建立目录,在Default Library Name中为我们的设计编译到哪一个库中,这里我们使用默认值,这样,在我们编译设计文件后,在Workspace窗口的Library中就会出现work库。
这里我们输入完以后,点击OK;3、如果提示我们给定的工程路径不存在,是否建立该路径,我们的目的就是为工程建立一个新目录,因此,点击确定;4、点击Create New File可以为工程添加新建的文件,点击Add Existing File为工程添加已经存在的文件,点击Create Simulation为工程添加仿真,点击Create New Folder可以为工程添加新的目录。
这里我们点击Create New File;5、我们在File Name中输入文件名称,Add file as type为输入文件的.类型为VHDL、Verilog、TCL或text,这里我们使用默认设置VHDL,Folder为新建的文件所在的路径,Top Level为在我们刚才所设定的工程路径下。
点击OK;并在Add items to the Project窗口点击Close关闭该窗口;6、这时候在Workspace窗口中出现了Project选项卡,在其中有文件名.vhd,其状态栏有一个问号,表示未编译,我们双击该文件,这时候出现编辑窗口,在其中我们输入我们的设计文件7、点击File->Save,并退出该窗口(File->Close);8、在WorkSpace窗口的文件名.vhd上点击右键,选择Compile->Compile All;9、在脚本窗口中将出现一行绿色字体Compile of DivClkHDL.vhd was successful.,说明文件编译成功,在该文件的状态栏后有一绿色的对号,表示编译成功;10、下面我们开始仿真,点击菜单Simulate->Simulate,展开Design选项卡下的work库,并选中其中的behavioral,这是在Simulate中出现了work.实体名(behavioral)表示我们所要仿真的对象,Resolution为仿真的时间精度,这里我们使用默认值,点击OK;11、为了观察波形窗口,我们点击菜单View->Wave;12、这时候出现的Wave窗口为空,里面什么都没有,我们要为该窗口添加我们需要观察的对象,首先在主窗口而不是波形窗口中点击View->Signals打开信号列表窗口,在改窗口中点击Add->Wave->Signals in Design,这时候在波形窗口中就可以看到这些信号了;13、下面我们就开始仿真了,在主窗口中输入命令对信号进行驱动仿真14、退出仿真,在主窗口中点击Simulate->End Simulation,会出现对话框,提示我们是否确认退出仿真,我们点击是退出仿真;。
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中有两种库类型:
工作库
1.库的内容会随着使用者 更新设计文件和重新编译 而变化; 2.存放当前设计文件编译 Description of the business 后产生的设计单元; 3.编译前必须先创建好工 作库; 4.每次编译只允许有一个 工作库; 5.默认的工作库名是work
仿真的基本概念
什么是仿真?
仿真的一般性含义是:使用EDA工具,通过对设计 的实际工作情况进行模拟,验证设计的正确性。
仿真过程,是正确实现设计的关键环节,用来验证设计者的设 计思想是否正确,及在设计实现过程中各种分布参数引入后, 其设计的功能是否依然正确无误。
仿真的基本概念
什么是仿真?
仿真的一般性含义是:使用EDA工具,通过对设计 的实际工作情况进行模拟,验证设计的正确性。
LPM
altera_mf
调用了 lpm 元件的设计仿真时需要
调用了 Altera 的MegaFunction的设计仿真时需要
调用了 Altera 的原语(primitive )的设计仿真时需要
modelsim实验教程

实验一1.实验目的通过实验掌握如何用modelsim进行功能仿真以及时序仿真。
2.实验内容(1)编译代码,进行功能仿真。
(2)用modelsim进行代码覆盖率检查及分析,并输出覆盖率报告。
(3)用modelsim 将DC综合出来的门级网表以及时序文件进行后仿真。
(4)用do文件自动完成仿真步骤,即脚本自动化。
3.实验步骤(1)功能仿真前仿真主旨在于验证电路功能是否符合设计要求,它不考虑门延迟与线路延迟,旨在验证电路功能是否正确。
第一步:打开modelsim软件并建立工程登陆工作站后,进入命令界面,输入命令vsim,按回车键,打开modelsim软件,如下图所示选择File选项,点击File-->new-->project,如下图所示:然后弹出如下界面,需要给所建立的工程起名,为了方便管理,工程名可以与顶层模块名字相一致。
Project Location 一栏表示的是工程所在目录,work代表工作库,里面包含所有编译过的文件。
输入工程名,并确定了工程所在位置后,点OK。
第二步:加入源文件并编译建立好工程后,会弹出下图所示窗口,可以选择Create New File来在modelsim中直接编辑代码文件,也可以选择Add Existing File加入已有的源文件。
也可以通过选择File-->new-->source来编辑源文件,如下图所示:加入源文件后,可以鼠标选择源文件,点击右键Compile-->Compile Selected来编译源文件。
也可以点击直接编译源文件。
选择,可以编译工程里面所有的源文件。
在Transcript窗口中可以查看编译结果。
如果有错误,可以双击错误提示,改正错误,再编译。
第三步:仿真源文件编译成功证明源代码没有语法错误,启动仿真器对源文件进行仿真。
选择Simulate-->Start Simulation或者点击按钮,会弹出一个选择框,将Enable Optimization 选项勾掉,这是仿真优化选项,会对时钟等进行优化,在功能仿真阶段不需要优化时钟,在后续布局布线中会对其进行优化。
计数器的Modelsim仿真报告

计数器的Modelsim仿真一.实验目的和要求:1. 熟悉Quartus和Modelsim软件的基本使用方法和步骤,熟悉基本的Verilog语法,学会用Verilog语言编写简单的程序。
2.学会使用Quartus编写计数器模块并用Modelsim进行仿真。
3.熟练掌握Quartus和Modelsim软件工程建立、添加文件、编译运行和仿真的方法,学会写程序文件和测试文件。
4.试验设备及要求:@Quartus 13 和Modelsim。
@运行Modelsim软件建立工程并添加测试.v 文件,进行仿真,查看波形图。
二.仿真方案:用Quartus编写出计数器模块,已由上节课完成这个任务。
编写好计数器模块后,再进行Modelsim进行仿真实验。
三.仿真过程:1.根据自己写的计数器模块编写测试程序。
这里我是用Quartus编写的,所以在编写的时候遇到一些问题。
编写如下图:2.编写完测试模块并编译完成后,打开Modelsim。
选择菜单栏的【File】→【New】→【Project】命令,在弹出窗口中选择【Add Exiting File】,把事先写好的测试文件和程序文件tb_cnt84和count84加入。
3、编译运行:在空白处右键,在弹出窗口中选择【Compile】→【Compile All】,检查完错误后,进行更改,直至没有错误出现。
最后进行【Simulate】,选择自己编写的tb_cnt84,然后右击选择加波形,add wave。
4、计数器仿真结束:四.仿真过程中的错误排查与解决方案:1、在编写测试模块时我是用Quartus进行编写的,所以总是有一个问题,也就是总是有一个错误解决不了,在请教了同学之后,知道这可能是没问题的,所以还要导入Modelsim之后再进行修改,我导入Modelsim之后,发现确实没有了错误。
2、测试模块的变量问题,测试模块的变量决定了测试模块能否编写成功的关键,所以在编写变量时要格外注意,第一次我并没有把所有的变量编写进去,所以总是漏洞百出,最后,终于成功地完成了测试模块的编写。
lab10_0101序列检测器仿真(ModelSim)

0101序列检测器仿真(ModelSim)1.实验目的熟悉Modelsim仿真软件的使用方法,了解状态机的建模方法,使用ModelSim仿真QuartusII工程。
2.实验内容●用HDL语言的输入方式,实现0101/110序列检测器。
●用modelsim进行仿真●下载至DE0开发板上观察实验结果3.代码分析(以0101序列检测器为例)1)状态图如下:图3.1 0101(左)/110(右)序列检测状态图2)主模块中首先定义了本次实验的所有输入输出接口及各个状态。
其中,因为有4种状态,所以current为2位。
//0101 Sequential detectormodule lab1a (vin,cp,ncr,vout);input vin,cp,ncr;output vout;reg vout;reg [1:0] current,next;parameter s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;3)然后设置异步清零,在cp上升沿则沿触发器状态翻转。
always @(posedge cp or negedge ncr)beginif (~ncr)current <= s0;elsecurrent <= next;end4)接着编写组合逻辑部分,设定下一状态产生和输出的信号。
always @(current or vin)beginnext=2'bxx;case (current)s0:begin next = (vin==1)?s0:s1; ends1:begin next = (vin==1)?s2:s1; ends2:begin next = (vin==1)?s0:s3; ends3:begin next = (vin==1)?s2:s1; endendcaseend5)最后为输出部分,本程序中设置让输出信号经过一个寄存器再输出,可以消除vout信号中的毛刺。
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进行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脚本仿真教程
以计数器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步。
附件:。
modelsim实验计数器仿真实验步骤

modelsim实验-计数器仿真实验步骤————————————————————————————————作者:————————————————————————————————日期:一、新建工程a)如图,打开modelsim后点击File→New→Project...b)弹出如下图对话框,输入Project Name后,点击OKc)弹出如下对话框,点击Close二、在建好的工程中添加Verilog程序文件并进行编译a)新建好的空工程如下图,在空白处右击,选择Add to Project New File...b)弹出如下对话框,将type选项改为Verilog,然后输入名称,点击OKc)双击新建好的文件,在右侧的编辑框里输入程序d)输入完成后,点击左上角工具栏的保存按钮e)同样的步骤建立一个测试文件,然后在空白处右击选择Compile Compile All,进行编译f)编译成功后,会出现如下变化,否则请检查程序重新编译三、进行仿真a)编译成功后,点击下方Library选项,在展开的work文件夹中右击刚才建立的测试文件,选择Simulateb)此时弹出如下sim选项界面,在任意处右击选择Add to→Wave→All items in regionc)添加波形完成后,会弹出右侧如下波形框,将上方工具栏中的时间长度100ps改为1ms,然后点击傍边的run工具按钮d)点击运行之后,出现如下波形图,通过调节工具栏上的放大、缩小、适应屏幕的按钮,以及拖动下方的进度条,就会出现合适的波形视图,如下PS: 鼠标右击波形框中的测试文件名,选择Radix Unsigned,可以将二进制改为十进制,如下图,可以看到,计数器随着时钟频率的上升沿,开始计数四、附录Verilog计数器实验源程序module counter3b(clk,cnt); //counter3b.v input clk;output reg[2:0]cnt=3'b0;always @(posedge clk) begincnt<=cnt+1;endendmodule`timescale 1 ns/10 ps // counter3b_tb module counter3b_tb();reg clk=0;wire [2:0]cnt;always #100 clk=~clk;counter3b i1(.clk(clk),.cnt(cnt)); endmodule。
quartus软件及modelsim仿真实验报告

Verilog实验报告实验一Quartus及Modelsim软件的基本使用一、实验目的熟悉Quartus和Modelsim软件的基本使用方法和步骤,熟悉基本的Verilog语法,学会用Verilog语言编写简单的程序。
二、实验要求熟练掌握Quartus和Modelsim软件工程建立、添加文件、编译运行和仿真的方法,学会写程序文件和测试文件。
三、实验仪器和设备1、硬件:计算机2、软件:Quartus、Modelsim、(UE)四、实验内容1、运行Quartus软件建立工程并添加程序.v文件,编译运行,查看电路图。
2、运行Modelsim软件建立工程并添加测试.v文件,进行仿真,查看波形图。
五、实验方法和步骤(一)Quartus软件的使用1、启动Quartus软件:双击桌面的Quartus快捷图标,进入如图1所示的界面。
图1-1 启动界面2、建立工程:选择菜单栏的【File】→【New Project Wizard】命令,弹出图2所示新建工程向导。
图1-2 新建工程向导单击【Next】跳转至下一页。
为方便工程管理,在新建工程之前,先新建一个文件夹,把工程保存在新建的文件下,并对工程进行命名。
如图3所示。
图1-3 命名和存放单击【Next】跳转至下一页。
添加事先写好的.v文件。
如图4所示。
图1-4 添加文件(此处也可不添加,直接在建立好的工程中,选择【File】→【New】命令,新建一个Verilog HDL File,如图5所示。
图1-5 新建.v文件)单击【Next】跳转至下一页。
选择FPGA型号,如图6所示。
因为本次实验不在硬件上实现,因此此步跳过。
直接单击【Next】跳转至下一页。
图1-6 选择FPGA型号直到出现【Summary】界面,单击【Finish】。
如图7所示。
图1-7 结束3、编写程序:由按键控制led灯的亮灭。
如图8。
图1-8 编写程序4、编译程序:在【Task】栏中找到如图所示,编译程序。
modelsim仿真流程

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做仿真实验

对于调用源程序模块的说明
compare m(.equal(equal),.a(t1),.b(t2));
调 用 的 模 块 名 称
默 认 实 例 名 称 为 m 标 点 输 出 端 口 名 称 输 出 端 口 信 号 名 称 逗 号 输 入 端 口 名 称 输 入 端 口 信 号 名 称 括 号 括 号
25,在此下拉菜单中,我们要选择Wave并单击它,我们得 到后页的窗口:
26,这是1个可以进行波形仿真的模块,我们在上面的菜单 中选择Edit并单击它,我们得到后页的窗口:
27,在Edit的下拉菜单中,我们选择Paste并单击它,我们得 到后页的窗口:
28,在Wave模块中,我们有了输入信号和输出信号,可以 启动“ ”Run按钮,我们得到后页的窗口波形:
1,启动Modelsim平台,得到下面的主窗口:
2,选择Proceed to Modelsim,得到后面的窗口:
3,这是Modelsim的主窗口: 4,选菜单条上的View,得到后页的下拉菜单:
5,选竖菜单条上的Source,得到后页的窗口:
6,这是Source程序的窗口,它是1个编辑工具,可以编辑新 的、也可以修改已经存在的用硬件描述语言写的程序。在菜 单条上面选择File,得到后面的下拉菜单条。
module compare(equal,a,b);
output equal;//声明输出信号equal input a,b; //声明输入信号a和b assign equal = (a==b)? 1:0; /*如果a,b两个输入信号相等,输出为1,否则为0*/ endmodule
请注意模块图和Verilog HDL的对应关系。
29,我们得到了局部的波形,再启动“ ”Run_all按钮,我 们得到后页的窗口全部波形:
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;initialbegina=0;b=0;#100 a=0;b=1;#100 a=1;b=1;#100 a=1;b=0;#100 $stop;endcompare 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,然后有:双击compare.v文件会弹出编译窗口:复制上面源文件代码,粘贴到上图右边窗口里面。
然后点击保存图标,然后再新建测试文件。
点击下图的新建文件图标。
过程如同上。
你会看见下图的两个.v文件。
步骤二:编译文件在添加文件在已建的工程后,两个文件的status都是问号,编译后就变成勾。
3_6 ModelSim仿真操作简介

ModelSim仿真操作简介假定已经安装好modelsim-pe_student_edition(modelsim学生版)1、创建目录D:\ModelSim\work1,作为modelsim的仿真工作目录。
2、把实验1中的counter.v和tcounter.v文件拷贝复制到work1目录下。
3、运行modelsim双击modelsim图标,打开modelsim。
如图1所示。
图1打开modelsim4、选择File -> Change Directory单击Change Directory,打开图2窗口。
图2 使modelsim定位到工作目录浏览并选中work1目录,点击确定。
5、创建modelsim的新工作库选择File -> New -> Library,弹出图3窗口。
图3创建modelsim的新工作库全部用缺省的名字work。
点击OK。
Transcript窗口中显示的信息如图4所示。
图4 Transcript窗口中显示的信息6、编译counter.v 和 tcounter.v。
选择Compile -> Compile,打开源文件选择窗口。
如图5所示。
图5打开源文件选择窗口同时选中counter.v 和 tcounter.v。
如图6所示。
图6同时选中counter.v 和 tcounter.v点击Compile按钮,启动编译。
当编译结束时,点击Done。
点击work目录名前面的‘+’号,可以看到生成了test_counter.v仿真设计文件(也称为模块)。
7、加载仿真设计文件双击test_counter模块,或者选Simulate -> Start Simulation。
出现图7所示的仿真窗口。
图7 仿真窗口8、执行仿真选中test_counter,右键打开下拉菜单,选择Add Wave,如图8所示。
图8选中test_counter,右键打开下拉菜单,选择Add Wave点击Add Wave,出现图9所示窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、新建工程
a)如图,打开modelsim后点击File→New→Project...
b)弹出如下图对话框,输入Project Name后,点击OK
c)弹出如下对话框,点击Close
二、在建好的工程中添加Verilog程序文件并进行编译
a)新建好的空工程如下图,在空白处右击,选择Add to Project New File...
b)弹出如下对话框,将type选项改为Verilog,然后输入名称,点击OK
c)双击新建好的文件,在右侧的编辑框里输入程序
d)输入完成后,点击左上角工具栏的保存按钮
e)同样的步骤建立一个测试文件,然后在空白处右击选择Compile Compile All,
进行编译
f)编译成功后,会出现如下变化,否则请检查程序重新编译
三、进行仿真
a)编译成功后,点击下方Library选项,在展开的work文件夹中右击刚才建立的测
试文件,选择Simulate
b)此时弹出如下sim选项界面,在任意处右击选择Add to→Wave→All items in
region
c)添加波形完成后,会弹出右侧如下波形框,将上方工具栏中的时间长度100ps改
为1ms,然后点击傍边的run工具按钮
d)点击运行之后,出现如下波形图,通过调节工具栏上的放大、缩小、适应屏幕的按
钮,以及拖动下方的进度条,就会出现合适的波形视图,如下
PS: 鼠标右击波形框中的测试文件名,选择Radix Unsigned,可以将二进制改为十进制,如下图,可以看到,计数器随着时钟频率的上升沿,开始计数
四、附录Verilog计数器实验源程序
module counter3b(clk,cnt); //counter3b.v input clk;
output reg[2:0]cnt=3'b0;
always @(posedge clk) begin
cnt<=cnt+1;
end
endmodule
`timescale 1 ns/10 ps // counter3b_tb module counter3b_tb();
* * reg clk=0;
wire [2:0]cnt;
always #100 clk=~clk;
counter3b i1(.clk(clk),.cnt(cnt));
endmodule。