当前位置:文档之家› ModelSim 简明操作指南

ModelSim 简明操作指南

ModelSim 简明操作指南
ModelSim 简明操作指南

第一章介绍

本指南是为ModelSim5.5f版本编写的,该版本运行于UNIX和Microsoft Windows 95/98/Me/NT/2000的操作系统环境中。本指南覆盖了VHDL和Verilog 模拟仿真,但是你在学习过程中会发现对于单纯的HDL设计工作而言,它是一个很有用的参考。ModelSim具备强大的模拟仿真功能,在设计、编译、仿真、测试、调试开发过程中,有一整套工具供你使用,而且操作起来极其灵活,可以通过菜单、快捷键和命令行的方式进行工作。ModelSim的窗口管理界面让用户使用起来很方面,它能很好的与操作系统环境协调工作。ModelSim的一个很显著的特点就是它具备命令行的操作方式,类似于一个shell有很多操作指令供你使用,给人的感觉就像是工作在Unix环境下,这种命令行操作方式是基于Tcl/Tk 的,其功能相当强大,这需要在以后的实际应用中慢慢体会。

ModelSim的功能侧重于编译、仿真,不能指定编译的器件,不具有编程下载能力。不象Synplify和MAX+PLUS II可以在编译前选择器件。而且ModelSim 在时序仿真时无法编辑输入波形,不象MAX+PLUS II可以自行设置输入波形,仿真后自动产生输出波形,而是需要在源文件中就确定输入,如编写测试台程序来完成初始化、模块输入的工作,或者通过外部宏文件提供激励。这样才可以看到仿真模块的时序波形图。另外对于Synplify来说,也只具有编译能力,但是比MAX+PLUS II可编译的verilog的内容要多,所以常常可以现在Synplify下编译,生成编译文件再送到MAX+PLUS II中使用。

ModelSim还具有分析代码的能力,可以看出不同的代码段消耗资源的情况,从而可以对代码进行改善,以提高其效率。

第二章ModelSim的主要结构ModelSim的主窗口(Main window)包括菜单栏、工具栏、工作区和命令行操作区。

在工作区可以显示Project Tab、Library Tab、Sim Tab(显示Load Design、Hierarchical Structure);在命令行操作区,可以用命令提示符的方式进行编译、仿真设计,同时打开其他窗口。

在菜单栏View下可以打开,source window、list window、wave window、

structure window、signal window、dataflow window、process window、viarables window等窗口,用来测试仿真、调试仿真。由此也可以看出该软件具有强大的仿真设计能力,它提供的工具很多。

在帮助菜单里有SE的帮助文件和Tcl的帮助文件,是学用ModelSim很好的帮手。

第三章ModelSim的简要使用方法

在这一章里通过一些课程来简单介绍ModelSim的使用方法,更多的需要在实际应用中熟练和掌握。

第一课Create a Project

1.第一次打开ModelSim会出现Welcome to ModelSim对话框,选取Create a Project,或者选取File\New\Project,然后会打开Create Project对话框。2.在Create Project对话框中,填写test作为Project Name;选取路径Project Location作为Project文件的存储目录;保留Default Library Name设置为work。

3.选取OK,会看到工作区出现Project and Library Tab。

4.下一步是添加包含设计单元的文件,在工作区的Project page中,点击鼠标右键,选取Add File to Project。

5.在这次练习中我们加两个文件,点击Add File to Project对话框中的Browse 按钮,打开ModelSim安装路径中的example目录,选取counter.v和tcounter.v,再选取Reference from current location,然后点击OK。

6.在工作区的Project page中,单击右键,选取Compile All。

7.两个文件编译了,鼠标点击Library Tab栏,将会看到两个编译了的设计单元列了出来。看不到就要把Library的工作域设为work。

8.最后一不是导入一个设计单元,双击Library Tab中的counter,将会出现Sim Tab,其中显示了counter设计单元的结构。也可以Design\Load design来导入设计。

到这一步通常就开始运行仿真和分析,以及调试设计,不过这些工作在以后的课程中来完成。结束仿真选取Design \ End Simulation,结束Project选取File

