Jared Gendron

Electrical Engineering Graduate

Simple Risc Machine Written in Verilog for an FPGA

FPGA Verilog Finite State Machine ARMv7 Assembly

Hardware Design

Summary

I designed and implemented a simple Reduced Instruction Set Computer (RISC) using Verilog. The RISC machine was capable of executing a limited set of ARMv7 instructions, which were stored in flash memory. I created essential Verilog modules, including an arithmetic logic unit (ALU), CPU, and state machine controller, interconnecting them with data paths for smooth instruction execution. The successful development of the RISC machine on a De1-SoC FPGA demonstrated my expertise in digital design, Verilog programming, and computer architecture, showcasing my ability to create functional and efficient hardware systems.

Description

In this project, I undertook the design and implementation of a simple Reduced Instruction Set Computer (RISC) using Verilog. The RISC machine was capable of executing a limited set of ARMv7 instructions, which were stored in flash memory.

De1-SoC

CPU Block Diagram

The final design was programmed onto a De1-SoC FPGA, allowing for hardware-based execution of the instructions. To achieve this, I created various Verilog modules, including an arithmetic logic unit (ALU), a CPU, and a state machine controller. The figure below shows the block diagram for the CPU.

CPU Block Diagram

These modules were interconnected with data paths to enable the seamless execution of instruction codes.

Instruction Bus Block Diagram

By combining my knowledge of digital design and Verilog programming, I successfully developed a functional RISC machine capable of executing a subset of ARMv7 instructions, providing valuable hands-on experience in hardware design and computer architecture. The project showcased my proficiency in Verilog and FPGA programming and demonstrated the ability to design and implement digital systems for real-world applications.