6 个版本
0.3.3 | 2019年5月10日 |
---|---|
0.3.2 | 2019年5月8日 |
0.3.1 | 2019年4月1日 |
0.3.0 | 2019年3月29日 |
0.1.0 | 2019年3月28日 |
在 模拟 中排名 #160
每月 21 次下载
用于 narvie-cli
655KB
5K SLoC
>narvie
A Read Eval Print Loop (REPL) for RISC-V instructions. Only UNIX systems have been tested. narvie
stands for native RISC-V instruction evaluator.
安装
下载预构建的 narvie 二进制文件(ubuntu linux,mac OS)或使用 cargo 构建
- 下载 Rustup 并安装 Rust.
- 安装 verilator。推荐使用版本 3.916。
- 运行
$ cargo install narvie-cli
。
运行
narvie
可以作为模拟运行,或者通过将一个运行在 FPGA 上的 narvie
处理器(运行在计算机上)连接到计算机。
一旦 cli 运行,请将 RISC-V 指令输入到提示符中。例如:nop
、li t0, 1678 或
addi t0, t0, 1
。 narvie
将将这些指令编译成二进制文件,运行它们并显示新的微架构状态(目前只显示寄存器的值)。完成时,使用 ctrl-c
退出 narvie
。
模拟
- 要开始模拟,请尝试运行
$ narvie-cli --simulate
。
- 通过USB将
处理器连接到您的计算机后,运行以下命令: $ narvie-cli ADDRESS --baud 115200
,其中ADDRESS
是处理器连接的串行端口。将115200
替换为处理器配置使用的波特率。
构建
要构建verilator
。要综合Verilog并将其烧录到FPGA,./progMDP
使用yosys
、arachne-pnr
和icestorm
。但是,也可以使用其他工具进行综合。
- 下载Rustup并安装Rust。(https://rust-lang.net.cn/tools/install)
- 克隆此存储库。
- 运行
cargo build
以构建。 - 从
processor
目录中,运行./progMDP
以生成的字节流并烧录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},
}