├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ └── dotnet.yml ├── .gitignore ├── .travis.yml ├── Arch.fs ├── Bits.fs ├── CLI.fs ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── DecodeA.fs ├── DecodeA64.fs ├── DecodeI.fs ├── DecodeI64.fs ├── DecodeM.fs ├── DecodeM64.fs ├── Decoder.fs ├── ExecuteA.fs ├── ExecuteA64.fs ├── ExecuteI.fs ├── ExecuteI64.fs ├── ExecuteM.fs ├── ExecuteM64.fs ├── LICENSE ├── MachineState.fs ├── Program.fs ├── README.md ├── Run.fs ├── Tests ├── Program.fs ├── Tests.fsproj ├── asm │ ├── .gitignore │ ├── Makefile │ ├── asm-source-tests │ │ └── rv64ua │ │ │ ├── Makefrag │ │ │ ├── amoadd_d.S │ │ │ ├── amoadd_w.S │ │ │ ├── amoand_d.S │ │ │ ├── amoand_w.S │ │ │ ├── amomax_d.S │ │ │ ├── amomax_w.S │ │ │ ├── amomaxu_d.S │ │ │ ├── amomaxu_w.S │ │ │ ├── amomin_d.S │ │ │ ├── amomin_w.S │ │ │ ├── amominu_d.S │ │ │ ├── amominu_w.S │ │ │ ├── amoor_d.S │ │ │ ├── amoor_w.S │ │ │ ├── amoswap_d.S │ │ │ ├── amoswap_w.S │ │ │ ├── amoxor_d.S │ │ │ ├── amoxor_w.S │ │ │ └── lrsc.S │ ├── disasm │ ├── init.S │ ├── mmio.ld │ └── src │ │ ├── add.S │ │ ├── alu.S │ │ ├── alui.S │ │ ├── amo.lrsc.w.S │ │ ├── amo_d.S │ │ ├── amo_w.S │ │ ├── br.S │ │ ├── j.S │ │ ├── mem.S │ │ ├── sys.S │ │ └── ui.S ├── rv32i │ ├── alu.fs │ ├── alui.fs │ ├── br.fs │ ├── j.fs │ ├── mem.fs │ ├── sys.fs │ └── ui.fs ├── rv32m │ └── alu.fs ├── rv64a │ └── amo.fs ├── rv64i │ ├── alu.fs │ ├── alui.fs │ ├── br.fs │ ├── j.fs │ ├── mem.fs │ ├── sys.fs │ └── ui.fs └── rv64m │ └── alu.fs ├── risc-v.fsproj ├── risc-v.sln └── risc-v.sln.DotSettings.user /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/workflows/dotnet.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/.github/workflows/dotnet.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | obj/ 3 | /packages/ 4 | .idea/ 5 | *.elf -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/.travis.yml -------------------------------------------------------------------------------- /Arch.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Arch.fs -------------------------------------------------------------------------------- /Bits.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Bits.fs -------------------------------------------------------------------------------- /CLI.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/CLI.fs -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /DecodeA.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/DecodeA.fs -------------------------------------------------------------------------------- /DecodeA64.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/DecodeA64.fs -------------------------------------------------------------------------------- /DecodeI.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/DecodeI.fs -------------------------------------------------------------------------------- /DecodeI64.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/DecodeI64.fs -------------------------------------------------------------------------------- /DecodeM.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/DecodeM.fs -------------------------------------------------------------------------------- /DecodeM64.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/DecodeM64.fs -------------------------------------------------------------------------------- /Decoder.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Decoder.fs -------------------------------------------------------------------------------- /ExecuteA.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/ExecuteA.fs -------------------------------------------------------------------------------- /ExecuteA64.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/ExecuteA64.fs -------------------------------------------------------------------------------- /ExecuteI.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/ExecuteI.fs -------------------------------------------------------------------------------- /ExecuteI64.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/ExecuteI64.fs -------------------------------------------------------------------------------- /ExecuteM.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/ExecuteM.fs -------------------------------------------------------------------------------- /ExecuteM64.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/ExecuteM64.fs -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/LICENSE -------------------------------------------------------------------------------- /MachineState.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/MachineState.fs -------------------------------------------------------------------------------- /Program.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Program.fs -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/README.md -------------------------------------------------------------------------------- /Run.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Run.fs -------------------------------------------------------------------------------- /Tests/Program.fs: -------------------------------------------------------------------------------- 1 | module Program 2 | 3 | [] 4 | let main _ = 0 5 | -------------------------------------------------------------------------------- /Tests/Tests.fsproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/Tests.fsproj -------------------------------------------------------------------------------- /Tests/asm/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | *.o 3 | -------------------------------------------------------------------------------- /Tests/asm/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/Makefile -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/Makefrag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/Makefrag -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoadd_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoadd_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoadd_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoadd_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoand_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoand_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoand_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoand_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amomax_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amomax_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amomax_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amomax_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amomaxu_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amomaxu_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amomaxu_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amomaxu_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amomin_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amomin_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amomin_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amomin_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amominu_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amominu_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amominu_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amominu_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoor_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoor_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoor_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoor_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoswap_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoswap_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoswap_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoswap_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoxor_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoxor_d.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/amoxor_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/amoxor_w.S -------------------------------------------------------------------------------- /Tests/asm/asm-source-tests/rv64ua/lrsc.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/asm-source-tests/rv64ua/lrsc.S -------------------------------------------------------------------------------- /Tests/asm/disasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/disasm -------------------------------------------------------------------------------- /Tests/asm/init.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/init.S -------------------------------------------------------------------------------- /Tests/asm/mmio.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/mmio.ld -------------------------------------------------------------------------------- /Tests/asm/src/add.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/add.S -------------------------------------------------------------------------------- /Tests/asm/src/alu.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/alu.S -------------------------------------------------------------------------------- /Tests/asm/src/alui.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/alui.S -------------------------------------------------------------------------------- /Tests/asm/src/amo.lrsc.w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/amo.lrsc.w.S -------------------------------------------------------------------------------- /Tests/asm/src/amo_d.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/amo_d.S -------------------------------------------------------------------------------- /Tests/asm/src/amo_w.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/amo_w.S -------------------------------------------------------------------------------- /Tests/asm/src/br.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/br.S -------------------------------------------------------------------------------- /Tests/asm/src/j.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/j.S -------------------------------------------------------------------------------- /Tests/asm/src/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/mem.S -------------------------------------------------------------------------------- /Tests/asm/src/sys.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/sys.S -------------------------------------------------------------------------------- /Tests/asm/src/ui.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/asm/src/ui.S -------------------------------------------------------------------------------- /Tests/rv32i/alu.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv32i/alu.fs -------------------------------------------------------------------------------- /Tests/rv32i/alui.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv32i/alui.fs -------------------------------------------------------------------------------- /Tests/rv32i/br.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv32i/br.fs -------------------------------------------------------------------------------- /Tests/rv32i/j.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv32i/j.fs -------------------------------------------------------------------------------- /Tests/rv32i/mem.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv32i/mem.fs -------------------------------------------------------------------------------- /Tests/rv32i/sys.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv32i/sys.fs -------------------------------------------------------------------------------- /Tests/rv32i/ui.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv32i/ui.fs -------------------------------------------------------------------------------- /Tests/rv32m/alu.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv32m/alu.fs -------------------------------------------------------------------------------- /Tests/rv64a/amo.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64a/amo.fs -------------------------------------------------------------------------------- /Tests/rv64i/alu.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64i/alu.fs -------------------------------------------------------------------------------- /Tests/rv64i/alui.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64i/alui.fs -------------------------------------------------------------------------------- /Tests/rv64i/br.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64i/br.fs -------------------------------------------------------------------------------- /Tests/rv64i/j.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64i/j.fs -------------------------------------------------------------------------------- /Tests/rv64i/mem.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64i/mem.fs -------------------------------------------------------------------------------- /Tests/rv64i/sys.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64i/sys.fs -------------------------------------------------------------------------------- /Tests/rv64i/ui.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64i/ui.fs -------------------------------------------------------------------------------- /Tests/rv64m/alu.fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/Tests/rv64m/alu.fs -------------------------------------------------------------------------------- /risc-v.fsproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/risc-v.fsproj -------------------------------------------------------------------------------- /risc-v.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/risc-v.sln -------------------------------------------------------------------------------- /risc-v.sln.DotSettings.user: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrLSD/riscv-fs/HEAD/risc-v.sln.DotSettings.user --------------------------------------------------------------------------------