做集成电路这个行业,真的很不容易!

ModelSim SE简明操作指南

上一篇 / 下一篇  2006-07-30 04:46:17 / 天气: 晴朗 / 心情: 高兴

第一章 介  绍
,P TrGy0本指南是为ModelSim5.5f版本编写的,该版本运行于UNIX和Microsoft Windows 95/98/Me/NT/2000的操作系统环境中。本指南覆盖了VHDL和Verilog模拟仿真,但是你在学习过程中会发现对于单纯的HDL设计工作而言,它是一个很有用的参考。ModelSim具备强大的模拟仿真功能,在设计、编译、仿真、测试、调试开发过程中,有一整套工具供你使用,而且操作起来极其灵活,可以通过菜单、快捷键和命令行的方式进行工作。ModelSim的窗口管理界面让用户使用起来很方面,它能很好的与操作系统环境协调工作。ModelSim的一个很显著的特点就是它具备命令行的操作方式,类似于一个shell有很多操作指令供你使用,给人的感觉就像是工作在Unix环境下,这种命令行操作方式是基于Tcl/Tk的,其功能相当强大,这需要在以后的实际应用中慢慢体会。EDA中国门户网站/A)H;| YGv5E9e;]j+Z
ModelSim的功能侧重于编译、仿真,不能指定编译的器件,不具有编程下载能力。不象Synplify和MAX+PLUS II可以在编译前选择器件。而且ModelSim在时序仿真时无法编辑输入波形,不象MAX+PLUS II可以自行设置输入波形,仿真后自动产生输出波形,而是需要在源文件中就确定输入,如编写测试台程序来完成初始化、模块输入的工作,或者通过外部宏文件提供激励。这样才可以看到仿真模块的时序波形图。另外对于Synplify来说,也只具有编译能力,但是比MAX+PLUS II可编译的verilog的内容要多,所以常常可以现在Synplify下编译,生成编译文件再送到MAX+PLUS II中使用。
bP*Tq_vx9Zn'@0ModelSim还具有分析代码的能力,可以看出不同的代码段消耗资源的情况,从而可以对代码进行改善,以提高其效率。
m#mC3[[j0第二章    ModelSim的主要结构
-m M)K#Y(d V0ModelSim的主窗口(Main window)包括菜单栏、工具栏、工作区和命令行操作区。EDA中国门户网站1_!y3X}Q%^
在工作区可以显示Project Tab、Library Tab、Sim Tab(显示Load Design、Hierarchical Structure);在命令行操作区,可以用命令提示符的方式进行编译、仿真设计,同时打开其他窗口。
,Q3@`c&T S-l0在菜单栏View下可以打开,source window、list window、wave window、structure window、signal window、dataflow window、process window、viarables window等窗口,用来测试仿真、调试仿真。由此也可以看出该软件具有强大的仿真设计能力,它提供的工具很多。
y.If,Io0在帮助菜单里有SE的帮助文件和Tcl的帮助文件,是学用ModelSim很好的帮手。
l;I_*xw0第三章    ModelSim的简要使用方法
6Wc[G*^0在这一章里通过一些课程来简单介绍ModelSim的使用方法,更多的需要在实际应用中熟练和掌握。EDA中国门户网站/T9i X'N:`J2ko;e
第一课   Create a Project
w.UIY.J ?ls$f#@$Vq4u01.    第一次打开ModelSim会出现Welcome to ModelSim对话框,选取Create a Project,或者选取File\New\Project,然后会打开Create Project对话框。EDA中国门户网站&Bg+sg\yo MT
2.    在Create Project对话框中,填写test作为Project Name;选取路径Project Location作为Project文件的存储目录;保留Default Library Name设置为work。
"Y.| V4l4F"z!HCk J03.    选取OK,会看到工作区出现Project and Library Tab。EDA中国门户网站`*?zJ2AxZ
4.    下一步是添加包含设计单元的文件,在工作区的Project page中,点击鼠标右键,选取Add File to Project。
7_B;}Gk?X\05.    在这次练习中我们加两个文件,点击Add File to Project对话框中的Browse按钮,打开ModelSim安装路径中的example目录,选取counter.v和tcounter.v,再选取Reference from current location,然后点击OK。
BJr9e%?$P06.    在工作区的Project page中,单击右键,选取Compile All。EDA中国门户网站}_~/Gy
7.    两个文件编译了,鼠标点击Library Tab栏,将会看到两个编译了的设计单元列了出来。看不到就要把Library的工作域设为work。EDA中国门户网站"`~y&V*R
8.    最后一不是导入一个设计单元,双击Library Tab中的counter,将会出现Sim Tab,其中显示了counter设计单元的结构。也可以Design\Load design来导入设计。
-E'wu!Bdf]F:ZQ0到这一步通常就开始运行仿真和分析,以及调试设计,不过这些工作在以后的课程中来完成。结束仿真选取Design \ End Simulation,结束Project选取File \ Close \ Project。EDA中国门户网站 [[*R*_9a W$A
第二课   Basic VHDL SimulationEDA中国门户网站 x8K/G _ u8WI8v6n
准备仿真
L%YyR hnCJ:x)Z01.    为这次练习新建一个目录,然后拷贝example目录中所有的vhd文件到该目录下。设置该目录为当前工作目录,这一步通过从该目录调用ModelSim或是选取File\Change Directory命令来完成。
prg(U:cgB-O02.    在编译任何HDL代码前,要建立一个设计库来存放编译结果。选取Design \ Create a New Library生成一个新的设计库。确定选取Create: a new library and a logical mapping to it,在Library Name域中键入work,然后选取OK。这就在当前目录中建立了一个子目录,即你的设计库。ModelSim在这个目录中保存了名为_info的特殊文件。
1bO @^~A-Z9DW^0( Prompt : vlib workEDA中国门户网站+@'Te4xS
vmap work work )EDA中国门户网站:WVa gIx"@vJ:ry
3.    选取工具栏里的Compile命令来编译counter.vhd文件到新库中。这将打开Compile HDL Source Files对话框。使用vcom命令是看不到的。从列表中选取counter.vhd再点击Compile,完成后选取Done。可以编译多个文件,按照设计的需要依次选取进行编译。
n+[q.}!C,F.|/o'd1R0( Prompt : vcom counter.vhd )EDA中国门户网站D,g(T3O~9PX
4.    选取工具栏里的Load design按钮,导入设计单元。Load design对话框可以让你选择库和顶级( top-level )设计单元来仿真,你也可以为仿真选取Simulation Resolution限制。这次仿真运行,下述是缺省的显示:
/^(G^ f L:I0uO0• Simulator Resolution: default (the default is 1 ns)EDA中国门户网站4us$N\#Kx EZY
• Library: workEDA中国门户网站6S,N&c4OR$kPL
• Design Unit: counterEDA中国门户网站;OzL0C i\pV2c
   如果设计单元是一个实体,你可以点击前面的加号,来浏览其关联的结构。EDA中国门户网站+^Pr^.hRE(x/\
   ( Prompt : vsim counter )
3S(i H$q6sij05.    选取counter,然后选择Load接受设置。EDA中国门户网站"epJ4`*dk)}
6.    下面,选取View \ All打开所有的窗口,关于窗口的描述,参阅ModelSim User’s Manual。EDA中国门户网站 YVVnQ#i fO-K
( Prompt : view * )
P1C-_7sD$Vb07.    在Signals window选取View\List\Signals in Region,这个命令显示List window中的顶级( top-level )信号。
*] r!nr"v2`+H8Q0   ( Prompt : add list /counter/* )EDA中国门户网站 PC:l)o]%~&F a
8.    下步,通过从Signals window选取View\Wave\Signals in Region添加顶级( top-level )信号到Wave window。EDA中国门户网站(Jl,j"v3m K*L
   ( Prompt : add wave /counter/* )EDA中国门户网站\w ?:xh
运行仿真EDA中国门户网站C)R:e6C0i-N5@(~
通过应用始终输入激励来开始仿真。
b1R \1Z'M;fk4~rR01.    点击主窗口,在vsim提示符下敲如下面的命令:EDA中国门户网站)} j/VO$l%c m.g E
   ( force clk 1 50 , 0 100 –repeat 100 )EDA中国门户网站:]7\.n%t7B-t U
   ( MENU : Signals\Edit\Clock )
9ow%I FX,}:Up;f0   ModelSim解释force命令如下:EDA中国门户网站3j1A&?xQw
    force clk to the value 1 at 50 ns after the current timeEDA中国门户网站)j U(}r@p
    then to 0 at 100 ns after the current time
+RL0\(c9d^\Y9m0    repeat this cycle every 100 ns
@3lBh.pM2t02.    现在你可以练习来自于主窗口或波形窗口工具条按钮的两个不同的Run功能。(Run功能在主窗口和波形窗口中定义,即这两个窗口中有Run功能)。首先选取Run按钮,运行完成之后选取Run All。
~e-rsj0Run.  运行仿真,在100ns后停止。
9ii2`'mo0(PROMPT: run 100) (MENU: Run \ Run 100ns)EDA中国门户网站c{ pc,IKx
Run-All.  一直运行仿真,直到选取Break。
}C*i sRGmm-B0(PROMPT: run -all) (MENU: Run \ Run -All)EDA中国门户网站9p-g5]3[K
3.    选取主窗口或波形窗口的Break按钮来中断仿真,一旦仿真到达一个可接受的停止点,它就停止运行。
9T Plv4Eh:FD0在源文件窗口中的箭头指向下一条将被执行的语句。(如果暂停发生时,仿真没在评测一个过程,则没有箭头显示在源文件窗口上)。EDA中国门户网站 |I*s4WQXOVn7p
下面,你将在18行的函数内部设置一个断点。EDA中国门户网站k*}3h`R}7D'z
4.    移动鼠标到源文件窗口,在18行上点击设置断点,可以看到紧挨着行号有一个红点,可以用鼠标点击切换断点的使能与否,断点禁止后看到是一个小的红色的园环。可以在断点上点击鼠标右键,选取Remove BreakPoint 18来取消断点。
lTr4w;F$aAg ec0( PROMPT : bp counter.vhd 18 )
%`5SV7Jx r[&r05.    选取Continue Run按钮恢复中断了的运行,ModelSim会碰上断点,通过源文件中的一个箭头或是在主窗口中的一条中断信息来显示出来。
6\-X8USNeO0   (PROMPT: run -continue) (MENU: Run \ Continue)
N"mku~Y06.    点击Step按钮可以单步执行仿真,注意Variables window中值的变化。如果你愿意可以持续点击Step。EDA中国门户网站dtfmwvf7}rc
   (PROMPT: run -step) (MENU: Step)
Z1k;Bot07.    当你完成了,敲入以下命令结束仿真。
K8]B7| r ogSRda0quit -force
#_V4T C4w8f08.    命令没有寻求确认就结束了ModelSim。EDA中国门户网站9NO!LF+m d
第三课   Basic verilog SimulationEDA中国门户网站0b[{7}c6p F-nM

Gq bzo/j(j(}01.    新建一个目录,并设置该目录为当前工作目录,通过从该目录调用ModelSim或是选取File\Change Directory命令来完成。
CAl#h%P hU-@02.    拷贝example目录中verilog文件到当前目录下。在你编译verilog文件前,你需要在新目录下生成一个设计库。如果你仅仅熟悉解释性verilog仿真器,诸如Cadence Verilog-XL,那么对于你来说这是一个新的方法。因为ModelSim是一个编译性Verilog仿真器,对于编译它需要一个目标设计库。如果需要的话,ModelSim能够编译VHDL和Verilog代码到同一个库中。
[`-O'W%Jk]03.    在编译任何HDL代码前,要建立一个设计库来存放编译结果。选取Design \ Create a New Library生成一个新的设计库。确定选取Create: a new library and a logical mapping to it,在Library Name域中键入work,然后选取OK。这就在当前目录中建立了一个子目录,即你的设计库。ModelSim在这个目录中保存了名为_info的特殊文件。
%tu%Fnn$Ed"]0( Prompt : vlib work
\Ra&C%A/Z} ^x/w$K0vmap work work )EDA中国门户网站xG2WkV&I
4.    下面你将编译Verilog设计。EDA中国门户网站9j(N!~e4DW5qh"x
这个设计例子由两个Verilog源文件组成,每一个都包含一个唯一的模块。文件counter.v包含一个名为counter的模块,它执行一个简单的八位加法计数器。另一个文件tcounter.v是一个测试台模块(test_counter),通常用来校验counter。在仿真下,你可以看到这两个文件,通过一个被测试台例示了的模块counter的一个简单的实例(名为dut的实例),来层次化的设置了。稍候你将有机会看一下这个代码的结构,现在,你需要编译两个文件到work设计库。
'H%W-lQw2pil I_V;c#Pk05.    通过选取工具条中的Compile按钮来编译两个文件。EDA中国门户网站 sPdqt
   ( PROMPT : vlog counter.v tcounter.v )
%V3]^\5W\0   这就打开了Compile HDL Source Files对话框。EDA中国门户网站8gY9u%A i'X
   选取两个文件后,选择Compile,编译完成后选取Done。EDA中国门户网站Wo/A2g-] U V
6.    选取工具条中的Load Design按钮开始仿真。
a2v~_-G/e(M0   ( PROMPT : vsim test_counter )EDA中国门户网站:b7Gf$vf2Z#];j7B[
   Load Design对话框允许你从指定的库中选取一个设计单元仿真。你也可以EDA中国门户网站+G*Ul8EP*Y6DU
   为仿真选取Simulation Resolution限制,缺省的库是work,缺省的Simulation Resolution是1ns。EDA中国门户网站l!["hu}YD0O
7.    选取test_counter,点击Load接受这些设置。EDA中国门户网站u%X7f`\2@%|o&\
8.    通过在主窗口下的vsim提示符下敲入下述命令来调出Signals、List and Wave window:EDA中国门户网站!w,HN]a`
   view signals list wave
X&K@l`i1C z0   (MENU: View\<window name\)EDA中国门户网站#P hho.Xp`
9.    为了列示顶级( top-level )信号,移动鼠标到Signals window,选取View\List\Signals in Region。
~K%_G}uC ]$d0   ( Prompt : add list /test_counter/* )EDA中国门户网站L+Ft#xJ
10.    现在向Wave window添加信号。在Signals window选取Edit\Select All选择三个信号,拖动三个信号到Wave window的路径名或是数值窗格的任一个中。
.?-q%p!t"x C%^,V0HDL条目也能够从一个窗口拷贝到另一个窗口(或者是在Wave and List window内部),通过Edit \ Copy和Edit \ Paste菜单命令。也能删除选取的条目Edit \ Delete。EDA中国门户网站/y&CNqMAr
11.    下面打开Source window,选取View \ Source

TAG:

dyt0608的个人空间 引用 删除 dyt0608   /   2008-05-20 09:06:20
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-05  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 8033
  • 日志数: 38
  • 文件数: 1
  • 建立时间: 2006-07-03
  • 更新时间: 2008-10-30

RSS订阅

Open Toolbar