简单得modelsim命令行仿真
PART ONE
ModelSim之命令行仿真入门
用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文件夹。
--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。
PART TWO
ModelSim仿真常用命令以及仿真脚本的编写
在我们用ModelSim仿真的时候经常是修改一点一点修改代码,这样会造成一个无奈的操作循环:修改代码--->编译代码--->仿真设置--->进入仿真页面--->添加需要观察的波形--->运行仿真。如果仿真结果不理想,还得需要重新修改代码,重复上述的操作。
计算机擅长做重复的事情,为什么不让计算机代劳呢?
我们可以参照Xilinx ISE是如何调用ModelSim进行仿真的,尤其是脚本的编写。
下面一个脚本是我用ISE10.1建立了一个AES256的工程,然后在调用ModelSim6.5的时候,ISE会生成这几个脚本文件,AES256_tb.fdo, AES