This project involves the design, simulation, and implementation of a fully functional 8-bit microcomputer on a DE0-CV FPGA board. The system includes an 8-bit CPU, program memory, RAM, and 16×8-bit input/output ports. The computer is programmed in a pseudo-assembly language by manually encoding opcodes into ROM. Key goals were achieving reliable simulation in ModelSim and deploying a working hardware implementation via Quartus on the FPGA board.
- Verified correct structural connectivity using ModelSim simulation with the following structure:
-
computer.vhd- └
cpu.vhd- └
control_unit.vhd - └
data_path.vhd- └
alu.vhd
- └
- └
- └
memory.vhd- └
rom_128x8_sync.vhd - └
rw_96x8_sync.vhd
- └
- └
- Submitted screenshots showing successful compilation and simulation transcript as confirmation.
- Implemented and simulated the following instructions:
LDA_IMM– Load immediate value into register ALDA_DIR– Load register A from direct memory addressSTA_DIR– Store register A to direct memory addressBRA– Branch unconditionally
- Created
top.vhdto instantiate the microcomputer and match DE0-CV board I/O. - Used physical switches
SW[7:0]as input and mapped output to:- Red LEDs (
LEDR[7:0]) - Seven-segment displays (
HEX[5:0]) via decoders
- Red LEDs (
- Incorporated
clock_div_prec.vhdfor user-selected clock speeds (SW[9:8]).
- Additional instructions optionally implemented for extra credit, including:
LDB_IMM,LDB_DIR,STB_DIR,ADD_AB,AND_AB,OR_AB,INCA,INCB,DECA, andDECB
- For each:
- Custom state diagram created
- ModelSim waveform captured
- Program demonstrated on the FPGA board
- Materials submitted: diagrams, simulations, and updated VHDL files.
- DE0-CV FPGA Development Board
- ModelSim and Intel Quartus Prime (Lite Edition)
- Clone this repository and create a VHDL project in Quartus.
- Compile all components starting from
top.vhd. - Open programmer and run the project on the FPGA.
- Set switches
SW[7:0]to input values. - Observe outputs on LEDs and HEX displays.
- Modify ROM content as needed for different program functionality.
- For simulation, open
computer_TB.vhdin ModelSim and run test programs by modifying ROM content.
- This work was based on course materials provided by Brock LaMeres, EELE 367 Logic Design, Montana State Univeristy - Bozeman.
- Libraries/Tools: Uses the DE10-Lite FPGA Board with the MAX 10 10M50DAF484C7G Device, and all code is written in VHDL, simulated in ModelSim, and implemented in Quartus. Diagrams developed in Mirosoft Visio.
- Resources: "Introduction to Logic Circuits & Logic Design with VHDL" by Brock LaMeres.