我正在学习火箭芯片的代码。但是由于复杂的关系,我很难阅读其代码。所以我需要一些帮助。不幸的是,关于它的手册似乎很少。那么有人能给我提供有益于阅读火箭芯片代码的手册吗?
答案 0 :(得分:1)
与Rocket-Chip合作需要您非常了解以下内容:
外交-火箭芯片如何实现外交框架,该框架用于在电路制造过程中协商参数并将其传播通过芯片。看看亨利·库克(Henry Cook)的博士学位。在U.C.的论文伯克利(Berkeley)可以提供有关此方面的背景信息,或者最好是会议讨论for instance。
TileLink -特别是火箭芯片使用凿子来实现TileLink规范的方式
Scala中的功能编程-Rocket-Chip代码库广泛使用了Scala语言功能,例如案例类,模式匹配,高阶函数,部分函数,匿名函数,特征混入等等。因此,您将看到诸如用map函数定义的重要变量,使用隐式参数与案例语句进行模式匹配,甚至在代码编写时都无法找到甚至确定的事情。
凿子-专门用于制造电路组件的数据类型和构造函数。凿子是容易的部分。
我不知道任何手册,但是以下一些内容可以帮助您了解体系结构:
grep -rn "class" | wc -l
返回1126,grep -rn "object" | wc -l
返回533,grep -rn "trait" | wc -l
返回196)。几乎没有任何注释,因此您需要查看如何使用每个类,对象和特征。按住Ctrl键并单击以跟随超类(在其上显示extends RocketSubsystemModuleImp
),并绘制出类层次结构。这将有助于您对行为的根源有一个全面的了解。// import freechips.rocketchip.tilelink._
// change to:
import freechips.rocketchip.tilelink.{TLToAXI4, TLToAHB}
答案 1 :(得分:0)
我建议您看看chisel3。火箭芯片RISCV内核是用此编写的。我在下面添加了一些链接,以帮助您入门: Chisel_Homepage,Chisel_Github,Chisel_Tutorial。
还有一个RISCV mini,这是一个三级riscv,用于学习目的。下面提供的信息尚不确定该如何更新。
当您熟悉FPGA上的一些示例项目时,Microsemi(Microchip公司)也会提供一些RISC-V内核和一个生态系统供您参考。我也将在下面链接MiV生态系统。3_Stage_RISCV_mini,MIV_ECOSYSTEM。 希望这可以帮助, 恰兰