VCS、Verdi与Makefile使用简介
我的学记|刘航宇的博客

VCS、Verdi与Makefile使用简介

刘航宇
2年前发布 /正在检测是否收录...
温馨提示:
本文最后更新于2023年04月15日,已超过711天没有更新,若内容或图片失效,请留言反馈。

前期工作

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综合,后续流程待补充。
目录结构
图片[1] - VCS、Verdi与Makefile使用简介 - 我的学记|刘航宇的博客

#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
图片[2] - VCS、Verdi与Makefile使用简介 - 我的学记|刘航宇的博客

© 版权声明
THE END
喜欢就支持一下吧
点赞 2 分享 赞赏
评论 抢沙发
取消