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

    文章

    7614

    浏览量

    137567
  • 模拟器
    +关注

    关注

    2

    文章

    881

    浏览量

    43378
  • UART接口
    +关注

    关注

    0

    文章

    124

    浏览量

    15335
  • RT-Thread
    +关注

    关注

    31

    文章

    1305

    浏览量

    40342
  • RISC-V
    +关注

    关注

    45

    文章

    2322

    浏览量

    46492
收藏 人收藏

    评论

    相关推荐

    求推荐一款入门级risc-v开发板

    求推荐一款入门级risc-v开发板: 便宜好用,不超过100元。 支持wifi、蓝牙。 功耗2.5W以内。 支持Linux系统。 谢谢哦。
    发表于 09-29 09:03

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

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

    RISC-V开源处理介绍

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

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

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

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

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

    初探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

    推荐一款基于RISC-V MCU的开源SoC平台

    无剑100是阿里旗下芯片公司平头哥(T-Head)推出的一款基于RISC-V MCU的开源SoC平台。
    的头像 发表于 10-24 09:36 3931次阅读

    如何构建RISC-V嵌入式

    抽象-RISC-V种开放ISA(指令集架构)实现了处理架构创新的新时代。RISC-V包括开源处理内核、工具链、,
    发表于 11-23 16:56 3次下载

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

    近日,中国电信研究院成功研发业界首个支持RISC-V的云原生轻量级虚拟机TeleVM,并联合赛昉科技在高性能RISC-V CPU IP——昉·天枢上完成了软硬件协同测试验证。测试结果显示,相对于
    发表于 05-06 09:33 335次阅读
    赛昉科技联合中国电信完成首个<b class='flag-5'>RISC-V</b>云原生<b class='flag-5'>轻量级</b>虚拟机验证

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

    近日,中国电信研究院成功研发业界首个支持RISC-V的云原生轻量级虚拟机TeleVM,并联合赛昉科技在高性能RISC-VCPUIP——昉·天枢上完成了软硬件协同测试验证。测试结果显示,相对于
    的头像 发表于 05-06 10:32 573次阅读
    <b class='flag-5'>RISC-V</b>入云!赛昉科技联合中国电信完成首个<b class='flag-5'>RISC-V</b>云原生<b class='flag-5'>轻量级</b>虚拟机验证

    新思科技收购Ansys,拓展RISC-V验证及验证解决方案

    Imperas拥有的虚拟软件模拟技术广泛拓展至 RISC-V领域,为整个产业链带来便利。2018年,该公司推出的 riscvOVPsim成为首免费 RISC-V指令集
    的头像 发表于 12-27 09:57 657次阅读

    著名的 Box86/Box64 模拟器现在有了更好的 RISC-V RVV 1.0 支持,性能提升显著

    著名的 Box86/Box64 模拟器现在有了更好的 RISC-V RVV 1.0 支持,性能提升显著
    的头像 发表于 10-15 08:08 2530次阅读
    著名的 Box86/Box64 <b class='flag-5'>模拟器</b>现在有了更好的 <b class='flag-5'>RISC-V</b> RVV 1.0 支持,性能提升显著