🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/CM32M433R MCU/关于如何创建一个浮点立即数
关于如何创建一个浮点立即数
CM32M433R MCU 作者 szy1380 发布于 2023-05-31 12:56(1227 天前) 4412 浏览

团队编号:CICC2879

团队名称:八点起床读书

 在做F指令扩展时,对于一些运算模块,难免得需要进行仿真波形验证,而在这个时候就需要用到生成立即数来进行验证。生成立即数的方法跟RV32I指令一样,如下:

 RISC-V使用I-type格式的指令和U-type格式的指令加载立即数,I-type格式包含12位立即数,U-type格式包含20位立即数,而且这20位是加载到寄存器的高20位的。所以,一条I-type指令加上一条U-type指令就可以加载32位的常量,包括32位的立即数或内存地址。有些情况下只需要一条I-type指令,或者一条U-type指令就可以了。

例如加载常量0x12345678:

lui x15,0x12345 # 首先加载常量的高20位

addi x15,x15,0x678 # 再将低12位加到高20位

而对于F寄存器,则需要另一条F指令在将S寄存器转移到F寄存器,即浮点搬运指令 FMV.W.X

该指令结构为:

1111000 00000 rs1 000 rd 1010011

通过设置合适的参数,即可将x[rs1]转移到f[rd]。

全部回复 0
暂无回复,抢个沙发~
💡 请 登录 后参与讨论(微信扫码即登录/注册)