关于rocc的内容很多,我会分多章进行讲解。
初步规划以下面章节为划分。
1. 协议,自定义指令说明。
2. rocket-chip RoCC各模块的scala代码说明。
3. 软件代码编译实现。
4. rocket-chip RoCC各模块硬件实现和硬件仿真。
第一部分介绍的定制CSR寄存器和定制指令的协议内容。
1) CSR寄存器扩展
在The RISC-V Instruction Set Manual Volume II: Privileged Architecture中查找custom的时候可以找到table2.1。这个表是各种模式下CSR寄存器的地址划分。

The top two bits (csr[11:10]) indicate whether the register is read/write (00, 01, or 10) or read-only (11). The next two bits (csr[9:8]) encode the lowest privilege level that can access the CSR[1].
我们可以在不同的模式下添加自定义的CSR寄存器,但添加的CSR寄存器地址要符合协议的规定。
SiFive系列的CPU就有自定义CSR寄存器的例子:


本文详细介绍了RISC-V架构中的自定义CSR寄存器和指令扩展方法,包括寄存器地址分配规则、mstatus的XS域作用及状态转换,并解析了定制指令的格式及其在rocket-chip中的应用。
最低0.47元/天 解锁文章
3627

被折叠的 条评论
为什么被折叠?



