Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-22-20607H01L1
Digitaal ontwerp Digitaal ontwerp in grote lijnen
Gegevensvoorstelling Booleaanse algebra Logische poorten Een
voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische
poorten FPGA-ontwerp
Dia 3
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-32-30607H01L1
Digitaal ontwerp in grote lijnen Documentatie handleiding
gebruikers handleiding hersteller documentatie voor verdere
ontwikkelingen Specificatie Documentatie Bibliotheek Synthese
Analyse Ontwerppad Specificatie Synthese Bibliotheek Analyse
Digitale data Boole-algebra Logische poorten FPGA-ontwerp
Dia 4
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-42-40607H01L1
Specificatie =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 Specificatie Bibliotheek Synthese Analyse
Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data
Boole-algebra Logische poorten FPGA-ontwerp
Dia 5
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-52-50607H01L1
Synthese =vertaling van een specificatie op een hoog
abstractieniveau naar een lager niveau, waarbij beslissingen i.v.m.
de implementatie genomen worden: x+y 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) Specificatie Bibliotheek
Synthese Analyse Ontwerppad Specificatie Synthese Bibliotheek
Analyse Digitale data Boole-algebra Logische poorten
FPGA-ontwerp
Dia 6
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-62-60607H01L1
Bibliotheek van componenten Ontwerpen evolueren (geen revolutie):
Hergebruik componenten economisch zeer belangrijk Ontbrekende
componenten kopen/ontwerpen Op de verschillende niveaus: Processor,
ook specifieke (FFT, convolutie, ) Opteller, teller, (RTL-niveau)
Logische poort Transistor Trend naar bibliotheken op hoog niveau
wegens steeds hogere integratieniveaus Wet van Moore: #
transistoren 2 per 1824 maanden ( 2 20 10 6 op 3040 jaar)
Specificatie Bibliotheek Synthese Analyse Ontwerppad Specificatie
Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische
poorten FPGA-ontwerp
Dia 7
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-72-70607H01L1
Analyse van het ontwerp =test of het ontwerp voldoet aan zijn
specificaties Na elke synthesestap! Wat wordt getest?
Functionaliteit: doet het wat het moet doen? Kostprijs:
oppervlakte, # pinnen Vermogenverbruik: C f V 2 (in 17 jaar 1000) C
chipgrootte (0,25 cm 2 in 1983; 4 cm 2 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? Specificatie
Bibliotheek Synthese Analyse Ontwerppad Specificatie Synthese
Bibliotheek Analyse Digitale data Boole-algebra Logische poorten
FPGA-ontwerp
Dia 8
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-82-80607H01L1
Digitaal 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 Ontwerppad Digitale data Getallen Binair rekenen
Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra
Logische poorten FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-110607H01L1
Radix-conversie : r 1 r 2 Als r 1 = r 0 p en r 2 = r 0 q q cijfers
(r 1 ) pq cijfers (r 0 ) p cijfers (r 2 ) bijv. hex (r 1 = 2 4 )
octaal (r 2 = 2 3 ) Anders bepaal het getal D van de voorstelling D
r 1, bepaal de cijfers van D voor r 2 988B 16 1001|1000|1000|1011 =
1|001|100|010|001|011 114213 8 Ontwerppad Digitale data Getallen
Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes
Boole-algebra Logische poorten FPGA-ontwerp
Dia 12
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-120607H01L1 Digitaal
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 Ontwerppad
Digitale data Getallen Binair rekenen Negatieve getallen
Niet-gehele getallen Andere codes Boole-algebra Logische poorten
FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-160607H01L1 Digitaal
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 Ontwerppad
Digitale data Getallen Binair rekenen Negatieve getallen
Niet-gehele getallen Andere codes Boole-algebra Logische poorten
FPGA-ontwerp
Dia 17
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-170607H01L1
Sign-Magnitude-voorstelling Elk getal bestaat uit twee delen: een
teken & een grootte Decimaal voorbeeld: +123 10 en 123 10
Generische voorstelling: B = Binaire getallen MSB = teken (0 =
positief, 1 = negatief) bijv. 01100 2 = +12 10 en 11100 2 = 12 10
Een sign-magnitude-getal met n bits ligt tussen (2 n1 1) en +(2 n1
1) met twee voorstellingen voor nul: 000...0 en 100...0 Ontwerppad
Digitale data Getallen Binair rekenen Negatieve getallen
Niet-gehele getallen Andere codes Boole-algebra Logische poorten
FPGA-ontwerp
Dia 18
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-180607H01L1
Optelling & aftrekking Begin optelling Begin optelling Begin
aftrekking Begin aftrekking s 2 = s 2 Einde m 1 > m 2 neen m 1 =
m 2 neen s 1 = s 2 ja m r = m 1 m 2 s r = s 1 m r = m 1 m 2 s r = s
1 m r = m 2 m 1 s r = s 2 m r = m 2 m 1 s r = s 2 neen m r = m 1 +
m 2 s r = s 1 m r = m 1 + m 2 s r = s 1 ja m r = 0 s r = 0 m r = 0
s r = 0 ja Vele testen traag & duur weinig gebruikt Ontwerppad
Digitale data Getallen Binair rekenen Negatieve getallen
Niet-gehele getallen Andere codes Boole-algebra Logische poorten
FPGA-ontwerp
Dia 19
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-190607H01L1
Twee-complement voorstelling 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 123 10 is 876 10
het 1-complement van 1101 2 is 0010 2 Het radix-complement D* van
een getal D met radix r en m cijfers is D* = r m D het
10-complement van 123 10 is 10 3 123 10 = 877 10 het 2-complement
van 1101 2 is 2 4 13 10 = 3 10 = 0011 2 D* = D + 1 (bewijs in boek)
Dit gebruiken we om het 2-complement te berekenen! Ontwerppad
Digitale data Getallen Binair rekenen Negatieve getallen
Niet-gehele getallen Andere codes Boole-algebra Logische poorten
FPGA-ontwerp
Dia 20
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-200607H01L1
Twee-complement voorstelling Als slechts n bits gebruikt worden,
dan r n 0 & D* = r n D D* D D* kan dus gebruikt worden als
binaire voorstelling van D met n bits Bijv. bij gebruik van 4 bits
D = 3 10 = 0011 2 D* = 1100 2 + 0001 2 = 1101 2 D = 3 10 kan
voorgesteld worden als 1101 2 Afspraak nodig om 1101 2 te kunnen
interpreteren: is het 3 10 (2-complement) of 13 10 (unsigned)?
Slechts n voorstelling voor nul: D = 0000 2 D D* = 1111 2 + 0001 2
= 10000 2 Een 2-complement getal van n bits kan een waarde van 2 n1
tot en met 2 n1 1 hebben Ontwerppad Digitale data Getallen Binair
rekenen Negatieve getallen Niet-gehele getallen Andere codes
Boole-algebra Logische poorten FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-220607H01L1
Optelling & aftrekking Begin optelling Begin optelling B r = B
1 + B 2 Einde Eenvoudige implementatie, zelfs voor aftrekking:
Weinig bewerkingen en geen testen Eenvoudige hardware beschikbaar
voor 1-complement (B 2 ) Geen extra hardware nodig voor + 1
(gebruik LSB carry-in) Begin aftrekking Begin aftrekking B r = B 1
+ B 2 + 1 Ontwerppad Digitale data Getallen Binair rekenen
Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra
Logische poorten FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-240607H01L1 Modulus
=rest bij een deling: Als b = 2 n dan is dit hetzelfde als de n
minstbeduidende bits overhouden: 1110101 mod 1000 = 101 aba mod b
> 0 a rem b > 0< 0(a rem b) + b < 0> 0(a rem b) + b
< 0 a rem b abremmod 5 3 2 2 53 21 5 32 1 532 Ontwerppad
Digitale data Getallen Binair rekenen Negatieve getallen
Niet-gehele getallen Andere codes Boole-algebra Logische poorten
FPGA-ontwerp
Dia 25
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-250607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Getallen digitaal voorstellen Rekenen met binaire natuurlijke
getallen Negatieve getallen Niet-gehele getallen: vaste/vlottende
komma (fixed/floating point) Andere codes Booleaanse algebra
Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data
Getallen Binair rekenen Negatieve getallen Niet-gehele getallen
Andere codes Boole-algebra Logische poorten FPGA-ontwerp
Dia 26
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-260607H01L1 Getallen
met vaste komma fix : 1101,010 i = 4, f = 3 puur geheel: f = 0 puur
fractioneel: i = 0 # bits na een bewerking fix + fix = fix i =
max(i 1,i 2 ) + 1 & f = max(f 1,f 2 ) fix fix = fix i = i 1 + i
2 & f = f 1 + f 2 Ontwerppad Digitale data Getallen Binair
rekenen Negatieve getallen Niet-gehele getallen Andere codes
Boole-algebra Logische poorten FPGA-ontwerp
Dia 27
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-270607H01L1 Getallen
met vlottende komma float Genormaliseerde fractie: R > mantissa
1 of 1 > mantissa 1/R IEEE-formaat: R = 2, bias B = 2 e1 1
Enkelvoudige precisie : e = 8, f = 23, B = 127 Dubbele precisie : e
= 11, f = 52, B = 1023 sexp.fractie 1efbits mantissa
niet-genormaliseerde F verborgen bit Ontwerppad Digitale data
Getallen Binair rekenen Negatieve getallen Niet-gehele getallen
Andere codes Boole-algebra Logische poorten FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-310607H01L1 American
Standard Code for Information Interchange b3b2b1b0b3b2b1b0
b6b5b4b6b5b4 000001010011100101110111 0000NULDLESP 0@Pp 0001SOHDC1
!1AQaq 0010STXDC2 2BRbr 0011ETXDC3 #3CScs 0100EOTDC4 $4DTdt
0101ENQNAK %5EUeu 0110ACKSYN &6FVfv 0111BELETB 7GWgw 1000BSCAN
(8HXhx 1001HTEM )9IYiy 1010LFSUB *:JZjz 1011VTESC +;K[k{
1100FFFS,N^n~ 1111SIUS /?O_o DEL Ontwerppad Digitale data Getallen
Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes
Boole-algebra Logische poorten FPGA-ontwerp
Dia 32
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-320607H01L1 Digitaal
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 Ontwerppad Digitale
data Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 33
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-330607H01L1
Axiomatische definitie van Booleaanse algebra 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 genoemdx + 0 = x B heeft een eenheidselement voor, 1 genoemdx
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 Ontwerppad Digitale data
Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 34
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-340607H01L1
Axiomatische definitie van Booleaanse algebra 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
Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies
Canonische & standaard vorm 16 functies Logische poorten
FPGA-ontwerp
Dia 35
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-350607H01L1 Verschil
met gewone algebra 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 dat x + x = 1 en x x = 0 Ontwerppad Digitale data
Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 36
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-360607H01L1
Booleaanse algebra met 2 waarden NOT-operator AND-operator xy x y
000 010 100 111 OR-operator xyx + y 000 011 101 111 xx 01 10
gedefinieerd met waarheidstabellen Ontwerppad Digitale data
Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 37
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-370607H01L1 Digitaal
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 Ontwerppad Digitale
data Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 38
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-380607H01L1
Theoremas 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 Ontwerppad
Digitale data Boole-algebra Axioma's Theorema's Functies Canonische
& standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 39
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-390607H01L1
Theoremas 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 yx y xy x + x 0000 0101
1000 1111 Ontwerppad Digitale data Boole-algebra Axioma's
Theorema's Functies Canonische & standaard vorm 16 functies
Logische poorten FPGA-ontwerp
Dia 40
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-400607H01L1 Digitaal
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 Ontwerppad Digitale
data Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 41
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-410607H01L1
Booleaanse functies =uitdrukking van binaire variabelen en de
bewerkingen AND, OR en NOT Bijv. F 1 = xy + xyz + xyz F 1 = 1 als x
= 1 en y = 1 of als x = 1, y = 0 en z = 1 of als x = 0, y = 1 en z
= 1; anders F 1 = 0 F 1 bestaat uit 3 AND-termen en 1 OR-term
Prioriteit van bewerkingen: haakjes NOT AND OR Ontwerppad Digitale
data Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 42
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-420607H01L1
Booleaanse functies Rechtstreekse realisatie binaire variabelen =
ingangssignalen bewerking = poort Bijv. F 1 = xy + xyz + xyz xyz
F1F1 AND OR NOT Ontwerppad Digitale data Boole-algebra Axioma's
Theorema's Functies Canonische & standaard vorm 16 functies
Logische poorten FPGA-ontwerp
Dia 43
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-430607H01L1
Waarheidstabel van een functie =tabel met de functiewaarde(n) voor
alle combinaties van ingangswaarden n (ingangs)variabelen 2 n rijen
Bijv. F 1 = xy + xyz + xyz RijxyzF1F1 00000 10010 20100 30111 41000
51011 61101 71111 30111 51011 61101 71111 00000 10010 20100 41000
xyz F1F1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's
Functies Canonische & standaard vorm 16 functies Logische
poorten FPGA-ontwerp
Dia 44
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-440607H01L1
Waarheidstabel van een functie Nummering van de rijen
Standaard-code: natuurlijke opvolging Gray-code: 2 opeenvolgende
rijen verschillen maar in 1 variabele Opmerking: functie verandert
niet! z 0 1 0 1 y 0 0 1 1 0 1 0 1 0 0 1 1 x 0 0 0 0 1 1 1 1 z 0 1 1
0 y 0 0 1 1 0 1 1 0 1 1 0 0 x 0 0 0 0 1 1 1 1 F 0 0 0 1 0 1 1 1 F 0
0 1 0 1 1 1 0 Ontwerppad Digitale data Boole-algebra Axioma's
Theorema's Functies Canonische & standaard vorm 16 functies
Logische poorten FPGA-ontwerp
Dia 45
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-450607H01L1
Complementaire functie Alternatieve realisatie F 1 = (F 1 ) F 1 =
(xy + xyz + xyz) = (xy)(xyz)(xyz)(De Morgan) = (x + y)(x + y + z)(x
+ y + z)(De Morgan) AND-OR realisatie F 1 = xy + xyz + xyz OR-AND
realisatie F 1 =((x+y)(x+y+z) (x+y+z)) xyz F1F1 xyz F1F1 Ontwerppad
Digitale data Boole-algebra Axioma's Theorema's Functies Canonische
& standaard vorm 16 functies Logische poorten FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-470607H01L1 Digitaal
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 Ontwerppad Digitale
data Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 48
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-480607H01L1
Mintermen Een minterm is een Booleaanse functie die waar is voor
slechts voor n enkele rij van de waarheidstabel
Rijxyzmintermnotatie 0000xyzm0m0 1001xyzm1m1 2010xyzm2m2
3011xyzm3m3 4100xyzm4m4 5101xyzm5m5 6110xyzm6m6 7111xyzm7m7
Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies
Canonische & standaard vorm 16 functies Logische poorten
FPGA-ontwerp
Dia 49
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-490607H01L1
Canonische vorm met mintermen Een 1-minterm is een minterm waarvoor
de functie 1 is; een 0-minterm is een minterm waarvoor de functie 0
is F 1 = xy + xyz + xyz RijxyzF1F1 1-minterm 00000 10010 20100
30111m 3 = xyz 41000 51011m 5 = xyz 61101m 6 = xyz 71111m 7 = xyz
Elke Booleaanse functie kan beschreven worden als de som van zijn
1-mintermen : F 1 = xyz + xyz + xyz + xyz = m 3 + m 5 + m 6 + m 7 =
(3,5,6,7) Ontwerppad Digitale data Boole-algebra Axioma's
Theorema's Functies Canonische & standaard vorm 16 functies
Logische poorten FPGA-ontwerp
Dia 50
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-500607H01L1
Maxtermen Een maxterm is een Booleaanse functie die waar is voor
alle rijen van de waarheidstabel behalve n Rijxyzmaxtermnotatie
0000x+y+zM0M0 1001x+y+zM1M1 2010x+y+zM2M2 3011x+y+zM3M3
4100x+y+zM4M4 5101x+y+zM5M5 6110x+y+zM6M6 7111x+y+zM7M7 Ontwerppad
Digitale data Boole-algebra Axioma's Theorema's Functies Canonische
& standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 51
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-510607H01L1
Canonische vorm met maxtermen Een 0-maxterm is een maxterm waarvoor
de functie 0 is; een 1-maxterm is een maxterm waarvoor de functie 1
is F 1 = xy + xyz + xyz RijxyzF1F1 0-maxterm 00000M 0 = x+y+z
10010M 1 = x+y+z 20100M 2 = x+y+z 30111 41000M 4 = x+y+z 51011
61101 71111 Elke Booleaanse functie kan beschreven worden als het
product van zijn 0-maxtermen: F 1 = (x+y+z)(x+y+z)(x+y+z)(x+y+z) =
M 0 M 1 M 2 M 4 = (0,1,2,4) Ontwerppad Digitale data Boole-algebra
Axioma's Theorema's Functies Canonische & standaard vorm 16
functies Logische poorten FPGA-ontwerp
Dia 52
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-520607H01L1
Standaard vorm In de canonische vorm is elke functie een som van
1-mintermen of een product van 0-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 Ontwerppad Digitale
data Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-540607H01L1 Minimale
implementatie De standaard vorm is de goedkoopste implementatie in
twee lagen F 2 = xy + xz + yz Een niet-standaard vorm met meer dan
twee lagen kan goedkoper zijn F 2 = x(y + z) + yz xzy F2F2 xzy F2F2
Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies
Canonische & standaard vorm 16 functies Logische poorten
FPGA-ontwerp
Dia 55
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-550607H01L1 Digitaal
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 Ontwerppad Digitale
data Boole-algebra Axioma's Theorema's Functies Canonische &
standaard vorm 16 functies Logische poorten FPGA-ontwerp
Dia 56
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-560607H01L1 De 16
functies van 2 variabelen Waarom 16 functies? 2 binaire variabelen
2 2 = 4 mogelijke ingangscombinaties Elke ingangscombinatie heeft 2
mogelijke functiewaarden (0 en 1) 2 4 = 16 mogelijke functies xy 00
01 10 11 F0F0 F1F1 F2F2 F 15 0001 0001 0011 0101 Ontwerppad
Digitale data Boole-algebra Axioma's Theorema's Functies Canonische
& standaard vorm 16 functies Logische poorten FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-580607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Verbindingen
Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale
data Boole-algebra Logische poorten Functioneel Niet- functioneel
Verbindingen Technologie FPGA-ontwerp
Dia 59
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-590607H01L1 Logische
waarden voorstellen Welke fysische waarden worden gebruikt om de
twee logische waarden voor te stellen? Een Low & een High
fysisch bereik, Meestal 2 spanningen: V L & V H Andere
mogelijkheden: stromen, optische reflectie, druk, afgebeeld op de
logische niveaus LH Positieve logica01 Negatieve logica10
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Technologie FPGA-ontwerp
Dia 60
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-600607H01L1 Actief
laag signaal =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* 111 100 010 000 Ontwerppad Digitale data Boole-algebra
Logische poorten Functioneel Niet- functioneel Verbindingen
Technologie FPGA-ontwerp
Dia 61
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-610607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Basispoorten ( 2 ingangen) Meerdere ingangen Meerdere operatoren
Niet-functionele eigenschappen Verbindingen
Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale
data Boole-algebra Logische poorten Functioneel Basispoorten
Complexe poorten Niet- functioneel Verbindingen Technologie
FPGA-ontwerp
Dia 62
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-620607H01L1
Schakelaars Logische poort meestal opgebouwd uit schakelaars met
twee standen: Elektrische weerstand: 0 Drukventiel: open gesloten
Licht doorlaten: wel niet Werking afhankelijk van stuursignaal L H
LH Ontwerppad Digitale data Boole-algebra Logische poorten
Functioneel Basispoorten Complexe poorten Niet- functioneel
Verbindingen Technologie FPGA-ontwerp
Dia 63
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-630607H01L1
MOS-transistor als schakelaar NMOS transistor (boek: P-transistor)
V GS < V T V GS > V T PMOS transistor (verwissel n p, S D) V
GS < V T p n+ Gate (poort) Source Drain Metaal Isolator
Halfgeleider Geleidend pad als V GS > V T H L V GS > V T L H
noot: V GS & V T < 0 Ontwerppad Digitale data Boole-algebra
Logische poorten Functioneel Basispoorten Complexe poorten Niet-
functioneel Verbindingen Technologie FPGA-ontwerp
Dia 64
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-640607H01L1 Inverter
F = x 2 transistoren (afgekort tors) Relatieve vertragingstijd : 1
xF HL LH x = LF = H V CC (H) V SS (L) x = HF = L Opmerking: vanaf
nu enkel positieve logica 10 01 xF Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Basispoorten Complexe
poorten Niet- functioneel Verbindingen Technologie
FPGA-ontwerp
Dia 65
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-650607H01L1
NAND-poort F = (xy) 4 transistoren Relatieve vertragingstijd : 1,4
x F y 10 0 10 1 11 0 01 1 Opmerking: Dit is een NOR-poort voor
negatieve logica! V CC V SS x = 0 y = 0 F = 1 y = 1 F = 0 x = 1
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Basispoorten Complexe poorten Niet- functioneel Verbindingen
Technologie FPGA-ontwerp
Dia 66
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-660607H01L1
NOR-poort F = (x + y) 4 transistoren Relatieve vertragingstijd :
1,4 x F y 10 0 00 1 01 0 01 1 V CC V SS x = 0 y = 0 F = 1 y = 1 x =
1 F = 0 Ontwerppad Digitale data Boole-algebra Logische poorten
Functioneel Basispoorten Complexe poorten Niet- functioneel
Verbindingen Technologie FPGA-ontwerp
Dia 67
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-670607H01L1 Andere
basispoorten 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 xF x F y x F y x F y x F y Ontwerppad
Digitale data Boole-algebra Logische poorten Functioneel
Basispoorten Complexe poorten Niet- functioneel Verbindingen
Technologie FPGA-ontwerp
Dia 68
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-680607H01L1 Waarom
enkel inverterende basispoorten? NMOS transistor is een slechte
pull-up slechts geleidend als V GS > V T uitgangsspanning daalt
met V T 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) Buffer H VTVT VTVT L V
T Ontwerppad Digitale data Boole-algebra Logische poorten
Functioneel Basispoorten Complexe poorten Niet- functioneel
Verbindingen Technologie FPGA-ontwerp
Dia 69
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-690607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Basispoorten Meerdere ingangen (fan-in) Meerdere operatoren
Niet-functionele eigenschappen Verbindingen
Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale
data Boole-algebra Logische poorten Functioneel Basispoorten
Complexe poorten Niet- functioneel Verbindingen Technologie
FPGA-ontwerp
Dia 70
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-700607H01L1 Meerdere
ingangen (fan-in) z F y x 3-input NAND : F = (xyz) 6 transistoren
Relatieve vertragingstijd : 1,8 F = 1 als x = 0 of y = 0 of z = 0 F
= x + y + z = (xyz) V CC V SS x y x y F z z Om kortsluiting te
vermijden kan deze blok enkel geleiden als de bovenste niet
geleidt: PDN = PUN PDN PUN Ontwerppad Digitale data Boole-algebra
Logische poorten Functioneel Basispoorten Complexe poorten Niet-
functioneel Verbindingen Technologie FPGA-ontwerp
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-720607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Basispoorten Meerdere ingangen Meerdere operatoren Niet-functionele
eigenschappen Verbindingen Implementatietechnologien Een voorbeeld:
FPGA Ontwerppad Digitale data Boole-algebra Logische poorten
Functioneel Basispoorten Complexe poorten Niet- functioneel
Verbindingen Technologie FPGA-ontwerp
Dia 73
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-730607H01L1 Meerdere
operatoren in 1 poort: 2-wide 2-input AND-OR-Invert 2-wide 2-input
AOI F = (xy + zw) 8 transistoren Relatieve vertragingstijd : 2,2 V
CC V SS xy x y z w z w F F = 0 als( x = 1 en y = 1 ) of ( z = 1 en
w = 1 ) y x w z F Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Basispoorten Complexe poorten Niet- functioneel
Verbindingen Technologie FPGA-ontwerp
Dia 74
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-740607H01L1 Meerdere
operatoren in 1 poort : 2-wide 2-input OR-AND-Invert 2-wide 2-input
OAI F = ((x + y) (z + w)) 8 transistoren Relatieve vertragingstijd
: 2,2 F = 0 als( x = 1 of y = 1 ) en ( z = 1 of w = 1 ) V CC V SS x
y x y z w zw F y x w z F Ontwerppad Digitale data Boole-algebra
Logische poorten Functioneel Basispoorten Complexe poorten Niet-
functioneel Verbindingen Technologie FPGA-ontwerp
Dia 75
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-750607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Spanningsniveaus Tijdsgedrag Fan-out
Vermogenverbruik Verbindingen Implementatietechnologien Een
voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag
Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
Dia 76
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-760607H01L1
Spanningsniveaus Logisch niveau spanningsgebied Voordeel: minder
gevoelig aan procesvariaties, die de karakteristieken van
componenten veranderen minder gevoelig aan omgevingsvariaties,
zoals temperatuur, voedingsspanning, Logisch niveau
SpanningsgebiedTTL vantotvantot LV SS V IL 0 V0,8 V HV IH V CC 2 V5
V Ontwerppad Digitale data Boole-algebra Logische poorten
Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out
Vermogen Verbindingen Technologie FPGA-ontwerp
Dia 77
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-770607H01L1
Ruismarge =spanningsmarge beschikbaar door een kleiner gebied van
uitgangsspanningen te gebruiken dan toegelaten L L H H
UitgangIngang V SS V CC V IL V IH marge V SS V CC V OL V OH TTL 0 V
5 V 0,4 V 2,4 V TTL 0 V 5 V 0,8 V 2 V Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie
FPGA-ontwerp
Dia 78
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-780607H01L1
Onlogische spanningen Tijdens de verandering van logisch niveau
ontstaan spanningen die niet met een logisch niveau overeenkomen!
Bijv. TTL-inverter V uit V in H L 5 2,4 0,4 0 00,825 HL
Transferfunctie afhankelijk van productieproces omgevingsfactoren
VTVT ideaal Ontwerppad Digitale data Boole-algebra Logische poorten
Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out
Vermogen Verbindingen Technologie FPGA-ontwerp
Dia 79
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-790607H01L1
Schmitt-trigger-ingangen Bijkomende problemen voor trage signalen
Schmitt-trigger-ingangen hebben een hysteresis t 0 V in VTVT V T+ V
T V out VTVT V in H L V out t H L t H L V T+ V T V out V in H L
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen
Verbindingen Technologie FPGA-ontwerp
Dia 80
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-800607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Spanningsniveaus Tijdsgedrag Fan-out
Vermogenverbruik Verbindingen Implementatietechnologien Een
voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag
Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
Dia 81
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-810607H01L1 Effect
capacitieve belasting L H overgang H L overgang V cc C R OH R IH CR
OL R IL Ontwerppad Digitale data Boole-algebra Logische poorten
Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out
Vermogen Verbindingen Technologie FPGA-ontwerp
Dia 82
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-820607H01L1 Effect
capacitieve belasting Snelle overgangen als uitgangsimpedantie R O
zo klein mogelijk grote stromen groot vermogenverbruik C (van draad
& ingang) zo klein mogelijk vermijdt lange verbindingen
ingangsimpedantie R I zo groot mogelijk Daarom RTL-technologie niet
populair =vervang bovenste blok transistoren (PUN) door een
weerstand R beperk vermogenverbruik R O = R redelijk groot grote
stijgtijden R V cc x = 0 F = 1 x = 1 F = 0 Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie
FPGA-ontwerp
Dia 83
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-830607H01L1
Vertragingstijd 90% 50% 10% t PHL t PLH Vertragingstijd: t P = (t
PLH + t PHL )/2 90% ofV IH 50%V T 10%V IL StijgtijdDaaltijd
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen
Verbindingen Technologie FPGA-ontwerp
Dia 84
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-840607H01L1
Vertragingstijd Wordt benvloed door de stijg/daaltijd en dus door
de capacitieve belasting in uit t PLH kleine stijgtijd in uit t PLH
grote stijgtijd Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag
Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
Dia 85
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-850607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Spanningsniveaus Tijdsgedrag Fan-out
Vermogenverbruik Verbindingen Implementatietechnologien Een
voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag
Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
Dia 86
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-860607H01L1 Fan-out
=maximum aantal ingangen die aan n uitgang kunnen gekoppeld worden
Stroomgedreven technologien (TTL, ECL,...) Fan-out = min(I OH /I
IH, I OL /I IL ) I OH I IH I OL I IL Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie
FPGA-ontwerp
Dia 87
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-870607H01L1 Fan-out
Ladinggedreven technologien (CMOS) I I 0 I O gebruiken voor
op/ontladen C fan-out ingangscapaciteit capaciteit verbindingen
fan-out bepaalt maximale schakelfrequentie I = C dV/dt = C f V f =
I/(C V) bijv. voor Xilinx Virtex: 10 pF ingangscapaciteit, I Omax =
20 mA, 0,8 pF/cm PCB, V cc = 3,3 V Voor fan-out = 3 & 10 cm
PCB-draden: C = 3 10 + 0,8 10 = 38 pF schakelfrequentie= I/(C V) =
20 mA/(38 pF 3,3 V) = 160 MHz Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie
FPGA-ontwerp
Dia 88
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-880607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Spanningsniveaus Tijdsgedrag Fan-out
Vermogenverbruik Verbindingen Implementatietechnologien Een
voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag
Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
Dia 89
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-890607H01L1
Vermogenverbruik Verbruikte vermogen moet worden geleverd :
kostprijs energie, levensduur batterijen gedissipeerd : warmte moet
afgevoerd worden TTL verbruikt voortdurend vermogen P = V CC I CC
10mW/poort 1 miljoen poorten: 10 KW! Gebruikt bij hoge
spanningen/stromen (bussen, ) CMOS verbruikt enkel bij het
schakelen P = C f V 2 vermits I = C f V trend: sterke stijging
(cfr. transparant 2-7) Virtex: P = 38 pF 160 MHz (3,3 V) 2 = 66
mW/pin; als 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! Ontwerppad Digitale
data Boole-algebra Logische poorten Functioneel Niet- functioneel
Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie
FPGA-ontwerp
Dia 90
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-900607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Verbindingen Busverbinding
Verbinding als poort Implementatietechnologien Een voorbeeld: FPGA
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Bus als poort Technologie
FPGA-ontwerp
Dia 91
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-910607H01L1 Types
verbindingen Traditioneel: 1 aansturing van verbinding Meerdere
aansturingen mogelijk = bus(verbinding) Slechts 1 aansturing
tegelijkertijd! 3-state buffers gebruiken Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Verbindingen Bus als poort Technologie FPGA-ontwerp
Dia 92
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-920607H01L1
Tri-state =derde mogelijkheid, naast 0 en 1 Z (hoog-impedant of
zwevend) = aan niets verbonden Een 3-state buffer laat toe om de
uitgang los te koppelen van zijn aansturing Een implementatie: Uit
V cc V ss E In E In Uit E InUit E E 0Z 1In Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Verbindingen Bus als poort Technologie FPGA-ontwerp
Dia 93
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-930607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Verbindingen Busverbinding
Verbinding als poort (wired logic) Implementatietechnologien Een
voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Verbindingen Bus als poort
Technologie FPGA-ontwerp
Dia 94
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-940607H01L1
Open-drain/collector uitgang Maak R van RTL extern Eigenschappen:
Slechte stijgtijd +Uitgangen verbinden geeft geen kortsluiting
bussen +Wired logic (cfr. infra) V cc In Uit V cc In Uit V cc
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Bus als poort Technologie
FPGA-ontwerp V cc
Dia 95
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-950607H01L1 Wired
logic Wired-AND : verbinding van open-drain uitgangen Wired-OR :
voor actief lage signalen actief lage OR actief hoge AND R V cc A B
F ABABF 00111 A F B 01100 10010 11000 effect van bedrading A B
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Bus als poort Technologie
FPGA-ontwerp
Dia 96
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-960607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Verbindingen
Implementatietechnologien Integratieniveau Maatwerk & standaard
cellen Gate array Field programmable design Een voorbeeld: FPGA
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp
Gate array Field progr. FPGA-ontwerp
Dia 97
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-970607H01L1
Integratieniveau SSI: Small Scale Integration < 10 poorten per
verpakking poorten direct verbonden aan pinnen ontwerp op
transistorniveau gebruikt in ontwerpen op poortniveau MSI: Medium
Scale Integration 10 100 poorten per verpakking registers,
optellers, pariteitsgeneratoren, ontwerp op poortniveau gebruikt in
ontwerpen op Register Transfer Level (RTL) LSI: Large Scale
Integration 100 10K poorten per verpakking controllers, datapaden
ontwerp op RTL-niveau gebruikt in ontwerpen op gedragsniveau
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp
Gate array Field progr. FPGA-ontwerp
Dia 98
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-980607H01L1
Integratieniveau VLSI: Very Large Scale Integration 10K 1M poorten
per verpakking geheugen, microprocessor, microcontroller, FFT
ontwerp op gedragsniveau gebruikt in ontwerpen op systeemniveau
ULSI: Ultra Large Scale Integration ? > 1M poorten per
verpakking 2 controllers, 20 DSP-processoren, 16 Mbyte geheugen, 10
hardware-versnellers, 1 Mgate FPGA, analoge interface, RF, ontwerp
op systeemniveau slechts 1 chip voor volledige toepassingen
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp
Gate array Field progr. FPGA-ontwerp
Dia 99
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-990607H01L1 Digitaal
ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Booleaanse algebra Logische poorten Functionele eigenschappen
Niet-functionele eigenschappen Verbindingen
Implementatietechnologien Integratieniveau Maatwerk & standaard
cellen Gate array Field programmable design Een voorbeeld: FPGA
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp
Gate array Field progr. FPGA-ontwerp
Dia 100
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1000607H01L1
Maatwerk (custom design) =elke transistor en elke verbinding wordt
afzonderlijk ontworpen als een set rechthoeken (chipoppervlakte)
Ideaal voor optimaal ontwerp van componenten uit een bibliotheek,
die dikwijls kunnen herbruikt worden Moet volledig herontworpen
worden bij elke technologiewijziging (alle 18 maanden!) Ontwerppad
Digitale data Boole-algebra Logische poorten Functioneel Niet-
functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate
array Field progr. FPGA-ontwerp
Dia 101
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1010607H01L1
Standaard-cel ontwerp Bibliotheek van standaard cellen elke cel is
een poort standaard hoogte, variabele breedte, afgewisseld met
ruimte voor bedrading (routing channels) alle ingangen bovenaan,
alle uitgangen onderaan Sneller ontwerp van complexere bouwblokken
Cellen ontworpen door chipfabrikanten, geoptimaliseerd voor hun
procestechnologie Allocatie componenten (placement) Allocatie
bedrading (routing) Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Verbindingen Technologie
Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
Dia 102
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1020607H01L1
Realisatie Implementatie Schema Standaard-cel ontwerpstappen Ingave
ontwerp Placement Routing Simulatie Simulatie tijdsgedrag
Productie: n maskers Testen Ontwerppad Digitale data Boole-algebra
Logische poorten Functioneel Niet- functioneel Verbindingen
Technologie Integratie Chip-ontwerp Gate array Field progr.
FPGA-ontwerp
Dia 103
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1030607H01L1
Digitaal ontwerp Digitaal ontwerp in grote lijnen
Gegevensvoorstelling Booleaanse algebra Logische poorten
Functionele eigenschappen Niet-functionele eigenschappen
Verbindingen Implementatietechnologien Integratieniveau Maatwerk
& standaard cellen Gate array Field programmable design Een
voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Verbindingen Technologie
Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
Dia 104
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1040607H01L1 Gate
array Tweedimensionaal rooster van identieke poorten (sea of gates)
elke cel is bijv. een 3-input NAND-poort standaard hoogte,
afgewisseld met ruimte voor bedrading alle ingangen bovenaan, alle
uitgangen onderaan Goedkoper dan standaard cellen Alleen de laatste
metallisatielaag (voor de verbindingen) is eigen aan een project
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp
Gate array Field progr. FPGA-ontwerp
Dia 105
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1050607H01L1 Gate
array ontwerpstappen Ingave ontwerp Placement Routing Simulatie
Simulatie tijdsgedrag Productie: 1 masker Testen =beeld alle
functies af op beschikbare 3-input NANDs Technology mapping
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp
Gate array Field progr. FPGA-ontwerp
Dia 106
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1060607H01L1
Digitaal ontwerp Digitaal ontwerp in grote lijnen
Gegevensvoorstelling Booleaanse algebra Logische poorten
Functionele eigenschappen Niet-functionele eigenschappen
Verbindingen Implementatietechnologien Integratieniveau Maatwerk
& standaard cellen Gate array Field programmable design Een
voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Verbindingen Technologie
Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
Dia 107
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1070607H01L1 Field
programmable design Gebruik makend van zekeringen(PLA, PLD)
Doorbranden zekering verbreekt verbinding irreversibel; slechts
bijprogrammeren mogelijk EE- en flash-programmeerbaar(CPLD)
Verbindingen zijn transistoren waarvan het poortniveau opgeladen
kan worden herprogrammeren mogelijk, maar traag en slechts een
beperkt aantal keren Gebruik makend van SRAM(FPGA) Verbindingen
zijn transistoren waarvan het poortniveau in een RAM-geheugen
opgeslagen wordt herprogrammeren vlot mogelijk: (statische of
dynamische) herconfiguratie mogelijk telkens herladen na aanleggen
voedingsspanning Toepassingen: Voor prototypes & medium volumes
( 5 M poorten) @ 400 MHz (in 2004) Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Verbindingen Technologie Integratie Chip-ontwerp Gate array Field
progr. FPGA-ontwerp
Dia 108
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1080607H01L1
Programmeerbare AND-matrix & OR-matrix Afgeleiden (sneller
& betrouwbaarder) PAL : vaste OR-matrix PROM : vaste AND-matrix
(adresdecoder) AND-matrix OR-matrix PLA: Programmable Logic Array
Ingangen Uitgangen = Ingangen Uitgangen x x x x x x x x x x x x x x
x x x x x x x x x x x x Ontwerppad Digitale data Boole-algebra
Logische poorten Functioneel Niet- functioneel Verbindingen
Technologie Integratie Chip-ontwerp Gate array Field progr.
FPGA-ontwerp
Dia 109
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1090607H01L1 PLD:
Programmable Logic Device Uitgebreide macro-cellen : extra
logica/flip-flops aan de uitgangen DD Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Verbindingen Technologie Integratie Chip-ontwerp Gate array Field
progr. FPGA-ontwerp
Dia 110
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1100607H01L1 CPLD:
Complexe PLD PLD OI/O Schakelmatrix I/OO PLD OI/O PLD O Ontwerppad
Digitale data Boole-algebra Logische poorten Functioneel Niet-
functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate
array Field progr. FPGA-ontwerp
Dia 111
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1110607H01L1 Field
Programmable Gate Array Schakelmatrices Directe verbindingen tussen
naburige blokken Lange lijnen Globale kloklijnen SM I/O CLB
Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel
Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp
Gate array Field progr. FPGA-ontwerp
Dia 112
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1120607H01L1 FPGA:
extra specifieke hardware Spartan-3 (labo) klokgeneratie geheugen
vermenig- vuldiger Andere moderne FPGAs specifieke transceivers of
voor hoge snelheid (bijv. Ethernet, 10 Gbit/s + CRC) DSP-functies
(bijv. MAC) microprocessoren (bijv. 32 bit PowerPC met specifieke
interface voor hardware-versnellers) Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Verbindingen Technologie Integratie Chip-ontwerp Gate array Field
progr. FPGA-ontwerp
Dia 113
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1130607H01L1 FPGA
Configurable Logic Block Look-Up Table opzoektabel voor booleaanse
functie bruikbaar als 32-bit SRAM 16x1 LUT: Booleaanse functie van
4 variabelen 16x1 LUT: Booleaanse functie van 4 variabelen FF G GQ
16x1 LUT: Booleaanse functie van 4 variabelen 16x1 LUT: Booleaanse
functie van 4 variabelen FF F FQ Ontwerppad Digitale data
Boole-algebra Logische poorten Functioneel Niet- functioneel
Verbindingen Technologie Integratie Chip-ontwerp Gate array Field
progr. FPGA-ontwerp
Dia 114
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1140607H01L1
Spartan-3 CLB 1 Spartan-3 CLB = 4 slices 1 slice komt overeen met
wat in de rest van de cursus 1 CLB genoemd wordt! Enkel linkse
slices kunnen als RAM of schuifregister gebruikt worden Ontwerppad
Digitale data Boole-algebra Logische poorten Functioneel Niet-
functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate
array Field progr. FPGA-ontwerp
Dia 115
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1150607H01L1
Spartan-3 CLB Slice Standaard logica 2 f(4 vars) ev. met 2 FF 1 f(5
vars) ev. met FF via F5MUX Extra logica carry logica (incl. AND en
XOR) multiplexers 2 16 bit gedistribueerde RAM 2 16 bit
schuifregister Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Verbindingen Technologie
Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
Dia 116
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1160607H01L1 FPGA
Switching Matrix element Pass-transistor V cc Ontwerppad Digitale
data Boole-algebra Logische poorten Functioneel Niet- functioneel
Verbindingen Technologie Integratie Chip-ontwerp Gate array Field
progr. FPGA-ontwerp
Dia 117
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1170607H01L1 SM
programmering Ontwerppad Digitale data Boole-algebra Logische
poorten Functioneel Niet- functioneel Verbindingen Technologie
Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
Dia 118
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1180607H01L1
Digitaal ontwerp Digitaal ontwerp in grote lijnen
Gegevensvoorstelling Booleaanse algebra Logische poorten Een
voorbeeld: FPGA Xilinx ISE-omgeving, gebruikt in labozittingen
Ontwerppad Digitale data Boole-algebra Logische poorten
FPGA-ontwerp
Dia 119
Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1190607H01L1 Xilinx
ISE-omgeving bestanden van het project mogelijke acties op het
bestand inhoud bestanden of resultaat actie output acties
Ontwerppad Digitale data Boole-algebra Logische poorten
FPGA-ontwerp