1. 常用仿真命令
vlib work // 建立work仿真库
vmap work wrok // 映射库
vlog -cover bcest *.v // 加覆盖率分析的编译
vsim -coverage -voptargs="+acc" -t ns test // 仿真文件为test.v
add wave * // 将所有模块waveform. dump出来
add wave sim:/test/t/M2/Reg_out // 将模块Reg_out中的waveform. dump出来
delete wave /test/i
2. SVA 断言仿真命令
vlog -sv a.v
android10升级11vsim -assertdebug test
view assertions
vsim -assertdebug ScaleBlock_tf -L xilinxcorelib_ver -L unisims_ver // 加载xilinxlib库
3. verror 3601 // 查错
4. 给仿真工具加载xilinx 库命令
(1)加载之前将modelsim.ini改为非“只读”
(2)“运行” cmd,到xilinx目录下
(3) C:\Xilinx > compxlib -s mti_se -p c:\Modeltech_6.0\win32 -f all -l verilog -o C:\ Modeltech_6.0\Xilinx_lbis
或者 Xilinx目录下.\bin\nt\下有
简单得modelsim命令行仿真
delphi xe 安卓 sdk 用do文件进行仿真真得很方便,比写testbench方便多了,我是深有感触呀,开始时因为不知道,只知道写testbence,在小得模块也写testbench,真得很烦躁!而且信号定义什么得比较多,采用do文件得方法就没有那么多信号定义了,管理也比较方便,呵呵,真得很方便,而且采用命令行得形式,感觉特有成就感,呵呵! 1.运行仿真,在主窗口输入命令:vsim work.实体名 2.为时钟信号添加驱动,输入命令:force clk 0 0,1 10 -r 20,将仿真时钟设为50MHz;(设时间单位为ns) 3.打开波形窗口,输入命令:view wave 4.为波形窗口添加信号,输入命令:add wave -hex *,这里的*表示添加设计中所有的信号,-hex表示以十六进制来表示波形窗口中的信号值; 5.开始仿真,输入命令,run 3us,这时候在波形窗口中出现仿真波形 6.退出仿真,输入命令:quit –sim。 |
modelsim常用命令
分类: Verilog/FPGA 2010-05-26 10:49 354人阅读 评论(1) 收藏 举报
用do文件进行仿真真得很方便,比写testbench方便多了,采用do文件没有那么多信号定义,管理也比较方便.
1.运行仿真,在主窗口输入命令:vsim work.实体名
2.为时钟信号添加驱动,输入命令:force clk 0 0,1 10 -r 20,将仿真时钟设为50MHz;(设时间单位为ns)
3.打开波形窗口,输入命令:view wave
4.为波形窗口添加信号,输入命令:add wave -hex *,这里的*表示添加设计中所有的信号,-hex表示以十六进制来表示波
形窗口中的信号值;
5.开始仿真,输入命令,run 3us,这时候在波形窗口中出现仿真波形
6.退出仿真,输入命令:quit –sim //很常用!!
7.查看错误详细信息: verror **(错误数字代号)
--vlib - 建立一个新的工作库。
如:vlib work
在当前目录建立逻辑库work,运行后会在当前目录下到work文件夹。
如:vlib work
在当前目录建立逻辑库work,运行后会在当前目录下到work文件夹。
--vmap - 映射逻辑库名到指定的目录
--vsim - 启动仿真
如:vsim -c -l vsim.log -do ./YourDo.do -L ./work work.foo
开始仿真,-c 选项让vsim工作在commandline模式;-l 选项是输出log文件到vsim.log; -do 选项是开始仿真后运行tcl脚本文件;-L 选项是指定工作逻辑库;work.foo是仿真的top level module。
如:vsim -c -l vsim.log -do ./YourDo.do -L ./work work.foo
开始仿真,-c 选项让vsim工作在commandline模式;-l 选项是输出log文件到vsim.log; -do 选项是开始仿真后运行tcl脚本文件;-L 选项是指定工作逻辑库;work.foo是仿真的top level module。
odelSim之命令行仿真入门
下面是我们的Tcl仿真步骤:
启动ModelSim SE, 首先看到在在ModelSim SE右边的窗口有ModelSim> 这样的提示符。在提示符后,顺序运行以下命令:
vlib work 该命令的作用是在该目录下建立一个work目录,请注意不要用操作系统来新建一个work的文件夹,因为用操作系统建立的work文件夹并没有ModelSim SE自动生成的_info文件。
vmap work work 该命令的作用是将目前的逻辑工作库work和实际工作库work映射对应。
vlog camera.v camera_tb.v 该命令的作用是编译这些文件,要注意的是文件可以单独分开编译,但是一定要先编译被调用的文件。假如是VHDL文件就可以用vcom file1,file2命令来编译。
vsim camera_tb 仿真命令, 注意后面的参数必须为camera_tb.v文件中的模块名。
add wave/camera_tb/ * 该命令的作用是将testbench文件camera_tb.v中模块camera_tb下所有的信号变量加到波形文件中去,注意在“*”前要加空格。这时候你也可以看到wave文
下面是我们的Tcl仿真步骤:
启动ModelSim SE, 首先看到在在ModelSim SE右边的窗口有ModelSim> 这样的提示符。在提示符后,顺序运行以下命令:
vlib work 该命令的作用是在该目录下建立一个work目录,请注意不要用操作系统来新建一个work的文件夹,因为用操作系统建立的work文件夹并没有ModelSim SE自动生成的_info文件。
vmap work work 该命令的作用是将目前的逻辑工作库work和实际工作库work映射对应。
vlog camera.v camera_tb.v 该命令的作用是编译这些文件,要注意的是文件可以单独分开编译,但是一定要先编译被调用的文件。假如是VHDL文件就可以用vcom file1,file2命令来编译。
vsim camera_tb 仿真命令, 注意后面的参数必须为camera_tb.v文件中的模块名。
add wave/camera_tb/ * 该命令的作用是将testbench文件camera_tb.v中模块camera_tb下所有的信号变量加到波形文件中去,注意在“*”前要加空格。这时候你也可以看到wave文
件被打开。当然也可以单个信号的添加,例如添加时钟:add wave clk 等等。
run 2000 该命令的作用是运行2000个单位时间的仿真。也可以用run –all命令来一直仿真下去。
这时候就可以在wave窗口文件中看到你的仿真结果。
当然也可以观察其它窗口的结果,用view命令显示
view * 观察包括signals、collapse dual lines to centerwave、dataflow等窗口文件。也可以分别打开。例如用view signals来观察信号变量。
run 2000 该命令的作用是运行2000个单位时间的仿真。也可以用run –all命令来一直仿真下去。
这时候就可以在wave窗口文件中看到你的仿真结果。
当然也可以观察其它窗口的结果,用view命令显示
view * 观察包括signals、collapse dual lines to centerwave、dataflow等窗口文件。也可以分别打开。例如用view signals来观察信号变量。
ModelSim仿真常用命令以及仿真脚本的编写
在我们用ModelSim仿真的时候经常是修改一点一点修改代码,这样会造成一个无奈的操作循环:修改代码--->编译代码--->仿真设置--->进入仿真页面--->添加需要观察的波形--->运行仿真。如果仿真结果不理想,还得需要重新修改代码,重复上述的操作。
计算机擅长做重复的事情,为什么不让计算机代劳呢?
我们可以参照Xilinx ISE是如何调用ModelSim进行仿真的,尤其是脚本的编写。
下面一个脚本是我用ISE10.1建立了一个AES256的工程,然后在调用ModelSim6.5的时候,ISE会生成这几个脚本文件,AES256_tb.fdo, AES256_tb_wave.fdo 和 AES256_tb.udo。
下面的代码是AES256_tb.fdo文件的内容。
1: vlib work #创建名字是work的库,这个仿真之前必须做的
2: vcom -explicit -93 "SBOX_ROM.vhd" #编译vhd代码
3: vcom -explicit -93 "Inv_SBOX_ROM.vhd"
4: vcom -explicit -93 "AES_package.vhd"
5: vcom -explicit -93 "subbytes.vhd"
6: vcom -explicit -93 "SBOX_ROM_reg.vhd"
7: vcom -explicit -93 "round_key_BRAM.vhd"
8: vcom -explicit -93 "Inv_subbytes.vhd"
9: vcom -explicit -93 "Keyexpansion_Yao.vhd"
10: vcom -properties文件用什么打开explicit -93 "AES256_ENC_DEC.vhd"
docker k8s使用教程 11: vcom -explicit -93 "AES256_TOP.vhd"
12: vcom -explicit -93 "AES256_tb.vhd"
13: vsim -t 1ps -lib work AES256_tb
#进入仿真设置,时间单位为1ps,库指定为work,AES256_tb就是指你的top层设计的名字
14: do {AES256_tb_wave.fdo} #c语言程序设计基础第三版执行*.fdo文件,用来添加信号和变量或者内部的寄存器到波形(WAVE)窗口
15: view wave #打开波形窗口
16: view structure #打开架构(structure)窗口
17: view signals #打开信号列表窗口
18: run 1000ns #运行1000ns
19: do {AES256_tb.udo} #运行用户定义的脚本
只要编译的时候没有出现语法错误或者是不到定义的库文件等错误提示,一般会很容易的看到仿真的波形,而不用手动进行操作。这样方便了仿真的整个过程,而无需用很多鼠标点击操作。
现在通过一个具体的实例来说明如何运用脚本来实现ModelSim的仿真。
工具版本:ISE10.1 ,ModelSim 6.5a
1. 创建ISE工程
首先通过ISE创建test.vhd 和test_tb.vhd文件并添加到工程中,这里不细说如何创建HDL源代码。
然后配置ISE的仿真器,右键选中FPGA芯片,点击properties,然后在Simulator选择Modelsim-SE VHDL。
图1. 工程属性
在source窗口选择“Behavioral Simulation”,可以看到工程中的test_tb.vhd(testbench文件)。选中test_tb.vhd文件,在Process窗口中双击Simulate Behavioral Model,ISE开始
调用ModelSim,这是ISE自动生成了三个脚本文件:test_tb.fdo, test_tb_wave.fdo和test_tb.udo。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论