├── .gitignore ├── .travis.yml ├── .vscode └── settings.json ├── Branch.md ├── CMakeLists.txt ├── LICENSE ├── README.md ├── data ├── array_test1.data ├── array_test2.data ├── basicopt1.data ├── bulgarian.data ├── expr.data ├── gcd.data ├── hanoi.data ├── lvalue2.data ├── magic.data ├── manyarguments.data ├── multiarray.data ├── naive.data ├── pi.data ├── qsort.data ├── queens.data ├── statement_test.data ├── superloop.data └── tak.data ├── docs ├── images │ ├── circuit.png │ ├── debug.png │ ├── design.pdf │ └── register.png ├── main.tex └── tables │ └── branch_prediction.csv ├── src ├── Common │ ├── Common.h │ ├── Instruction.hpp │ ├── Instruction_test.cpp │ ├── Memory.hpp │ ├── Memory_test.cpp │ ├── Parser.hpp │ ├── Parser_test.cpp │ ├── Register.hpp │ ├── RegisterFile.hpp │ ├── RegisterFile_test.cpp │ ├── Register_test.cpp │ ├── ReorderBuffer.cpp │ ├── ReorderBuffer.h │ ├── ReservationStation.cpp │ ├── ReservationStation.h │ ├── Session.cpp │ ├── Session.h │ ├── Session_test.cpp │ ├── utils.cpp │ └── utils.h ├── Module │ ├── ALUUnit.cpp │ ├── ALUUnit.h │ ├── BranchPrediction.cpp │ ├── BranchPrediction.h │ ├── CommitUnit.cpp │ ├── CommitUnit.h │ ├── LoadStoreUnit.cpp │ └── LoadStoreUnit.h ├── Pipeline │ ├── Issue.cpp │ ├── Issue.h │ ├── OoOCommon.h │ ├── OoOExecute.cpp │ └── OoOExecute.h ├── main.cpp └── main_presentation.cpp └── tests ├── control-hazard-1.asm ├── control-hazard-1.hex ├── control-hazard-2.asm ├── control-hazard-2.hex ├── control-hazard-3.asm ├── control-hazard-3.hex ├── data-hazard-1.asm ├── data-hazard-1.hex ├── data-hazard-2.asm ├── data-hazard-2.hex ├── out-of-order-1.asm ├── out-of-order-1.hex ├── out-of-order-2.asm ├── out-of-order-2.hex ├── out-of-order-3.asm ├── out-of-order-3.hex ├── rename-register-1.asm └── rename-register-1.hex /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/.travis.yml -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /Branch.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/Branch.md -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/README.md -------------------------------------------------------------------------------- /data/array_test1.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/array_test1.data -------------------------------------------------------------------------------- /data/array_test2.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/array_test2.data -------------------------------------------------------------------------------- /data/basicopt1.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/basicopt1.data -------------------------------------------------------------------------------- /data/bulgarian.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/bulgarian.data -------------------------------------------------------------------------------- /data/expr.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/expr.data -------------------------------------------------------------------------------- /data/gcd.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/gcd.data -------------------------------------------------------------------------------- /data/hanoi.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/hanoi.data -------------------------------------------------------------------------------- /data/lvalue2.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/lvalue2.data -------------------------------------------------------------------------------- /data/magic.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/magic.data -------------------------------------------------------------------------------- /data/manyarguments.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/manyarguments.data -------------------------------------------------------------------------------- /data/multiarray.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/multiarray.data -------------------------------------------------------------------------------- /data/naive.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/naive.data -------------------------------------------------------------------------------- /data/pi.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/pi.data -------------------------------------------------------------------------------- /data/qsort.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/qsort.data -------------------------------------------------------------------------------- /data/queens.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/queens.data -------------------------------------------------------------------------------- /data/statement_test.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/statement_test.data -------------------------------------------------------------------------------- /data/superloop.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/superloop.data -------------------------------------------------------------------------------- /data/tak.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/data/tak.data -------------------------------------------------------------------------------- /docs/images/circuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/docs/images/circuit.png -------------------------------------------------------------------------------- /docs/images/debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/docs/images/debug.png -------------------------------------------------------------------------------- /docs/images/design.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/docs/images/design.pdf -------------------------------------------------------------------------------- /docs/images/register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/docs/images/register.png -------------------------------------------------------------------------------- /docs/main.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/docs/main.tex -------------------------------------------------------------------------------- /docs/tables/branch_prediction.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/docs/tables/branch_prediction.csv -------------------------------------------------------------------------------- /src/Common/Common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Common.h -------------------------------------------------------------------------------- /src/Common/Instruction.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Instruction.hpp -------------------------------------------------------------------------------- /src/Common/Instruction_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Instruction_test.cpp -------------------------------------------------------------------------------- /src/Common/Memory.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Memory.hpp -------------------------------------------------------------------------------- /src/Common/Memory_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Memory_test.cpp -------------------------------------------------------------------------------- /src/Common/Parser.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Parser.hpp -------------------------------------------------------------------------------- /src/Common/Parser_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Parser_test.cpp -------------------------------------------------------------------------------- /src/Common/Register.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Register.hpp -------------------------------------------------------------------------------- /src/Common/RegisterFile.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/RegisterFile.hpp -------------------------------------------------------------------------------- /src/Common/RegisterFile_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/RegisterFile_test.cpp -------------------------------------------------------------------------------- /src/Common/Register_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Register_test.cpp -------------------------------------------------------------------------------- /src/Common/ReorderBuffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/ReorderBuffer.cpp -------------------------------------------------------------------------------- /src/Common/ReorderBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/ReorderBuffer.h -------------------------------------------------------------------------------- /src/Common/ReservationStation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/ReservationStation.cpp -------------------------------------------------------------------------------- /src/Common/ReservationStation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/ReservationStation.h -------------------------------------------------------------------------------- /src/Common/Session.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Session.cpp -------------------------------------------------------------------------------- /src/Common/Session.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Session.h -------------------------------------------------------------------------------- /src/Common/Session_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/Session_test.cpp -------------------------------------------------------------------------------- /src/Common/utils.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/utils.cpp -------------------------------------------------------------------------------- /src/Common/utils.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Common/utils.h -------------------------------------------------------------------------------- /src/Module/ALUUnit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Module/ALUUnit.cpp -------------------------------------------------------------------------------- /src/Module/ALUUnit.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Module/ALUUnit.h -------------------------------------------------------------------------------- /src/Module/BranchPrediction.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Module/BranchPrediction.cpp -------------------------------------------------------------------------------- /src/Module/BranchPrediction.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Module/BranchPrediction.h -------------------------------------------------------------------------------- /src/Module/CommitUnit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Module/CommitUnit.cpp -------------------------------------------------------------------------------- /src/Module/CommitUnit.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Module/CommitUnit.h -------------------------------------------------------------------------------- /src/Module/LoadStoreUnit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Module/LoadStoreUnit.cpp -------------------------------------------------------------------------------- /src/Module/LoadStoreUnit.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Module/LoadStoreUnit.h -------------------------------------------------------------------------------- /src/Pipeline/Issue.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Pipeline/Issue.cpp -------------------------------------------------------------------------------- /src/Pipeline/Issue.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Pipeline/Issue.h -------------------------------------------------------------------------------- /src/Pipeline/OoOCommon.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Pipeline/OoOCommon.h -------------------------------------------------------------------------------- /src/Pipeline/OoOExecute.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Pipeline/OoOExecute.cpp -------------------------------------------------------------------------------- /src/Pipeline/OoOExecute.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/Pipeline/OoOExecute.h -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/main.cpp -------------------------------------------------------------------------------- /src/main_presentation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/src/main_presentation.cpp -------------------------------------------------------------------------------- /tests/control-hazard-1.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/control-hazard-1.asm -------------------------------------------------------------------------------- /tests/control-hazard-1.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/control-hazard-1.hex -------------------------------------------------------------------------------- /tests/control-hazard-2.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/control-hazard-2.asm -------------------------------------------------------------------------------- /tests/control-hazard-2.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/control-hazard-2.hex -------------------------------------------------------------------------------- /tests/control-hazard-3.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/control-hazard-3.asm -------------------------------------------------------------------------------- /tests/control-hazard-3.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/control-hazard-3.hex -------------------------------------------------------------------------------- /tests/data-hazard-1.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/data-hazard-1.asm -------------------------------------------------------------------------------- /tests/data-hazard-1.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/data-hazard-1.hex -------------------------------------------------------------------------------- /tests/data-hazard-2.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/data-hazard-2.asm -------------------------------------------------------------------------------- /tests/data-hazard-2.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/data-hazard-2.hex -------------------------------------------------------------------------------- /tests/out-of-order-1.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/out-of-order-1.asm -------------------------------------------------------------------------------- /tests/out-of-order-1.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/out-of-order-1.hex -------------------------------------------------------------------------------- /tests/out-of-order-2.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/out-of-order-2.asm -------------------------------------------------------------------------------- /tests/out-of-order-2.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/out-of-order-2.hex -------------------------------------------------------------------------------- /tests/out-of-order-3.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/out-of-order-3.asm -------------------------------------------------------------------------------- /tests/out-of-order-3.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/out-of-order-3.hex -------------------------------------------------------------------------------- /tests/rename-register-1.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/rename-register-1.asm -------------------------------------------------------------------------------- /tests/rename-register-1.hex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/RISCV-Simulator/HEAD/tests/rename-register-1.hex --------------------------------------------------------------------------------