Rocket-chip-RoCC(1)

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

关于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寄存器的例子:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值