网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 模拟技术 >

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

时间:2023-07-22 14:25

人气:

作者:admin

标签: UART接口  模拟器  RT  C语言 

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

一、简介

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 没有去移植.

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信