README.md 1.0 KB
Newer Older
Z
add doc  
Zihao Yu 已提交
1 2 3 4 5 6 7
# NOOP

NOOP(NJU Out-of-Order Processor) is a processor targeting super-scalar out-of-order execution.
Currently it only supports riscv32.

## Compile chisel code

Z
Zihao Yu 已提交
8
* Install `mill`. Refer to [the Manual section in this guide][mill].
Z
add doc  
Zihao Yu 已提交
9 10
* Run `make` to generate verilog code. The output file is `build/TopMain.v`.

Z
Zihao Yu 已提交
11
[mill]: http://lihaoyi.com/mill#manual
Z
add doc  
Zihao Yu 已提交
12 13 14

## Run programs by simulation

Z
Zihao Yu 已提交
15
* Set a new environment variable `NEMU_HOME` to the **absolute path** of the NEMU project.
Z
add doc  
Zihao Yu 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28 29
* Set a new environment variable `NOOP_HOME` to the **absolute path** of the NOOP project.
* Clone the [AM project](https://github.com/NJU-ProjectN/nexus-am.git).
* Set a new environment variable `AM_HOME` to the **absolute path** of the AM project.
* Add a new AM `riscv32-noop` in the AM project if it is not provided.
* Run the application in the AM project by `make ARCH=riscv32-noop run`.

## Generate Vivado project

```
cd fpga
make BOARD=zedboard PRJ=myproject
```
The project can be found at `fpga/board/zedboard/build/myproject-zedboard/`.
Supported boards are listed under `fpga/board/`.