1.Rocket-chip可以做什么
“Rocket是一款64bit的标量处理器,5级流水线,采用的是risc-v指令集,集成FPU,并有许多or1200没有的特性,比如:无阻塞缓存、分支预测、返回地址堆栈、硬件页表填充、cache支持ECC、支持多核等。”
它允许我们生成不同配置(自定义)的SOC,包括软件工具链。
2.Rocket-chip的子模块(文件目录)
1.chisel3:用来进行RTL级建模的HDL
2.Rocket:Rocket 核心代码以及cache
3.Uncore: 除内核以外的外部逻辑代码:一致性端口,片上接口,主机接口等
4.hardfloat:参数化FMA等,文件夹内有README代码
5.Dramsim2 为模拟器模拟DRAM的时序
6.RISCVTOOLS:软件工具链
7.CSRC:为C++模拟器开发的胶水代码(在计算机编程领域,胶水代码也叫粘合代码,用途是粘合那些可能不兼容的代码。可以使用与胶合在一起的代码相同的语言编写,也可以用单独的胶水语言编写。胶水代码不实现程序要求的任何功能,它通常出现在代码中,使现有的库或者程序在外部函数接口(如Java本地接口)中进行互操作。)
8.Emulator:为C++模拟器创幻目录,生产代码和执行
9.Fsim:FPGA模拟器
10.Src: Chisel 源代码
11.Project:一些配置文件
12.Vsim:ASIC模拟器
3. Rocket chip 配置的参数
Tile(),Memory(),Caches(),Core(),Uncore()
4.生成简单的模拟测试:
运行成功。
接下来将学习自己配置和添加接口。
附录:
初始配置