找回密码
 注册
关于网站域名变更的通知
查看: 293|回复: 2
打印 上一主题 下一主题

ModelSim的简要使用方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-19 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
第一章 介 绍
2 h2 P2 y# ^' r/ F( P1 Y第一课 Create a Project
+ A8 u3 y* H8 A/ ]' r1.第一次打开 ModelSim 会出现 Welcome to ModelSim 对话框,选取 Create a Project,或者选取 File\New\Project,然后会打开 Create Project 对话框。
( V$ g% K/ Q5 _6 v* U/ b2.在Create Project 对话框中,填写test 作为Project Name;选取路径Project Location 作为 Project 文件的存储目录;保留 Default Library Name 设置为 work。 . y# s* z# n9 f' i: Q  G: P6 k8 _
3.选取 OK,会看到工作区出现 Project and Library Tab。
2 M/ v+ d' `. L2 g, ^3 M; d4.下一步是添加包含设计单元的文件,在工作区的 Project page 中,点击鼠标右键,选取 Add File to Project。
! f, ~/ m% d& r. Y/ o+ n  x5.在这次练习中我们加两个文件,点击 Add File to Project 对话框中的 Browse按钮,打开 ModelSim 安装路径中的 example 目录,选取 counter.v 和tcounter.v,再选取 Reference from current location,然后点击 OK。
6 N+ C. j; U2 F4 ]4 L) a6.在工作区的 Project page 中,单击右键,选取 Compile All。
* ?' c& L5 T# ?$ ~' j) A8 T6 h+ G: z7.两个文件编译了,鼠标点击 Library Tab 栏,将会看到两个编译了的设计单元列了出来。看不到就要把 Library 的工作域设为 work。
1 X( m( v+ n8 H. c8.最后一不是导入一个设计单元,双击 Library Tab 中的 counter,将会出现Sim Tab,其中显示了 counter 设计单元的结构。也可以 Design\Load design来导入设计。
2 w. }& [6 c& `到这一步通常就开始运行仿真和分析,以及调试设计,不过这些工作在以后的课程中来完成。结束仿真选取 Design \ End Simulation,结束 Project 选取File \ Close \ Project。+ ~+ l5 o6 X( l% E- {9 X

) Z6 d3 X9 V1 `; B  o第二课 Basic VHDL Simulation( n# {* x# U0 ?/ c4 Z) o! }" E
准备仿真
) I/ a8 I9 k5 U9 g1.为这次练习新建一个目录,然后拷贝 example 目录中所有的 vhd 文件到该目录下。设置该目录为当前工作目录,这一步通过从该目录调用 ModelSim 或是选取 File\Change Directory 命令来完成。
5 m! b. r4 l! C* \$ c2.在编译任何 HDL 代码前,要建立一个设计库来存放编译结果。选取 Design \ Create a New Library 生成一个新的设计库。确定选取 Create: a new library and a logical mapping to it,在 Library Name 域中键入 work,然后选取OK。这就在当前目录中建立了一个子目录,即你的设计库。ModelSim 在这个目录中保存了名为_info 的特殊文件。(Prompt : vlib workvmap work work ) 3 D6 n) N& Z2 X# k
3.选取工具栏里的 Compile 命令来编译 counter.vhd 文件到新库中。这将打开Compile HDL Source Files 对话框。使用 vcom 命令是看不到的。从列表中选取 counter.vhd 再点击 Compile,完成后选取 Done。可以编译多个文件,按照设计的需要依次选取进行编译。(Prompt : vcom counter.vhd )
6 X, r: K1 ^7 Z6 ~6 y4.选取工具栏里的 Load design 按钮,导入设计单元。Load design 对话框可以让你选择库和顶级( top-level )设计单元来仿真,你也可以为仿真选取Simulation Resolution 限制。这次仿真运行,下述是缺省的显示:
1 L5 I- L& e7 ?) I* w• Simulator Resolution: default (the default is 1 ns)+ f* t+ e+ N) a8 ^# j2 N
• Library: work
9 e  R; I2 u6 A$ `2 G( a• Design Unit: counter' ?- j9 K& o4 v) @8 H( e0 `4 h! H( o
如果设计单元是一个实体,你可以点击前面的加号,来浏览其关联的结构。( Prompt : vsim counter ) + a4 X; k9 x, X8 ?) i% N
5.选取 counter,然后选择 Load 接受设置。7 U& I* b$ ]5 Y) N& r/ ?: h
6.下面,选取 View \ All 打开所有的窗口,关于窗口的描述,参阅 ModelSim User’s Manual。(Prompt : view * )
* w( y0 j, K- ?7.在 Signals window 选取 View\List\Signals in Region,这个命令显示 List window 中的顶级( top-level )信号。(Prompt : add list /counter/* )
* \- Z5 Z6 ]1 _) @2 G8.下步,通过从 Signals window 选取 View\Wave\Signals in Region 添加顶级( top-level )信号到 Wave window。(Prompt : add wave /counter/* )
' P+ V8 N( D2 J. w1 n+ b! h) p- d% F
运行仿真
$ D5 @, K- A2 [2 S通过应用始终输入激励来开始仿真。3 [9 t$ m$ M: H( R
1.点击主窗口,在 vsim 提示符下敲如下面的命令:4 n$ E3 U; w! }4 z5 x
( force clk 1 50 , 0 100 –repeat 100 )
  e4 C! R6 g% g3 j) |2 B: U ( MENU : Signals\Edit\Clock )
- d1 W' ~/ A5 u) A2 U ModelSim 解释 force 命令如下:
; l2 Y0 P. _% n5 E0 P& s6 }0 _- force clk to the value 1 at 50 ns after the current time
/ r3 z! q7 J! u( `* D8 u. r4 ^- then to 0 at 100 ns after the current time
. `8 g) g8 ^4 g$ m0 k- repeat this cycle every 100 ns
! Q3 ?; K, S- S' G) q* I2 l3 E' Q2.现在你可以练习来自于主窗口或波形窗口工具条按钮的两个不同的 Run 功能。(Run 功能在主窗口和波形窗口中定义,即这两个窗口中有 Run 功能)。
! o; L& H/ j6 R4 u4 J$ o! S" \' z  r首先选取 Run 按钮,运行完成之后选取 Run All。
3 X- E4 Z3 ?( v* q1 R$ ~Run. 运行仿真,在 100ns 后停止。
* R1 C  E0 W- C+ ^(PROMPT: run 100) (MENU: Run \ Run 100ns) & c- C4 @; C% T
Run-All. 一直运行仿真,直到选取 Break。
& B4 Q+ P! d8 t6 R8 n(PROMPT: run -all) (MENU: Run \ Run -All), F1 m7 t+ p$ j
3.选取主窗口或波形窗口的 Break 按钮来中断仿真,一旦仿真到达一个可接受的停止点,它就停止运行。, K- c5 d" H3 C
在源文件窗口中的箭头指向下一条将被执行的语句。(如果暂停发生时,仿真没在评测一个过程,则没有箭头显示在源文件窗口上)。
  ]4 K8 C  `3 B5 d, Q下面,你将在 18 行的函数内部设置一个断点。; K, Z) y+ o' m1 e1 s8 \
4.移动鼠标到源文件窗口,在 18 行上点击设置断点,可以看到紧挨着行号有一个红点,可以用鼠标点击切换断点的使能与否,断点禁止后看到是一个小的红色的园环。可以在断点上点击鼠标右键,选取 ReMOVe BreakPoint 18 来取消断点。
' [" E7 |' f, u; M* p" U8 s+ q( PROMPT : bp counter.vhd 18 ) 0 e4 f: S& |* r% k+ j- h
5.选取 Continue Run 按钮恢复中断了的运行,ModelSim 会碰上断点,通过源文件中的一个箭头或是在主窗口中的一条中断信息来显示出来。2 E0 Z9 V4 v5 G, _, x
(PROMPT: run -continue) (MENU: Run \ Continue)
8 y# z. w, j" \- N6.点击 Step 按钮可以单步执行仿真,注意 Variables window 中值的变化。如果你愿意可以持续点击 Step。( L( k+ P4 X3 ~9 [1 c; d) x
(PROMPT: run -step) (MENU: Step)
% }/ S7 p! e2 ^( c3 }7.当你完成了,敲入以下命令结束仿真。
- x" l0 U4 y3 }3 tquit -force1 J7 Q, c8 k! n, M
8.命令没有寻求确认就结束了 ModelSim。6 k: i$ w  T5 B) l, h/ v$ b
3 w: y4 X2 {. D% {3 _' ?2 e
第三课 Basic verilog Simulation
% u0 q- z! h5 V5 M% O1.新建一个目录,并设置该目录为当前工作目录,通过从该目录调用 ModelSim或是选取 File\Change Directory 命令来完成。
9 s1 J) H1 }8 o  |5 H3 T2.拷贝 example 目录中 verilog 文件到当前目录下。在你编译 verilog 文件前,你需要在新目录下生成一个设计库。如果你仅仅熟悉解释性 verilog 仿真器,诸如cadence Verilog-XL,那么对于你来说这是一个新的方法。因为ModelSim是一个编译性 Verilog 仿真器,对于编译它需要一个目标设计库。如果需要的话,ModelSim 能够编译 VHDL 和 Verilog 代码到同一个库中。1 g& b* A" E4 j9 e) ?6 o8 s; }
3.在编译任何 HDL 代码前,要建立一个设计库来存放编译结果。选取 Design \ Create a New Library 生成一个新的设计库。确定选取 Create: a new library and a logical mapping to it,在 Library Name 域中键入 work,然后选取OK。这就在当前目录中建立了一个子目录,即你的设计库。ModelSim 在这个目录中保存了名为_info 的特殊文件。1 z$ E2 c- d7 y/ U5 m( |* G

Modelsim简明操作指南.pdf

243.51 KB, 下载次数: 0, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-9-19 11:07 | 只看该作者
找到希望了,终于有一个可以好好学习研究的地方了。半导体的微电子设计挺好的

该用户从未签到

3#
发表于 2022-9-19 13:18 | 只看该作者
本帖最后由 Maskman 于 2022-9-26 10:41 编辑
7 Y3 w, t9 o1 H  t# p
! c% O* C4 g: sVHDL Simulation。是用来写硬件电路的,电路设计的编程语言。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-31 23:51 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表