COS 104 Project
COS 104 Project
COMPUTER ARCHITECTURE
GROUP PROJECT
INTRODUCTION
Group Members
Oluwapelumi Oyetade
Ayomide Shittu
Lauretta Orji-Okafor
Maajo Sanjo-Lawal
Oluwatamilore Animasaun
Lateef Abiodun
Israel Oyekunbi
Omeh Chidi
Ogini Kene
PROCESSOR
DESIGN OVERVIEW
Outline:
Basic building blocks
How Processors work
Instruction sets
Processor hardware design
Verilog
Processor code and demo
BASIC BUILDING BLOCKS
The building blocks needed in the
design of digital circuits are gates
and registers.
GATES
They are electronic designs that
perform logical operations on binary
inputs.
Types of gates
.
OR Gate: Outputs 1 if at least
one input is 1. It outputs 0 only
if all inputs are 0.
TYPES OF GATES
NAND: Performs a NAND operation on two numbers and stores the result in a
register.
Load Word: Loads a word from memory into a register.
Store Word: Stores a word from a register into memory.
The instructions are converted into machine code which is understood by the
processor.
VERILOG
Verilog: A language for digital circuits.
Inputs and Outputs: Modules Data types: Verilog has different data
have inputs and outputs, which
types, such as wire, reg, and integer,
connect them to other modules.
Inputs and outputs are received which are used to represent different
and sent by modules. kinds of signals.
KEY CONCEPTS IN VERILOG
Operators: Verilog uses various Timing control: Timing control constructs like
operators, such as logical, always blocks and initial blocks can be used to
arithmetic, and bitwise operators, specify how the circuit should behave over time.
to perform calculations and Once the hardware design is complete, the
manipulate data. Verilog code is written next to implement the
processor’s logic.
A simple processor might have the following modules:
Control Unit: Fetches instructions from memory. Decodes instructions to determine the
operation to be performed. Generates control signals to control the ALU, register file, and
memory.
ALU: Performs arithmetic and logical operations on data. Register File: Stores data.
Memory: Stores instructions and data.
Here is an example of the verilog code:
M4333333module control_unit(
input clk,
input reset,
// ... other inputs and outputs
);
Stimulation
This is the stimulation of the verilog code once it is written in order to verify its
functionality. Tools used for stimulation include ModelSim or Vivado. These tools are
used to test the processor’s behaviour under different input conditions.
Synthesis
Conversion of high-level language into hardware description language (HDL)
PROCESSOR DEMO
https://youtu.be/HCzIK322Pzw?si=LXQVEb8GVLoR0tN7
https://www.numerade.com/ask/question/question-i-
points-explain-the-instruction-execution-cycle-steps-
and-indicate-which-execution-unit-is-used-in-each-
step-37917/
https://www.youtube.com/watch?v=2IReMT_zjK8
https://youtu.be/HCzIK322Pzw?si=LXQVEb8GVLoR0tN7
https://patents.google.com/patent/WO2019133039A1/en
THANK YOU
For Your Attention