xref: /XiangShan/README.md (revision 64fc9c9d5352e9034d103212679d03437a6f04d6)
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