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