8 个版本
使用旧 Rust 2015
0.3.4 | 2019 年 6 月 4 日 |
---|---|
0.3.3 | 2019 年 5 月 10 日 |
0.3.1 | 2019 年 4 月 1 日 |
0.3.0 | 2019 年 3 月 29 日 |
0.1.2 | 2019 年 3 月 26 日 |
#868 in 硬件支持
730KB
7.5K SLoC
>narvie
一个 RISC-V 指令的 Read Eval Print Loop (REPL)。仅测试了 UNIX 系统。 narvie
代表本地 RISC-V 指令评估器。
安装
可以下载预构建的 narvie 二进制文件(ubuntu linux,mac OS)或使用 cargo 构建
- 下载 Rustup 并安装 Rust.
- 安装 verilator。建议使用版本 3.916。
- 运行
$ cargo install narvie-cli
。
运行
narvie
可以作为模拟运行,也可以通过将 narvie
处理器(运行在 FPGA 上)连接到您的计算机来运行。
一旦 cli 运行,请在提示符中输入 RISC-V 指令。例如:nop
,li t0, 1678
或 addi t0, t0, 1
。 narvie
将将这些指令编译成二进制文件,运行它们并显示新的微架构状态(目前只显示寄存器的值)。完成后,使用 ctrl-c
退出 narvie
。
模拟
- 要启动模拟,请尝试
$ narvie-cli --simulate
。
FPGA 上运行
- 通过USB将
narvie
处理器连接到您的计算机后,运行以下命令:$ narvie-cli 地址 --baud 115200
,其中地址
是处理器连接的串行端口。将115200
替换为处理器配置使用的波特率。
构建narvie
要构建narvie-cli
,需要verilator
。要合成Verilog并烧录到FPGA,./progMDP
使用yosys
、arachne-pnr
和icestorm
。然而,也可以使用其他工具进行合成。
- 下载Rustup并安装Rust。(https://www.rust-lang.net.cn/tools/install)
- 克隆此仓库。
- 运行
cargo build
以构建narvie-cli
。 - 在
processor
目录下,运行./progMDP
以生成narvie-processor
的字节流并烧录Lattice Mobile Development Board。
文档
演示
此演示展示了RISC-V REPL在仿真中运行。
许可证
由于本项目借鉴了其他来源的GPL许可证代码,因此也采用GPL许可证。
致谢
risc-v处理器是基于Ryan Voo @rjlv2开发的verilog模块实现的。对处理器进行的唯一修改与中断流水线和指令获取机制有关,以允许单独执行指令。
verilog UART模块可在https://github.com/FPGAwars/FPGA-peripherals找到。
verilator UART模拟测试平台代码(testbench/uartsim.h
和testbench/uartsim.c
)是基于http://zipcpu.com/blog/2017/06/21/looking-at-verilator.html实现的。
Rust的最低版本
narvie
将仅正式支持当前的稳定Rust。
在研究中引用narvie
Harry Sarson、Ryan Voo和Phillip Stanley-Marbell。“使用Narvie原生前评估RISC-V指令”。海报,《欧洲系统会议(EuroSys'19)》论文集。德国德累斯顿,2019年3月。
BibTeX
@inproceedings{Sarson:2019,
author = {Harry Sarson and Ryan Voo and Phillip Stanley-Marbell},
title = {Evaluating RISC-V Instructions Natively with Narvie},
booktitle = {Proceedings of the European Conference on Systems},
series = {EuroSys'19},
year = {2019},
location = {Dresden, Germany},
numpages = {2},
publisher = {ACM},
address = {New York, NY, USA},
}
依赖关系
~8–17MB
~205K SLoC