0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍一款轻量级的RISC-V解释型模拟器

冬至配饺子 来源:VFINE 作者:VFINE 2023-07-22 14:25 次阅读

一、简介

XEMU 是一款轻量级的 RISC-V 解释型模拟器,基于 C 语言实现,支持 RV32IM 指令集,支持简单外设模拟

解释型模拟器:取指、译指、执行、更新 PC,例如 Spick、XEMU

翻译型模拟器:取值、译指、生成本机指令序列、更新 PC,例如 QEMU

二、功能介绍

  1. 环境介绍
    软件编译器:GNU MCU Eclipse RISC-V Embedded GCC, 64-bit (gcc version 8.2.0)
  2. 地址分配

1.jpg

实际使用的空间大小详见 link.lds 文件。

三、使用说明

  1. 指令集测试
    在源代码中关闭宏 ENABLE_UART

执行 ./autotest.bat 或者 ./autotest.sh,自动测试所有指令

模拟器退出条件:x26=1,x27=0/1

  1. 处理器功能模拟
    进入 ./sim 文件夹下,选择测试用例并进入,执行 make build

在根目录下执行 make build && make run

模拟器退出条件:

通过 UART1 发送字节序列 0x1b 0x04

键盘输入 Ctrl + b

四、示例

运行 rt-thread-nano 3.15

修改 Makefile,路径 ./sim/config.mk

ifeq ($(shell uname), Linux)
EMBTOOLPATH = /home/crazy/Tools/compiler/xuantie/v8.4.0/riscv64-elf-x86_64-20210307
EMBTOOLPREFIX = ${EMBTOOLPATH}/bin/riscv64-unknown-elf
CC = ${EMBTOOLPREFIX}-gcc
OBJDUMP = ${EMBTOOLPREFIX}-objdump
OBJCOPY = ${EMBTOOLPREFIX}-objcopy
else
EMBTOOLPATH = C:/riscv-none-embed
EMBTOOLPREFIX = ${EMBTOOLPATH}/bin/riscv-none-embed
CC = ${EMBTOOLPREFIX}-gcc.exe
OBJDUMP = ${EMBTOOLPREFIX}-objdump.exe
OBJCOPY = ${EMBTOOLPREFIX}-objcopy.exe
endif

进入测试用例目录,编译目标程序

cd sim/rtthread-nano
make build

编译模拟器并运行

make build && make run

运行结果

1.jpg

退出运行,Ctrl + b

五、写在最后

可以在 vcs 上直接仿真,环境都配置好了,直接用 dve/verdi 看波形和 log,在 Makefile 中修改 risc-v gcc 编译器路径即可

提供了 fpga 的实现,可以一键生成 xilinx 工程,提供了 coe 文件生成,可以一起下载到 fpga 中。工程中提供了 bootloader 的 demo,可以通过串口烧写程序(烧写到 bram 中,掉电丢失)

国产的 gowin fpga 也做了适配,使用 sispeed 的 Tang 9K 开发板。和 xilinx 的 fpga 操作类似

最后就是这几天写的 xemu,只适配了 rt-thread nano 3.1.5,完整的 rt-thread 没有去移植.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7534

    浏览量

    128852
  • 模拟器
    +关注

    关注

    2

    文章

    818

    浏览量

    42698
  • UART接口
    +关注

    关注

    0

    文章

    123

    浏览量

    15068
  • RT-Thread
    +关注

    关注

    31

    文章

    1150

    浏览量

    38911
  • RISC-V
    +关注

    关注

    41

    文章

    1906

    浏览量

    45072
