1876|7

7219

帖子

192

TA的资源

五彩晶圆(高级)

楼主
 

一起围读《RISC-V体系结构编程与实践 》第2篇 搭载硬件环境测一下指令 [复制链接]

 

这两天大概读了笨书的第三章第四章,趁着学习的热度,再回味一下之前的搭建硬件环境测试分析一下

 

 

学习了本书第三章 第四章的内容,下面我们搭建硬件环境,测试下RISC-V指令

 

 

Windows环境下搭建基于Eclipse + RISC-V gcc编译器的RISC-V开发环境,配合openocd调试软件,可以实现RISC-V内核程序的编译、下载和调试。

 

硬件选择GD的一款RISC-V芯片

 

 

创建工程,选用型号为GD32VF103

 

 

 

 

之前第一篇以为RISC-V就那么多指令呢,翻阅才知道第三章是基础指令集

还有很多其他指令集,需要我们去RISC-V指令集手册中找下

 

RV32G 指令集的 64 位版本 RV64G 指令集。要切换到 64 位 ISA, ISA 只添加了少数指令。指令集只添加了 32 位指令对应的字(word),双字(doubleword)和长整数(long)版本的指令,并将所有寄存器(包括 PC)扩展为 64 位。 因此,RV64I 中的 sub 操作的是两个 64 位数字而不是 RV32I 中的 32 位数字。 RV64 很接近 RV32但实际上又有所不同;它添加了少量指令同时基础指令做的事情与 RV32 中稍有不同。

 

 

 

 

这里我们主要看下乘法和余数指令

 

从RISC-V手册里能够找到指令。

之前正好做过GD的测评,但是很多汇编指令没有去深究,这次正好可以看看

 

二乘法测试

 

 

 

 

MULH[[S]U] rdh,rs1,rs2; MUL rdl,rs1,rs2

(源寄存器区分符必须按照同样的顺序,并且rdh不能是rs1或者rs2)。因此微体系结构可以将这些融合为一个单一的乘法操作,而不是执行两次分开的乘法。

 

LW(load word)指令格式为LW rd,offset(rs1)。x[rd] = sext ( M [x[rs1] + sext(offset) ] [31:0] )

该指令是从有效地址中读取四个字节(一个字,word),并写入rd寄存器。

 

 

 

再看下KEIL的仿真

 

 

看起来汇编指令基本上差不多的

 

 

 

二余数指令

 

取余指令CORTEX里没有找到指令

 

下图为RISC-V的

 

 

 

 

 

通过REMU指令实现

 

 

 

  • 有符号除法SDIV

SDIV Rd, Rn, Rm ;Rd = Rn/Rm

 

  • 乘减MLS

MLS Rd, Rm, Rn, Ra ;Rd = Ra-Rm*Rn

CORTEX-M通过了除法和乘减指令一起实现的

CORTEX-M实现这个取余的思路大概就是,假设俩个数一个15 一个7,要得到取余的数,15/7=2  最后实现就是 15-7*2=1

 

RSIC-V通过一条REMU实现,比较快捷

 

总的来说RISC-V可扩展性很强,RISC-V是模块化指令,核心是RV32I的指令集,其他扩展模块可通过附加的方式进行扩展

 

 

 

最新回复

产业对这个抱有很大希望,本人对这个不熟,希望能有突破。   详情 回复 发表于 2023-5-8 10:49
点赞 关注

回复
举报

6968

帖子

11

TA的资源

版主

沙发
 
大佬这学习,让人佩服呀,我也想入门汇编,带我玩不?

点评

我也只会皮毛啊 大佬  详情 回复 发表于 2023-4-29 23:57
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
lugl4313820 发表于 2023-4-29 07:19 大佬这学习,让人佩服呀,我也想入门汇编,带我玩不?

riscv quem+docker 纯软件环境,欢迎交流。
https://gitee.com/zzyjsjcom/riscv_programming/tree/master/env_setup_start

点评

大佬 这个怎么玩  详情 回复 发表于 2023-4-29 23:57
 
 
 

回复

7219

帖子

192

TA的资源

五彩晶圆(高级)

4
 
lugl4313820 发表于 2023-4-29 07:19 大佬这学习,让人佩服呀,我也想入门汇编,带我玩不?

我也只会皮毛啊 大佬

点评

这几天学习了51的汇编,还是有些吃不透。  详情 回复 发表于 2023-4-30 06:11
 
 
 

回复

7219

帖子

192

TA的资源

五彩晶圆(高级)

5
 
zzy123456abc 发表于 2023-4-29 16:28 riscv quem+docker 纯软件环境,欢迎交流。 https://gitee.com/zzyjsjcom/riscv_programming/tree/maste ...

大佬 这个怎么玩

点评

安装一个 ubuntu 20.04,然后按照这个 readme 操作就行了。 qemu 和 docker 的基本用法,网上有很多资料可以参考。  详情 回复 发表于 2023-5-1 10:36
 
 
 

回复

6968

帖子

11

TA的资源

版主

6
 
常见泽1 发表于 2023-4-29 23:57 我也只会皮毛啊 大佬

这几天学习了51的汇编,还是有些吃不透。

 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

7
 

安装一个 ubuntu 20.04,然后按照这个 readme 操作就行了。

qemu 和 docker 的基本用法,网上有很多资料可以参考。

 
 
 

回复

121

帖子

0

TA的资源

一粒金砂(高级)

8
 

产业对这个抱有很大希望,本人对这个不熟,希望能有突破。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表