E80 CPU A simple CPU in VHDL, developed from scratch for my undergraduate thesis to provide all three characteristics of a Constructionist Microworld: Low floor, as it depends purely on textbook-based, structural VHDL components, and offers a toolchain installer for one-click simulation. High ceiling, as it supports all typical instructions found in Computer Architecture textbooks, including stack operations & subroutine calling. Wide walls, as it was designed for compatibility with a variety of platforms, as seen below, and provides the complete source material (from the CFG grammar to EDA project files) for study and modification. This makes it easy to use, capable of running pretty complex and realistic programs, and can be used in multiple lab or classroom scenarios. Feature Description Dependencies ieee.std_logic_1164 (no arithmetic libraries) Execution Single-cycle Word Size 8-bit Buses 8-bit data, 8-bit address, 16-bit instruction Instruction size Variable (1 or 2 words) RAM Multiport (2R, 1R/W), addressable at 0x00-0xFE Register file Multiport (1R/W, 1R, 1W), 8x8-bit Registers 6 general purpose (R0-R5), Flags (R6), SP (R7) Stack Full descending (Stack Pointer init = 0xFF) Architecture Load/Store, register-register Addressing Immediate, direct, register, register-indirect Input 8-bit Memory Mapped at 0xFF (1x8 DIP switch) Output Flags, Registers, PC, Clock (3x8 LEDs) Assembly syntax Hybrid of ARM, x86, and textbook pseudocode Assembler ISO C99 (standard library, stdin I/O) Simulated on GHDL/GTKWave & ModelSim via one-click scripts Editor SciTE, with syntax coloring & one-click run Synthesized on Quartus Lite, Gowin Education, Vivado Standard Tested on Tang Primer 25K, Altera Cyclone IV ISA cheatsheet n : 8-bit immediate value or memory address. r,r1,r2 : 3-bit register address (R0 to R7), eg. MOV R3,R5 translates to 0b(00011000 0rrr0rrr) ≡ 0b(00011000 00110101) or 0x(18rr) ≡ 0x(1835). [x] : Memory at address x < 255, [255] = DIP input. PC : Program counter, i...
First seen: 2026-01-20 08:33
Last seen: 2026-01-20 10:33