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