Title: Inhoudstafel
1Inhoudstafel
- Inleiding
- De basis van digitaal ontwerp
- Combinatorische schakelingen
- Sequentiële schakelingen
- Niet-programmeerbare processoren
- Programmeerbare processoren
- Hardware-beschrijvingstalen
2Digitaal ontwerp
Ontwerppad Digitale data Boole-algebra Logische
poorten FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Een voorbeeld FPGA
3Digitaal ontwerp in grote lijnen
- Ontwerppad
- Specificatie
- Synthese
- Bibliotheek
- Analyse
- Digitale data
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
Specificatie
Bibliotheek
Synthese
Documentatie
Analyse
- Documentatie
- handleiding gebruikers
- handleiding hersteller
- documentatie voor verdere ontwikkelingen
4Specificatie
- Ontwerppad
- Specificatie
- Synthese
- Bibliotheek
- Analyse
- Digitale data
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- beschrijf de functionaliteit,inclusief de
interface(interactie met de omgeving) - Beschrijving
- in de natuurlijke taal? dikwijls niet eenduidig
- met een blokschema
- Dikwijls een onvolledige beschrijving
- Niet altijd duidelijk wat mogelijk is en wat niet
- Wordt vervolledigd/aangevuld later in het
ontwerpproces - Maakt dikwijls reeds implementatiebeslissingen
die onnodige beperkingen opleggen aan het ontwerp
5Synthese
- Ontwerppad
- Specificatie
- Synthese
- Bibliotheek
- Analyse
- Digitale data
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- vertaling van een specificatie op eenhoog
abstractieniveau naareen lager niveau,
waarbijbeslissingen i.v.m. deimplementatie
genomen worden - xy ? 16-bit ripple-carry adder 2 registers
- Verschillende niveaus
- Systeemsynthese(bouwblokken processoren,
geheugen, ASICs) - Architectuursynthese (met RTL-componenten
optellers, tellers, schuifregisters) - Sequentieel ontwerp (met poorten en flip-flops)
- Combinatorisch ontwerp (met poorten)
- Circuit-ontwerp (met transistoren)
- Fysisch ontwerp (met halfgeleideroppervlakken)
6Bibliotheek van componenten
- Ontwerppad
- Specificatie
- Synthese
- Bibliotheek
- Analyse
- Digitale data
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Ontwerpen evolueren (geen revolutie)
- Hergebruik componenten economischzeer belangrijk
- Ontbrekende componentenkopen/ontwerpen
- Op de verschillende niveaus
- Processor, ook specifieke (FFT, convolutie, )
- Opteller, teller, (RTL-niveau)
- Logische poort
- Transistor
- Trend naar bibliotheken op hoog niveauwegens
steeds hogere integratieniveaus - Wet van Moore transistoren 2 per 1824
maanden( 220 106 op 3040 jaar)
7Analyse van het ontwerp
- Ontwerppad
- Specificatie
- Synthese
- Bibliotheek
- Analyse
- Digitale data
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- test of het ontwerp voldoetaan zijn
specificaties - Na elke synthesestap!
- Wat wordt getest?
- Functionaliteit doet het wat het moet doen?
- Kostprijs oppervlakte, pinnen
- Vermogenverbruik C f V2 (in 17 jaar
1000) - C ? chipgrootte ? (0,25 cm2 in 1983 4 cm2 in
2000) - f ?? (1 MHz in 1983 1 GHz in 2000)
- V ? (5 V in 1983 1,5 V in 2000)
- Snelheid vertraging, throughput (
resultaten/s), ontwikkelingstijd - Testbaarheid kunnen alle fouten ontdekt worden
via testvectoren?
8Digitaal ontwerp
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Getallen digitaal voorstellen
- Rekenen met binaire natuurlijke getallen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Booleaanse algebra
- Logische poorten
- Een voorbeeld FPGA
9Getallen digitaal voorstellen
MSB
LSB
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- radix r (10 voor decimale notatie)
- cijfer iteratief
- Bijv. het getal 1234,5610 (in decimale notatie)
- 1103 2102 3101 4100 510-1 610-2
- 11000 2100 310 41 50,1 60,01
10Andere radixen
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Binair r 2, di 0..1bijv. 1011,0112
11,37510 - 123 022 121 120 02-1 12-2 12-3
- 18 12 11 10,25 10,125
- Octaal r 8, di 0..7bijv. 7654,328
4012,4062510 - 783 682 581 480 38-1 28-2
- 7512 664 58 41 31/8 21/64
- Hexadecimaal r 16, di 0..9 A..Fbijv.
F9D8,7616 63960,460937510 - 15163 9162 13161 8160 716-1 616-2
- 154096 9256 1316 8 7/16 6/256
11Radix-conversie r1 r2
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Als r1 r0p en r2 r0q q cijfers (r1) pq
cijfers (r0) p cijfers (r2)bijv. hex (r1
24) octaal (r2 23) - Anders
- bepaal het getal D van de voorstelling Dr1 ,
- bepaal de cijfers van D voor r2
988B16 1001100010001011 1001100010001011
1142138
12Digitaal ontwerp
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Getallen digitaal voorstellen
- Rekenen met binaire natuurlijke getallen -
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Booleaanse algebra
- Logische poorten
- Een voorbeeld FPGA
13Binaire optelling aftrekking
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Engelse benaming
- overdracht carry
- lenen borrow
Binaire aftrekking
14Binaire vermenigvuldiging
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
1 0 1 1 0
1 0 1
1 0 1 1 0
0 0 0 0 0
1 0 1 1 0
1 1 0 1 1 1 0
- Vermenigvuldiging via herhaaldeoptelling
schuifoperatie cycli bits van
vermenigvuldiger - Er bestaan snellere implementaties
15Binaire deling
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
1 0 1 1 1 0 1 0
1 1 1 0
1 1 1 0
1 1 0 1
1 0 0 1 0 1 0
1 1 1 0
1 0 0 1 0
0 0 0 0
1 0 0 1 0
1 1 1 0
1 0 0
- Deling via herhaalde aftrekking
schuifoperatie cycli bits van het
resultaat - Meestal deze implementatie
16Digitaal ontwerp
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Getallen digitaal voorstellen
- Rekenen met binaire natuurlijke getallen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Booleaanse algebra
- Logische poorten
- Een voorbeeld FPGA
17Sign-Magnitude-voorstelling
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Elk getal bestaat uit twee deleneen teken een
grootte - Decimaal voorbeeld 12310 en -12310
- Generische voorstelling B lts,mgt
- Binaire getallen
- MSB teken (0 positief, 1
negatief)bijv. 011002 1210 en 111002 -1210 - Een sign-magnitude-getal met n bitsligt tussen
-(2n-1 - 1) en (2n-1 - 1)met twee
voorstellingen voor nul000...0 en 100...0
18Optelling aftrekking
Begin optelling
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
Vele testen? traag duur? weinig gebruikt
19Twee-complement voorstelling
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Het (cijfer-)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
- Het radix-complement D van een getal D met radix
r en m cijfers is D rm - D - het 10-complement van 12310 is 103 - 12310
87710 - het 2-complement van 11012 is24 - 1310 310
00112 - D D 1 (bewijs in boek)
- Dit gebruiken we om het 2-complement te berekenen!
20Twee-complement voorstelling
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Als slechts n bits gebruikt worden, dan
- rn ? 0 D rn - D Þ D ? -D
- D kan dus gebruikt worden als binairevoorstellin
g van -D met n bits - Bijv. bij gebruik van 4 bits
- D 310 00112 ? D 11002 00012 11012
- -D -310 kan voorgesteld worden als 11012
- Afspraak nodig om 11012 te kunnen
interpreterenis het -310 (2-complement) of 1310
(unsigned)? - Slechts één voorstelling voor nulD 00002 ? -D
? D 11112 00012 100002 - Een 2-complement getal van n bits kan een waarde
van -2n-1 tot en met 2n-1 - 1 hebben
21Vergelijking
Decimaal 2-complement Sign-magnitude
-8 1000 -
-7 1001 1111
-6 1010 1110
-5 1011 1101
-4 1100 1100
-3 1101 1011
-2 1110 1010
-1 1111 1001
0 0000 1000 0000
1 0001 0001
2 0010 0010
3 0011 0011
4 0100 0100
5 0101 0101
6 0110 0110
7 0111 0111
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
22Optelling aftrekking
Begin optelling
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
Br B1 B2
Einde
- Eenvoudige implementatie, zelfs voor aftrekking
- Weinig bewerkingen en geen testen
- Eenvoudige hardware beschikbaar voor 1-complement
(B2) - Geen extra hardware nodig voor 1(gebruik LSB
carry-in)
23Optelling aftrekking
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
24Modulus
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- rest bij een deling
- Als b 2n dan is dit hetzelfde als den
minstbeduidende bits overhouden - 1110101 mod 1000 101
a b a mod b
gt 0 gt 0 a rem b
gt 0 lt 0 (a rem b) b
lt 0 gt 0 (a rem b) b
lt 0 lt 0 a rem b
a b rem mod
5 3 2 2
5 -3 2 -1
-5 3 -2 1
-5 -3 -2 -2
25Digitaal ontwerp
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Getallen digitaal voorstellen
- Rekenen met binaire natuurlijke getallen
- Negatieve getallen
- Niet-gehele getallenvaste/vlottende komma
(fixed/floating point) - Andere codes
- Booleaanse algebra
- Logische poorten
- Een voorbeeld FPGA
26Getallen met vaste komma
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- fixlti,fgt 1101,010 ? i 4, f 3
- puur geheel f 0
- puur fractioneel i 0
- bits na een bewerking
- fixlti1,f1gt fixlti2,f2gt fixlti,fgt? i
max(i1,i2) 1 f max(f1,f2) - fixlti1,f1gt ? fixlti2,f2gt fixlti,fgt? i i1 i2
f f1 f2
27Getallen met vlottende komma
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- float ltf,egt
- Genormaliseerde fractieR gt mantissa 1 of
1 gt mantissa 1/R - IEEE-formaat R 2, bias B 2e-1 - 1
- Enkelvoudige precisie e 8, f 23, B 127
- Dubbele precisie e 11, f 52, B 1023
mantissa
s exp. fractie
1 e f bits
niet-genormaliseerde F
verborgen bit
28Rekenen met vlottende komma
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Optelling 0,24?101 0,99?102
- Maak exponenten gelijk 0,02?102 0,99?102
- Tel mantissas op 1,01?102
- Normaliseer 0,10?103
- Vermenigvuldiging 0,11?101 ? 0,12?102
- Vermenigvuldig mantissas tel exponenten op
0,0132?103 - Normaliseer (hooguit 1 cijfer) 0,13?102
29Digitaal ontwerp
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Getallen digitaal voorstellen
- Rekenen met binaire natuurlijke getallen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes BCD, ASCII, ECC,
- Booleaanse algebra
- Logische poorten
- Een voorbeeld FPGA
30Binary Coded Decimal
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
Decimaal cijfer BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
31American Standard Code for Information Interchange
- Ontwerppad
- Digitale data
- Getallen
- Binair rekenen
- Negatieve getallen
- Niet-gehele getallen
- Andere codes
- Boole-algebra
- Logische poorten
- FPGA-ontwerp
b3b2b1b0 b6b5b4 b6b5b4 b6b5b4 b6b5b4 b6b5b4 b6b5b4 b6b5b4 b6b5b4
b3b2b1b0 000 001 010 011 100 101 110 111
0000 NUL DLE SP 0 _at_ P p
0001 SOH DC1 ! 1 A Q a q
0010 STX DC2 2 B R b r
0011 ETX DC3 3 C S c s
0100 EOT DC4 4 D T d t
0101 ENQ NAK 5 E U e u
0110 ACK SYN 6 F V f v
0111 BEL ETB 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB J Z j z
1011 VT ESC K k
1100 FF FS , lt L \ l
1101 CR GS - M m
1110 SO RS . gt N n
1111 SI US / ? O _ o DEL
32Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Definitie via axiomas
- Theoremas
- Booleaanse functies
- Canonische standaard vorm
- 16 functies van 2 variabelen
- Logische poorten
- Een voorbeeld FPGA
33Axiomatische definitie vanBooleaanse algebra
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Axioma 1 (Closure)
- B is gesloten t.o.v. (OR) x y ? B
- B is gesloten t.o.v. (AND) x y ( xy) ? B
- Axioma 2 (Eenheidselement)
- B heeft een eenheidselement voor ,0 genoemd x
0 x - B heeft een eenheidselement voor ,1 genoemd x
1 x - Axioma 3 (Commutativiteit)
- B is commutatief t.o.v. x y y x
- B is commutatief t.o.v. x y y x
34Axiomatische definitie vanBooleaanse algebra
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Axioma 4 (Distributiviteit)
- is distributief t.o.v. x (y z) (x y)
(x z) - is distributief t.o.v. x (y z) (x y)
(x z) - Axioma 5(Complementair element NOT operator)
- ? x ? B, ? x ? B x x 1 en x x 0
- Axioma 6 (Cardinality bound)
- B heeft minstens twee elementen
35Verschil met gewone algebra
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- In booleaanse algebra bestaat geen inverse
bewerking voor de optelling (OR) of de
vermenigvuldiging (AND)? aftrekking of deling
bestaan niet - In gewone algebra is niet distributief t.o.v.
5 (2 4) ? (5 2) (5 4) - In gewone algebra geldt niet datx x 1 en
x x 0
36Booleaanse algebra met 2 waarden
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
x x
0 1
1 0
NOT-operator
AND-operator AND-operator AND-operator
x y x ? y
0 0 0
0 1 0
1 0 0
1 1 1
OR-operator OR-operator OR-operator
x y x y
0 0 0
0 1 1
1 0 1
1 1 1
gedefinieerd met waarheidstabellen
37Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Definitie via axiomas
- Theoremas
- Booleaanse functies
- Canonische standaard vorm
- 16 functies van 2 variabelen
- Logische poorten
- Een voorbeeld FPGA
38Theoremas
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Te bewijzen via
- axiomas (meerdere malen toepassen)
- waarheidstabel (mogelijkheden opsommen)
- Elk theorema heeft een duaal theorema
- Vervang elke OR door een AND en vice-versa
- Vervang elke 0 door 1 en vice-versa
- Theorema 1 idempotency
- x x x
- Duaal x x x
- Theorema 2
- x 1 1
- Duaal x 0 0
39Theoremas
y x y ? x y ? x x
0 0 0 0
0 1 0 1
1 0 0 0
1 1 1 1
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Theorema 3 absorptie
- (y x) x x
- Duaal (y x) x x
- Theorema 4 involutie
- (x) x
- Theorema 5 associativiteit
- (x y) z x (y z)
- Duaal (x y) z x (y z)
- Theorema 6 wet van De Morgan
- (x y) x y
- Duaal (x y) x y
40Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Definitie via axiomas
- Theoremas
- Booleaanse functies
- Canonische standaard vorm
- 16 functies van 2 variabelen
- Logische poorten
- Een voorbeeld FPGA
41Booleaanse functies
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- uitdrukking van binaire variabelen en de
bewerkingen AND, OR en NOT - Bijv. F1 xy xyz xyz
- F1 1 als x 1 en y 1 of als x 1, y 0
enz 1 of als x 0, y 1 en z 1 anders F1
0 - F1 bestaat uit 3 AND-termen en 1 OR-term
- Prioriteit van bewerkingen
- haakjes
- NOT
- AND
- OR
42Booleaanse functies
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Rechtstreekse realisatie
- binaire variabelen ingangssignalen
- bewerking poort
- Bijv. F1 xy xyz xyz
x
y
z
AND
OR
F1
NOT
43Waarheidstabel van een functie
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- tabel met de functiewaarde(n) vooralle
combinaties van ingangswaarden - n (ingangs)variabelen ? 2n rijen
- Bijv. F1 xy xyz xyz
x
y
z
Rij x y z F1
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1
F1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1
44Waarheidstabel van een functie
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Nummering van de rijen
- Standaard-codenatuurlijke opvolging
- Gray-code2 opeenvolgende rijenverschillen
maarin 1 variabele - Opmerkingfunctie verandert niet!
45Complementaire functie
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Alternatieve realisatie F1 (F1)
- F1 (xy xyz xyz) (xy)(xyz)(xyz) (
De Morgan) (x y)(x y z)(x y
z) (De Morgan)
46Algebraïsche manipulatie
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- F1 xy xyz xyz xy xyz xyz
xyz (absorptie) xy x(yy)z
xyz (distributiviteit) xy x1z
xyz (complement) xy xz xyz (identiteit)
xy xyz xz xyz (absorptie) xy xz
(xx)yz (distributiviteit) xy xz
1yz (complement) xy xz yz (identiteit) - Goedkoper resultaat, maar niet evident welke
combinatie van theoremas hiervoor nodig zijn
47Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Definitie via axiomas
- Theoremas
- Booleaanse functies
- Canonische standaard vorm
- 16 functies van 2 variabelen
- Logische poorten
- Een voorbeeld FPGA
48Mintermen
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Een minterm is een Booleaanse functie die waar is
voor slechts voor één enkele rij van de
waarheidstabel
Rij x y z minterm notatie
0 0 0 0 xyz m0
1 0 0 1 xyz m1
2 0 1 0 xyz m2
3 0 1 1 xyz m3
4 1 0 0 xyz m4
5 1 0 1 xyz m5
6 1 1 0 xyz m6
7 1 1 1 xyz m7
49Canonische vorm met mintermen
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Een 1-minterm is een minterm waarvoor de functie
1 iseen 0-minterm is een minterm waarvoor de
functie 0 is - F1 xy xyz xyz
Rij x y z F1 1-minterm
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1 m3 xyz
4 1 0 0 0
5 1 0 1 1 m5 xyz
6 1 1 0 1 m6 xyz
7 1 1 1 1 m7 xyz
- Elke Booleaanse functie kan beschreven worden als
de som van zijn 1-mintermen F1 xyz xyz
xyz xyz m3 m5 m6 m7 ?(3,5,6,7)
50Maxtermen
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Een maxterm is een Booleaanse functie die waar is
voor alle rijen van de waarheidstabel behalve één
Rij x y z maxterm notatie
0 0 0 0 xyz M0
1 0 0 1 xyz M1
2 0 1 0 xyz M2
3 0 1 1 xyz M3
4 1 0 0 xyz M4
5 1 0 1 xyz M5
6 1 1 0 xyz M6
7 1 1 1 xyz M7
51Canonische vorm met maxtermen
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Een 0-maxterm is een maxterm waarvoor de functie
0 iseen 1-maxterm is een maxterm waarvoor de
functie 1 is - F1 xy xyz xyz
Rij x y z F1 0-maxterm
0 0 0 0 0 M0 xyz
1 0 0 1 0 M1 xyz
2 0 1 0 0 M2 xyz
3 0 1 1 1
4 1 0 0 0 M4 xyz
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1
- Elke Booleaanse functie kan beschreven worden als
het product van zijn 0-maxtermenF1
(xyz)(xyz)(xyz)(xyz) M0M1M2M4
?(0,1,2,4)
52Standaard vorm
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- In de canonische vorm is elke functie een som van
1-mintermen of een product van0-maxtermen - Elke minterm of maxterm bevat alle variabelen ?
dure implementatie - De standaard vorm is een som van producttermen of
een product van somtermen met het kleinst aantal
variabelen - Een productterm of somterm moet niet altijd alle
variabelen bevatten? goedkoper qua implementatie
53Voorbeelden van standaard vorm
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- F2 xyz xyz xyz xyz xy(z z)
xy(z z) xy xy x(y y) x - F3 xyz xyz xyz xyz xyz xyz
xyz xyz xyz xyz xyz xyz xy(z
z) x(y y)z (x x)yz xyz xy xz
yz xyz
54Minimale implementatie
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- De standaard vorm is de goedkoopste implementatie
in twee lagen - F2 xy xz yz
- Een niet-standaard vorm met meer dan twee lagen
kan goedkoper zijn - F2 x(y z) yz
55Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Definitie via axiomas
- Theoremas
- Booleaanse functies
- Canonische standaard vorm
- 16 functies van 2 variabelen
- Logische poorten
- Een voorbeeld FPGA
56De 16 functies van 2 variabelen
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
- Waarom 16 functies?
- 2 binaire variabelen? 22 4 mogelijke
ingangscombinaties - Elke ingangscombinatie heeft 2 mogelijke
functiewaarden (0 en 1)? 24 16 mogelijke
functies
x y
0 0
0 1
1 0
1 1
F0 F1 F2 F15
0 0 0 1
0 0 0 1
0 0 1 1
0 1 0 1
57De 16 functies van 2 variabelen
Naam Symbool Functiewaarde voor x,y Functiewaarde voor x,y Functiewaarde voor x,y Functiewaarde voor x,y Uitdrukking
Naam Symbool 00 01 10 11 Uitdrukking
Zero 0 0 0 0 F0 0
AND xy 0 0 0 1 F1 xy
Inhibition x/y 0 0 1 0 F2 xy
Transfer 0 0 1 1 F3 x
Inhibition y/x 0 1 0 0 F4 xy
Transfer 0 1 0 1 F5 y
XOR xÅy 0 1 1 0 F6 xyxy
OR xy 0 1 1 1 F7 xy
NOR xy 1 0 0 0 F8 (xy)
XNOR 1 0 0 1 F9 xyxy
Complement y 1 0 1 0 F10 y
Implication 1 0 1 1 F11 xy
Complement x 1 1 0 0 F12 x
Implication 1 1 0 1 F13 xy
NAND xy 1 1 1 0 F14 (xy)
One 1 1 1 1 F15 1
- Ontwerppad
- Digitale data
- Boole-algebra
- Axioma's
- Theorema's
- Functies
- Canonische standaard vorm
- 16 functies
- Logische poorten
- FPGA-ontwerp
58Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Niet-functionele eigenschappen
- Verbindingen
- Implementatietechnologieën
- Een voorbeeld FPGA
59Logische waarden voorstellen
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- Welke fysische waarden worden gebruikt om
- de twee logische waarden voor te stellen?
- Een Low een High fysisch bereik,
- Meestal 2 spanningen VL VH
- Andere mogelijkheden
- stromen,
- optische reflectie,
- druk,
- afgebeeld op de logische niveaus
L H
Positieve logica 0 1
Negatieve logica 1 0
60Actief laag signaal
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- het signaal is actief als het 0 is
- Meestal aangeduid als , X of X
- Actief zijn is een interpretatie van een
signaal, niet een niveau! - RST 0 reset toestel
- actief laag OR? actief hoog AND
- Waarom actief lage signalen?
- Afgesloten verbindingen zijn meestal 1 als ze
niet aangestuurd ( niet actief) zijn - Wired-or functionaliteit bij een open-drain
implementatie (cfr. transparant 2-95)
X Y F
1 1 1
1 0 0
0 1 0
0 0 0
61Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Basispoorten ( 2 ingangen)
- Meerdere ingangen
- Meerdere operatoren
- Niet-functionele eigenschappen
- Verbindingen
- Implementatietechnologieën
- Een voorbeeld FPGA
62Schakelaars
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- Logische poort meestal opgebouwd uit schakelaars
met twee standen - Elektrische weerstand 0 ? ?
- Drukventiel open ? gesloten
- Licht doorlaten wel ? niet
- Werking afhankelijk van stuursignaal
63MOS-transistor als schakelaar
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- NMOS transistor (boek P-transistor)
- VGS lt VT
- VGS gt VT
- PMOS transistor (verwissel n?p, S?D)
- VGS lt VT
Gate(poort)
Metaal
Isolator
Source
Drain
n
n
p
Halfgeleider
Geleidend pad als VGS gt VT
nootVGS VT lt 0
64Inverter
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- F x
- 2 transistoren (afgekort tors)
- Relatieve vertragingstijd 1
x
F
65NAND-poort
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- F (xy)
- 4 transistoren
- Relatieve vertragingstijd 1,4
F 0
- Opmerking
- Dit is een NOR-poort voor negatieve logica!
66NOR-poort
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- F (x y)
- 4 transistoren
- Relatieve vertragingstijd 1,4
F
x
y
F 0
67Andere basispoorten
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- Buffer of driver (meer vermogen)
- F x (x) ? 4 tor vertraging 2
- AND-poort
- F xy ((xy))? 6 tor vertraging 2,4
- OR-poort
- F x y ((x y))? 6 tor vertraging
2,4 - XOR-poort
- F x ? y xy xy ((x y) (x y))?
12 tor (cfr. OAI) vertraging 3,2 - XNOR-poort
- F (x ? y) xy xy ((x y)(x
y))? 12 tor (cfr. OAI) vertraging 3,2
x
F
x
F
y
x
F
y
x
F
y
x
F
y
68Waarom enkelinverterende basispoorten?
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
Buffer
- NMOS transistor is een slechte pull-up
- slechts geleidend als VGS gt VT? uitgangsspanning
daalt met VT na elke tor - NMOS enkel in onderste tak( kan enkel goed L
doorgeven) - PMOS transistor is een slechte pull-down
- PMOS enkel in bovenste tak( kan enkel goed H
doorgeven)
69Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Basispoorten
- Meerdere ingangen (fan-in)
- Meerdere operatoren
- Niet-functionele eigenschappen
- Verbindingen
- Implementatietechnologieën
- Een voorbeeld FPGA
70Meerdere ingangen (fan-in)
VCC
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
y
x
z
x
F
y
F
z
z
y
x
- 3-input NAND F (xyz)
- 6 transistoren
- Relatieve vertragingstijd 1,8
VSS
71Relatieve kostprijs vertraging
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- Relatief t.o.v. inverter (2 transistoren)
- Kostprijs
- Inverterende poort (INV, NAND, NOR)
- fan-in (aantal ingangen)
- Niet-inverterende poort (AND, OR)
- fan-in 1
- Vertraging
- Inverterende poort (INV, NAND, NOR)
- 0,6 fan-in 0,4
- Niet-inverterende poort (AND, OR)
- 1,6 fan-in 0,4
72Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Basispoorten
- Meerdere ingangen
- Meerdere operatoren
- Niet-functionele eigenschappen
- Verbindingen
- Implementatietechnologieën
- Een voorbeeld FPGA
73Meerdere operatoren in 1 poort2-wide 2-input
AND-OR-Invert
VCC
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
F 0 als ( x 1 en y 1 ) of ( z 1 en w
1 )
z
w
x
y
F
y
w
- 2-wide 2-input AOI
- F (xy zw)
- 8 transistoren
- Relatieve vertragingstijd 2,2
x
z
VSS
74Meerdere operatoren in 1 poort 2-wide 2-input
OR-AND-Invert
VCC
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Basispoorten
- Complexe poorten
- Niet-functioneel
- Verbindingen
- Technologie
- FPGA-ontwerp
F 0 als ( x 1 of y 1 ) en ( z 1 of w
1 )
y
w
x
z
F
z
w
- 2-wide 2-input OAI
- F ((x y) (z w))
- 8 transistoren
- Relatieve vertragingstijd 2,2
y
x
VSS
75Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Niet-functionele eigenschappen
- Spanningsniveaus
- Tijdsgedrag
- Fan-out
- Vermogenverbruik
- Verbindingen
- Implementatietechnologieën
- Een voorbeeld FPGA
76Spanningsniveaus
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Logisch niveau ? spanningsgebied
- Voordeel
- minder gevoelig aan procesvariaties, die de
karakteristieken van componenten veranderen - minder gevoelig aan omgevingsvariaties, zoals
temperatuur, voedingsspanning,
Logisch niveau Spanningsgebied Spanningsgebied TTL TTL
Logisch niveau van tot van tot
L VSS VIL 0 V 0,8 V
H VIH VCC 2 V 5 V
77Ruismarge
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- spanningsmarge beschikbaar door een kleiner
gebied van uitgangsspanningente gebruiken dan
toegelaten
Uitgang
Ingang
VCC
VCC
H
H
VOH
marge
VIH
VIL
L
marge
VOL
L
VSS
VSS
78Onlogische spanningen
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Tijdens de verandering van logisch niveau
ontstaan spanningen die niet met een logisch
niveau overeenkomen! - Bijv. TTL-inverter
Vuit
5
- Transferfunctie afhankelijk van
- productieproces
- omgevingsfactoren
H
2,4
0,4
L
0
Vin
0
0,8
2
5
H
L
79Schmitt-trigger-ingangen
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Bijkomende problemen voor trage signalen
- Schmitt-trigger-ingangenhebben een hysteresis
Vin
0
t
80Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Niet-functionele eigenschappen
- Spanningsniveaus
- Tijdsgedrag
- Fan-out
- Vermogenverbruik
- Verbindingen
- Implementatietechnologieën
- Een voorbeeld FPGA
81Effect capacitieve belasting
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- L ? H overgang
- H ? L overgang
82Effect capacitieve belasting
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Snelle overgangen als
- uitgangsimpedantie RO zo klein mogelijk? grote
stromen ? groot vermogenverbruik - C (van draad ingang) zo klein mogelijk?
vermijdt lange verbindingen - ingangsimpedantie RI zo groot mogelijk
- Daarom RTL-technologie niet populair
- vervang bovenste bloktransistoren (PUN) dooreen
weerstand R - beperk vermogenverbruik? RO R redelijk groot?
grote stijgtijden
83Vertragingstijd
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
90 of VIH
50 VT
10 VIL
84Vertragingstijd
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Wordt beïnvloed door de stijg/daaltijd en dus
door de capacitieve belasting
in
in
tPLH
tPLH
uit
uit
kleine stijgtijd
grote stijgtijd
85Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Niet-functionele eigenschappen
- Spanningsniveaus
- Tijdsgedrag
- Fan-out
- Vermogenverbruik
- Verbindingen
- Implementatietechnologieën
- Een voorbeeld FPGA
86Fan-out
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- maximum aantal ingangen die aan één uitgang
kunnen gekoppeld worden - Stroomgedreven technologieën(TTL, ECL, ...)
- Fan-out min(IOH/IIH, IOL/IIL)
87Fan-out
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Ladinggedreven technologieën (CMOS)
- II 0 ? IO gebruiken voor op/ontladen C
- fan-out ingangscapaciteit
- capaciteit verbindingen
- fan-out bepaalt maximale schakelfrequentie
- I C ? dV/dt C ? f ? DV ? f I/(C ? DV)
- bijv. voor Xilinx Virtex
- 10 pF ingangscapaciteit, IOmax 20 mA,0,8 pF/cm
PCB, Vcc 3,3 V - Voor fan-out 3 10 cm PCB-dradenC 3 ? 10
0,8 ? 10 38 pFschakelfrequentie I/(C ?
DV) 20 mA/(38 pF ? 3,3 V) 160 MHz
88Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Niet-functionele eigenschappen
- Spanningsniveaus
- Tijdsgedrag
- Fan-out
- Vermogenverbruik
- Verbindingen
- Implementatietechnologieën
- Een voorbeeld FPGA
89Vermogenverbruik
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Spanningen
- Tijdsgedrag
- Fan-out
- Vermogen
- Verbindingen
- Technologie
- FPGA-ontwerp
- Verbruikte vermogen moet worden
- geleverd kostprijs energie, levensduur
batterijen - gedissipeerd warmte moet afgevoerd worden
- TTL verbruikt voortdurend vermogen
- P VCC ? ICC ? 10mW/poort ? 1 miljoen poorten
10 KW! - Gebruikt bij hoge spanningen/stromen (bussen, )
- CMOS verbruikt enkel bij het schakelen
- P C ? f ? V2 vermits I C ? f ? V
- trend sterke stijging (cfr. transparant 2-7)
- Virtex P 38 pF ? 160 MHz ? (3,3 V)2 66
mW/pinals de helft van de 200 pinnen
gelijktijdig schakelen is er 6,6 W nodig voor de
externe pinnen - Microprocessoren 40W ? koeling!
- Nu een van de belangrijkste ontwerpbeperkingen!
90Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Verbindingen
- Bus
- als poort
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Niet-functionele eigenschappen
- Verbindingen
- Busverbinding
- Verbinding als poort
- Implementatietechnologieën
- Een voorbeeld FPGA
91Types verbindingen
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Verbindingen
- Bus
- als poort
- Technologie
- FPGA-ontwerp
- Traditioneel 1 aansturing van verbinding
- Meerdere aansturingen mogelijk bus(verbinding)
- Slechts 1 aansturing tegelijkertijd!? 3-state
buffers gebruiken
92Tri-state
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Verbindingen
- Bus
- als poort
- Technologie
- FPGA-ontwerp
- derde mogelijkheid, naast 0 en 1
- Z (hoog-impedant of zwevend) aan niets
verbonden - Een 3-state buffer laat toe om deuitgang los te
koppelen van zijn aansturing - Een implementatie
E Uit
0 Z
1 In
93Digitaal ontwerp
- Ontwerppad
- Digitale data
- Boole-algebra
- Logische poorten
- Functioneel
- Niet-functioneel
- Verbindingen
- Bus
- als poort
- Technologie
- FPGA-ontwerp
- Digitaal ontwerp in grote lijnen
- Gegevensvoorstelling
- Booleaanse algebra
- Logische poorten
- Functionele eigenschappen
- Niet-functionele eigenschappen
- Verbindingen
- Busverbinding
- Verbind