前期工作
1、.fsdb文件
在使用Makefile文件前,先在测试文件中加入这样一句。
initial begin
$fsdbDumpfile("tb.fsdb");//这个是产生名为tb.fsdb的文件
$fsdbDumpvars;
end
需要注意:对于用于仿真的testbench,需要额外建立一个 initial 块,调用产生有关 fsdb 格式的波形文件:
首先调用 fsdbDumpfile 函数,产生一个叫 .fsdb 的波形文件
然后调用 fsdbDumpvars 函数,声明需要保存那些信号的波形,括号内不加任何参数,则默认全部保存。
2、 filelist.f文件
filelist.f里存放所有需要仿真的.v文件。
创建filelist.f的方法:
find -name "*.v" >filelist.f
1. Makefile作用?
编写makefile文件本质上是帮组make如何一键编译,进行批处理,makefile文件包含的规则命令使我们不需要繁琐的操作,提高了开发效率。
Makefile可以根据指定的依赖规则和文件是否有修改来执行命令。常用来编译软件源代码,只需要重新编译修改过的文件,使得编译速度大大加快。
2. Makefile应用
利用Makefile 实现简单的前端设计流程,包括VCS编译,Verdi仿真,DC综合,后续流程待补充。
目录结构
#use "make" for help
help:
@echo "make help"
@echo "make com to compile"
@echo "make sim to run simulation"
@echo "make clean to delete temporary files"
#need to midify design name
design_name = div_top
fsdb_name = $(design_name).fsdb
# use command "make com" to run vsc and product fsdb file
com:
cd RTL && vcs \
-full64 \
-f flist.f \
-debug_all \
-l com.log \
+v2k \ -P ${Verdi_HOME}/share/PLI/VCS/LINUXAMD64/novas.tab ${Verdi_HOME}/share/PLI/VCS/LINUXAMD64/pli.a
# cd RTL && ./simv -l sim.log +fsdbfile+$(fsdb_name)
#simulation:product fsdb file and sim log
sim: ./RTL/simv
cd RTL && ./simv -l sim.log +fsdbfile+$(fsdb_name)
# use verdi to observe the waveform
verdi:
cd RTL && verdi \
+v2k \
-f flist.f \
-ssf $(fsdb_name) & #use fsdb file
# run dc for synthesize
syn:
cd dc_script && dc_shell -64bit -topographical -f top_syn.tcl | tee -i syn.log
#delete all files except .v and makefile
clean:
#rm -rf `ls | grep -v "Makefile"|grep -v "flist.f" | grep -v "\.v" | grep -v "dc_script"`
make -C RTL clean
make -C dc_script clean
/RTL目录下MakeFile
#delete temporary files
clean:
rm -rf `ls | grep -v "Makefile"|grep -v "flist.f" | grep -v "\.v"`
dc_script目录下Makefile
#delete temporary files
clean:
rm -rf `ls | grep -v "Makefile"|grep -v "script" | grep -v ".*.tcl"`
make com :调用vcs编译
make sim:调用vcs仿真
make verdi 波形,shifrt+l可刷新重新编译结果
make clean 删除所有子目录下的临时生成文件
详细命令
执行“make vcs” 编译仿真
执行“make verdi” 打开波形
verdi常用快捷键
ctrl+w: 添加信号到波形图
h: 在波形窗口显示详细的信号名(路径)
File>save signal,命名*.rc,下次直接打开rc文件就行
c/t: 修改信号的颜色(t可以直接切换颜色)
在波形窗口显示状态机的名字:
在rtl窗口,tools>Extract internative FSM ,可选first stage(仅展开目前所指定的FSM state),all stage (展开所有的FSM state)
改变颜色填充波形:
Tools>waveform>view options>waveformpane> paint waveform with specified color/pattern
在rtl窗口按x: 标注出信号的值
z: 缩小波形窗口
Z: 放大波形窗口
f: 全屏
l: 上一个视图
L: 重新加载设计波形或文件
n: 向前查找
N: 向后查找
ctrl+→: 向右移动半屏
ctrl+←: 向左移动半屏
双击信号波形: 跳转到rtl中信号位置,并高亮新号
b: 跳到波形图开头
e: 跳到波形图尾部
2.不使用Makefile直接执行
vcs -R -f flist.f -full64 -fsdb -l name.log
verdi -f flist.f -ssf name.fsdb
评论 (0)