侧边栏壁纸
    • 累计撰写 302 篇文章
    • 累计收到 527 条评论
    VCS、Verdi与Makefile使用简介
    我的学记|刘航宇的博客

    VCS、Verdi与Makefile使用简介

    刘航宇
    2023-02-09 / 0 评论 / 682 阅读 / 正在检测是否收录...

    前期工作

    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

    2
    FPGA与数字IC设计中接口命名规范
    « 上一篇 2023-02-10
    IC设计技巧-流水线设计
    下一篇 » 2023-02-08

    评论 (0)

    取消