|
modelsim学习记录
1. 建一个总文件夹,如cnt
2. 为源代码,测试台文件,仿真各建一文件夹。如src,tb,sim
3. 编写源代码,testbench。如cnt.v,tb_cnt.v文件,同时文件名里的模块名与文件名相同,如module cnt( ), module tb_cnt( )。
4. 再sim文件夹里加入tb.f文件:../tb/tb_cnt.v
../src/cnt.v
../tb/tb_cnt-y
../src +libext+.v(这里源代码中可有许多,下一次做的DPLL必须要用第二种)
5. 下面开始仿真,仿真,顾名思义要在仿真文件夹sim中进行。pwd 出现当前目录cd ..当前目录向上一级 cd e:/modelsim进入e盘中的modelsim目录
6. vlib work (建工作库),此时从库文件中含有modelsim自动生成的_into文件。
7. vlog –f tb.f (编译 .v文件),此时库文件加入了cnt.v 和 tb_cnt.v模块
8. vsim -voptargs=”+acc” tb_cnt (在testbench中测试源代码),此时sim文件夹里出现了vsim文件,work文件夹里有一些仿真文件。同时在modelsim中出现sim项。
9. 右击sim项中的实例名称,点击 add to wave all items in design 。本例中实例项是inst_cnt。(cnt inst_cnt(端口连接) 其中cnt为实例引用的模块名称,inst_cnt为实例引用中的实例名称),在wave窗口中出现的信号为/tb_cnt/clk
/tb_cnt/rstn
/tb_cnt/cnt(它们为连到端口的信号)
/tb_cnt/inst_cnt/i_clk
/tb_cnt/inst_cnt/i_rstn
/tb_cnt/inst_cnt/o_cnt (它们为模块cnt中定义的端口)。
10. 出现wave窗口,仿真即可。其中wave窗口中的按钮doom in ,doom out ,doom full。可调整波形大小。
11. 批处理文件(do文件):quit -sim
vlog -f tb.f
vsim -voptargs=”+acc” tb_cnt
add wave sim:/tb_cnt/inst_cnt/*
保存为sim.do文本文件,它等同于7—9步。 |
|