modelsim仿真小结
ModelSim使用的一点心得- -
![ModelSim使用的一点心得- -](https://img.taocdn.com/s3/m/0538d129647d27284b7351b6.png)
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实验报告5
![ModelSim实验报告5](https://img.taocdn.com/s3/m/9ed15e89cc22bcd126ff0c44.png)
CPLD/FPGA 设计实验报告实验名称: 时序电路设计基础 实验目的: 掌握ModelSim 软件的基本使用方法,完成基本时序电路设计 实验内容:实验一 八位全加器一、 创建工程工程名称:t_add8二、编写一个测试文件,完成对8位全加器的仿真。
`timescale 1ns/1ns module t_add8; reg cin; reg[7:0] ina,inb; wire [7:0] sum;wire cout;parameter delay=100;add_8 u1(cout,sum,ina,inb,cin); initial begin ina=8'd0;inb=8'd0;cin=1'd0;#delay ina=8'd0;inb=8'd0;cin=8'd0; #delay ina=8'd50;inb=8'd200;cin=1'b1; #delay ina=8'd150;inb=8'd230;cin=1'b0; #delay ina=8'd200;inb=80;cin=1'b0; #delay ina=8'd220;inb=60;cin=1'b1; #delay ina=8'd100;inb=8'd80; #delay ina=8'd240;inb=8'd20;#delay ina=8'd255;inb=8'd255;cin=1'b1;#delay $stop;endinitial $monitor($time,,,"%d+%d+%d={%b,%d}",ina,inb,cin,cout,sum); endmodule三、源码。
module add_8(cout,sum,ina,inb,cin); input cin;装订线input[7:0] ina,inb;output[7:0] sum;output cout;assign{cout,sum}=ina+inb+cin;endmodule四、仿真结果。
关于simulink,modelsim仿真的小结
![关于simulink,modelsim仿真的小结](https://img.taocdn.com/s3/m/554f0d7648d7c1c708a1453e.png)
MODELSIM学习笔记(二)Dsp Builder设计初步的小结杨森Sept 2015现在使用的软件版本分别是 quartusii 11.0 ,modelsim 10.0c, matlab 2010b ,关于软件的安装以及相互之间的关联,做一个简要的说明。
主要需要注意的是,1.必须在安装dsp builder之前安装matlab;2.dsp破解后(若不破解,simulink中的dsp的库文件不能使用),设置环境变量;3.dsp builder破解过程会生成一个license,这个和之后安装的modelsim生成的license需要共用一个环境变量,所以,可以把两个license合并(把其中一个拷到另外一个最后面);软件相互之间能够关联非常重要,否则后面会出现很多意想不到的问题。
我一开始是按照“EDA技术与VHDL(第三版潘松著)”一书中第九章dsp builder设计初步来做的,课本里说使用tcl脚本文件,不知道是不是由于软件版本的原因,根本无法产生想要的结果,故花了一周左右的时间研究modelsim的使用方法。
在这过程中,出现了各种各样的bug,在崩溃的边缘,最后还是依靠各种网络上的资源片段,一个一个warning和error的调试,最终把所有的仿真给做出来了。
我之所以这么执着于仿真,是因为我后期需要做一个FIR的滤波,在simulink中来做,非常的方便,但是,若不进行rtl级仿真和时序仿真,根本不知道转换过来的vhdl代码能不能使用,这是闲话哈,好了,开始我们的操作过程中遇到的问题的详述吧。
本文主要是关于modelsim的RTL级仿真,后面还会陆续有关于时序仿真的教程,如果有童鞋遇到的难题,可以相互讨论一下,我的联系方式:邮箱:senyangah@主要的过程1.完成一个例程其实很多软件都一个共性,那就是,看再多的例程都不如亲手完成一个设计.网上关于各种初级教程有很多,但是,大多数情况是,你跟着教程一步一笔的去做,根本出现不了你想要的结果,我选择了2个稍微比较好一点的教程,并且里面出现的一些小的bug都已经通过注释给讲明了怎么改.本来我也是打算自己写一个教程,一步一步的把操作步骤写下来,但是我发现,首先就是完全没必要啊,网上给的教程的大致过程都是对的,其次就是这个太耗时间了,所以原谅我的偷懒哈,附件中的教程2和教程3,都是可以仿真成功的,大家跟着做就行啦~其中教程2是使用的自动编译,从quartus中直接启动modelsim,教程3是手动编译,第一个例子是使用vism的命令进行操作的,虽然很繁琐,但是对于初学者来说,了解各个参数的设置是很好的,后面的例程通过编写testbench来进行仿真,这种方式是我们以后进行仿真的主要模式.2.Testbench的编写因为本文主要是围绕着simulink生成的vhdl的modelsim仿真来编写的,所以,我们主要介绍的是怎样使用vhdl来编写testbench,附件中教程4,就是用vhdl来编写testbench,以后我们每次需要编写testbench的时候,就先通过quartus来生成一个testbench模板,然后按照教程4中的模板进行各个参数的设置.关于怎么生成testbench的模板,教程2中有说明.3.关于library的添加如果代码是我们编出来的,那么在用modelsim进行仿真的时候,无需添加任何的library,但是若使用到IP核(比方说product模块吧),则需要添加library,原因可以问度娘哈.关于怎么添加library,教程5非常的好用,这里面有几个主要的关键点需要注意:1.教程5的前几个库添加的时候,一定要注意每个VHD文件添加的顺序,比方说:先添加altera_mf_components.vhd后ALTERA_MF.vhd,一个一个的添加,如果一下子全部的话,会有报错。
ModelsimNC-Verilog仿真理解
![ModelsimNC-Verilog仿真理解](https://img.taocdn.com/s3/m/2cd87ec54bfe04a1b0717fd5360cba1aa8118cef.png)
ModelsimNC-Verilog仿真理解Modelsim/NC-Verilog仿真理解仿真(Simulation),也称为模拟,是对所有集成电路或系统的一种检测方法。
用户可以在设计过程中对整个系统和部分模块进行仿真,即在计算机上用仿真软件验证功能是否正确、各部分的时序配合是否正确。
如果有问题可以随时进行修改,从而避免逻辑错误。
高级的仿真软件还可以整个系统设计性能进行评估。
设计规模越大就越需要进行仿真。
仿真包括功能仿真和时序仿真。
在设计输入阶段按进行仿真,不考虑信号延时等因素成为功能仿真,又称前仿真;时序仿真又称为后仿真,他在选择了具体器件并完成了布局布线以后进行的含定时关系的仿真。
由于不同器件的内部延时不同,不同的布局、布局方案也给延时造成了很大的影响,因此在设计实现后,对网络和逻辑块进行延时仿真,分析定时关系,估计设计性能非常有必要。
要进行电路仿真必须有仿真器的支持。
常用的Verilog仿真器有:ModelSim、Verilog-XL、NC-Verilog和VCS等。
下面我们简单介绍下我们常用到的ModelSim、NC-Verilog两款仿真软件特点、区别。
一、ModelSimModelSim是Mentor Graphics子公司ModelSim Technology 的产品,是业界优秀的HDL 语言仿真软件之一,它是编译型的VerilogHDL/VHDL混合仿真器。
MoselSim可以在同一设计中单独或混合使用Verilog HDL和VHDL,允许Verilog HDL模块调用VHDL 的实体,或用VHDL模块调用Verilog HDL的实体。
由于ModelSim 是编译型仿真器,使用编译后的HDL 库进行仿真,因此在进行仿真前,必须所有待仿真的HDL文件编译成为HDL仿真库,在编译时使源文件获得优化,提高了仿真速度。
Model Sim只完成逻辑功能的仿真,并不考虑具体使用什么器件,学习HDL或者设计逻辑的时候compile一次所用的时间很短,便于调试找出逻辑的错误。
altera_modelsim6.1g仿真总结
![altera_modelsim6.1g仿真总结](https://img.taocdn.com/s3/m/44833f4369eae009581bec91.png)
软件环境说明:quartusII 7.2 sp3+altera_modelsim6.1g(作者:刘国华)1,软件的安装详细请看《如何破解ModelSim-Altera 6.1g.pdf》。
(一个注意的地方就是环境变量设置完后一定要重新启动)2,软件的设置《如何解決在Quartus II无法使用ModelSim-Altera模拟的問題.pdf》。
3,用altera_modelsim6.1g做功能仿真,设置地方有3处如下:接着就是运行仿真软件,进行仿真:方法有两种:①编译完后,通过自动运行②编译完后,手动运行,一般运行Gate Level Simulation仿真图如下,由于是功能仿真,所以没有延时信息出现:4,关于do文件的使用技巧问题:执行的默认脚本在:工程所在目录\simulation\modelsim下,例如我的工程:该do文件的内容为:transcript onif {[file exists gate_work]} { #判断库是否存在,存在的话就先删除vdel -lib gate_work -all}vlib gate_work #建立一个库vmap work gate_work #映射库vlog -vlog01compat -work work +incdir+. {counter.vo} #编译文件vlog -vlog01compat -work work +incdir+E:/pratice/verilog/my_counter {E:/pratice/verilog/my_counter/testbench.v} #编译文件vsim -t 1ps -L cyclone_ver -L gate_work -L work top_tb #启动仿真add wave * #把testbench.v的顶层信号加入到波形窗口中view structureview signals #打开信号窗口run –all #执行仿真、modelsim窗口指示的就是这个脚本:如把以下的选项勾起,并指定一个do文件:这个时候上面那个counter_run_msim_gate_verilog.do文件的脚本就会发生以下变化:transcript onif {[file exists gate_work]} {vdel -lib gate_work -all}vlib gate_workvmap work gate_workvlog -vlog01compat -work work +incdir+. {counter.vo}vlog -vlog01compat -work work +incdir+E:/pratice/verilog/my_counter {E:/pratice/verilog/my_counter/testbench.v}vsim -t 1ps -L cyclone_ver -L gate_work -L work top_tb#执行自己写的do文件,这样的话,就可以很好的控制自己想看的信号do E:/pratice/verilog/my_counter/simulation/modelsim/my.domy.do文件如下:view signalview waveadd wave *#将设计文件的内部信号cnt以无符号十进制的形式加入到波形图add wave -radix unsigned /top_tb/tb_counter/cntrun –all5,用altera_modelsim6.1g做布局布线后的仿真(后仿真),设置地方有2处如下:仿真图如下,可以看到下图明显存在延时信息:。
quartus与modelsim联合仿真步骤总结自己
![quartus与modelsim联合仿真步骤总结自己](https://img.taocdn.com/s3/m/3fe48cf39e3143323968939e.png)
1.首先安装好quartus和modelsim2.复制altera quartus eda sim_lib 中对应芯片的.v文件到modelsim文件夹内3.打开quartus新建工程在第四步eda tool setting 中simulation选项中选择modelsim 语言默认为veillog 后面不打勾4.assignments settings eda stimulation工具选择modelsim 路径选择modelsim安装的路径写到win32这一步点击确定至此准备工作全部完成5.写veillog 程序然后保存编译编译后会在我们的工程目录下生成simulation文件夹,里面又有一个modelsim文件夹。
6.创建或者是编写testbench引导文件简单的可以创建复杂的需要自己编写quartus自己创建不了这是一个端口引导文件目的是建立modelsim和quartus之间的桥梁能够让modelsim创建出我们需要的与quartus中相匹配的端口并且执行相同的功能这些功能执行信息都存放在了testbench引导文件当中7.创建testbench文件过程:Processing->Start->Start Test Bench Template Write这时创建的testbench文件存放在4中所说的modelsim文件夹中以.vt为后缀名以工程名命名8.添加该文件:Assignments->EDA Tool Settings选择Simulation设置仿真环境在NativeLink settings中选择Compile test bench并点击后面的Test Benches 在Test Benches中点击New设置Test Bench属性在Test bench entity栏一定要填写刚刚我们创建的testbench文件的实体名即module top_vlg_tst();中的top_vlg_tst。
基于脚本的modelsim自动化仿真笔记
![基于脚本的modelsim自动化仿真笔记](https://img.taocdn.com/s3/m/be8edbdf48649b6648d7c1c708a1284ac850054b.png)
基于脚本的modelsim⾃动化仿真笔记 这⾥记录⼀下基于脚本的modelsim⾃动化仿真的⼀些知识和模板,以后忘记了可以到这⾥查找。
转载请标明出处:。
⼀、基本介绍 这⾥介绍⼀下如何利⽤脚本调⽤modelsim进⾏⾃动化仿真,随笔前⾯先介绍⼀下前仿真,随笔结尾处介绍后仿真。
前仿真的基本介绍如下所⽰,由于我的笔记是写在.do⽂件中,因此我这⾥也给代码的格式,如下所⽰:# #表⽰注释,modelsim不⽀持中⽂,因此可能不能识别注释#①退出当前仿真功能,退出当前的⼯程,跟在modelsim界⾯的命令⾏敲⼊命令的效果⼀样,之后就可以创建其他的⼯程quit -sim#②清除命令⾏显⽰信息;在命令⾏‘敲⼊这个命令,回车’的效果⼀样.main clear#③创建库:vlib:创建库到⼀个物理⽬录中,也就是创建⽂件夹⽬录了。
#可以理解库为某⼀个路径的⽂件夹,⽤来存储modelsim的⼀些数据⽂件;#创建库的格式vlib <library name>,默认库的名字为work#下⾯的代码意思是:1-在当前路径(.do⽂件的路径)下,创建lib⽂件夹;相当于在命令⾏敲‘vlib lib 回车’#2-在当前路径的lib⽂件夹下,创建work⽂件夹库;相当于在命令⾏敲‘vlib ./lib/work’vlib ./libvlib ./lib/work#④映射逻辑库到物理⽬录;也就是说,在modelsimGUI界⾯的Library选项卡⾥⾯创建⼦选项,这个⼦选项就叫做逻辑库,#编译⼯程之后,得到⼀堆编译⽂件,这些⽂件名就放在这个逻辑库选项卡⾥⾯。
但是编译得到的是实体⽂件,这些⽂件必须#有⼀个⽬录存储,因此就需要把逻辑库映射到物理(⽂件夹)⽬录,也就是把那些得到的实体⽂件放在某⼀个⽂件夹⽬录(路径当中)#这样,就可以在实际⽂件夹⾥⾯查看编译得到的⽂件内容,⽽不是单单从选项卡⾥⾯看到名字⽽已#注意,在映射之前,⼀定要先创建好对应的物理路径#语法为 vmap work(逻辑库名称) <library name>(库的路径)#下⾯的代码意思是:在modelsim界⾯的library选项卡创建⼀个叫work的选项卡(逻辑库),编译之后得到的⽂件名称就在,#相应的⽂件就放在./lib/work这个⽂件夹⾥⾯。
想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀
![想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀](https://img.taocdn.com/s3/m/d8502f026c85ec3a87c2c574.png)
想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀。
为了这个问题,我在网上找了很多的资料,但发现这些资料往往说的不明白。
一些步骤被作者有意无意地省略掉,这常常给读者造成不必要的麻烦,所以我决定写下这一篇文章,把这3天我努力的结果拿出来,与大家分享。
首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。
1, ModelSim Se 6.1b2, Synplify Pro 7.5.13, ISE 5.2i (这个是老了点)4, WindowsXP(这个应该没有多大的关系)还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
我的邮箱是****************。
有空大家多交流。
一、为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的仿真理解
![Modelsim的仿真理解](https://img.taocdn.com/s3/m/4c81ec651ed9ad51f01df2be.png)
Modelsim的仿真理解(包含仿真举例)硕1099班郝立娟3111190033常用的Verilog仿真器有Modelsim、Verilog-XL、NC-Verilog和VCS。
我们所用的ModelSim仿真软件是由MentorGraphic公司的子公司Model技术公司开发的工业界上最为通用的仿真器之一,它能提供友好的仿真环境,可以很好的用于Verilog仿真,VHDL仿真或者两者的混合仿真。
ModelSim仿真软件产品的类型很多,我们学的是ModelSim/SE,它是ModleSim主要的版本,功能最为强大,ModelSim有三种实现方法,我们所用的是用户界面的方式,能接受菜单输入和命令行输入。
Modelsim采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。
它的主要特点有:⑴、RTL和门级优化,编译仿真速度快,跨平台跨版本仿真;⑵、单内核VHDL和Verilog混合仿真;⑶、源代码模版和助手,项目管理;⑷、对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL等。
Modelsim的仿真步骤:建库——建立新工程——编译源代码——启动仿真器——加入波形——执行仿真。
1、建立ModelSim 库(物理库)从主菜单里面:File->New->Library点Library得到Create a New Library 对话框。
选则a new library and a logical mapping to it,在 Library Name 中输入 work,相应的在 LibraryPhysical Name 中也会出现物理名 work。
然后点击 OK 确定。
此时在工作空间 workspace 的 Library 栏内会出现一个名为work 的库。
MODELSIM系统函数总结
![MODELSIM系统函数总结](https://img.taocdn.com/s3/m/3f0494dada38376baf1fae7f.png)
篇一:modelsim仿真小结modelsim仿真小结modelsim的基本仿真流程大致分以下几个步骤:建库、编译工程、前后仿真、调试等。
modelsim 仿真既可以在modelsim界面操作,也可以用do文件实现,这里结合学习的教程、网上看到的资料,和实际遇到的一些问题,分别做一整理小结。
1. 建库建库包括altera 库和xilinx库,同时都包括verilog和vhdl。
这里只建了verilog库,vhdl和verilog步骤相同。
对于altera库主要包括lpm元件库、mega_function库atera_mf、altera原语库altera_primitive和各器件系列模型库。
前三种是调用altera模块的必备库,第四种是进行综合后功能仿真和布线后时序仿真需要的库,和器件系列有关,只选对应系列即可。
altera库创建和编译步骤如下:a) 在modelsim安装目录下新建文件夹,命名altera_lib,以存放编译后的库文件,可以在altera_lib 下新建verilog和vhdl两个子文件夹,分别存放verilog和vhdl库。
b) 打开modelsim,新建library,file ->new->library ..c) 如下图,创建lpm库,路径e:\modeltech_10.1a\altera_lib\verilog\lpm到此,lpm库建立完毕。
e) 同理,建立altera_mf库添加 altera_mf.v ,建立primitive库添加altera_primitive.v建立各系列的模型库,命名可用系列名加_ver“xxx_ver”,也可随意吧,添加各系列的xxx_atoms.v。
这里,也可以把以上库放在一个文件夹,这样做简单,一次就搞定,分开也就是条理清楚,没人去看,所以没必要。
f) 修改modelsim.ini文件,为的是让modelsim能自动map到已经编译的这些库上。
《ModelSim电子系统分析及仿真 第3版 》读书笔记思维导图
![《ModelSim电子系统分析及仿真 第3版 》读书笔记思维导图](https://img.taocdn.com/s3/m/a9b436d5760bf78a6529647d27284b73f24236ef.png)
04 第3章 工程和库
第5章 利用
06 ModelSim进行仿真 分析
目录
07 第6章 ModelSim的 协同仿真
09 第8章 ModelSim的 文件和脚本
08 第7章 ModelSim对 不同公司器件的...
ModelSim是优秀的HDL仿真软件之一,它能提供友好的仿真环境,是业界唯一单内核支持VHDL和 Ve r i l o g 混 合 仿 真 的 仿 真 器 , 它 采 用 直 接 优 化 的 编 译 技 术 、 Tc l / T k 技 术 和 单 一 内 核 仿 真 技 术 , 编 译 仿 真 速 度 快 , 编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是 FPGA/ASIC设计的首选仿真软件。本书以ModelSim SE 10.4版软件为平台,由浅入深、循序渐进地介绍 ModelSim 10.4软件各部分知识,包括ModelSim 10.4的基础知识、菜单命令、库和工程的建立与管理、 Ve r i l o g / V H D L 文 件 编 译 仿 真 、 采 用 多 种 方 式 分 析 仿 真 结 果 , 以 及 与 多 种 软 件 联 合 仿 真 等 知 识 。 书 中 配 有 大 量 插 图,并结合实例详细地讲解使用ModelSim进行仿真操作的基本知识和方法技巧,配有本书实例操作的视频讲解, 读者能够轻松学习。
7.3 ModelSim 对Lattice...
第8章 ModelSim的文件和脚 本
8.2 VCD文件
8.1 SDF文件
8.3 Tcl和DO文 件
感谢观看
读
书
笔
记
第3版前言
第1章 概述
1.1 IC设计与 ModelSim
ModelSim-QuestaSim功能及仿真介绍
![ModelSim-QuestaSim功能及仿真介绍](https://img.taocdn.com/s3/m/803d4db94693daef5ef73de4.png)
ModelSim/QuestaSim功能及仿真介绍ModelSim 是工业界最优秀的语言仿真器,它提供最友好的调试环境,是作FPGA、ASIC 设计的RTL 级和门级电路仿真的首选。
它支持PC 和UNIX、LINUX 平台,是单一内核支持VHDL 和Verilog 混合仿真的仿真器。
它采用直接优化的编译技术、Tcl/Tk 技术、和单一内核仿真,编译仿真速度业界最快,编译的代码与平台无关,便于保护IP 核,具有个性化的图形界面和用户接口,为用户加快调试提供强有力的手段。
全面支持VHDL 和Verilog 语言的IEEE 标准,以及IEEE VITAL 1076.4-95 标准,支持C 语言功能调用, C的模型,基于SWIFT 的SmartModel 逻辑模型和硬件模型。
ModelSim 支持RTL 仿真,门级仿真,时序仿真:主要特点:*采用直接编译结构,编译仿真速度最快;*单一内核无缝地进行VHDL 和Verilog 混合仿真;*与机器和版本无关,便于数据移植和库维护;*与机器无关的编译代码编于保护和利用IP;*简单易用和丰富的图形用户界面,快速全面调试;*Tcl/Tk 用户可定制仿真器;*完全支持VHDL/Verilog 国际标准,完全支持Verilog 2001;*支持众多的ASIC 和FPGA 厂家库;*集成的Performance analyzer 帮助分析性能瓶颈,加速仿真;*灵活的执行模式,Debug 模式可以进行高效的调试,效率模式大幅度提高仿真速度。
*加强的代码覆盖率功能Code coverage,能报告出statement 、branch、condition、* expression、toggle、fsm 等多种覆盖率情况,进一步提高了测试的完整性;*同一波形窗口可以显示多组波形,并且能进行多种模式的波形比较(Wave Compare);*先进的Signal Spy 功能,可以方便地访问VHDL 或者VHDL 和Verilog 混合设计中的下层模块的信号,便于设计调试;*支持加密IP;*集成的 C 调试器,支持用C 语言完成测试平台和模块;支持64 位的OS;ModelSim 用户界面:ModelSim 设计流程:ModelSim coverage 验证:tips: 感谢大家的阅读,本文由我司收集整编。
利用ModelSim进行的功能,综合后,时序仿真
![利用ModelSim进行的功能,综合后,时序仿真](https://img.taocdn.com/s3/m/9e8a82e6e87101f69f3195b5.png)
利用ModelSim 进行的功能仿真,综合后仿真,时序仿真功能仿真,就是在理想状态下(不考虑延迟),验证电路的功能是否符合设计的要求。
功能仿真需要:I. TestBe nch或者其他形式的输入激励2•设计代码(HDL源程序)3•调用器件的模块定义(供应商提供,如FIFO, RAM等等)值得一提的是,可以在ModelSim直接编写TestBench,使用View->Source->Show language templates.综合后仿真(门级仿真),实际上就是将对综合后的门级网表进行仿真, 只考虑门延迟,而没有加入时延文件。
在功能仿真之后检验综合的结果是否满足功能要求。
综合后仿真需要:1. 综合后的门级网表,注意这里变成了*.vo 文件,而不是原来功能仿真中所需要的HDL源代码.2. 测试激励3. 元件库Altera 的仿真库位置为*:\altera\quartus\eda\sim_lib所谓时序仿真,就是在综合后仿真的基础上加上时延文件(sdf 文件),综合考虑了路径延迟和门延迟的情况,验证电路是否存在时序违规。
时序仿真需要:1. 综合后的门级网表,注意这里变成了*.vo 文件,而不是原来功能仿真中所需要的HDL源代码.2. 测试激励3. 元件库Altera 的仿真库位置为*:\altera\quartus\eda\sim_lib4 .较门级仿真还需要具有包含时延信息的反标记文件*.sdf可以有两种方法实现门级仿真,或时序仿真。
1. 工程编译成功后,自动启用ModelSim 来运行门级仿真,前提是要在Quartus II的Options中设置好ModelSim的路径(和有些参考PDF上说的环境变量好像无关,至少我用的Quartus II9.0 Web Edtion是这样的)具体方法是,进入Quartus9.0->Tools->Options,在Categroy里选中General 下的EDA Tool Options 在ModelSim 右边的Location ofExecutable中双击来改变路径,就并且在工程中设置了自动启动ModelSim,就可以自动启用了。
Modelsim 仿真步骤总结
![Modelsim 仿真步骤总结](https://img.taocdn.com/s3/m/7f9128cd0c22590102029da5.png)
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。
计数器的Modelsim仿真报告
![计数器的Modelsim仿真报告](https://img.taocdn.com/s3/m/42ed748f90c69ec3d5bb75de.png)
计数器的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、测试模块的变量问题,测试模块的变量决定了测试模块能否编写成功的关键,所以在编写变量时要格外注意,第一次我并没有把所有的变量编写进去,所以总是漏洞百出,最后,终于成功地完成了测试模块的编写。
【原创】modelsim图像仿真笔记整理
![【原创】modelsim图像仿真笔记整理](https://img.taocdn.com/s3/m/34f1726103768e9951e79b89680203d8cf2f6a5f.png)
【原创】modelsim图像仿真笔记整理
1、图像数据⽣成
A、在matlab中打开init_dat_file_generate.m⽂件,进⾏必要的修改(如处理图像名、图像⼤⼩等等)。
B、⽤matlab执⾏init_dat_file_generate.m⽂件,这个⽂件⽣成的是的.dat⽂件包括图像像素地址与数值(均⽤16进制表⽰),例⼦:⾄此,图像数据⽣成完毕。
所有图像数据均值dat⽂件中。
2、testbeach读取与写⼊图像数据
C、在testbeach⽂件中,初始化存储器,将1中⽣成的.dat⽂件读⼊存储器中。
D、在testbeach中编写必要的代码读取存储器中的数据,例
仿真数据如下:
E、输出处理后的图像数据,保存为⼀个⽂件。
⾸先⽤integer定义⽂件描述out_file,⽤file_open_state指⽰⽂件打开状态,$fopen打开,$fclose⽤于关闭。
像素数据写⼊,仅在有效数据oen==1和⽂件打开状态file_open_state==1时写⼊像素。
⽣成的⽂件file.out打开如下
3、Matlab还原图像
F、matlab还原图像
打开read_data.m⽂件,进⾏必要修改,即可还原图像。
file_out ⽣成后要去掉最后的“xxxx...xxxx";。
modelsim系统函数总结(范本)
![modelsim系统函数总结(范本)](https://img.taocdn.com/s3/m/91a3f7c577eeaeaad1f34693daef5ef7ba0d1225.png)
modelsim系统函数总结models im系统函数总结篇一:md elsim仿真小结Mdelsim仿真小结 Mdelsim的基本仿真流程大致分以下几个步骤:建库、编译工程、前后仿真、调试等。
Mde lsim仿真既可以在mdelsim界面操作,也可以用d文件实现,这里结合学习的教程、网上看到的资料,和实际遇到的一些问题,分别做一整理小结。
1. 建库建库包括Alter a库和Xilinx库,同时都包括Veri lg和VHDL。
这里只建了Verilg库,VHDL和Veri lg步骤相同。
对于Altera 库主要包括lpm元件库、Me ga_Functin库atera_mf、altera原语库a ltera_prim itive和各器件系列模型库。
前三种是调用altera模块的必备库,第四种是进行综合后功能仿真和布线后时序仿真需要的库,和器件系列有关,只选对应系列即可。
Al tera库创建和编译步骤如下:a) 在Mdelsi m安装目录下新建文件夹,命名altera_lib,以存放编译后的库文件,可以在altera_lib下新建Verilg和VHDL两个子文件夹,分别存放Veril g和VHDL库。
b) 打开Mdelsi m,新建Librar y,file - n e- library .. c) 如下图,创建lpm库,路径E:\mdeltec h_10.1a\altera_l ib\Verilg\lpm d) 添加库文件,并编译,pil e - pile …,出现pile s urce files窗口,library指定到lpm下,查找范围,选quart us安装目录下…e da\sim_lib目录里的仿真原型文件:220md el.v ,点pi le ,点dne。
Modelsim 仿真方法总结
![Modelsim 仿真方法总结](https://img.taocdn.com/s3/m/f5bf26380b4c2e3f572763ab.png)
Modelsim 仿真方法总结Modeling 仿真工具是Model公司开发的。
它支持Verilog、VHDL以及他们的混合仿真。
Modelsim各版本的使用方法大体一致,Modelsim仿真主要分为前仿真和后仿真。
下面来具体介绍modelsim的仿真方法,涉及quartus-modelsim联合(使用)仿真的差异会特别提示。
前仿真与后仿真说明1.1 前仿真前仿真也称为功能仿真、行为仿真。
旨在验证电路的功能是否符合设计要求,其特点是不考虑延迟(包括门延迟与线延迟),主要验证电路与理想情况是否一致。
前仿真需要用到RTL级代码(由源代码经过综合后产生)与Testbench。
1.2)后仿真后仿真也称为时序仿真或者布局布线仿真。
是指在电路已经映射到特定的工艺环境以后,综合考虑门延迟与线延迟的影响,验证电路在一定的时序条件下是否存在时序违规以及能否满足设计构想的过程。
需要用到的文件是——从布局布线结果中抽象出来的门级网表、testbench和后缀名为sdo或者sdf的标准时延文件。
注:扩展名为sdo和sdf的标准时延文件包含门延迟与实际布线延迟,能较好的反应芯片的实际工作情况。
二)modelsim仿真主要有以下几个步骤:(1)建立库并映射库到物理目录;(2)编译源代码(包括Testbench);(3)执行仿真;解释:①库:modelsim中有两类仿真库。
一种是工作库,默认名为work;另一种是资源库。
Work库中存放当前工程下所有已经编译过的文件,所以编译前一定要建立一个work 库。
资源库存放work库中已经编译文件所要调用的资源,这样的资源可能有很多,它们被存放在不同的资源库内。
(例如要想对综合在cyclone芯片中的设计做后仿真,就需要有一个名为cyclone_ver的资源库。
)映射库用于将已经预编译好的文件所在目录映射为一个modelsim可识别的库。
(此即是为仿真库建立一个逻辑映像的行为过程,后面会提到,在modelsim中新建库时,create a new library and a logical mapping to it或a map to an existing libraryd的提示)上述三个步骤是大的框架,前仿真和后仿真均是按照这个框架进行的,建立modelsim工程对前后仿真来说都不是必须的。
quartus软件及modelsim仿真实验报告
![quartus软件及modelsim仿真实验报告](https://img.taocdn.com/s3/m/df00cfee0242a8956bece440.png)
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仿真测试实验三](https://img.taocdn.com/s3/m/b4266c75cbaedd3383c4bb4cf7ec4afe04a1b1e9.png)
实验3.1. models im仿真测试一、实验目的1、分析分频器的V HDL代码,了解信号和变量的差别。
2、学习modelsim软件环境下,采用测试向量进行测试的方法。
包括:激励文件的建立和测试实现。
二、实验步骤1.1. models im的批处理操作流程建立一个工程F ile->New Projec t Wizard,信号描述变量描述:方法1:方法2:存为:div_si g nal_do.do在编译后,获得了逻辑网表,但未开始仿真。
可以直接运行DO文件。
点击Next,我们将其工程存储在D:\Temp\ex1下(注意:存储路径中一定不能有空格或中文,否则找不到相关文件),工程命名为e x1,如下所示1.2. 使用测试向量testb ench新建项目,添加新文件:打开菜单simulat e\startsimula tion:实验3.2. 基于SOPC的跑马灯一、实验目的1、熟悉用Qua rtus II 进行嵌入式最小系统开发的基本流程。
2.熟悉用SOPC Builde r 进行Nios II CPU 开发的基本流程。
3.熟悉用Nio s II IDE 进行汇编代码的编写、下载的基本过程,通过Nios II IDE集成开发平台调试软件。
二、实验原理SOPC(system on a progra mmable chip ),就是把一个系统集成在单片可编程芯片中。
而一个基于N ios II软核处理器的嵌入式最小系统,至少要包含一个NIOS II软核处理器、一个随机存储器(RAM)、FlashROM (存储代码、数据等)和一个外部设备。
为了方便初学可以进一步简化系统,采用RAM的一段存储区来代替RO M,并只管理一个芯片外部的设备(LED灯)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Modelsim仿真小结Modelsim的基本仿真流程大致分以下几个步骤:建库、编译工程、前后仿真、调试等。
Modelsim仿真既可以在modelsim界面操作,也可以用do文件实现,这里结合学习的教程、网上看到的资料,和实际遇到的一些问题,分别做一整理小结。
1.建库建库包括Altera库和Xilinx库,同时都包括Verilog和VHDL。
这里只建了Verilog库,VHDL和Verilog步骤相同。
对于Altera库主要包括lpm元件库、Mega_Function库atera_mf、altera原语库altera_primitive和各器件系列模型库。
前三种是调用altera模块的必备库,第四种是进行综合后功能仿真和布线后时序仿真需要的库,和器件系列有关,只选对应系列即可。
Altera库创建和编译步骤如下:a)在Modelsim安装目录下新建文件夹,命名altera_lib,以存放编译后的库文件,可以在altera_lib下新建Verilog和VHDL两个子文件夹,分别存放Verilog和VHDL库。
b)打开Modelsim,新建Library,file ->new->library ..c)如下图,创建lpm库,路径E:\modeltech_10.1a\altera_lib\Verilog\lpmd)添加库文件,并编译,compile -> compile …,出现compile source files窗口,library 指定到lpm下,查找范围,选quartus安装目录下… eda\sim_lib目录里的仿真原型文件:220model.v ,点c ompile ,点done。
到此,lpm库建立完毕。
e)同理,建立altera_mf库添加altera_mf.v ,建立primitive库添加altera_primitive.v建立各系列的模型库,命名可用系列名加_ver“xxx_ver”,也可随意吧,添加各系列的xxx_atoms.v。
这里,也可以把以上库放在一个文件夹,这样做简单,一次就搞定,分开也就是条理清楚,没人去看,所以没必要。
f)修改modelsim.ini文件,为的是让modelsim能自动map到已经编译的这些库上。
先去掉只读属性,在[Library]和[vcom]之间加上:库名=库路径[绝对路径或者相对路径],相对路径是相对于modelsim安装路径,modelsim安装路径用$MODEL_TECH 表示。
这里所有库都放在E:\modeltech_10.1a\altera_lib下,库名是altera_lib,这里只添加一句:altera_lib = E:\modeltech_10.1a\altera_libg)保存退出,改回modelsim.ini只读属性,防止乱改。
至此altera库建立完毕。
Xlinx库创建和编译步骤如下:相比altera,xilinx建库很方便。
xilinx有批处理命令,直接在console命令窗口,输入compxlib命令,调出编译库的窗口,先改掉modelsim安装目录下modelsim.ini只读属性。
设置如下图:Next,选择语言:Next,选择需要编译的器件:Netx -> next,选择输出路径,launch compile process,等待编译完成。
完成后改回modelsim.ini只读属性。
至此xilinx库建立完毕。
2.编译工程编译工程主要包括:code、testbench、建立工程、建立工程库、映射、编译等。
Code 主要有code思想和风格,在Verilog部分涉及。
Testbench,下边给出一个公用模板,基于这个方便修改,可以根据自己的习惯建一个temp_tb.v。
Modelsim界面编译工程:a)新建工程:打开modelsim,file -> new -> project .. ,指定工程名、路径、工程库。
b)Add existing filec)Add testbench file ….d)编译,compile –> complie alle)编译语法查错,直到编译通过。
至此编译完毕。
3.功能和时序仿真仿真是在编译的基础上,进行的功能调试,包括综合前功能仿真、综合后功能仿真和布局布线后时序仿真。
Modelsim界面综合前仿真:a)指定顶层,开始仿真;simulation -> start simulation …,在work 库中,指定testbench,ok,开始仿真。
b)查看仿真结果,打开wave,信号,加入wavec)运行,查看波形。
Run -> run all ….至此,简单的modelsim界面综合前仿真介绍完毕。
Modelsim界面综合后仿真:综合后仿真需要quartus综合后的网表文件(以altera为例),a)综合后的网表的生成: quartus工程名右键-> setting –> EDA Tool Setting, 双击Simulation ,选择EDA软件modelsim,选择输出网表路径,如图b)More settings ….将Generate netlist for functional simulation only设置为ONc)保存,全编译。
d)检查一下…/modelsim/Psyth/source 里面,可以发现,已经生成了一个*.vo 文件。
这个就是需要的网表文件。
(VHDL 的输出网表是*.vho 后缀名的)e) 将vo文件添加到工程,指定TestBench 文件top_tb.v,同前边一样进行仿真。
e)得到的仿真结果Modelsim界面布局布线后仿真:布局布线后仿真需要综合网表文件和添延时文件*.sdo(Verilog)或*_vhd.sdo(VHDL);a)QuartusII 里面设置重新把Generate netlist for functional simulation only 设置成OFF。
b)指定延时文件c)运行,查看波形,波形带有延时4.用tcl文件.do 进行modelsim仿真在modelsim中使用do文件是非常方便的进行仿真的一种方法,的项目比较大,特别是几个人分开做的时候,前后模块的联合仿真比较重要,查看的信号比较多,使用了do文件可以自动仿真,省去很多体力活。
下面是编写do文件的一般步骤:a). quit -sim : 首先退出原来仿真的工程。
b). cd: 设置工作目录的路径,就是你所要建立的工作目录work要放在哪里。
c). vlib work: 在工作目录下建立一个work目录,请注意不要用操作系统直接新建一个work的文件夹,因为用操作系统建立的work文件夹并没有modelsim SE自动生成的_info文件。
还有个问题是,当你的软件工程里需要用到软核时,可能会需要一些库,但这些库ISE软件中是没有的,此时就需要我们自己新建库了,并映射到当前目录下。
我们只自己新建的库一般放在work库前面建立。
d). vmap work :将新建的work库映射到当前工作目录下(当前目录就是第一步中的目录了)。
其他新建的库也要这样的方法映射。
e). vlog +acc –work work “file_path/*.v”: 编译“file_path”目录下所有.v文件,并将其添加进工作库(work)中,包括IP生成的V文件也要编译的。
或者:vlog -f top_tb.f,top_tb.f是.v的列表文件。
编译时可以分开单独编译,但是一定要注意顺序,先编译被调用的文件。
在综合后仿真和布局布线后仿真的时候,这里添加综合后网表和tb即可。
VHDL 用vcom编译。
对于xilinx工程在仿真的时候还需要用到一个文件,那就是glbl.v这个库文件。
它是存放在xilinx安装目录下,我们直接编译它并添加时工作库(work)就可以了。
特别需要说明的是,在仿真软核的时候,在XPS软件里点击simulation -> generate simulation hdl files会在工程目录中生成一个simulaton文件夹,这个文件夹里的东西就是软核仿真时所需要的仿真文件了。
所以我们需把simulaton里所以的v文件都编译一次,这样才能仿真软核。
f). vsim -L altera_lib -novopt work.top_tb:这是没有调用IP Core时的仿真命令,注意后面的参数top_tb必须为Testbench中的模块名。
布局布线后仿真是这里要指定延时文件,vsim -L altera_lib -novopt -sdfmax /top_tb/top=top_v.sdo work.top_tbg). do vawe.do运行添加wave tcl,这里可以给信号分组,添加颜色,设置波形属性等。
h). run –all 设定运行时间,run 1000ms等。
i). 在do里可以用file copy/file delete 来对临时文件进行操作。
至此,modelsim仿真总结完毕。
这里仅为了简单记录仿真方法和流程,旨在简单明了,对更深入的和更详细的有待进一步补充。
附件一、testbench 模板////////////////////////////////////////////////////////////////////////////////// Company: <Company Name>// Engineer: <Iyoyoo>//// Create Date: <date>// Design Name: <name_of_top_level_design>// Module Name: <top_tb>// Target Device: <target device>// Tool versions: <tool_versions>// Description:// <top_tb for top.v simulation in modelsim>// Dependencies:// <sub module....>// Revision:// <v1.0>// Additional Comments:// <This is a testbench temp file for verilog>////////////////////////////////////////////////////////////////////////////////`timescale 1ns / 1psmodule top_tb;//*************************Parameter Declarations******************************parameter CLK_PERIOD = 20 ; //clk = 50Mhz//************************Internal Declarations***********************//************************** Register Declarations ****************************reg clk ;reg reset;//********************************Wire Declarations**************************//******************************Main Body of Code***************************//--------------------------------- initial reg data ---------------------------------initialbeginend//---------- Generate Reference Clock input to tb ----------------initialbeginclk = 1'b1;endalways#(CLK_PERIOD/2) clk = !clk;//--------------------------------- Resets ---------------------------------initialbeginrst_n = 1'b1;#(10*CLK_PERIOD) rst_n = 1'b0;#(100*CLK_PERIOD) rst_n = 1'b1;end//----------------------------- Data Transfer---------------------------------initialbegin#(10*CLK_PERIOD);@(negedge data)beginendend//----------------------------- simulation end ---------------------------------initialbegin#(10*CLK_PERIOD);if ( ) //end signbegin$display("------- TEST PASSED -------");endelsebegin$display("####### ERROR: TEST FAILED ! #######");end$stop;end//------------------------ Instantiate TOP module ------------------------top #(.parameter1 (1), //.parameter2 (0) //)top_inst(.a (a),);Endmodule////////////////////////////////////////////////////////////////////////////////附件二、do 模板////////////////////////////////////////////////////////////////////////////////#!/bin/bash#this bash shell document is used to verilog project simulation#author:iyoyooecho "***************** end pre-project ********************************"quit -simecho "***************** go to work dir ********************************"#cd /#cd D:/quartus/EP4CE15F/lcd/simulationecho "***************** start to setup work lib************************" vlib workecho "***************** start to compile ******************************" vlog -f top_tb.fecho "***************** set up reference library ***********************" vmap altera_lib E:/modeltech_10.1a/altera_libecho "***************** delet pre-temp files *************************" #file delete ../simulation/pika_ani.mif#file delete ../simulation/modelsim/top_v.sdoecho "***************** copy temp file *********************************" #file copy ../source/pika_ani.mif ../simulation/#file copy ../simulation/modelsim/top_v.sdo ../simulation/echo "***************** start to simulation **************************" #-pli novas.dll --- for debussy#-sdfmax /top_tb/top=top_v.sdo -----for post synthesis simvsim -L altera_lib -novopt work.top_tbecho "***************** add signal to vawe **************************" do vawe.doecho "***************** start to run ******************************" run -allecho "***************** delete temp files ***************************"#file delete ../simulation/pika_ani.mif#file delete ../simulation/modelsim/top_v.sdo//////////////////////////////////////////////////////////////////////////////// 附件三、file.f模板//////////////////////////////////////////////////////////////////////////////// +licq_all++access+r//../simulation/modelsim/top.vo -for post synthesis simulation../source/top.v../simulation/top_tb.v+libext+vmd+.v-y $QUARTUS_ROOTDIR/eda/sim_lib////////////////////////////////////////////////////////////////////////////////附件三、file.f模板////////////////////////////////////////////////////////////////////////////////view signals stucture waveonerror {resume}quietly WaveActivateNextPane {} 0#-color Green for all signal is green#-color Green Blue Yellow Pink Orchid Red Salmon Orange# top_tb groupadd wave -itemcolor Blue -noupdate -expand -group top_tb -format Logic -radix hexadecimal /top_tb/*# sub groupadd wave -itemcolor Green -noupdate -expand -group sub -format Logic -radix hexadecimal /top_tb/sub/*TreeUpdate [SetDefaultTree]WaveRestoreCursors {{Cursor 1} {10000 ns} 0}configure wave -namecolwidth 364configure wave -valuecolwidth 100configure wave -justifyvalue leftconfigure wave -signalnamewidth 0configure wave -snapdistance 10configure wave -datasetprefix 0configure wave -rowmargin 4configure wave -childrowmargin 2configure wave -gridoffset 0configure wave -gridperiod 1configure wave -griddelta 40configure wave -timeline 0configure wave -timelineunits psupdateWaveRestoreZoom {10000 ns} {10000 ns}////////////////////////////////////////////////////////////////////////////////。