RISC-V MCU中文社区

【分享】 RISC-V(riscv)开源项目 标准soc设计验证环境 操作演示 尝鲜

发表于 开源蜂鸟E203 2022-09-06 11:59:18
2
975
7

1.获取

我个人喜欢在自己home目录下建立一个专门IC工程文件夹:ic_prjs;也推荐大家这么做,养成文件管理的好习惯,在自己觉得ok的目录下,git取下CK_RISCV的整个工程;

git clone https://gitee.com/Core_Kingdom/ck-riscv.git

2.工程目录结构说明

CK_Riscv
├── bashrc.env              //工程环境配置    
├── fpga                    //FPGA原型验证综合目录
│   ├── constraint
│   │   └── pin.xdc
│   ├── libs
│   ├── script
│   │   └── create_prj.tcl
│   └── work
│       └── Makefile
├── LICENSE
├── module                    //RTL 代码
│   ├── chip                //顶层代码放置目录
│   │   └── rtl_v00            //代码版本
│   └── riscv_core            //RISCV Core 代码放置目录
│       └── rtl_v00            //代码版本
├── pic
│   ├── Architecture.png
│   └── image.png
├── README.en.md
├── README.md
├── scripts                    //脚本命令
│   ├── open_dve            //打开DVE
│   ├── open_verdi            //打开VERDI
│   ├── regress                //Regress验证脚本
│   ├── rerun                //验证快捷命令
│   └── rvgccCom            //RISCV编译命令
└── verification                //验证目录
    ├── cases                    //测试用例目录
    │   └── riscv_core            //验证的模块名
    ├── regress_fun                //Regress回归目录
    │   ├── config                //仿真配置
    │   └── Makefile            //case list Makefile 
    └── testbench                //仿真所需额外文件
        ├── environment.sv        //仿真环境文件
        ├── ext_behavior_model    //放置仿真行为级模型
        ├── ext_behavior_task    //常用tasks
        ├── instance            //tbtop例化
        └── tbtop.v                //tbtop

3.RISCV工具链

这里有三种方式:

打开个人shell文件,在文件底部加入以下配置信息,退出后记得source;我这里是用户home目录下的.bashrc

#=============================================================================================
#   RISCV Tools
#=============================================================================================
export RISCV=/home/Riscv_Tools
PATH=$PATH:$RISCV/bin
alias rv32_elf='riscv32-unknown-elf-gcc';

个人是放置在/home下,注意非个人home别搞混了。如果你放置在其他地方,需要修改上面export RISCV=/home/Riscv_Tools的路径;
使用下面命令进行解压得到Riscv_Tools

tar -xf CK_Riscv_Tools.tar

在这里插入图片描述

  • 其三,直接下载我分享的虚拟机,已安装IC_EDA工具、Riscv编译环境:开源IC_EDA虚拟机

4.跑起来

一定要先source环境才能用;

source bashrc.env

在这里插入图片描述
进入到regress目录,有一个Makefile文件,里面全是RISCV的测试用例
在这里插入图片描述
跑所有的测试用例,当然可以单独跑一个,make单独的case名就行;

make rv

每个case,自动编译C程序或者汇编程序,并自动吃入RAM中,仿真结束后也会打印测试用例的仿真结果;
在这里插入图片描述

regress结束后,生成以下文件,这个是每个测试用例的仿真目录;
在这里插入图片描述
进入其中仿真目录,使用open_verdi即可启动verdi查看仿真波形以及Debug;
从下图可以看出,main.c、main.s是我们测试激励(这里先编写汇编进行简单的验证),环境自动编译生成.verilog
文件,也就是仿真时吃入到ram中的二进制程序;.dump就是反汇编文件,帮助我们分析以及debug;

open_verdi

在这里插入图片描述

在这里插入图片描述

5.结果统计

输入一下命令统计Regress结果;

gen_simRpt

在这里插入图片描述

6.覆盖率检查

进入到config目录下,gvim打开sim_config,如图将覆盖率开关置为1;
在这里插入图片描述
回到regress目录,重新跑仿真,会生成覆盖率的目录,进入到该目录;

make rv

在这里插入图片描述
先合并多个case的覆盖率;

gen_cov

在这里插入图片描述

启动verdi查看覆盖率;

open_cov

在这里插入图片描述

待续 更新中。。。。


视频演示

视频演示与介绍-点击跳转

你可能需要的

centos7 升级安装 vim8.2(gvim)
Vmware 虚拟机 释放文件删除后的磁盘,缩小虚拟机大小
搭建属于自己的数字IC EDA环境(番外):S家EDA工具 license失效,TCP端口占用问题

蜂鸟E203学习-专栏
搭建IC_EDA环境-专栏
RISC-V设计-专栏

喜欢7
用户评论 (2)
  • 芯王国

    2022-09-09 16:13:52 芯王国 1#

    不清楚你编译的什么,按提示操作一下试试

  • 小子图

    2022-09-06 20:48:17 小子图 2#

    编译遇到2个错误,请问是怎么解决的呢

    Error-[LCA_FEATURES_NEED_OPTION] Invalid usage

      Limited Customer Availability feature is used.

      The 'Debug Access' flow requires a special option.

      You can enable it by adding '-lca' to the command line.

芯王国

芯王国 实名认证

先学会走,再尝试奔跑

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