\ Close \ Project。

第二课Basic VHDL Simulation

准备仿真

1.为这次练习新建一个目录,然后拷贝example目录中所有的vhd文件到该目录下。设置该目录为当前工作目录,这一步通过从该目录调用ModelSim或是选取File\Change Directory命令来完成。

2.在编译任何HDL代码前,要建立一个设计库来存放编译结果。选取Design \ Create a New Library生成一个新的设计库。确定选取Create: a new library and a logical mapping to it,在Library Name域中键入work,然后选取OK。

这就在当前目录中建立了一个子目录,即你的设计库。ModelSim在这个目录中保存了名为_info的特殊文件。

(Prompt : vlib work

vmap work work)

3.选取工具栏里的Compile命令来编译counter.vhd文件到新库中。这将打开Compile HDL Source Files对话框。使用vcom命令是看不到的。从列表中选取counter.vhd再点击Compile,完成后选取Done。可以编译多个文件,按照设计的需要依次选取进行编译。

( Prompt : vcom counter.vhd)

4.选取工具栏里的Load design按钮,导入设计单元。Load design对话框可以让你选择库和顶级(top-level)设计单元来仿真,你也可以为仿真选取Simulation Resolution限制。这次仿真运行,下述是缺省的显示:

? Simulator Resolution: default (the default is 1 ns)

? Library: work

? Design Unit: counter

如果设计单元是一个实体,你可以点击前面的加号,来浏览其关联的结构。

(Prompt : vsim counter)

5.选取counter,然后选择Load接受设置。

6.下面,选取View \All打开所有的窗口,关于窗口的描述,参阅ModelSim

User’s Manua l。

(Prompt : view *)

7.在Signals window选取View\List\Signals in Region,这个命令显示List window中的顶级( top-level)信号。

