Upload
marko-karlovic
View
213
Download
0
Embed Size (px)
Citation preview
7/27/2019 finalpdfc3pu
1/18
C3PU
TEAM LEADER: IVAN SOVI
LUKA KOVA
SIMON COSSART
FILIP KERI
PROCCESSOR DESIGN FOR RECONFIGURABLE PLATFOR
7/27/2019 finalpdfc3pu
2/18
WHAT ARE PROCESSORS?
Processors are devices which can processbinary information with basic operations,they are in most of our electronic devices.They are made from several maincomponents like ALU, CU, Registers...
7/27/2019 finalpdfc3pu
3/18
WHAT ARE SOFT-CORE AND HARD-COR
PROCESSORS?
Soft-Core processor is a processorwhich can change their logic circuits,
their main advantages are:
Limit speed 250 MHz and less
Can be multi-core
Reprogrammable
Their main disadvantage is their
speed, they are slower.
Hard-Core
processors are processors thatheir logics circuits engraved; they have
advantages compared to the Soft-Core:
Fast speed from 100MHz to 1GHz o
Cannot be modified
Optimized
7/27/2019 finalpdfc3pu
4/18
FPGA
Field Programmable Gate Arrays
Can be reconfigured Based around a matrix of configurable logic blocks (CLBs)
connected via programmable interconnects
7/27/2019 finalpdfc3pu
5/18
CLB Configurable Logic Block
IOB Input/Output Block
Block RAM Multipliers (general purpose)
DCM Digital Clock Management
Interconnect network
Configuration logic
7/27/2019 finalpdfc3pu
6/18
CPU COMPONENTSSEQUENTIAL
The basic registers are: The Single register The Tri-register The Register array
7/27/2019 finalpdfc3pu
7/18
CPU COMPONENTSCOMBINATIONAL
The basic components are: The ALU(Arithmetic-Logic
Unit) The Shifter The Comparator
7/27/2019 finalpdfc3pu
8/18
CPU ARCHITECTURESIMPLIFIED MODEL
Picture taken from: http://www.spring-alpha.org/images/module_01/talk/mf_vnarch.png
http://www.spring-alpha.org/images/module_01/talk/mf_vnarch.pnghttp://www.spring-alpha.org/images/module_01/talk/mf_vnarch.png7/27/2019 finalpdfc3pu
9/18
C3PU ARCHITECTURE
RAM
7/27/2019 finalpdfc3pu
10/18
INSTRUCTIONS
ALU operations opcode
AND c = a and b 01001
OR c = a or b 01010
NOT c = not a 01100
XOR c = a xor b 01011
ADD c = a + b 01101
SUB c = a b 01110
INC c = a + 1 00111
DEC c = a 1 01100
ZERO c = 0 01111
Shifter operations opcode
SHL Shift 1 bit tothe left
10000
SHR Shift 1 bit to
the right
10001
ROTR Rotate 1 bit
to the right
10010
ROTL Rotate 1 bit
to the left
10011
C
NO
LO
M
LOJM
JM
EN
00011_00000_001_010
opcode
7/27/2019 finalpdfc3pu
11/18
ASSEMBLY
Our languageAssembly
( C++ & Python )Machine c
7/27/2019 finalpdfc3pu
12/18
CONTROL UNIT
Unit which coordinates componentsin computer system
It fetches the code of all of theinstructions in the program.
This is used to decode theinstructions that make up a program
when they are being processed, andto determine in what actions must betaken in order to process them
7/27/2019 finalpdfc3pu
13/18
PIPELINE
RESET
FETCHDECODE
E
Puts the zero valuein all the registers
Retrieves commands fromRAM on the address
from PC registerChecks the opcode
of retrieved command
Perform
7/27/2019 finalpdfc3pu
14/18
HOW A COMMAND IS EXECUTED IN OUR
7/27/2019 finalpdfc3pu
15/18
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
7/27/2019 finalpdfc3pu
16/18
RESULTSSIMULATION
Fibonnacci sequence
7/27/2019 finalpdfc3pu
17/18
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 scode is published on github.com
7/27/2019 finalpdfc3pu
18/18
QUESTIONS?