xref: /XiangShan/README.md (revision 9a36b64cb26c715a3fb2d301c0f4b237f08ea211)
1# NOOP
2
3NOOP(NJU Out-of-Order Processor) is a processor targeting super-scalar out-of-order execution.
4Currently it only supports riscv32.
5
6## Compile chisel code
7
8* Install `mill`. Refer to [the Manual section in this guide][mill].
9* Run `make` to generate verilog code. The output file is `build/TopMain.v`.
10
11[mill]: http://lihaoyi.com/mill#manual
12
13## Run programs by simulation
14
15* Set a new environment variable `NEMU_HOME` to the **absolute path** of the NEMU project.
16* Set a new environment variable `NOOP_HOME` to the **absolute path** of the NOOP project.
17* Clone the [AM project](https://github.com/NJU-ProjectN/nexus-am.git).
18* Set a new environment variable `AM_HOME` to the **absolute path** of the AM project.
19* Add a new AM `riscv32-noop` in the AM project if it is not provided.
20* Run the application in the AM project by `make ARCH=riscv32-noop run`.
21
22## Generate Vivado project
23
24```
25cd fpga
26make BOARD=zedboard PRJ=myproject
27```
28The project can be found at `fpga/board/zedboard/build/myproject-zedboard/`.
29Supported boards are listed under `fpga/board/`.
30