Uploaded by Alexandre Plomp

1 Intro&basics upd

advertisement
Digitale elektronica en
processoren
B-KUL-H01L1A & B-KUL-X0B93A
Deel 1: Introductie en basics (Les 1&2)
Marian Verhelst
Marian.Verhelst@esat.kuleuven.be
DEP (22-23)
1.2
1. Inleiding &
basics
Wie ben ik?
Marian Verhelst
❑ KU Leuven & imec
❑ Onderzoek in:
➢ Digitale elektronica
➢ Chips voor AI en machine learning
➢ Computerarchitecturen
❑ Wetenschapscommunicatie
Professor
DEP (22-23)
1.3
Digitale elektronica?
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
= Elektronische schakelingen die een systeem toelaten om data te verwerken in
het Digitale domein en de kern vormen van uiteenlopende toepassingen
Augmented reality
DEP (22-23)
1.4
Digitale elektronica?
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
= Elektronische schakelingen die een systeem toelaten om data te verwerken in
het Digitale domein en de kern vormen van uiteenlopende toepassingen
Autonomous vehicles
DEP (22-23)
1.5
1. Inleiding &
basics
Digitale elektronica?
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
2048 CUDA cores (GPU),
12 ARM CPU cores, etc…
DEP (22-23)
1.6
Digitale elektronica!
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
= Elektronische schakelingen die een systeem toelaten om data te verwerken in
het Digitale domein en de kern vormen van uiteenlopende toepassingen
Huidige toepassingen
➢
➢
➢
➢
➢
Krachtige computersystemen
Multimedia, beveiliging
Telecommunicatie
(Medische) apparatuur
…
De nabije toekomst
➢
➢
➢
➢
➢
Augmented reality
Autonome robots
“Wearable computing”
Implantables
…
DEP (22-23)
1.7
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Hoe ontwerpen we
een elektronisch systeem?
Specificatie
gedrag
Software
Specificatie
randvoorwaarden
Interactie!
Hardware (programmeerb. |
niet programmeerb.)
Algoritme
grootte
persoon
goede
herkenning
Remtijd 20 m:
1,5 s @ 55 km/u
DEP (22-23)
1.8
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Hoe ontwerpen we
een elektronisch systeem?
Specificatie
gedrag
Specificatie
randvoorwaarden
Algoritme
Hardware
Software
Digitaal
Analoog
Processoren
in deze cursus
Basiscomponenten
Poorten
Transistorniveau
Fysisch niveau
DEP (22-23)
1.9
Digitale elektronica
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Wat is belangrijk?
❑
Hoge verwerkingskracht
(voor ingewikkelde algoritmen)
❑
Zeer laag vermogenverbruik
❑
Zeer compacte implementatie
❑
Goedkoop & programmeerbaar
(voor massaproducten)
➢
Trade-off tussen enkel
het noodzakelijke & herbruikbaar
DEP (22-23)
1.10
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Voorbeeld: autonomous vehicles
Wat is belangrijk?
Hoge verwerkingskracht
➔ neurale netwerken (deep learning)
(voor ingewikkelde algoritmen)
~1011-1012 bewerkingen per video frame (30fps)
❑
Zeer laag vermogenverbruik
➔ 10Watt in handschoenkastje
❑
Zeer compacte implementatie
❑
Goedkoop & (waar nodig) programmeerbaar
❑
(voor massaproducten)
➢
Trade-off tussen enkel het noodzakelijke (efficiëntie!)
& herbruikbaarheid (kost!)
DEP (22-23)
1.11
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Voorbeeld: autonomous vehicles
❑
Rekenkracht: ~1011-1012 bewerkingen per video frame (30fps)
➔ 10 biljoen bewerkingen per seconde (10TOP/s)
❑
Zeer laag vermogenverbruik: 10Watt in handschoenkastje
➔ 1pJ/operatie, of 1 biljoen bewerkingen per seconde per Watt
(1TOP/s/W)
❑
Alles in SW op CPU of GPU?
➢
➢
CPU: ~100GOPs, ~10Gops/Watt
GPU: ~1TOPs, ~200Gops/Watt
DEP (22-23)
1.12
1. Inleiding &
basics
Digitale elektronica?
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
1 ISP, 1 GPU, video coder,
12 ARM CPU’s 2 AI cores
DEP (22-23)
Voorbeeld implementatie:
1.13
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Machine Learning acceleratie
❑
Hoe efficiënter rekenen?
➢
➢
➢
➢
➢
❑
Hardware!
Geavanceerde technologie (5nm!)
Efficiente optellers en vermenigvuldigers
Efficiente databewegingen
Geoptimizeerde processoren met veel parallelisme
TPU’s, NPU’s, NNA, …
▪
▪
▪
▪
▪
bv. Google TPU (tensor processing unit)
Tesla NPU (neural processing unit);
Apple neural engine
Neural Network Accelerator (NNA)
…
DEP (22-23)
1.14
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Who is investing? HW-centric companies…
DEP (22-23)
1.15
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Who is investing? SW-centric companies…!
DEP (22-23)
1.16
1. Inleiding &
basics
HW making the difference!
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Tesla’s NNA (Neural Network Accelerator)
Google’s TPU (Tensor Processing Unit)
Huawei’s NPU (Neural Processing Unit)
Intel NNP (Neural Network Processor)
Nvidia’s Tensor Cores
Apple’s Neural Engines
Samsung’s NPU
Amazon’s Inferentia
…
Hardware als
key differentiator
“Systems-on-a-chip”
DEP (22-23)
Voorbeeld implementatie:
een ‘System on Chip’
1.17
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
= combinatie (op een chip)
van één of meerdere
➢ Programmeerbare processoren
⇒ zeer flexibel
⇒ herbruikbaar over producten
⇒ belangrijk voor kost!
➢ beperkt-/niet-programmeerbare processoren
⇒
⇒
⇒
⇒
hoge verwerkingskracht
compacte implementatie
goedkoop qua componenten & vermogen
kan (beperkt) reconfigureerbaar zijn in sommige
implementaties
➢ controle-eenheden om alles aan te sturen
DEP (22-23)
1.18
Wat leren we in deze cursus?
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
Inzicht verwerven in het ontwerp van Digitale elektronische systemen van op
poort-niveau tot op processor-niveau (no magic…)
❑
Alle bouwblokken (inclusief processoren) leren kennen die nodig zijn om
complexe digitale systemen en processoren te bouwen
❑
De basisconcepten van programmeertalen voor de beschrijving en ontwerp
van Digitale hardware leren kennen en gebruiken (met focus op Verilog)
❑
Ervaring opdoen met moderne ontwerp-omgevingen voor Digitale elektronica
Op het einde in staat om je eigen
micro-processor to bouwen!
DEP (22-23)
1.19
Inhoud cursus
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Ontwerp van Digitale schakelingen
1
• Abstractie-niveaus
Inleiding • Getalsystemen & Digitale poorten
& basics
(L1-2)
22
• Booleaanse algebra
Combina- • Van logica naar gates
• Verilog
• Fysische implementatie
• Sequentieel&timing
Sequen- • FSM’s
• Verilog
tieel
• ASM’s and FSMD’s
• Van RTL tot ASIC of FPGA
torisch
(L3-6)
3
(L7-11)
44
Processoren
(L12-L17)
• Van ISA’s…
• …naar complex programs
• Single cycle processor
• Processor verbeteringen:
pipelining, parallelism &
caching
NAND
toTrends
Tetris!
• (L18)
en Qn&A
DEP (22-23)
1.20
Inhoud cursus (Live / Virtueel)
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Ontwerp van Digitale schakelingen
1
• Abstractie-niveaus
Inleiding • Getalsystemen & Digitale poorten
& basics
(L1-2)
22
• Booleaanse algebra
Combina- • Van logica naar gates
• Verilog
• Fysische implementatie
• Sequentieel&timing
Sequen- • FSM’s
• Verilog
tieel
• ASM’s and FSMD’s
• Van RTL tot ASIC of FPGA
torisch
(L3-6)
3
(L7-11)
44
Processoren
(L12-L17)
• Van ISA’s…
• …naar complex programs
• Single cycle processor
• Processor verbeteringen:
pipelining, parallelism &
caching
NAND
toTrends
Tetris!
• (L18)
en Q&A
DEP (22-23)
1.21
Inhoud cursus (Live / Virtueel)
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
1
2
3
4
1 1
Intro
& basics
Intro
& basics
2 2
3 Combinatorisch
3 Combinatorisch
Intro
abstractieniveaus
Intro
en en
abstractieniveaus
Live
in Leuven
Live
in Leuven
en in Kortrijk
4 4
logica
naar
gates
VanVan
logica
naar
gates
Live
Leuven,
streaming
Kortrijk
Live
Leuven,
streaming
Kortrijk
5 5
Verilog
Verilog
Online
Online
6 6
Fysische
implementatie
Fysische
implementatie
7 7
Sequentieel
& timing
Sequentieel
& timing
8 8
Sequentieel
9 9Sequentieel
FSM’s
FSM’s
Live
Leuven,
Live
Leuven,
streaming Kortrijk
Online
Online
Live
in Leuven
Live
in Leuven
en in Kortrijk
Verilog
Verilog
Online
Online
10 10
ASM’s
FSMD’s
ASM’s
en en
FSMD’s
Live
Leuven,
Live
Leuven,
streaming Kortrijk
11 11
naar
ASICs
FPGA's
VanVan
RTLRTL
naar
ASICs
en en
FPGA's
Online
Online
12 12
ISA’s…
VanVan
ISA’s…
Live
Leuven,
Live
Leuven,
streaming Kortrijk
13 13
…naar
complex
programs
…naar
complex
programs
Online
Online
14 14
Processoren
Processoren
15 15
Single
cycle
processor
Single
cycle
processor
Live
Leuven,
Live
Leuven,
streaming Kortrijk
Pipelining
Pipelining
Online
Online
16 16
Parallelisme
Parallelisme
Live
Leuven,
Live
Leuven,
streaming Kortrijk
17 17
Trends
Q&A
en en
Q&A
18 18Trends
Caching
Caching
Live
of online
(TBD)
Live
of online
(TBD)
Live
in Leuven
Live
in Leuven
en in Kortrijk
Getalsystemen
digitale
poorten Live
Getalsystemen
&&
digitale
poorten
Live
Kortrijk,
streaming
Leuven
Kortrijk,
streaming
Leuven
Booleaanse
algebra
Booleaanse
algebra
Online
Online
DEP (22-23)
1.22
Vereiste voorkennis
1. Inleiding &
basics
▪ Doelstellingen
⇨ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
Elektrische netwerken (B-KUL-H01Z2A)
➢
Elektrische concepten en grootheden: spanning, stroom, vermogen
➢
Eenvoudige elektrische netwerken:
Vin
R
▪ Componenten: R, C, L
▪ Wet van Ohm
C
▪ Werking transistor
❑
Informatieoverdracht en -verwerking (B-KUL-H01D2A)
➢
Getalvoorstellingen
➢
Digitale gates
– of equivalent
▪ (quick recap…)
❑
Methodiek van de informatica (B-KUL-H01B6B)
➢
Types van operaties
➢
Controlestructuren
➢
Collecties
▪ (quick recap)
– of equivalent
DEP (22-23)
1.23
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Didactische organisatie
Hoorcollege
Cursusmateriaal
• Mix tussen in aula en online
• In aula: delen waarvoor live
meerwaarde heeft!
• Online: MUST see voor
volgende les!
• Leuven/Kulak
• slides
• volgen (optioneel)
referentieboek
Oefeningen & practica
Examen
ISBN: 0128200643
DEP (22-23)
1.24
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Didactische organisatie
Hoorcollege
Cursusmateriaal
• Mix tussen in aula en online
• In aula: delen waarvoor live
meerwaarde heeft!
• Online: MUST see voor
volgende les!
• Leuven/Kulak
• slides
• volgen (optioneel)
referentieboek
Oefeningen & practica
Examen
• 4 zittingen op papier
• 4 zittingen op PC (verilog,
verplicht aanwezigheid,
indienen resultaat!)
• Sommige lessen suggesties
voor inoefenen thuis
DEP (22-23)
1.25
Oefeningen & practica
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
❑
Traditionele oefeningen over
➢ ontwerp combinatorische schakelingen
➢ ontwerp sequentiële schakelingen
➢ ontwerp processoren
[1 papier + 1 PC]
[2 papier + 1 PC]
[1 papier + 2 PC]
PC zittingen = hardware-ontwerp gebruik makend van Verilog
➢ tot op processor niveau
➢ zelf Verilog schrijven
➢ simulatie van het ontwerp
⇒ practica zijn verplicht + indienen resultaat
DEP (22-23)
1.26
Thuis inoefenen
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
Online open-source tools
➢ https://nandgame.com/ (L2-14)
➔ combinatorische en sequentiële schakelingen
➢ https://www.edaplayground.com/ (L5/9/oefenzit.)
➔ Online Verilog schrijven, simuleren, delen, …)
➢ https://github.com/mortbopet/Ripes (L12-17)
➔ Computer architectuur simulator
DEP (22-23)
1.27
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Didactische organisatie
Hoorcollege
Cursusmateriaal
• Mix tussen in aula en online
• In aula: delen waarvoor live
meerwaarde heeft!
• Online: MUST see voor
volgende les!
• Leuven/Kulak
• slides
• volgen (optioneel)
referentieboek
Oefeningen & practica
Examen
• 4 zittingen op papier
• 4 zittingen op PC (verilog,
verplicht aanwezigheid!)
• Sommige lessen suggesties
voor inoefenen thuis
• Schriftelijk, gesloten boek
• Mix van oefeningen,
& theorie
• Voorwaarde: deelname &
indiening practica
DEP (22-23)
1.28
Examen
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
⇨ Examen
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
Schriftelijk gesloten boek (3 uur max.)
❑
Deelname aan de practica is een voorwaarde om
deel te nemen
❑
Voorbeelden van vragen te vinden in de
oefenzittingen, aan het einde van verschillende
lessen, en op Toledo
DEP (22-23)
1.29
Voorbeeldvraag oefeningen
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
⇨ Examen
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
Gegeven volgende combinatorische functie:
𝑥𝑦𝑧 ′ 𝑤 + 𝑥 ′ 𝑦𝑧 ′ 𝑤 + 𝑥𝑦 ′ 𝑧 ′ 𝑤 + 𝑥 ′ 𝑦 ′ 𝑧 ′ 𝑤 + 𝑥𝑦 ′ 𝑧𝑤 + 𝑥𝑦 ′ 𝑧𝑤 ′ + 𝑥𝑦𝑧′𝑤′
➢ Stel de waarheidstabel op
➢ Vereenvoudig tot de meest compacte Booleaanse vergelijking
➢ Ontwerp een logische schakeling die deze functie realiseert met
zo weinig mogelijk NAND, NOR en INV poorten
➢ Ontwerp een nieuwe digitale poort die deze schakeling met 1
poort realiseert.
DEP (22-23)
1.30
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
⇨ Examen
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Voorbeeldvraag oefeningen (2)
DEP (22-23)
1.31
Voorbeeldvraag oefeningen (3)
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
⇨ Examen
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
Maak de goedkoopst mogelijke IC-realisatie van volgende
FSM met D-flipflops en NAND-of NOR-poorten met 2
ingangen.
➢ Hoe lang is het kritische pad
van deze schakeling?
➢ Wat kan je zeggen over het
vermogenverbruik van deze
schakeling?
DEP (22-23)
1.32
Voorbeeldvraag oefeningen (4)
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
⇨ Examen
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
Hoeveel klokcycli zijn nodig om het programma op de 5-stage RISC-V processor
te laten lopen?
➢ Duid alle hazards aan in de code
➢ Maak een verbetering aan de processor om dit aantal cycli te verminderen.
1
1
▪ Hoeveel cycli win je?
▪ Teken de aanpassingen op hardware niveau
RISC-V Assembly
funct:
0:
addi t0, zero, 0
# Initialize i = t0 to 0
1:
addi t1, zero, 4
# Initialize j = t2 to 4
2:
addi t2, zero, 0
# Initialize C = t1 to 0
loop:
1
1
3:
lw
t3, 0(a0)
# Load A[i] in a0
4:
lw
t4, 0(a1)
# Load B[i] in a1
5:
mul
t5, t3, t4
# Multiply A[i] and B[i]
6:
add
t2, t2, t5
# Add to C
7:
addi t0, t0, 1
# Increment i
8:
addi a0, a0, 4
# Increment A pointer
9:
addi a1, a1, 4
# Increment B pointer
10:
bne
t0, t1, loop
# Check if i == j
a0, t2
# Move C to a0
endloop:
11:
mv
12:
ret
# Return
DEP (22-23)
1.33
Voorbeeldvragen theorie
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
⇨ Organisatie
⇨ Examen
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
Beschrijf het IEEE-formaat voor getallen met “enkelvoudige precisie
vlottende komma voorstelling”. Geef ook aan welke getallen
hiermee kunnen voorgesteld worden.
❑
Wat betekenen de setup-tijd en de houdtijd van een flipflop? Wat is
het nut van deze tijden?
❑
Wat is het verschil tussen een RISC en een CISC?
❑
Bespreek de verschillende manieren om in Verilog vertragingen te
beschrijven.
❑
Welke cache replacement technieken ken je en geef de voor- en
nadelen van elke techniek.
DEP (22-23)
1.34
Inhoud cursus
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Ontwerp van Digitale schakelingen
1
• Abstractie-niveaus
Inleiding • Getalsystemen & Digitale poorten
& basics
(L1-2)
2
• Booleaanse algebra
Combina- • Van logica naar gates
• Verilog
• Fysische implementatie
• Sequentieel&timing
Sequen- • FSM’s
• Verilog
tieel
• ASM’s and FSMD’s
• Van RTL tot ASIC of FPGA
torisch
(L3-6)
3
1.2 The Art of Managing
Complexity
(L7-11)
4
Processoren
(L12-L17)
• Van ISA’s…
• …naar complex programs
• Single cycle processor
• Processor verbeteringen:
pipelining, parallelism &
caching
NAND
toTrends
Tetris!
• (L18)
en Qn&A
DEP (22-23)
1.35
1. Inleiding &
basics
Digitale systemen zijn complex…
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
[iFixit]
DEP (22-23)
1.36
1. Inleiding &
basics
Digitale systemen zijn opgebouwd uit chips, opgebouwd uit
processoren, opgebouwd uit poorten, opgebouwd uit transistoren
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
88mm2!
DEP (22-23)
1.37
1. Inleiding &
basics
Digitale systemen zijn opgebouwd uit chips, opgebouwd uit
processoren, opgebouwd uit poorten, opgebouwd uit transistoren
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
88mm2!
Chips ➔ (veel) transistoren
DEP (22-23)
1.38
Een idee van de complexiteit (II)
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Processor
Technologie
jaar
Aantal
transistors
8086
3 µm
1978
29 000
Lego
Analogie
DEP (22-23)
1.39
Een idee van de complexiteit (II)
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Processor
Technologie
jaar
Aantal
transistors
8086
3 µm
1978
29 000
Pentium
0.8 µm
1993
3 100 000
Lego
Analogie
DEP (22-23)
1.40
Een idee van de complexiteit (II)
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Processor
Technologie
jaar
Aantal
transistors
8086
3 µm
1978
29 000
Pentium
0.8 µm
1993
3 100 000
Pentium 4
180 nm
2000
50 000 000
Lego
Analogie
DEP (22-23)
1.41
Een idee van de complexiteit (II)
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Processor
Technologie
jaar
Aantal
transistors
8086
3 µm
1978
29 000
Pentium
0.8 µm
1993
3 100 000
Pentium 4
180 nm
2000
50 000 000
Intel Core i7
45 nm – 32 nm
2008
1 000 000 000
Lego
Analogie
X 20!!
DEP (22-23)
1.42
Een idee van de complexiteit (II)
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Processor
Technologie
jaar
Aantal
transistors
8086
3 µm
1978
29 000
Pentium
0.8 µm
1993
3 100 000
Pentium 4
180 nm
2000
50 000 000
Intel Core i7
45 nm – 32 nm
2008
1 000 000 000
Apple M2
5nm
2022
20 000 000 000
Lego
Analogie
X 20!!
± wereldwijde jaarlijkse
productie legoblokjes
DEP (22-23)
1.43
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Een idee van de complexiteit (III)
Apple M2
5 nm
2022
20 000 000 000
20 miljard legoblokjes
op elkaar gestapeld:
190 000 km
Maan
Aarde
± wereldwijde jaarlijkse
productie legoblokjes
DEP (22-23)
1.44
1. Inleiding &
basics
Meer transistoren/mm2 =
krachtige electronica in een kleine vormfactor!
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
gsm 2022: 1 computer = 1 rijstkorrel
x10M sneller, x100M data opslag, 2W
Vele parallele processoren op 1 chip (voor AI,...)
ENIAC 1946: 1 computer = 1 kamer
5,000 operaties/sec, 1,600 bits opslag, 150kW
DEP (22-23)
1.45
Digitale systemen zijn complex!
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Moore’s Law:
transistors/chip:
2x elke ~2 jaar
➢ rekenkracht: 2x
elke 18-24
maanden
➢ Self-fulfilling
prophecy…
➢ Limiet bereikt?
➢
X50 miljoen!
❑
DEP (22-23)
1.46
1. Inleiding &
basics
❑
Slide-boek
❑
Boek VTK
❑
Computer architectures (minor CS)
1.47
Omgaan met complexiteit?!
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
1.
Abstractie maken
➢ Systeem opsplitsen
device drivers
instructions
registers
datapaths
controllers
adders
memories
AND gates
NOT gates
amplifiers
filters
transistors
diodes
electrons
laag niveau details
in laagjes!
➢ Om je niet te verliezen in de details,
de details die nog niet relevant zijn
verbergen
➢ Maar 1 laagje per keer uitwerken /
beschouwen
➢ Vaak wel kennis nodig ivm. de
gevolgen voor de lagere lagen
programs
focus of this course
1. Inleiding &
basics
abstractie
DEP (22-23)
1.48
Omgaan met complexiteit?!
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
1.
Abstractie maken
➢ Deze cursus:
programs
Digitale circuits tot
device drivers
architectuur
instructions
registers
Behandeld in
bottom-up volgorde
focus of this course
DEP (22-23)
datapaths
controllers
adders
memories
AND gates
NOT gates
amplifiers
filters
transistors
diodes
electrons
1.49
Omgaan met complexiteit?!
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
1.
2.
Abstractie maken
Discipline en standardisatie
programs
device drivers
➢ Afwijken van afspraken =
abstractieniveaus breken…
Cfr. Ford: “Any customer
can have a car painted
any color that he wants
so long as it is black.”
Succes van iPhones, Tesla’s, …
instructions
registers
focus of this course
DEP (22-23)
datapaths
controllers
adders
memories
AND gates
NOT gates
amplifiers
filters
transistors
diodes
electrons
1.50
Omgaan met complexiteit?!
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
1.
2.
3.
Abstractie maken
Discipline en standardisatie
The Three Y’s…
programs
device drivers
instructions
registers
focus of this course
DEP (22-23)
datapaths
controllers
adders
memories
AND gates
NOT gates
amplifiers
filters
transistors
diodes
electrons
DEP (22-23)
1.51
The Three -Y’s
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
❑
❑
Hierarchy
➢ Abstractie in niveaus
Modularity
➢ Een ‘component’ heeft gekende
specificaties
Regularity
➢ Hergebruik
➢ ‘Bibliotheek’ van bestaande
componenten (op elk niveau)
DEP (22-23)
1.52
The Three –Y’s (auto’s)
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
•
•
•
•
Hierarchy
Grootte
Topsnelheid
Draaicirkel
…
Modularity
Chassis
Deur
Koffer
•
•
…
…
•
•
•
•
Aanhechtingspunten
Vermogen
Gewicht
…
Breedte
…
…
Regurality
•
•
•
Capaciteit
Afmetingen
…
•
•
•
Interface
Vermogen
…
…
…
DEP (22-23)
1.53
The Three –Y’s (digitale chips)
1. Inleiding &
basics
Modularity
Hierarchy
Neural Engine
Instr. & data
geheugen
CPU
•
•
ISA
64-bit
GPU
Register file
ALU
Decoder
•
•
2 inputs, 1 output
+, -, >>, …
•
Regurality
•
•
flipflops
waarheidstabel
3 terminals
Gedrag voor G= ‘1’ en ‘ ’
DEP (22-23)
Gradueel afdalen in abstractie-niveaus:
Y-chart
1.54
1. Inleiding &
basics
❑
❑
Y-chart stelt relatie tussen
abstractie-niveaus voor
Op elk abstractie niveau:
➢
➢
➢
Gedrag
Structuur
Fysische implementatie
Niet in boek.
Optioneel leesvoer:
https://link.springer.com/
content/pdf/10.1007/978
-3-030-10552-5.pdf
DEP (22-23)
Gradueel afdalen in abstractie-niveaus:
Y-chart
1.55
1. Inleiding &
basics
❑
❑
❑
Design flow = top down door de
Y-chart naar het midden
“spiralen”
Tot alles tot laatste details is
uitgewerkt.
In deze cursus:
➢
➢
➢
➢
➢
1. Van specificaties
2. Naar algoritme
3. Synthestiseren
4. Implement
5. Drop 1 level, of keer terug
Niet in boek.
Optioneel leesvoer: (p4-7)
https://link.springer.com/
content/pdf/10.1007/978
-3-030-10552-5.pdf
DEP (22-23)
1.56
1. Inleiding &
basics
Digitaal ontwerp in grote lijnen
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Specificatie
Algoritme
Bibliotheek
Ga naar lager
niveau en ontwerp
componenten
Synthese &
implement
Verifieer
onvolledig
Ga naar hoger
niveau en pas
specificaties aan
probleem
klaar
niet oplosbaar
op dit niveau
DEP (22-23)
1.57
Specificatie
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
❑
➢
➢
❑
❑
Specificatie
De specificatie beschrijft:
Functionaliteit
Randvoorwaarden: snelheid, kost,
vermogenverbruik
Dikwijls niet eenduidig en/of onvolledig
Legt dikwijls onnodige beperkingen op aan het
ontwerp
Voorbeeld: min/max berekening
❑ Bereken tegelijkertijd het minimum en maximum van
twee 8-bits getallen
❑ De maximale vertraging van in- naar uitgang is 1 ns
Algoritme
Bibliotheek
Synthese &
implement
Verifieer
DEP (22-23)
1.58
Algoritme
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Een algoritme is een gedetailleerd
stappenplan
❑ Keuze uit verschillende mogelijkheden
Specificatie
❑
➢ Implementatiebeslissingen
➢ Hangt af van hardware
❑
Voorbeeld:
Als in1 < in2
dan
min = in1 en max = in2
anders
min = in2 en max = in1
Algoritme
Bibliotheek
Synthese &
implement
Verifieer
DEP (22-23)
1.59
Synthese
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
De synthese is de structurele uitwerking
van het algoritme
❑ De implementatie is de realisatie van het
ontwerp
❑ Gebruikmakend van componenten
Specificatie
❑
Algoritme
Bibliotheek
Synthese &
implement
Verifieer
➢ Uit bibliotheek
▪ Op elk niveau
– Logische poort uit
Standard Cell Library
– Processor
– …
Als in1 < in2
dan
min = in1 en max = in2
anders
min = in2 en max = in1
➢ Zelf ontwikkelen op volgend niveau
Comparator uit
bibliotheek?
DEP (22-23)
1.60
Analyse
1. Inleiding &
basics
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
De verificatie is de test van het ontwerp
❑ Via simulatie of prototype
Specificatie
❑
➢ Teststimuli
aanbrengen aan ingang
➢ Uitgang controleren
❑
Synthese &
implement
Verifieer
Testcriteria:
➢ Functionaliteit
➢ Kost
➢ Snelheid
➢…
❑
Algoritme
Bibliotheek
Probleem: keer terug in Y-chart tot waar
het oplosbaar is
Sneller?
Vermogen?
DEP (22-23)
1.61
1. Inleiding &
basics
Digitaal ontwerp in grote lijnen
▪ Doelstellingen
▪ Voorkennis
▪ Organisatie
⇨ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Elk ontwerp doorloopt de Y-chart van
specificatie tot volledige implementatie
Digitale elektronica en
processoren
B-KUL-H01L1A & B-KUL-X0B93A
Les2: Recap: getalsystemen en digitale
poorten
Marian Verhelst
Marian.Verhelst@esat.kuleuven.be
DEP (22-23)
1.63
Inhoud cursus
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Ontwerp van Digitale schakelingen
1
• Abstractie-niveaus
Inleiding • Getalsystemen & Digitale poorten
& basics
(L1-2)
2
• Booleaanse algebra
Combina- • Van logica naar gates
• Verilog
• Fysische implementatie
• Sequentieel&timing
Sequen- • FSM’s
• Verilog
tieel
• ASM’s and FSMD’s
• Van RTL tot ASIC of FPGA
torisch
(L3-6)
3
(L7-11)
4
Processoren
(L12-L17)
• Van ISA’s…
• …naar complex programs
• Single cycle processor
• Processor verbeteringen:
pipelining, parallelism &
caching
NAND
toTrends
Tetris!
• (L18)
en Qn&A
DEP (22-23)
Ontwerp van Digitale schakelingen
1.64
1. Inleiding &
basics
1
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
• Abstractie-niveaus
Inleiding • Getalsystemen
& basics • Digitale poorten
(L1-2)
• Van decimal naar binair
1.3 The digital abstraction
1.4 Number Systems
• Vaste (INT) en vlottende komma (FP) voorstelling
• Optellen/aftrekken/vermenigvuldigen met vast komma
• Optellen/aftrekken/vermenigvuldigen met vlottende komma
DEP (22-23)
1.65
De Digitale Abstractie
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
Analoog
• Continue signalen
• Fysieke wereld
❑
• Discrete signalen (beperking)
• Robuust / eenvoudig
In de praktijk: bijna uitsluitend binaire signalen
➢
➢
❑
Digitaal
2 waarden van spanning, (stroom, druk, …)
Voorstelling: “ ” en “1”
Bits combineren om niet-binaire waarden voor te
stellen
➢
D = log2 N bits
VD
D
VIH
VIL
H
ongedefinieerd
L
VSS
DEP (22-23)
1.66
Getallen digitaal voorstellen
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Hoe getallen voorstellen?
➢ Decimaal (radix=10)
➢ Binaire voorstelling (radix=2)
most siqnificant bit
(msb)
least siqnificant bit
(lsb)
DEP (22-23)
1.67
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
Voor digitale hardware is ALLES enkel 1-en en 0-en
Tekst: Elk karakter is 8bits (ASCII)
❑ Geluid: Elke audio-sample = 32bits
❑ Foto’s: Elke pixel = 24bit:
❑
(binaire RGB waarde)
DEP (22-23)
1.68
Omzetting decimaal naar binair
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Algoritme
Delen door 2
2. De rest toevoegen aan het binaire getal
3. Herhaal
1.
84
42
0
21
0
10
1
5
0
2
1
1
0
0
1
=> 8410 = 10101002
DEP (22-23)
1.69
Hexadecimaal
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
16 tekens: 0-9 en A-F (radix=16)
❑ 2 hexadecimale tekens maken 1 byte (8 bits)
❑ Dit maakt het leesbaarder voor de mens.
Hardware gebruikt dit niet…
❑
Schrijfwijze: 0x2ED
hex dec
…
…
9
9
A
10
B
11
C
12
D
13
…
…
DEP (22-23)
1.70
Words – bytes – nibbles – …
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
❑
❑
❑
Words typically 32 to 64bits
Nibble = 1 hex symbol
2-bits? Crumb…
2 nieuwe prefixes!
DEP (22-23)
Ontwerp van Digitale schakelingen
1.71
1. Inleiding &
basics
1
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
• Abstractie-niveaus
Inleiding • Getalsystemen
& basics • Digitale poorten
(L1-2)
1.4 Number Systems
5.3 Number Systems
• Van decimal naar binair
• Vaste (INT) en vlottende komma (FP) voorstelling
• Optellen/aftrekken/vermenigvuldigen met vast komma
• Optellen/aftrekken/vermenigvuldigen met vlottende komma
DEP (22-23)
1.72
Integers
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
Gehele getallen voorgesteld met n bits (radix=2)
❑ Bereik
❑
➢ Unsigned: enkel natuurlijke getallen van 0 t.e.m. 2n-1
195 met 8 bits
27
26
25
24
23
22
21
20
1
1
0
0
0
0
1
1
DEP (22-23)
1.73
Vaste komma voorstelling (fixed point)
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
Hoe kommagetallen voorstellen?
❑ Voorstelling opdelen in geheel (i) en fractioneel (f) deel
❑
➢ bv.: 11,2510
❑
= 1011,0102 → fix<4,3>
Komma is geïmpliceerd door de definitie van het datatype
➢ niet zichtbaar in hardware
❑
Bereik
➢ Unsigned: 0 t.e.m. +(2i –2-f) in stappen
π in fix<2,6>
afgerond naar 3.140625
van 2-f
21
20 2-1 2-2 2-3 2-4 2-5 2-6
1
1
0
0
1
0
0
1
DEP (22-23)
1.74
Negatieve getallen?
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Hoe negatieve getallen voorstellen?
Sign-magnitude
2. Complement voorstelling
1.
DEP (22-23)
1.75
Sign-magnitude
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Getal bestaan uit een teken (s) en een grootte (m)
➢ voorstelling <s,m>
❑
Binair voorbeeld
➢ msb is de tekenbit: “
” positief, “1” negatief
▪ bv. 011002 = +1210 en 111002 = −1210
➢ Een SM-getal kan waarde van −(2n−1 − 1) tot en met +(2n−1 − 1)
hebben
Voordeel: Simpel!!
❑ Nadeel:
❑
➢ Moeilijker voor computer om op te tellen (zie later)
➢ Twee voorstelling voor nul: 000...0
en 100...0
DEP (22-23)
1.76
Complement voorstelling
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Het (cijfer-)complement (‘diminished-radix complement’) D’ van
een getal D met radix r is
het getal waarbij elk cijfer i vervangen is door
zijn complement r − 1 − i
➢
➢
het 9-complement van 12310 is 87610
het 1-complement van 11012 is 00102
dalend
stijgend
Bits
SM
1-C.
…
…
…
1001
-1
-6
1000
-0
-7
0111
7
7
0110
6
6
…
…
…
blijft stijgend:
begint na maximum
terug bij minimum
DEP (22-23)
1.77
Radix-complement voorstelling
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Het radix-complement D* van een getal D met radix r en n cijfers is
D* = rn − D
het 10-complement van 12310 is
103 − 12310 = 87710
➢ het 2-complement van 11012 is
24 − 1310 = 310 = 00112
➢
❑
D* = D’ + 1
➢
omdat D’ = (rn − 1) − D
Dit gebruiken we om het 2-complement te berekenen!
DEP (22-23)
1.78
Twee-Complement
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Als slechts n bits gebruikt worden, dan
rn ≡ 0 & D* = rn − D ⇒ D* ≡ −D
D* kan dus voor een traditionele optelling gebruikt
worden als binaire voorstelling van −D met n bits
Bv. bij gebruik van 4 bits
D = 310 = 00112 ⇒ D* = 11002 + 00012 = 11012
−D = −310 kan voorgesteld worden als 11012
❑
D = D*[MSB-1..0] – 2n-1.D*[MSB]
❑
Bereik
➢
❑
−2n−1 t.e.m. 2n−1 − 1
Slechts één voorstelling voor nul:
D = 00002 ⇒ −D ≡ D* = 11112 + 00012 = 100002
Bits
SM
1-C.
2-C.
…
…
…
…
1001 -1
-6
-7
1000 -0
-7
-8
0111
7
7
7
0110
6
6
6
…
…
…
…
DEP (22-23)
1.79
Twee-Complement
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Unsigned
➢
❑
Meer positieve getallen
Sign-magnitude
Simpele voorstelling
➢ Eenvoudig
vermenigvuldigen
➢
❑
2-complement
➢
➢
➢
1 voorstelling voor nul
makkelijk optellen
Veel gebruikt
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
‘unsigned’
‘sign-magnitude’
2-complement
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
+0
1
2
3
4
5
6
7
−
−1
−2
−3
−4
−5
−6
−7
0
1
2
3
4
5
6
7
−8
−7
−6
−5
−4
−3
−2
−1
DEP (22-23)
1.80
Probleem fixed point
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Stel 100 8-bit fixed-point getallen vermenigvuldigen
➢ Getal heeft steeds meer bits nodig
➢ Getal moet steeds afgerond of afgekapt worden
<1,7>
❑
× <1,7>
<2,14>
× <1,7>
<3,21>
× <1,7>
…
× <1,7>
<100,700>
Variabele komma nodig zoals wetenschappelijke notatie
➢ Floating point
DEP (22-23)
1.81
Vlottende komma voorstellingen (floating point)
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
❑
float <m,e>
Mantisse:
vaste komma getal
➢ genormaliseerd: 1 < mantisse < radix (R)
➢ Impliciete “leading 1”
➢ Bias B voor de exponent: B = R#e−1 − 1
➢
❑
Bereik van 32 bit getallen
➢
0
➢
231−1
Vlottende komma (R=2, e=8)
−2128
−2−128
0
2−128
1
e
m
−1 𝑠 . 1, 𝑀 ∗ 𝑅𝐸−𝐵
Gehele getallen (2-complement)
−231
s exp. E mantisse M
2128
bits
DEP (22-23)
1.82
IEEE standaardisering
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
❑
Radix=2
Gestandardizeerde grootte
➢
➢
single:
e = 8, m = 23, B = 127
M=0
double:
e = 11, m = 52, B = 1023 M ≠
π in single-precisie
( −1 )
s
s
E
M
1
e
m
bits
E=0
0 < E < 2e−1
0
( −1 )  1, M  2E −B
s
( −1 )  1, M  2E −B
s
 0, M  2− B +1
