modelsim仿真遇到的一些问题
最近两年从FPGA转到IC设计之后,开发系统也是一直在linux上,以前FPGA开发使用的windows上的一些工具都比较生疏了。最近重下载了modelsim,写了个工程调试了一下,当中遇到了不少bug,经过朋友帮助以及网上搜索资料,在不断尝试后,总算跑通了。
下面记录的是modelsim的仿真步骤,遇到的一些问题,以及写的一个do文件。
modelsim仿真步骤如下:
step1: 新建库。modelsim10.1上左上角菜单的File -> New -> Library。打开
,Name下填写work名字,一般取名work或者work1,work2……可任意。两个name下名字一致。这里取名work5。
step2: 新建工程。File -> New ->Project。
工程名取新建工程的名字,可任意。Locantion填写工程路径,Library是step1上的名称。
step3: 新建完工程后,会要你添加或者创建文本。
,
这里选择add existing file,选择写好的rtl文件和testbench里面的sim文件。(个人习惯用其他文本编辑器先写好代码,然后在此处添加)
step4: 编译。直接选择任一问价,compile all。这个主要是排除语法错误。
step5: 添加完毕后,在主界面窗口选择要仿真的文件,
右键选择
simulate without Optimazation。不选择的话,可能后面看波形时候,没法添加端口。
step6: 添加要看的端口到wave窗口。
step7: 菜单栏 Simulate -> Start Simulation.仿真即可。退出时候,Transcript输入 quit -sim即可。
遇到的一些问题:
①: 没法添加端口到wave上,step5有说明,不要优化。
②: Error: (vsim-3601) Iteration limit reached at time 0 ns.
Simulatin -> Run options,将default run的时间不要设置为0。
查看一下tb文件,timescale 是1ns/1ps,不要弄为1ps/1ps, altera自己生成的tb模板是1ps/1ps。
do 文件:
do文件类似于linux下的批量处理文件,用脚本控制软件的操作,对于重复的开发,可以明显地提高速度。
do文件相当于把step里面的步骤描述一次。参考如下:
vlib work5
vmap work work5
vlog adder_top.v adder_top_sim.v
vsim -novopt work5.adder_top_sim -t 1ns
view wave
delete wave *
add wave sim:/adder_top_sim/*
run 2000
上面的 -novopt就是不要优化,vmap work work5就是把工程跑的work映射到我们创建的work5上。