-
Notifications
You must be signed in to change notification settings - Fork 0
kevinms/cpu
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
------------------------------------------------------------------------
This project's goal is to design a custom CPU
Instruction Set
Assembly Language
Compiled Language
Verilog FPGA Implemenation
Processor
24 Instructions
16 Registers
Assembly Language
Assembler
Emulator
Debugger
doc/ - Technical documention describing all aspects of this project.
progs/ - Programs written to run on the CPU.
hdl/ - Hardware to run
Arithmetic: 7 add,sub,adc,sbc,mul,div,cmp
Load/Store/Move: 5 ldw,ldb,stw,stb,mov
Bitwise: 6 and,or,xor,nor,lsl,lsr
Jumps: 5 jmp,jz,jnz,jl,jge
Other: 1 die,nop
--
24
die
#
# Install dependencies.
#
sudo apt-get install libncurses5 libncurses5-dev
#
# Build a ROM and binary file from assembly code.
#
./assembler.py --assemble test.asm -b test.bin > test.rom
#
# Run the ROM in the emulator.
#
./emulator -r test.rom
#
# Run the binary in the emulator.
#
./emulator -b test.bin:0x0
#
# Run the kernel in the emulator.
#
./emulator -b progs/boot.bin:0x4000 -b sd.img:0x5000 -p 0x4000 -i
#
# Run the kernel using the debugger.
#
./emulator -b progs/boot.bin:0x4000 -b sd.img:0x5000 -g progs/all.kernel.bin:0x0 -g progs/lib.bin:0x3000 -p 0x4000 -i -t 2> error.out
#
# Dump heap contents in human readable format.
#
./heap -m emulator.memory -o 0x10000 -z $(( 0x1FF0000 )) -s
About
Toy CPU architecture and software stack including assembler, debugger, emulator and more.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published