RISC-V MCU中文社区

【分享】 技术分享--利用 NucleiStudio IDE 和 vivado 进行软硬件联合仿真

发表于 全国大学生集成电路创新创业大赛 2021-03-26 09:55:39
32
21001
36

本文利用NucleiStudio IDE 和 vivado 对 NICE demo协处理器进行软硬件联合仿真。

1. 下载demo_nice例程:https://github.com/Nuclei-Software/nuclei-board-labs/tree/master/e203_hbirdv2/common

2.在NucleiStudio IDE 下新建一个c工程,并添加所需的源文件。注意在project settings的DOWNLOAD选项要选择ILM。


建好的工程如下图所示:


3.选择当前项目的properties->C/C++ Build->Settings->Build Steps->Post-build steps 增加如下命令:

riscv-nuclei-elf-objcopy -O verilog "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.verilog";sed -i 's/@800/@000/g' "${BuildArtifactFileBaseName}.verilog"; sed -i 's/@00002FB8/@00002000/g' "${BuildArtifactFileBaseName}.verilog";

使编译之后能生成.verilog文件。


4.编译工程,在Debug目录下找到tb需要的.verilog文件。

5. 下载蜂鸟E203硬件代码,里面包含了nice demo core的实现。下载地址:https://github.com/riscv-mcu/e203_hbirdv2

协处理器参考示例相关资料请参考:https://www.rvmcu.com/community-topic-id-340.html

6.在vivado下新建一个工程,添加所有的rtl代码以及tb。


7.将e203_defines.v设置为global include ,并将文件类型改为 Verilog Header.


在config.v中增加宏定义: `define FPGA_SOURCE


8.将tb_top.v设置为顶层, 并添加读入.verilog文件的路径,保存文件。

9.点击运行仿真。从 Tcl Console 上可以看到仿真运行正常,打印出了软件定义的相关信息。

仿真波形:


至此,使用NucleiStudio IDE 和 vivado对蜂鸟E203+demo协处理器的软硬件协同仿真实验已经完成。根据以上步骤可以方便地对E203 SoC进行软硬件仿真调试。

喜欢36
用户评论 (32)
  • 烈烈风中

    2023-03-17 18:09:26 烈烈风中 1#

    梦游者

    我也没生成.verilog文件,不知道哪里出了问题

    清理工程,重新编译就好了

  • 梦游者

    2023-03-10 09:59:33 梦游者 2#

    添加了神秘代码,没有生成.verilog文件

    我也没生成.verilog文件,不知道哪里出了问题

  • 2022-04-15 20:10:40 3#

    巴啦啦

    为啥编译出来的.verilog楼主不一样呢,而且nice_req_valid一直没拉高

    请问解决了吗?我也碰到了这个问题

  • 2022-03-31 09:28:18 4#

    添加了神秘代码,没有生成.verilog文件

  • 2022-03-31 09:14:57 5#

    Jue

    看样子程序是可以正常跑通的,是否没有在程序中添加宏定义_DEBUG_INFO_呢?

    请问_DEBUG_INFO_是要自己手动添加吗

  • 2022-03-30 09:20:47 6#

    大佬们,我这个仿真的波形好像是CPU都没有运行吧,,这咋回事啊

    你continue run一下


  • 2022-03-20 16:39:39 7#

    大佬们,我这个仿真的波形好像是CPU都没有运行吧,,这咋回事啊

  • 2021-07-26 10:11:40 8#

    再胖十斤

    大佬,为什么我跑出来和你不一样啊,我感觉我们tb文件不一样啊,我这也是官方的啊


    请问您这个问题解决掉了吗?我也遇到了相同的问题

  • 巴啦啦

    2021-06-08 18:21:23 巴啦啦 9#

    为啥编译出来的.verilog楼主不一样呢,而且nice_req_valid一直没拉高

  • ved.

    2021-05-13 23:15:44 ved. 10#

    我想请问一下,你们把rtl都添加进vivado都没有报错吗?我的有几个文件里面有sv语言,报错了。把这几个文件改成.sv后缀的话。不修改config.v的话没有错误,但是波形不对。修改的话还是一大堆错误。

  • Jue

    2021-05-09 21:48:12 Jue 11#

    再胖十斤

    大佬,可以说的具体一点吗,是在config.v里面添加吗,我是按照您上面说的添加了FPGA_SOURCE宏定义,其他的就没添加了。这个_DEBUG_INFO_是什么呀

    在c程序里面。

  • 再胖十斤

    2021-05-09 21:40:02 再胖十斤 12#

    Jue

    看样子程序是可以正常跑通的,是否没有在程序中添加宏定义_DEBUG_INFO_呢?

    大佬,可以说的具体一点吗,是在config.v里面添加吗,我是按照您上面说的添加了FPGA_SOURCE宏定义,其他的就没添加了。这个_DEBUG_INFO_是什么呀

  • Jue

    2021-05-09 21:26:46 Jue 13#

    再胖十斤

    大佬,为什么我跑出来和你不一样啊,我感觉我们tb文件不一样啊,我这也是官方的啊


    看样子程序是可以正常跑通的,是否没有在程序中添加宏定义_DEBUG_INFO_呢?

  • 再胖十斤

    2021-05-09 21:14:42 再胖十斤 14#

    再胖十斤

    大佬,为什么我跑出来和你不一样啊,我感觉我们tb文件不一样啊,我这也是官方的啊


    是不是有什么细节漏了,求大佬指导一下

  • 再胖十斤

    2021-05-09 21:12:54 再胖十斤 15#

    大佬,为什么我跑出来和你不一样啊,我感觉我们tb文件不一样啊,我这也是官方的啊


Jue

Jue 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板