Professional Documents
Culture Documents
Processors are devices which can process binary information with basic operations, they are in most of our electronic devices. They are made from several main components like ALU, CU, Registers...
FPGA
Field Programmable Gate Arrays Can be reconfigured Based around a matrix of configurable logic blocks (CLBs)
connected via programmable interconnects
CLB Configurable Logic Block IOB Input/Output Block Block RAM Multipliers (general purpose) DCM Digital Clock Management Interconnect network Configuration logic
CPU COMPONENTS
SEQUENTIAL
The basic registers are: The Single register The Tri-register The Register array
CPU COMPONENTS
COMBINATIONAL
The basic components are: The ALU(Arithmetic-Logic Unit) The Shifter The Comparator
CPU ARCHITECTURE
SIMPLIFIED MODEL
C3PU ARCHITECTURE
RAM
INSTRUCTIONS
opcode
00011_00000_001_010
ALU operations AND OR NOT XOR opcode Shifter operations opcode Control operations
SHL
SHR ROTR ROTL
10000
10001 10010 10011
NOP
LOAD MOV LOADI JMPI JMPCI
00000
00001 00011 00100 00101 00110
ADD
SUB INC DEC ZERO
c=a+b
c=ab c=a+1 c=a1 c=0
01101
01110 00111 01100 01111
END
10110
ASSEMBLY
Our language Assembly ( C++ & Python ) Machine code
CONTROL UNIT
Unit which coordinates components
in computer system
PIPELINE
RESET FETCH
Puts the zero value in all the registers
DECODE
Retrieves commands from RAM on the address from PC register
EXECUTE
Checks the opcode of retrieved command
Performs the instruction
RESULTS
We made a code for our processor to make a Fibonacci sequence Fibonacci sequence: f[ i ] = f[ i-1 ]+f[ i-2 ] where f[ 0 ] = f[ 1 ] = 1 ( 1, 1, 2, 3, 5, 8, 13, 21, 34...)
assembly
simulation
Next slide
RESULTS
SIMULATION
Fibonnacci sequence
CONCLUSION
Our goal was to make a CPU and we succeeded We learned a lot of new things, especially about VHDL Future -> execution on real hardware Everyone who has an FPGA board can use our processor since our
code is published on github.com
QUESTIONS?