trustintruth · 2020年06月19日

makefile调用VCS及verdi

继上次使用VCS基础操作和makefile的书写,如果我们最后不使用vcs而是使用verdi该如何调用呢?和上次一样,我们同样要把我们的.v文件和tb文件的路径放到file\_list.f中(上次是file.list)之后写makefile,制作好以后就可以使用make语句完成。
作者:Trustintruth
来源:   https://zhuanlan.zhihu.com/p/105863018

makefile如下

.PHONY: com sim cov clean debug

OUTPUT = simv
ALL_DEFINE = +define+DUMP_VPD

# Code coverage command
CM = -cm line+cond+fsm+branch+tgl
CM_NAME = -cm_name $(OUTPUT)
CN_DIR = -cm_dir ./$(OUTPUT).vdb

# vpd file name
VPD_NAME = +vpdfile+$(OUTPUT).vpd

#Compile command
#VCS = vcs +v2k -timescale=1ns/1ns
VCS = vcs +v2k -override_timescale=1ns/100ps                    \
        -full64                                                    \
        -fsdb                                                    \
        -debug_all                                                \
        -sverilog                                                \
        +nospecify                                                \
        +vcs+flush+all                                            \
        $(CM)                                                    \
        $(CM_NAME)                                                \
        $(CM_DIR)                                                \
        $(ALL_DEFINE)                                            \
        $(VPD_NAME)                                                \
        -o $(OUTPUT)                                            \
        -l compile.log

#simulation command
SIM = ./$(OUTPUT)                                                \
      +ntb_ramdom_seend_automatic                                \
      $(CM) $(CM_NAME) $(CM_DIR)                                \
      $(VPD_NAME)                                                \
      $(ALL_DEFINE)                                                \
      -l $(OUTPUT).log

# start compile 
com:
    $(VCS) -f file_list.f

#Start simulation
sim:
    $(SIM) 

#show the coverage
cov:
    dve -covdir *vdb &

debug:
    dve -vpd  $(OUTPUT).vpd &

#start clean
clean:
    rm -rf ./csrc *.daidir ./csrc                          \
        *.log  *.vpd  *.vdb  simv* *.key                \
        +race.out* novas* verdi* *fsdb apb2apb_async

保存好之后,首先make com
619.jpg

之后 make sim


之后ls一下,发现路径下出现一个.fsdb文件(我在makefile中是glitch\_free\_tb.fsdb,如果需要可以在makefile中更改文件名即可)输入指令

verdi -f file_list.f -ss glitch_free_tb.fsdb

619.jpg
在操作时我更改了file.list,按照文中的makefile制作的在此处按照上面的指令,不要按图里的

之后进入界面

点击最小化进入界面进行操作

如果需要删除中间文件 输入make clean

获取更多代码与资料,欢迎关注我啊!

推荐阅读

关注此系列,请关注专栏FPGA的逻辑
推荐阅读
关注数
10605
内容数
561
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息