(Prompt : add list /counter/*)

8.下步,通过从Signals window选取View\Wave\Signals in Region添加顶级( top-level)信号到Wave window。

(Prompt : add wave /counter/*)

运行仿真

通过应用始终输入激励来开始仿真。

1.点击主窗口,在vsim提示符下敲如下面的命令:

(force clk 1 50 ,0 100 –repeat 100)

(MENU : Signals\Edit\Clock)

ModelSim解释force命令如下:

?force clk to the value 1 at 50 ns after the current time

?then to 0 at 100 ns after the current time

?repeat this cycle every 100 ns

2.现在你可以练习来自于主窗口或波形窗口工具条按钮的两个不同的Run功能。(Run功能在主窗口和波形窗口中定义,即这两个窗口中有Run功能)。

首先选取Run按钮,运行完成之后选取Run All。

Run. 运行仿真,在100ns后停止。

(PROMPT: run 100)(MENU: Run \ Run 100ns)

Run-All. 一直运行仿真,直到选取Break。

(PROMPT: run -all)(MENU: Run \ Run -All)

3.选取主窗口或波形窗口的Break按钮来中断仿真,一旦仿真到达一个可接受的停止点,它就停止运行。

在源文件窗口中的箭头指向下一条将被执行的语句。(如果暂停发生时,仿真没在评测一个过程,则没有箭头显示在源文件窗口上)。

下面,你将在18行的函数内部设置一个断点。

4.移动鼠标到源文件窗口,在18行上点击设置断点,可以看到紧挨着行号有一个红点,可以用鼠标点击切换断点的使能与否,断点禁止后看到是一个小的红色的园环。可以在断点上点击鼠标右键,选取Remove BreakPoint 18来取消断点。

(PROMPT : bp counter.vhd 18 )

5.选取Continue Run按钮恢复中断了的运行,ModelSim会碰上断点,通过源文件中的一个箭头或是在主窗口中的一条中断信息来显示出来。

(PROMPT: run -continue)(MENU: Run \ Continue)

6.点击Step按钮可以单步执行仿真,注意Variables window中值的变化。如果你愿意可以持续点击Step。

(PROMPT: run -step)(MENU: Step)

7.当你完成了,敲入以下命令结束仿真。

quit -force

8.命令没有寻求确认就结束了ModelSim。

第三课Basic verilog Simulation

1.新建一个目录,并设置该目录为当前工作目录,通过从该目录调用ModelSim 或是选取File\Change Directory命令来完成。

2.拷贝example目录中verilog文件到当前目录下。在你编译verilog文件前,你需要在新目录下生成一个设计库。如果你仅仅熟悉解释性verilog仿真器,诸如Cadence Verilog-XL,那么对于你来说这是一个新的方法。因为ModelSim 是一个编译性Verilog仿真器,对于编译它需要一个目标设计库。如果需要的话,ModelSim能够编译VHDL和Verilog代码到同一个库中。

3.在编译任何HDL代码前,要建立一个设计库来存放编译结果。选取Design \ Create a New Library生成一个新的设计库。确定选取Create: a new library and a logical mapping to it,在Library Name域中键入work,然后选取OK。

这就在当前目录中建立了一个子目录,即你的设计库。ModelSim在这个目录中保存了名为_info的特殊文件。

(Prompt : vlib work

vmap work work)

4.下面你将编译Verilog设计。

这个设计例子由两个Verilog源文件组成,每一个都包含一个唯一的模块。文件counter.v包含一个名为counter的模块,它执行一个简单的八位加法计数器。另一个文件tcounter.v是一个测试台模块(test_counter),通常用来校验counter。在仿真下,你可以看到这两个文件,通过一个被测试台例示了的模块counter的一个简单的实例(名为dut的实例),来层次化的设置了。稍候你将有机会看一下这个代码的结构,现在,你需要编译两个文件到work设计库。

5.通过选取工具条中的Compile按钮来编译两个文件。

(PROMPT : vlog counter.v tcounter.v )

这就打开了Compile HDL Source Files对话框。

选取两个文件后,选择Compile,编译完成后选取Done。

6.选取工具条中的Load Design按钮开始仿真。

(PROMPT : vsim test_counter )

Load Design对话框允许你从指定的库中选取一个设计单元仿真。你也可以为仿真选取Simulation Resolution限制,缺省的库是work,缺省的Simulation Resolution是1ns。

7.选取test_counter,点击Load接受这些设置。

8.通过在主窗口下的vsim提示符下敲入下述命令来调出Signals、List and Wave window:

view signals list wave

(MENU: View\

9.为了列示顶级(top-level)信号,移动鼠标到Signals window,选取View\List\Signals in Region。

(Prompt : add list /test_counter/*)

10.现在向Wave window添加信号。在Signals window选取Edit\Select All 选择三个信号,拖动三个信号到Wave window的路径名或是数值窗格的任一个中。

HDL条目也能够从一个窗口拷贝到另一个窗口(或者是在Wave and List window内部),通过Edit \ Copy和Edit \ Paste菜单命令。也能删除选取的条目Edit \ Delete。

11.下面打开Source window,选取View \ Source

(Prompt : view source)

12.导入设计的时候会在工作去开出一个新的Sim Tab栏。这个Structure Pane展示了设计的层次结构。你可以点即“+”(expand)或“-”(contract)来观察。13.点击其中的Function increment可以注意到其他窗口是怎么适当的自动更新的。明确地说,Source window显示了你在Structure window所选的层次水平的Verilog代码.在这种方式下使用Structure Pane类似于解释性Verilog的范围命令。现在,点击Structure Pane的顶层线,确定test_counter 模块显示在Source window。

运行仿真

1.Run运行100ns,缺省设置。

(PROMPT: run )(MENU: Run\Run 100ns)

2.设置Run Length为500ns,然后Run。

现在仿真运行了600ns,在工作取底部状态栏可以看到这些信息。

3.上个命令使仿真器前进了500ns,也可以设置仿真器推进的时间run @ 3000

实际仿真器向前推进了2400ns(3000-600)

4.选取主窗口Run All。

(PROMPT: run -all )(MENU: Run\Run -All)

5.选取Break中断运行。

看Source window,察看中断执行的语句。

调试仿真

1.在List window选取/test_counter/count。从List window菜单条中选取Prop \ Signal Props。Modify Signal Properties (list)对话框打开了。

为信号counter选取十进制(在Radix),相应的List window的输出也发生改变,成为十进制数,而不是缺省的二进制了。

2.我们选取工作区Structure Pane中的dut:counter,然后在counter.v中的30行(这里包含一个到Verilog功能增量的调用)设置断点。

3.选取Restart按钮,重载设计组件和重置仿真时间为零。

(PROMPT: restart )(MENU: File\Restart)

确认Restart对话框中所有条目被选中,然后点击Restart。

例子中的Verilog代码中19行有一个stop语句,如果不Restart的话,将会停在这一句上。

4.选取Run –All(主窗口),恢复执行仿真。中断后看Source window。

(PROMPT: run -all )(MENU: Run\Run -All)

5.正常的,当中断到达后你对一个或多个信号的值感兴趣,你有几个选项可以检测这些值。你能看显示在Signals window中的值;可以在Source window中,在变量上点右键;或者使用examine命令。

examine count

命令的结果是,值会输出在主窗口。

6.执行单步跳使命令Step,遍历Verilog源函数。

7.结束仿真的命令为:quit –force。

第四课Mixed VHDL/verilog simulation

准备仿真

1.生成一个新的工作目录,拷贝..\examples\mixedhdl\下的*.vhd和*.v文件到新目录中。设置为为当前工作目录。运行软件,如果Welcome对话框出现,选取Proceed to ModelSim。

2.Select Design\Create a New Library

(PROMPT:vlib work)

Type Library Name:work

Select OK!

3.编译文件

(PROMPT : vlog cache.v memory.v proc.v)

(PROMPT : vcom util.vhd set.vhd top.vhd)

打开Compile HDL Source Files对话框。逐个编译Verilog文件。

cache.v memeory.v proc.v

4.依赖设计,VHDL的编译次序是特定的。在这个例子中,top.vhd文件必须最后编译。按照下面的顺序编译文件:

util.vhd set.vhd top.vhd

5.编译完成,点Done。

运行仿真

1.选取Load Design开始仿真。Load Design对话框打开,选取top实体点击Load。

(PROMPT : vsim top)

2.View\All,(PROMPT : view *)

3.add list *

add wave *

(Signals MENU: View\List\Signals in Region)

(Signals MENU: View\Wave\Signals in Region)

4.观察一下工作区的Structure pane。注意设计中两者的层次混合,VHDL级的用一个方框前缀指示,Verilog级的用一个圆形前缀指示。

5.在Structure pane中点击模块c:cache,它的源代码出现在源文件窗口。6.用查找功能定位cache.v文件中cache_set的声明。

Edit\Find。

找到了可以发现,cache_set是cache.v文件内例示了的VHDL实体。

7.在Structure window,点击行“s0:cache_set(only)”。则Source window显示了cache_set实体的VHDL代码。

8.Quit –force

第五课Debugging a VHDL simulation

准备仿真

1.拷贝..\example\下的gates.vhd,adder.vhd,testadder.vhd文件到新建的工作目录,并定位为当前工作目录。

2.生成一个新库:vlib library_2。

3.在命令行的方式下敲入以下命令将源文件编译到新库中

vcom –work library_2 gates.vhd adder.vhd testadder.vhd

4.下一步是映射新库到工作库,可以编辑modelsim.ini文件来生成映射,或者用vmap命令生成一个逻辑库名字来完成。

vmap work library_2

ModelSim为你修改modelsim.ini文件。

5.选取Design\Load Design,打开Load Design对话框。

6.确认simulation resolution为缺省;在设计单元中选取名为test_adder_structural的配置;单击Load接受设置。

(PROMPT : vsim –t ns work.test_adder_structural)

7.打开所有的窗口。(PROMPT:View *)(MENU:View\All)

8.在Signals window中选区所有信号Edit\Select All然后拖到List window中。

(MENU:View\List\Signals in Region)(PROMPT:add list *)

9.同样地,把信号加到Wave window中。键入命令:add wave * (MENU:View\Wave\Signals in Region)(DRAG&DROP)

10.在主工具条上的运行时间选择器中,改变运行时间设置为1000ns。

(MENU:Option\Simulation\Defaults)

运行调试仿真

1.选取Run,运行仿真。(PROMPT:run)

主窗口中的一条消息将通报你有一个判断错误。执行下面步骤查找错误。2.首先,改变仿真判断选项。选取Option\Simulation。

3.选取Assertions页面。改变选择为Break on Assertion to Error并点击OK。

这将使仿真停在HDL判断语句上。

4.选取Restart。(MENU:File\Restart)(PROMPT:restart)

确定Restart对话框中所有条目被选,然后点击Restart。

5.选取Run。可以看到Source window中的箭头指向判断语句。

(MENU:Run\Run 1000 ns)(PROMPT:run)

6.在Variables window中,你可以看到i=6。这表示仿真停留在测试模式环路的

第六次重复中。

7.点击加号“+”展开名为test_patterns的变量。

8.也要展开排列test_patterns(6)的第六次纪录。

判断表明了Signal window中的sum不等于Variables window中的sum字段。输入a,b和cin的和应该等于输出sum。但是在测试向量内有一个错误。

为了改正这个错误,你需要重仿真且修改测试向量的初始值。

9.执行restart–f命令

参数-f使ModelSim不出现确认对话框就重新仿真。

10.在test Process window中选取testbench process更新Variables window。

11.再次展开Variables window中的test_patterns和test_patterns(6)。点击变量名字,高亮显示.sum纪录,然后选取Edit\Change。

12.把value中数值的最后四位(1000),替换为0111,并点击Change。(这只是暂时编辑,你必须用文本编辑器永久地改变源代码。)

13.选取Run。

(MENU:Run\Run 1 us)(PROMPT:run)

这样,仿真运行时就不会报错了。

改变new-line触发

缺省的,对于列出信号的每一次变化一条新线显示在List window中。下面的步骤将改变触发因而每100ns就列出这些值。

1.在List window中,选取Prop\Display Props。

2.在Triggers页面完成这些步骤。

·取消选取Trigger On:Signals以禁止在信号上触发

·选取Trigger On:Strobe以开启strobe

·在Strobe Period域键入100

·在First Strobe at域键入70

·单击OK接受设置

3.最后一步将把信号a,b和sum改为十进制。选取Prop\Signal Props,打开Modify Signal Properties(list)对话框。

4.选取信号,改变其属性。然后结束ModelSim,quit –force。

第六课Running a batch-mode simulation

批处理模式仿真必须运行在DOS或UNIX提示符下。

1.生成一个新目录,设置成当前工作目录。拷贝..\examples\counter.vhd到该目录下。

2.生成一个新的设计库:vlib work

3.映射库:vmap work work

4.编译源文件:vcom counter.vhd

5.使用宏文件为计数器提供激励。拷贝..\example\stim.do文件到当前工作目录中。

6.生成批处理文件,内容为:

add list –decimal *

do stim.do

write list counter.lst

7.执行下面的命令,运行批处理模式仿真:

vsim –do yourfile –wlf saved.wlf counter

·在名为“counter”的设计单元调用vsim仿真器

·通过-wlf这个可选项通知仿真器在名为saved.wlf的日志文件中保存仿真结果

·运行yourfile指定:值以十进制的方式列示出来;执行名为stim.do的激励;

并将结果写到名为counter.lst的文件中。缺省的设计名为counter。

8.浏览仿真结果vsim –view saved.wlf

9.打开一些窗口view signals list wave

10.在窗口中放置信号add wave *

add list *

11.运用Variables windows实验保存的仿真结果。完成了结束仿真:quit –f

有关批处理和命令行模式更多的信息,请参阅ModelSim User’s Manua l。

第七课Executing Commands at startup

本课与第六课所介绍的工作于相同的目录,也是以命令行方式操作。

1.这里将用到宏文件(DO)提供启动信息。拷贝..\examples\startup.do到当前工作目录。

2.拷贝modeltech目录下的modelsim.ini文件到当前工作目录。然后编辑该文件,指定一个在设计导入之后被执行的命令。用notepad打开ini文件,取消下属语句的注释,它位于文件的[vsim]部分:(修改后保存)

Startup=do startup.do

3.浏览这个DO文件,可以发现它用了一个预定义变量$entity来为不同的设计在启动时作不同的事情。

4.键入以下指令指定将被仿真的顶级设计单元,开始仿真:vsim counter 注意到没有显示对话框仿真器就导入了设计单元。对于一再地仿真同一个设计单元,这样做是很便捷的。还可以注意到所有的窗口都打开了,这是因为命令view *包括在启动宏里面。

5.结束ModelSim,执行quit –f命令。

6.在其他例子中是不需要startup.do文件的,所以用文本编辑器注释掉modelsim.ini文件中的Startup这一行。

第八课Finding names and values

Finding items by name in tree windows

你可以使用各个窗口(List,Process,Signal,Source,Structure,Variables,and Wave window)中的查找对话框找寻你需要的HDL条目。Edit\Find

Searching for item values in the List and Wave windows

你可以在List and Wave windows中搜寻HDL条目的值。Edit\Search

你能够为Signal Name(s)定位值,搜寻基于以下的选项:

·Search Type:Any Transition搜寻选取信号的任何变化

·Search Type:Rising Edge搜寻选取信号的上升沿

·Search Type:Falling Edge搜寻选取信号的下降沿

·Search Type:Search for Signal Value

搜寻Value域中指定的值(符合VHDL or Verilog的数值格式)

·Search Type:Search for Expression

搜寻评测一个布尔真值的Expression域中的表达式

表达式可以调用一个以上的信号,但是限制在纪录于List windows上的信号。表达式可以包括常量、变量和Tcl宏。如果没有指定表达式,搜寻将返回一个错误。参阅ModelSim Command Reference以获取更多关于表达式语法的信息。·Search Options:Match Count

你能够搜寻关于值的第n个变化或者是第n个匹配。Match Count指示了搜寻到的变化或匹配的数量。

·Search Options:Ignore Glitches

忽略VHDL信号和Verilog网表中的零宽度的脉冲干扰。

搜寻的结果显示在对话框的底部。

第四章使用中的注意事项

1.如果打开ModelSim,没有出现Welcom to ModelSim对话框,可以在主窗

口点击Help \ Enable Welcome,则以后打开ModelSim就会出现该对话

框。

2.在工作区底部的状态栏里会显示一些有用的信息。

3.操作哪个目录中的文件一定要定位到该目录,或者是设置为当前工作目

录。

4.不能用UNIX或window命令来生成work子目录,因为里面没有_info文件,

只能用菜单或vlib命令。

5.断点只能设置在可执行的行上,这些行以绿色行号指示

6.在Basic Verilog Simulation一课里面,编译两个文件的次序是不重要的(不

同于被编译器指示生成的源码的从属性)。Verilog-Xl的用户可能再次感到

奇怪,他们了解设计单元之间的接口检测或是编译器指示的继承关系上

可能存在的问题。ModelSim推迟了这样的检测,直到设计被导入。所以

在这里,如果你选择在tcounter.v之前或之后编译counter.v不存在任何问

题。

7.一组Verilog文件可以以任意次序编译,但是在一个混合VHDL/Verilog设

计中,Verilog文件必须在VHDL文件值前编译。

8.force命令可以驱动clk,相当于给仿真初始化。

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.doczj.com/doc/6715879186.html, 结合黑金FPGA开发板的所用的软件quartus 11.0与modelsim10.0c, 本文介绍给初学者介绍Modesim SE 入门,Modesim SE 入门视频可在https://www.doczj.com/doc/6715879186.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.doczj.com/doc/6715879186.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.doczj.com/doc/6715879186.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.doczj.com/doc/6715879186.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.doczj.com/doc/6715879186.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进入仿真;

相关主题
文本预览
相关文档 最新文档