> 文章列表 > Modelsim 操作结构和流程

Modelsim 操作结构和流程

Modelsim 操作结构和流程

用到的命令一般都写到.do文件中,使用脚本语言进行批量处理。

Modelsim 操作结构和流程
  • Step 1: Map libraries

  • Step 2: Compile the design

  • Step 3: Optimize the design (OPTIONAL)

  • Step 4: Load the design into the simulator

  • Step 5: Run the simulation

  • Step 6: Debug the design Note: Design optimization in step 3 limits debugging visibility

1.1 step1: 库与文件的映射

1.1.1 GUI方式

  1. File > New > Project

  1. 输入库名字

  1. 添加设计文件到工程中

1.1.2 命令行方式

vlib <library_name>
vmap work <library_name>
  • vlib 命令

  • 简介

这个命令创建一个设计库(design library)。必须使用vlib命令而不是操作系统命令来创建库目录或索引文件。

  • 语法

vlib -help
vlib [-short |-dos |-long |-unix] [-format { 1|3|4 }]
[-type {directory | archive | flat}]
[{-lock |-unlock} <design_unit>] [-locklib |-unlocklib] [-unnamed_designs <value>]
[-compress |-nocompress]
<library_name>
  • 描述

如果指定的库已经作为有效的ModelSim库存在,则vlib命令将退出,并发出警告消息,而不会影响该库。该命令通过-help选项提供附加信息。

  • vmap命令

  • 简介

vmap命令通过修改modelsim.ini文件来定义逻辑库名和目录之间的映射。

  • 语法

vmap [-c |-del <logical_name> ... |<logical_name> [<path>] ][-modelsimini <path/modelsim.ini>]
  • 描述

如果没有参数,vmap将读取适当的 modelsim.ini 文件,并将当前逻辑库打印到物理目录映射到transcript。

1.2 step2:编译设计

1.2.1 GUI方式

点击 Compile > Compile 或者 Compile > Compile All。

1.2.2 命令行方式

vlog file1.v file2.v ...
(Verilog)
vcom file1.vhd file2.vhd ...
(VHDL)
sccom <top> (SystemC)
sccom -link <top>
  • vlog 命令

  • 简介

vlog命令将Verilog源代码和SystemVerilog扩展编译到指定的工作库(或默认情况下编译到工作库)。可接受压缩的SystemVerilog源文件(用zlib压缩的源文件)。

  • 语法

vlog [options] <filename> [<filename> ...]

介绍几个常用的option:

  • -L

(可选)在指定的资源库中搜索预编译模块。在运行vsim命令时,还必须指定此处指定的库搜索选项。

  • +incdir+

(可选)指定目录以搜索`include 编译器指令中包含的文件。默认情况下,首先搜索当前目录,然后按+incdir选项在命令行中的显示顺序搜索指定的目录。您可以指定多个+incdir选项,也可以在单个+incdir选项中指定多个以“+”分隔的目录。当编译一个导入ModelSim附带的OVM包的文件时,不需要在OVM目录中指定+incdir+。例如,如果你的.sv文件包含:

import ovm_pkg::*;
`include "ovm_macros.svh"

vlog命令会自动为你添加+incdir开关,发出如下提示:

** Note: (vlog-2286) Using implicit
+incdir+<install_dir>/<ovm_dir>/src
from import ovm_pkg

但是,如果使用的是开放版本的OVM,则需要使用+incdir开关显式指定该目录。请注意,内置UVM库的包导入现在添加了一个隐式的+incdir条目,它派生自包导入位置。

  • 描述

  • vlog命令可以从ModelSim或操作系统命令提示符中调用。它也可以在仿真过程中被调用。

  • 编译库依赖于主版本。当在主要版本之间移动时,必须使用-refresh参数刷新vlog编译库。对于小版本则不是这样。

  • vlog命令的所有参数都区分大小写:-WORK和-work不相等。

  • SystemVerilog要求vlog命令的默认行为是将命令行上列出的每个Verilog设计文件视为单独的编译单元。要将单个命令行中列出的多个文件视为单个编译单元,可以使用vlog -mfcu参数或 modelsim.ini文件的MultiFileCompilationUnit变量。

1.3 step3:优化设计(可选)

1.3.1 GUI方式

禁用优化:

  • Simulate > Start Simulation

  • 取消勾选 Enable Optimization 按钮

设置优化选项:

  • Simulate > Design Optimization

  • 设置选项

1.3.2 命令行方式

当在modelsim.ini文件中voptflow = 1开启优化。

1.4 step4:往仿真器加载设计

1.4.1 GUI方式

  1. 点击 Simulate > Start Simulation

  1. 点击顶层设计模块

  1. 点击 OK

1.4.2 命令行方式

vsim <top>
vsim <opt_name>
  • vsim 命令

  • 简介

vsim命令调用vsim仿真器,您可以使用它来查看以前仿真运行的结果(当使用-view参数调用时).

  • 语法

vsim  [options] 

介绍几个常用的option:

  • -vopt

(可选)如果vopt没有被手动调用,通知vsim自动执行vopt命令。除非在modelsim.ini中将VoptFlow变量设置为0,否则不需要。

  • -novopt

(可选)防止ModelSim自动运行vopt命令。如果在modelsim中将VoptFlow变量设置为1(优化已打开)。如果没有手动调用,vsim会自动运行vopt。如果指定此参数,应确保使用编译命令(vcom或vlog)指定。除非与QuestaADMS一起使用电源感知仿真,否则不建议使用此参数。如果使用此参数,将显示以下警告:

** Warning: (vsim-8891) All optimizations are turned off because the -novopt argument is in effect. This will cause your simulation to run very slowly. If you are using this argument to preserve visibility for Debug or PLI features, please see the User’s Manual section on Preserving Object Visibility with vopt.
  • 描述

  • 要手动中断设计加载,使用Break键或在shell中按

  • sim命令的所有参数都是区分大小写的;例如-g和-G是不相等的。

1.5 step5:运行仿真


(这一步一般使用GUI模式)

1.5.1 GUI方式

Modelsim 操作结构和流程

上述图片从左到右依次是:

  1. Run

  1. continueRun

  1. Run -All

1.5.2 命令行方式

  • run 命令

  • 简介

此命令将仿真向前推进指定的时间步数。

  • 语法

run {[<timesteps>[<time_units>]] |-all |-continue|-final |-finish |-init |-next } | {-step [-current] [<n>] [-out] [-over [<n>]] [-this]}
  • 描述

在运行操作完成后,您可以使用以下首选变量控制任何返回值:

  • noRunTimeMsg:设置为0表示显示仿真时间和增量信息,设置为1表示不显示。

  • noRunStatusMsg:设置为0表示显示运行状态信息,设置为1表示不显示。

1.6 step6:调试设计