收藏 人收藏

    评论

    相关推荐

    RISC-V 基础学习:RISC-V 基础介绍

    , 支持整数指令、乘除法指令、原子指令和压缩指令。 9.3 指令集模块 指令集模块是一款CPU架构的主要组成部分,是CPU 和 上层软件交互的核心,也是cpu主要功能体现。 RISC-V 规范只定义了
    发表于 03-12 10:25

    学习RISC-V入门 基于RISC-V架构的开源处理及SoC研究

    RV32E是RV32I的子集,不单独计算。基本指令集的名称后缀都是I,表示Integer,任何一款采用RISC-V架构的处理都要实现个基本指令集,根据需要,可以实现多种扩展指令集,
    发表于 07-27 18:09

    科普RISC-V生态架构(认识RISC-V)

    2018 年 9 月推出了第一款芯片“黄山号”。据介绍,这款采用RISC-V架构设计的芯片是是全球首集成AI神经网络模块的处理
    发表于 08-02 11:50

    基于 RISC-V 的微控制入门指南

    、Microchip Technology、NVIDIA 和 Qualcomm 等公司。为 RISC-V 开发做出贡献的公司虽不少,但对于普通开发人员而言,获得 RISC-V 实践经验的最佳方法是找到一款
    发表于 08-21 18:35

    RISC-V有哪些特点

    生态链企业华米科技不会感到陌生,在2017年华米科技成立了人工智能实验室,并启动了他们的人工智能智能可穿戴芯片研究项目,投身RISC-V芯片研发,并最终在去年9月推出了第一款芯片“黄山号”。据
    发表于 08-25 11:17

    RISC-V开源处理介绍

    本期文章目录个小型RISC-V开源处理介绍!#SOC#FPGA#RISC-V点击阅读数字积木从零开始写
    发表于 07-23 09:42

    RISC-V MCU开发相关资料分享

    开发工作中。 工欲善其事必先利其,要想实现基于RISC-V MCU的项目开发,与之配套的集成开发环境必不可少。目前市场上可供选择的RISC-V MCU开发工具已初具规模,由MounRiver团队打造的MounRiver® St
    发表于 11-10 07:50

    怎样去评测一款RISC-V开发板

    很长时间没发过板卡评测的文章了,今天我们来评测沁恒的一款RISC-V开发板。提到沁恒这个名字,可能有些朋友感到陌生,但是有一款芯片你肯定知道,那就是CH340——一款USB-TTL串口
    发表于 12-08 06:08

    4玄铁RISC-V芯片亮相

    了双核玄铁C906处理、0.5T NPU和Smart ISP等,是业内同档产品中集成度最高的产品之。 晶视智能COO黄群辉介绍称,平头哥基于RISC-V在视觉AI领域做了大量代码优
    发表于 03-08 08:16

    Ubuntu官方又支持了一款仅有硬币大小的RISC-V SBC

    Ubuntu发行商Canonical近日宣布将再支持一款基于RISC-V芯片设计的SBC——来自Sipeed的LicheeRV。LicheeRV是基于全志D1-H芯片(阿里平头哥C906
    发表于 10-31 09:37

    【年度技术专场】RISC-V项目分享会

    设计的工作站产品,2U服务。以及一款有竞争力的基于RISC-V开发板产品。陆吉年 算能科技产品总监20年半导体行业经验,涉及市场营销、产品规划等职位。对RISCV半导体有充⾜的⼯作经验及较强资源整合能
    发表于 01-06 14:27

    初探RISC-V—《RISC-V体系结构编程与实践》

    最近有幸读了介绍RISC-V的书籍《RISC-V体系结构编程与实践》,这是本非常有价值的书籍,它
    发表于 03-28 11:41

    有推荐的 RISC-V 模拟器吗?

    有推荐的 RISC-V 模拟器吗?
    发表于 04-15 23:43

    中国电信自研 RISC-V 云原生轻量级虚拟机 TeleVM 成功运行,内存开销降低约 90%

    据 StarFive 官方微信号发布,中国电信研究院基于 CTyunOS 及欧拉开源生态,已成功研发业界首个支持 RISC-V 的云原生轻量级虚拟机 TeleVM,并在 RISC-V CPU IP
    发表于 05-05 09:46

    RISC-V入云!赛昉科技联合中国电信完成首个RISC-V云原生轻量级虚拟机验证

    近日, 中国电信研究院成功研发业界首个支持RISC-V的云原生轻量级虚拟机TeleVM,并联合赛昉科技在高性能RISC-V CPU IP——昉·天枢上完成了软硬件协同测试验证。 测试结果显示,相对于
    发表于 05-11 14:08