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

rocket-chip项目的具体内容

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-1-15 13:53
  • 签到天数: 26 天

    [LV.4]

    发表于 2020-8-18 23:03:25 | 显示全部楼层 |阅读模式

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

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

    x
    本帖最后由 新ちゃん 于 2020-8-20 22:36 编辑

    3、rocket-chip项目的具体内容
    3.1 rocket-chip的项目框架

    rocket-chip项目的下载网址:rocket-chip

    因为rocket-chip项目一直有人维护,会一直更新,所以我立一个时间点,下面的项目框架说明是在这个时间点附近更新的,我下次更新会修改上面的时间点,我的修改时间不定。而且每次修改只会修改一级目录和二级目录的内容,更详细的更新内容请自行上github查看。至于scala的源代码说明,看后面的情况吧,有时间我是会写的。此外,rocket-chip项目的内容太多了,有部分我也还没有完全弄得,如果哪里写错了请您邮件我,谢谢。

    CSDN的表格真的…


    一级二级说明
    bootrom-硬件启动的代码,一般存在于rom中。
    -bootrom.Sbootrom的汇编代码。
    -linker.ldlink文件,用于规定代码存放的位置。
    -Makefilemake文件,此文件会完成三个步骤:1.利用bootrom.S和linker.ld将汇编转为elf文件;2.利用elf文件生成bin文件;3.利用bin文件生成img文件。
    chisel3-chisel3软件,是一种硬件构建语言,用于生成各种配置的rocket-chip。chisel3是在scala的基础上发展的,后面可能会单独开一篇对chisel3进行介绍。此软件需要安装java & sbt。
    emulator #-利用Verilator完成编译和仿真,是基于C/C++的仿真。
    firrtl-是chisel3到RTL的中间产物,用于最终生成Verilog/C代码。可以将chisel3生成的*.fir文件转换为*.v。
    hardfloat-硬件浮点单元,用于融合乘法 - 加法运算,整数和浮点之间的转换数字和不同精度的浮点转换之间的转换。
    macros/src/main/scala宏命令,暂时还不知道这目录的作用。
    project-通过sbt完成scala编译和构建。
    -build.properties声明sbt的版本。
    -plugins.sbt声明sbt依赖库的路径与版本。
    regression-rocket-chip项目的回归测试脚本。从verilog代码生成,到riscv-tools工具的编译,再到vcs仿真&emulator仿真,然后到JTAG simulation。有点复杂,不建议一开始就用这个脚本。因为上面描述的内容都可以分步完成的。
    riscv-tools #-RISC-V交叉编译工具。
    -riscv-fesvr一个“前端”服务器,用于服务主机 - 目标接口(HTIF)上的主机和目标处理器之间的呼叫(它还提供虚拟化控制台和磁盘设备)。若要使用riscv-isa-sim,必须安装riscv-fesvr。
    -riscv-gnu-toolchain #RISC-V交叉编译工具。
    -riscv-isa-sim一个简单的ISA模拟器。
    -riscv-opcodes所有RISC-V操作码的枚举,这些操作码都能利用riscv-isa-sim运行,可以自行添加。
    -riscv-openocd一款片上编码和调试的工具。
    -riscv-pk一个代理内核,用于服务代码构建的系统调用和链接RISC-V Newlib的端口。
    -riscv-tests #装配测试和基准测试的文件。
    -build-rv32ima.sh编译脚本。编译riscv-fesvr、riscv-isa-sim、riscv-pk、riscv-gnu-toolchain和riscv-openocd工具。riscv-isa-sim指令只支持32位ima指令。riscv-gnu-toolchain交叉编译工具链也只支持32位ima指令。同时用riscv-gnu-toolchain生成的32位工具编译riscv-pk。
    -build-spike-only.sh编译脚本。编译riscv-fesvr和riscv-isa-sim工具。用于RISC-V的指令仿真。
    -build-spike-pk.sh编译脚本。编译riscv-fesvr、riscv-isa-sim和riscv-pk工具。需要用的64位工具编译riscv-pk。
    -build.common各种build脚本的通用代码,用于检测环境变量,GCC版本,打印信息,建立目录和记录编译历史。
    -build.sh编译脚本。编译riscv-fesvr、riscv-isa-sim、riscv-pk、riscv-gnu-toolchain、riscv-openocd和riscv-tests工具。我基本只使用这个编译脚本,当然我编译的是32位工具。
    -regression.sh编译脚本,完成一次回归测试。
    scripts-用于分析仿真结果和操作源文件的脚本,生成mem/rom的通用脚本。
    src/main #-rocket-chip的scala源代码。内容太多暂时不打算一个个模块进行解释。
    torture-该模块用于生成和执行受约束的随机指令流,可用于对设计的核心部分和非核心部分进行压力测试,这个目录我没有用过。
    vsim #-利用VCS完成编译和仿真,同时生成verilog代码。
    LICENSE.Berkeley-伯克利的LICENSE,这些还是很重要的,大家注意了。
    LICENSE.SiFive-SiFive的LICENSE。
    LICENSE.jtag-chisel-jtag的LICENSE。
    Makefrag-脚本的一些通用配置,环境变量设置,java运行选项,项目选项,相关路径等。
    README.md-rocket-chip项目的相关教程。
    README_TRAVIS.md-Travis Notes for Administrators。
    build.sbt-rocket-chip项目使用到了sbt,此文件为sbt的一些配置。
    sbt-launch.jar-sbt-launch的java软件包。

    注意:打“#”号的是我经常主动用到的目录。


    rocket-chip项目编译步骤:

    1、 先安装虚拟机&ubuntu系统。

    虚拟机下载地址:http://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.1.2-8497320.exe
    ubuntu下载地址:http://mirrors.zju.edu.cn/ubuntu-releases/
    我安装的VMware是14.1.2版本,而ubuntu是32位的14.04.5。


    2、 然后下载rocket-chip的项目。

    1. $ git clone https://github.com/ucb-bar/rocket-chip.git
    2. $ cd rocket-chip
    3. $ git submodule update --init
    复制代码

    运行这几步只是会将rocket-chip项目中的一级目录和二级目录下载,有部分目录还需要更详细的步骤进行内容下载。


    3、 接着设置环境变量:

    1. $ export RISCV=/path/to/riscv/toolchain/installation
    复制代码

    这个是必须的,所有工具编译都依赖于环境变量,上面的命令需要根据各自的配置来完成的。


    4、 最后是进入各个目录进行不同目录的编译或仿真。


    进入riscv-tools目录可以编译交叉工具链和各使用工具。
    进入emulator / vsim可以生成RTL代码,然后根据RTL代码完成仿真。
    进入regression / torture可以进行更复杂的操作。


    建议先编译riscv-tools目录,然后再编译其他目录。此外,生成RTL是不受riscv-tools的工具影响的,你可以进入emulator / vsim,然后利用
    make verilog CONFIG=DefaultFPGAConfig


    来生成RTL代码,RTL代码的生成与chisel3、firrtl、hardfloat和project等目录相关,与java和sbt工具相关,在emulator / vsim目录中使用RTL完成仿真操作才会与riscv-tools的工具相关。


    5、各目录的编译。

    各目录的编译步骤会在分章节中进行说明。
    跳转路径:https://blog.csdn.net/a_weiming/article/details/84594781



    本篇完,感谢关注:RISC-V单片机中文网





    上一篇:Linux系统中VCS、Dve & Verdi的使用
    下一篇:riscv-isa-sim的使用
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

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



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

    GMT+8, 2024-4-27 07:18 , Processed in 0.563709 second(s), 46 queries .

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