查看: 1171|回复: 0
收起左侧

开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs+verdi)

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2022-6-21 08:23
  • 签到天数: 2 天

    [LV.1]

    发表于 2022-2-23 21:15:03 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 塞巴斯蒂安 于 2022-2-23 21:14 编辑

    1.简述.
            这里不详细介绍RISC-V和蜂鸟e203,大家应该都比较了解。蜂鸟e203工程比较完善,也有一本书介绍,讲解还是非常详细的,如果以后想从事数字IC或者想学习risc-v,蜂鸟e203适合入门学习。
            但是e203工程中的验证环境是iverilog,而实际工作常用vcs和verdi,个人觉得使用vcs环境学习比较好一些,如果已经工作了,习惯使用vcs,业余时间在研究e203时需要切换成iverilog,十分不方便。这里不是不支持开源工具,主要是工作后时间和精力有限,需要尽量节省学习成本。

            今天先分享怎么修改蜂鸟e203的环境,在我之前分享的EDA环境使用vcs+verdi跑起来。

    2.Git下载

            打开terminal,使用下面命令进行下载,记得虚拟机连接网络。
    1. git clone https://github.com/SI-RISCV/e200_opensource.git
    复制代码
    下面就是e203项目的目录,我们现在进入vsim(验证目录),其他先不管,后面的分享会慢慢介绍到。
    GD32VF 单片机芯片及应用-开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs+verdi)risc-v单片机中文社区(1)
    3.修改环境

            进入到仿真的bin目录下,打开run.makefile
    GD32VF 单片机芯片及应用-开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs+verdi)risc-v单片机中文社区(2)
            仿真脚本修改如下:
            1)修改仿真工具,添加vcs仿真选项,“LD_LIBRARY_PATH”是novas的路径,根据自己环境修改下。
    GD32VF 单片机芯片及应用-开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs+verdi)risc-v单片机中文社区(3)
            2)添加verdi环境
    GD32VF 单片机芯片及应用-开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs+verdi)risc-v单片机中文社区(4)
            修改好的仿真环境如下:
    1. RUN_DIR      := ${PWD}

    2. TESTCASE     := ${RUN_DIR}/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-addi
    3. DUMPWAVE     := 1


    4. VSRC_DIR     := ${RUN_DIR}/../install/rtl
    5. VTB_DIR      := ${RUN_DIR}/../install/tb
    6. TESTNAME     := $(notdir $(patsubst %.dump,%,${TESTCASE}.dump))
    7. TEST_RUNDIR  := ${TESTNAME}

    8. RTL_V_FILES                := $(wildcard ${VSRC_DIR}/*/*.v)
    9. TB_V_FILES                := $(wildcard ${VTB_DIR}/*.v)

    10. # The following portion is depending on the EDA tools you are using, Please add them by yourself according to your EDA vendors

    11. SIM_TOOL      := vcs#To-ADD: to add the simulatoin tool
    12. #SIM_TOOL      := iverilog # this is a free solution here to use iverilog to compile the code

    13. SIM_OPTIONS   := -timescale=1ns/1ns -fsdb  -full64  -R  +vc  +v2k  -sverilog  -debug_all -P ${LD_LIBRARY_PATH}/novas.tab  ${LD_LIBRARY_PATH}/pli.a -l vcs.log +incdir+${VSRC_DIR}/core/+${VSRC_DIR}/perips/ #To-ADD: to add the simulatoin tool options

    14. #SIM_OPTIONS   := -o vvp.exec -I "${VSRC_DIR}/core/" -I "${VSRC_DIR}/perips/" -D DISABLE_SV_ASSERTION=1 -g2005
    15.   # This is a free solution here to use iverilog to compile the code. Please NOTE!!!!
    16.   #
    17.   # Note:
    18.   #   Here we add a macro "DISABLE_SV_ASSERTION" to disable the system-verilog coded
    19.   #     assertion in the RTL code because iverilog cannot support that syntax, if you
    20.   #     use other EDA tools which support the systemverilog, you should not add this macro "DISABLE_SV_ASSERTION".
    21.   #   
    22.   #   Here we didnt add macro "ENABLE_TB_FORCE"
    23.   #     that macro was used to enable the random interrupt and bus-error insertion to make
    24.   #           more intensive test in e200_opensource/tb/tb_top.v.
    25.   #           Although the test become more intensive, the drawback is it makes the regression
    26.   #           simulation running very slower, so by default now it is turned off.
    27.   #           If you want to turn on them without caring the the regression speed,
    28.   #           you can just add macro `ENABLE_TB_FORCE` here in command line.


    29. SIM_EXEC      := ../simv#To-ADD: to add the simulatoin executable
    30. #SIM_EXEC      := vvp ${RUN_DIR}/vvp.exec -none # The free vvp is tooooo slow to run, so just comment it out, and replaced with the fake way below
    31. #SIM_EXEC      := echo "Test Result Summary: PASS" # This is a fake run to just direct print PASS info to the log, the user need to actually replace it to the real EDA command

    32. WAV_TOOL      := verdi#To-ADD: to add the waveform tool
    33. WAV_OPTIONS   := -2001 -sv -top tb_top +incdir+${VSRC_DIR}/core/+${VSRC_DIR}/perips/#To-ADD: to add the waveform tool options
    34. WAV_PFIX      := #To-ADD: to add the waveform file postfix

    35. all: run

    36. compile.flg: ${RTL_V_FILES} ${TB_V_FILES}
    37.         @-rm -rf compile.flg
    38.         ${SIM_TOOL} ${SIM_OPTIONS}  ${RTL_V_FILES} ${TB_V_FILES} ;
    39.         touch compile.flg

    40. compile: compile.flg

    41. wave:
    42.         #gvim -p ${TESTCASE}.spike.log ${TESTCASE}.dump &
    43.         #${WAV_TOOL} ${WAV_OPTIONS} &
    44.         ${WAV_TOOL} ${WAV_OPTIONS} ${RTL_V_FILES} ${TB_V_FILES} &
    45. run: compile
    46.         rm -rf ${TEST_RUNDIR}
    47.         mkdir ${TEST_RUNDIR}
    48.         cd ${TEST_RUNDIR}; ${SIM_EXEC} +DUMPWAVE=${DUMPWAVE} +TESTCASE=${TESTCASE} |& tee ${TESTNAME}.log; cd ${RUN_DIR};


    49. .PHONY: run clean all
    复制代码

    4.修改tb

            进入tb目录,打开tb_top.v
    GD32VF 单片机芯片及应用-开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs+verdi)risc-v单片机中文社区(5)
            加入以下代码,这个是产生verdi使用的波形文件。
    1. initial begin
    2.     $value$plusargs("DUMPWAVE=%d",dumpwave);
    3.     if(dumpwave != 0)begin
    4.          // To add your waveform generation function
    5.          $fsdbDumpfile("ware.fsdb");
    6.          $fsdbDumpvars("+all");
    7.     end
    8. end
    复制代码

    5.运行仿真

            进入到vsim目录下,先执行下面命令,会生成install目录,这里面是copy过来源代码和tb。
    1. make install CORE=e203
    复制代码
    执行下面命令,执行仿真,仿真结束后打印如下图的“PASS”。
    GD32VF 单片机芯片及应用-开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs+verdi)risc-v单片机中文社区(6)
    运行以下命令启动verdi;
    1. make wave
    复制代码
    GD32VF 单片机芯片及应用-开源RISC-V处理器(蜂鸟E203)学习(一)修改仿真环境(vcs+verdi)risc-v单片机中文社区(7)
    6.总结

            修改仿真环境比较简单,现在可以使用Verdi去学习RTL代码,这样效率会高很多。这部分基于我之前分享的EDA环境进行的,以后也是基于这个环境,所以想一起学习的盆友,最好使用我的环境,公众号后台回复:EDA虚拟机可以获得完整EDA环境(虚拟机)。这个修改好的E203工程我也上传到gitee,后面修改的工程也会上传到gitee:
    1. https://gitee.com/Core_Kingdom/e203_mo
    复制代码







    上一篇:WAIC—RIOS执行主任谭章熹:RISC-V从开源芯片制造、EDA到处理器
    下一篇:【Arch Linux】安装 Nuclei Studio IDE 的 AUR 包
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-3-29 19:03 , Processed in 0.487926 second(s), 49 queries .

    快速回复 返回顶部 返回列表