niet genormaliseerd
E = 2e−1
( −1 )
s

NaN
verborgen bit
= genormaliseed
0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1
E = 128
=> exp = 1
M = (1.)57079637050628662109
≈π/2
DEP (22-23)
Ontwerp van Digitale schakelingen
1.83
1. Inleiding &
basics
1
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
• Abstractie-niveaus
Inleiding • Getalsystemen
& basics • Digitale poorten
(L1-2)
5.3.1 Fixed Point Number
Systems
• Van decimal naar binair
• Vaste (INT) en vlottende komma (FP) voorstelling
• Optellen/aftrekken/vermenigvuldigen met vast komma
• Optellen/aftrekken/vermenigvuldigen met vlottende komma
DEP (22-23)
1.84
Binaire optelling
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Hoe getallen optellen?
➢ Cijferen
15510 + 8710 = 24210
carry
X
0
1
1
1
5
5
X
0 1 0 0 1 1 0 1 1
8
7
Y
0 0 1 0 1 0 1 1 1
4
2
Som 0 1 1 1 1 0 0 1 0
Y
Som
0100110112 + 0010101112 = 0111100102
2
carry
➢ Logische functies:
▪ c0 = x0 AND y0
▪ s0 = x0 XOR y0
0 0 1 1 1 1 1
DEP (22-23)
1.85
Binaire aftrekking met sign-magnitude?
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Hoe getallen aftrekken?
➢ Cijferen
15510 - 8710 = 6810
carry
-1
-1
X
1
5
Y
Som
0
0100110112 + 1010101112 = 1111100102? (-244)
carry
0 0 1 1 1 1 1
5
X
0 1 0 0 1 1 0 1 1
- 8 -7
Y
1 0 1 0 1 0 1 1 1
6
8
Som 1 1 1 1 1 0 0 1 0
=! 68
FOUT!
DEP (22-23)
1.86
2-complement optelling
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Optelling
00
0
0
0
❑
0
0
0
1
0
1 0 +2
1 1 +3
0 1 +5
Aftrekking
1.
2.
➢
inverteren:
optellen
Weglaten
1100
0000
0 0 1 0 +2
1 1 1 0 -2
1 1 0 1 -3
1 0 1 1 -5
1 1 0 1 -3
1 1 1 1 -1
1-complement
2-complement
1100
1101 (-3)
0011 (+3)
inverteren
Logische functies:
▪ Functies voor optellen (AND, XOR)
▪ Plus voor inverteren: x’i = NOT xi
+1
DEP (22-23)
1.87
Vaste komma optelling
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
➢ Komma juist aligneren
15,510 + 8,2510 = 23,7510
carry 0 1
A
1
B
carry
5
8
Som
2
1111,12 + 1000,012 = 10111,112
3
,
,
,
5
1
A
1 1 1 1 ,1
1 0 0 0 ,0 1
2
5
B
7
5
Som
1 0 1 1 1 ,1 1
➢ Extra logische functies:
▪ Geen: verschuiving in hardware is een kwestie van bedrading
DEP (22-23)
1.88
Vermenigvuldiging
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
2-complement getallen
Natuurlijke getallen
2210 * 510 = 11010
101102 * 1012 = 11011102
-310 * -110 = 310
11012 * 11112 = 00112
-23 22
24 23 22 21 20
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
Tekenbit
uitbreiden
2-compl. van
1101
21
20
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
DEP (22-23)
1.89
Vermenigvuldiging
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
➢ Logische functies:
-23
22
21
20
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
▪ Vermenigvuldigen: AND
▪ Uitbreiding: geen
▪ Complement: NOT (&’+1’)
▪ Optelling: XOR, AND
▪ (Zie volgende les!)
1
DEP (22-23)
Ontwerp van Digitale schakelingen
1.90
1. Inleiding &
basics
1
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
• Abstractie-niveaus
Inleiding • Getalsystemen
& basics • Digitale poorten
(L1-2)
5.3.2 Floating Point
Number Systems
• Van decimal naar binair
• Vaste (INT) en vlottende komma (FP) voorstelling
• Optellen/aftrekken/vermenigvuldigen met vast komma
• Optellen/aftrekken/vermenigvuldigen met vlottende komma
DEP (22-23)
1.91
Rekenen met vlottende komma
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Optelling
2,4 ∙ 1
1
+ 9,9 ∙ 1
➢ Maak exponenten gelijk
= 0,24 ∙ 1
➢ Tel mantissen op
= 10,14 ∙ 1
➢ Normaliseer en
rond af (tot waarde dichtst bij)
= 1, ∙ 1
3
2
2
+ 9,9 ∙ 1
2
2
DEP (22-23)
1.92
Optelling positieve IEEE single float
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• SM or 2’s C
• +-* met FP
▪ Digitale poorten
1.
2.
3.
4.
5.
6.
7.
8.
Splits exponent en mantisse
Voeg 1 terug toe voor de komma
Vergelijk exponenten
Verschuif de kleinste mantisse
Tel mantissen op
Normaliseer mantisse en pas
exponent aan
Rond af
Combineer
DEP (22-23)
1.93
Rekenen met vlottende komma
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
❑
Vermenigvuldiging
5,7 ∙ 1
1
× 4,3 ∙ 1
➢ Vermenigvuldig mantissen en
tel exponenten op
= 24,51 ∙ 1
➢ Normaliseer (hooguit 1 cijfer)
en rond af
= 2,5 ∙ 1
4
3
2
DEP (22-23)
1.94
Vermenigvuldiging positieve IEEE single float
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• SM or 2’s C
• +-* met FP
▪ Digitale poorten
1.
2.
3.
4.
5.
6.
7.
Splits exponent en mantisse
Voeg 1 terug toe voor de komma
Tel exponenten op
Vermenigvuldig mantissen
Normaliseer mantisse en pas
exponent aan
Rond af
Combineer
DEP (22-23)
1.95
Vermenigvuldiging positieve IEEE single float
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• SM or 2’s C
• +-* met FP
▪ Digitale poorten
1.
2.
3.
4.
5.
6.
7.
Splits exponent en mantisse
Voeg 1 terug toe voor de komma
Fixed point +
Tel exponenten op
Vermenigvuldig mantissen Fixed point *
Normaliseer mantisse en pas
exponent aan
Rond af
Combineer
Dure operatie: gebruik vaste
komma indien mogelijk
➢ Specifieke hardware: Floating Point
Unit (FPU, zie volgende lessen)
➢
DEP (22-23)
1.96
1. Inleiding &
basics
FPU architectuur details
Exacte link: See volgende lessen!!
DEP (22-23)
1.97
1. Inleiding &
basics
FPU in de “AMD Zen2” processor
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
⇨ Getalsystemen
• Dec2bin
• INT en FP
• +-* met INT
• +-* met FP
▪ Digitale poorten
ALU: Arithmetic
Logic Unit voor
integers/fixed-point
DEP (22-23)
Ontwerp van Digitale schakelingen
1.98
1. Inleiding &
basics
1
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
• Abstractie-niveaus
Inleiding • Getalsystemen
& basics • Digitale poorten
(L1-2)
• Logische poorten: AND / OR / BUF
• Implementatie met transistoren (CMOS)
• INV / NAND / NOR
• XOR / XNOR
• Complexe functies / poorten
• Poorten aan elkaar hangen
• Nieuwe poorten ontwerpen
DEP (22-23)
1.99
Logische poorten
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
NOT
OR
AND
x
x’
x NOT x
0
1
1
0
x
x∙y
y
x
y
x+y
x
y
x AND y
x
y
x OR y
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
DEP (22-23)
1.100
Logische poorten
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
NAND
XOR
x
y
x⊕y
NOR
x
(x∙y)’
y
x
y
(x+y)’
x
y
x⊕y
x
y
x NAND y
x
y
x NOR y
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
XOR: eXclusive OR
DEP (22-23)
1.101
Logische schakeling
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
= netwerk van verbonden logische poorten
➢ Realiseert een bepaalde logische functie
Schema
x
y
a
b
Waarheidstabel
f
x
y
a
b
f
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
DEP (22-23)
Ontwerp van Digitale schakelingen
1.102
1. Inleiding &
basics
1
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
• Abstractie-niveaus
Inleiding • Getalsystemen
& herh. • Digitale poorten
(L1-2)
• Logische poorten: AND / OR / BUF
• Implementatie met transistoren (CMOS)
• INV / NAND / NOR
• XOR / XNOR
• Complexe functies / poorten
• Poorten aan elkaar hangen
• Nieuwe poorten ontwerpen
1.5 Logic Gates
1.7 CMOS Transistors
DEP (22-23)
1.10
3
MOS-transistor
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
nMOS
➢
geleidt als VGS > Vt
D
L
G
H
D
G
S
❑
S
pMOS
➢
➢
VGS < 0, Vt < 0
geleidt als VGS < Vt
S
L
G
S
H
D
VGS : spanning gate source
Vt : threshold-spanning
G
D
symmetrisch:
source = drain
DEP (22-23)
1.104
Implementatie CMOS-inverter
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
Play the
nandgame.com:
Optional levels:
‘Invert’
x NOT x
0
1
1
0
VDD
Pull-up
network
(PUN)
x =1
0
❑
❑
1 pMOS-schakelaar in PUN
1 nMOS-schakelaar in PDN
f =0
1
Pull-down
network
(PDN)
1 ingang
2 transistoren
DEP (22-23)
1.105
AND in CMOS?
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
x
y
x AND y
0
0
0
0
1
0
1
0
0
1
1
1
VDD
Play the
nandgame.com:
‘And’, ‘OR’
Enkel pMOS
in PUN
x=1
❑
pMOS geleidt enkel als
de gate input laag is
y =1
≠1
➢ Uitgang “1” als ingangen
“1” zijn is onmogelijk met
PMOS in PUN
PDN
GND
x AND y
DEP (22-23)
1.106
nMOS in PUN?
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
Kan een AND-poort dan gemaakt
worden met nMOS in PUN?
❑
nMOS transistor is een slechte pull-up
➢
x
f
y
slechts geleidend als VGS > Vt
⇒ uitgangsspanning daalt met Vt na elke tor
⇒ nMOS enkel in PDN
(= kan enkel goed L doorgeven)
❑
H
pMOS transistor is een slechte pull-down
Vt
⇒ pMOS enkel in PUN
(= kan enkel goed H doorgeven)
⇒ AND en OR poorten zijn NIET implementeerbaar!
≥−Vt
L
DEP (22-23)
1.107
Implementatie NAND
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
x
y
❑
f
x
y
f
0
0
1
0
1
1
1
0
1
1
1
0
Altijd een geleidend
pad van VDD/GND naar
uitgang
VDD
Play the
nandgame.com:
‘Nand’
x=1
0
f=1
0
y = 10
2 ingangen
4 transistors
DEP (22-23)
1.108
Implementatie NOR
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
x
y
f
x
y
f
0
0
1
0
1
0
1
0
0
1
1
0
VDD
x=1
0
f=1
0
y = 10
2 ingangen
4 transistors
DEP (22-23)
1.109
CMOS = Complementary MOS
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
PUN is het complement van PDN
➢ PUN (“pullt” de output naar VDD) gemaakt uit pMOS
➢ PDN (“pullt” de output naar GND) gemaakt uit
❑
nMOS
Altijd een geleidend pad naar voeding of grond
DEP (22-23)
Ontwerp van Digitale schakelingen
1.110
1. Inleiding &
basics
1
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
• Abstractie-niveaus
Inleiding • Getalsystemen
& herh. • Digitale poorten
(L1-2)
• Logische poorten: AND / OR / BUF
• Implementatie met transistoren (CMOS)
• INV / NAND / NOR
• XOR / XNOR
• Complexe functies / poorten
• Poorten aan elkaar hangen
• Nieuwe poorten ontwerpen
DEP (22-23)
1.111
Complexere functies van NAND / NOR / INV
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Fysische
eigenschappen
Poorten kunnen achter elkaar geschakeld worden om meer
complexe functies te realizeren.
❑ Bv:
❑
➢ AND-OR-INVert
b
(AOI)
a
xy
f
z
DEP (22-23)
1.112
Complexere functies van NAND / NOR / INV
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Fysische
eigenschappen
Poorten kunnen achter elkaar geschakeld worden om meer
complexe functies te realizeren.
❑ Bv:
❑
➢ AND-OR-INVert
b
(AOI)
a
xy
f
z
b
❑
Opgepast:
a
f
yz
➢ Elke poort-uitgang kan meerdere poort-ingangen sturen.
➢ Maar elke poort-ingang kan maar gestuurd worden door 1
poort-uitgang
DEP (22-23)
1.113
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Fysische
eigenschappen
Reden om poortuitgangen niet te verbinden?
Geleidende transistoren hebben
een lage weerstand
⇓
Vermijd kortsluiting (zeer hoge stromen)
➢ PUN en PDN nooit samen actief
⇒ PUN = (PDN)’
➢ Nooit uitgangen
verbinden!
⇒ geen wired-AND
DEP (22-23)
1.114
NAND (of NOR) completeness
1. Inleiding &
basics
Eender welke logische functie, kan gemaakt worden met
NAND gates.
Maar 1 poort nodig?
❑ Bv:
Zou kunnen, maar leidt wel
❑
➢ INV:
➢ AND:
➢ (N)OR:
tot grotere schakelingen…
DEP (22-23)
1.115
Complexere functies met NAND / NOR / INV
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Fysische
eigenschappen
❑
AND-OR-INVert (AOI)
➢ bv.:
b
a
xy
❑
f
z
5 ingangen
4+2+4+2+4 = 16
transistoren
OR-AND-INVert (OAI)
➢ bv.:
b
Kan dat beter?
a
xy
f
z
DEP (22-23)
1.116
Nog meer complexe CMOS poorten? CMOS
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Fysische
eigenschappen
❑
AND-OR-INVert (AOI)
➢ bv.:
b
a
b
a
xy
f
z
y
x
z
5 ingangen
16 transistors
f
a
x
y
b
z
❑
Probeer zelf: OR-AND-INVert (OAI)
5 ingangen
10 transistors
DEP (22-23)
1.117
Mogelijke PUN’s
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
Enkel pMOS ontwerpen
➢
VDD
nMOS volgt uit pMOS: parallel wordt serie en omgekeerd…
VDD
X
VDD
X
Y
X
Z
Y
Y
X’ AND (Y’ OR Z’)
X’ AND Y’
X’ OR Y’
DEP (22-23)
1.118
XOR in CMOS
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
VDD
X XOR Y
= ((NOT X) AND Y) OR (X AND (NOT Y))
❑
❑
Eerst PUN
Overeenkomstig PDN
➢
❑
parallel ↔ serie
X
X’
Y’
Y
Ook 2 NOT-poorten nodig
x
y
x⊕y
0
0
0
0
1
1
1
0
1
1
1
0
X
Y’
X’
Y
Play the
nandgame.com:
‘Xor’
DEP (22-23)
1.119
Oefening
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
Implementeer 𝑋 = 𝐴 + 𝐵(𝐶 + 𝐷𝐸)
in één CMOS-poort.
➢
PUN:
▪ 𝑋 = 1 als 𝐴 + 𝐵 𝐶 + 𝐷𝐸 = 0
➢
PDN
▪ parallel ↔ serie
DEP (22-23)
1.120
Oefening
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
Exercise 1.73: Implementeer een majority gate met 3
ingangen in 1 CMOS poort.
➢ Een majority gate is één poort die hoog wordt als meer dan
de helft van haar ingangen hoog zijn.
DEP (22-23)
1.121
Extra oefeningen (integratie les 2,3,4)
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
❑
Z = NOT (a OR (b AND c))
T = NOT (a AND (b OR c))
Examen
Voor elke opgave:
1.
Implementeer van basis INV, NAND, NOR poorten (enkel gebruik
makend van de a, b en c ingang – pas na les 4)
2.
Implementeer van basis enkel NAND poorten
3.
Implementeer als 1 enkele logische poort (je mag veronderstellen dat
je a, b en c, en a’, b’ en c’ als ingang ter beschikking hebt)
➔ Vergelijk het aantal transistoren dat je nodig hebt met methode 1, 2 en 3.
DEP (22-23)
1.12
2
Play the nandgame.com
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
Van transistor (of relay) tot
processor!
❑
Standard game: gebruikt relays.
Maak eerst NAND poort met 2
relay’s (zie rechts)
➢ Vervolledig dan de andere levels
met je NAND poort
➢
▪ Maak level “Invert” tot en met “Xor”
❑
En/of: optional levels op basis
van transistoren
➢
Maak NAND, INV en NOR hier, dan
verder van XOR in normale game
Play the
nandgame.com:
DEP (22-23)
1.123
Andere veelgebruikte poorten
1. Inleiding &
basics
▪
▪
▪
▪
Doelstellingen
Voorkennis
Organisatie
Abstractieniveaus
▪ Getalsystemen
⇨ Digitale poorten
• Logische
poorten
• Implementeerbare poorten
• Complexe
functies /
poorten
❑
❑
❑
❑
❑
Buffer
f = x = (x’)’
≡
AND-poort
f = xy = ((xy)’)’
≡
OR-poort
f = x + y = ((x + y)’)’
≡
XOR-poort (≡ bits verschillend?)
f = x ⊕ y = xy’ + x’y
≡
= ((x’+y)(x+y’))’
XNOR-poort (≡ bits dezelfde?)
f = (x ⊕ y)’ = xy + x’y’
= ((x’+y’)(x+y))’
≡
OAI
OAI
DEP (22-23)
1.124
Relevante oefeningen van boek voor deel 1
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Exercises 1.9-1.36
❑ Exercises 1.52-1.61, 1.66,
❑ Exercises 1.71-1.77, 1.84-1.88
❑ Exercises 5.32-5.46
❑
DEP (22-23)
1.12
5
1. Inleiding &
basics
⇨ Doelstellingen
▪ Voorkennis
▪ Organisatie
▪ Abstractieniveaus
▪ Getalsystemen
▪ Digitale poorten
Rest van dit vak:
Hoe zorgen dat we
kunnen rekenen in die
Ontwerp van Digitale schakelingen
getalsystemen,
gebruikt makend van
• Abstractie-niveaus
• Getalsystemen & Digitale poorten
de kracht van de
digitale poorten!
Inhoud cursus
1
22
Inleiding
& basics
(L1-2)
• Booleaanse algebra
Combina- • Van logica naar gates
• Verilog
• Fysische implementatie
• Sequentieel&timing
Sequen- • FSM’s
• Verilog
tieel
• ASM’s and FSMD’s
• Van RTL tot ASIC of FPGA
torisch
(L3-6)
3
(L7-11)
44
Processoren
(L12-L17)
• Van ISA’s…
• …naar complex programs
• Single cycle processor
• Processor verbeteringen:
pipelining, parallelism &
caching
NAND
toTrends
Tetris!
• (L18)
en Qn&A
Download