一、功能仿真(前仿真)的一般性方法
对于Modelsim的使用,用的最多的还是功能仿真。这里对同步FIFO进行仿真分析,来说明Modelsim如何进行一般性的功能仿真方法。
1、将工程中用到的.v文件拷贝到新建的文件夹下,文件夹命名为fifo,包括quartusII设计的工程文件及testbench文件。
2、打开Modelsim-Altera,新建工程,如下图所示:
3、工程名为fifo,路径为刚刚新建的文件夹,库名称保持默认
4、向工程中添加文件,将fifo中拷贝的.v文件和testbenc加入工程中。
5、编译所有文件,这里有两种方式。
①选择project窗口,右击任意文件,选择compile all,也可以单个文件编译。如下图所示:
②通过命令来实现全编译,执行全编译的命令为project compileall。
注意:文件无法通过编译的原因有以下情况:1、编译的文件本身存在句法错误,导致无法通过全编译;2、选择编译全部文件,但编译order(顺序)不对,有可能先编译了testbench文件,导致无法通过全编译。针对以上两种情况:第一种可根据命令窗口的提示,返回到文件中修改代码;第二种通过设置文件编译order来解决。选择compile order,根据提示,一般设置为Auto Generate。具体如下所示:
6、编译完成后,点击进入library窗口,在work目录下,点击fifo_top_tb,即testbench文件,进入仿真。也可通过以下两种方式进入仿真。
①点击菜单栏中的simulate,选择start simulation,自动跳出如下界面。
同样选择work库下面的fifo_top_tb,单击OK后,进入仿真界面。
②通过Transcript窗口,输入vsim fifo_top_tb,进入仿真界面。
7、进入仿真界面后,选择添加波形至wave窗口。这里面添加了所需的全部信号,也可有选择性添加信号。
8、运行仿真。点击wave窗口上的,或者直接在命令窗口下输入run等命令。
这样,基本的modelsim用法流程介绍完毕。Wave中的波形,可保存.do文件,方便下次运行时查看。波形的分析,可通过仿真结果进行查看。对于本实例,也可通过view下面的Memory list 进行查看和分析。
可以先结束仿真,再重新运行仿真过程。打开memory list,然后选择10ns的步长进行单步仿真。在memory list中可清楚查看fifo的写入和读出过程。这里不再详述。这样,对Modelsim—Altera运行功能仿真的通用方法介绍至此。
附录:
Modelsim的基本命令:
·project compileall //编译所有工程文件
·vlib work //该目录下新建一个work目录
·vmap work work //将目前的逻辑工作库work和实际的工作库work映射 对应
·vlog file.v //编译对应的文件
·vsim tb_module_name //仿真命令,注意testbench为模块名
·view wave/dataflow //打开波形或数据流窗口
·add wave -hex * //*表示添加设计中所有的信号,-hex表示以十六进制 来显示波形窗口中的信号值
·add wave /tb_module_name/ * //模块中所有信号加入波形文件
·restart -f //重新执行仿真
·run/run -all //运行仿真
·run time //运行仿真时间
·quit -sim //结束退出仿真
·pwd //transcript窗口显示当前路径(一般不用)
·cd //改变工作路径(一般不用)
·do file.do //运行do文件