8-bit single-cycle processor implementation in Verilog HDL for CO224 Computer Architecture course at University of Peradeniya.
This repository contains implementations for building a complete 8-bit processor from basic components to a full CPU with memory hierarchy.
- Basic arithmetic operations (ADD, SUB)
- Logic operations (AND, OR)
- Data movement (MOV, LOADI)
- 8×8 register file
- Synchronous write, asynchronous read
- Integrated ALU and register file
- Control unit implementation
- Program counter
- Jump instructions
- Branch instructions (BEQ)
- Multiplication, shift operations
- Additional instruction set
- Part 6.1: Data memory integration
- Part 6.2: Data cache implementation
- Part 6.3: Instruction cache
Building_Processor/
├── Part1/ # ALU implementation
├── part2/ # Register file
├── part3/ # Basic CPU
├── part4/ # CPU with flow control
├── part5/ # Extended instruction set
├── part6_1/ # Data memory
├── part6_2/ # Data cache
└── part6_3/ # Instruction cache
- Navigate to desired part directory
- Compile with Icarus Verilog:
iverilog -o output_file testbench.v module.v
- Run simulation:
vvp output_file
- View waveforms:
gtkwave waveform.vcd
- Verilog HDL - Hardware description
- Icarus Verilog - Simulation
- GTKWave - Waveform viewer
✅ Complete 8-bit processor
✅ Assembly language support
✅ Memory hierarchy with caching
✅ Comprehensive testbenches
✅ Waveform analysis
