Warning
This is still in testing and some things that are expected might not be fully implemented, or disabled by default. Contributers are welcome!
- Data width: 57-bit
- Registers: 32 general-purpose registers (R0-R31)
- Memory: 1MB address space
- I/O: 256 ports
- Instruction format: 10 bytes (opcode, rd, rs1, rs2, 48-bit immediate)
- Pipeline: 5-stage (fetch, decode, execute, memory, writeback)
- ADD, SUB, MUL, DIV
- AND, OR, XOR, NOT
- SHL, SHR, ROL, ROR
- LOAD, STORE, LOADI, MOV
- JMP, JZ, JNZ, JC, JNC, CALL, RET
- PUSH, POP
- IN, OUT
- CMP, NOP, HLT
bash build_hdl.sh
# or
make -f Makefile test_hdlRequires: Icarus Verilog, Verilator (optional), GTKWave (optional)
make iso
make runRequires: Rust nightly, QEMU, grub-mkrescue
The kernel displays CPU state in real-time: registers, PC, SP, flags, current instruction, bus activity, memory, and I/O ports.
MIT License - see LICENSE file
