Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT 3-13-106–07H01L1 Inhoudstafel Inleiding ...
-
Upload
sarah-verlinden -
Category
Documents
-
view
219 -
download
1
Transcript of Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT 3-13-106–07H01L1 Inhoudstafel Inleiding ...
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-1 06–07
H01L1
Inhoudstafel
Inleiding
De basis van digitaal ontwerp
Combinatorische schakelingen:uitgang = combinatie ingangen
Sequentiële schakelingen
Niet-programmeerbare processoren
Programmeerbare processoren
Hardware-beschrijvingstalen
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-2 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie
Tijdsgedrag
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-3 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functiesKarnaugh-kaartMinimalisering met Karnaugh-kaartenMeerdere uitgangen ‘Don’t care’ conditiesQuine-McCluskey
Impact van technologie
Tijdsgedrag
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-4 06–07
H01L1
Waarom minimaliseren?
Kritisch pad = pad met de grootste vertraging
van een ingang naar een uitgang
Bijv. F = xy’z + xy’z’ = xy’(z + z’) = xy’
allepoorten
kost(poKostprij rs o t)
kritischpad
vertragingVertraging (poort)
Kostprijs(1+1) + (4+4) + 3
= 131 + 3 = 4
Vertraging
1 + 2,8 + 2,4 = 6,2
1 + 2,4 = 3,4
xyz xyz
Minimalisering
Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-5 06–07
H01L1
Hoe minimaliseren?
Via manipulatie van Booleaanse uitdrukkingen Zeer moeilijk: er bestaat geen methode om de
opeenvolgende theorema’s te kiezen die leiden tot de minimale oplossing
Een voorstelling gebruiken waarin opvalt welke ingang geen belang heeft Waarheidstabel ?
Duidelijk dat F = 1als x = 1 en y = 0,onafhankelijk van z
Alleen maar duidelijkvoor z omdat de lijnenvoor z = 0 of 1 ondermekaar liggen
N-kubus of Karnaugh-kaart
x y z F0 0 0 0 -0 0 1 0 -0 1 0 0 -0 1 1 0 -1 0 0 1 xy’z’1 0 1 1 xy’z1 1 0 0 -1 1 1 0 -
Minimalisering
Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-6 06–07
H01L1
N-kubus
= n-dimensionale kubus waarbij elke dimensie met 1 variabele overeen komt
2 variabelen
4 variabelen
000 001
010 011
100 101
110 111
00 01
10 11
0000 0001
0010 0011
0100 0101
0110 0111
1000 1001
1010 1011
1100 1101
1110 1111
3 variabelen
Minimalisering
Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-7 06–07
H01L1
Karnaugh-kaart
= 2-dimensionale voorstelling van n-kubus
elk vierkant heeft n burennaburige vierkanten hebben slechts voor
1 variabele een verschillende waarde
000 001
010 011
100 101
110 111
000 001
010 011
101 100
111 110
Spiegeling
x’y’z’ x’y’z
xy’z’ xy’z
x
0
1
yz00 01
x’yz x’yz’
xyz xyz’
11 10
x
y
z
x’z (y niet belangrijk)x’y’z x’yz
xy’z’ xyz’ xz’ (y niet belangrijk)xy’z’ xy’z
xy’ (z niet belangrijk)
Minimalisering
Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-8 06–07
H01L1
Meer dan 4 variabelen
Spiegeling van kaart met 1 variabele minder
Niet alle buren liggen fysisch naast mekaar!
0xy00
01
zw00 01 11 10
1 3 2
4 5 7 6
12 13 15 14
8 9 11 10
18 19 17 16
22 23 21 20
30 31 29 28
26 27 25 24
11
10x
z
w
y
xy10 11 01 00
00
01
11
10
y
x
z
w
v
00101
01010
Minimalisering
Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-9 06–07
H01L1
Meer dan 4 variabelen
Herhaling van kaart met 1 variabele minder
Onoverzichtelijker naarmate meer variabelen!
0xy00
01
zw00 01 11 10
1 3 2
4 5 7 6
12 13 15 14
8 9 11 10
16 17 19 18
20 21 23 22
28 29 31 30
24 25 27 26
xy
11
10
00 01 11 10
00
01
11
10x
y
z
w
x
z
w
v
y
Minimalisering
Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-10 06–07
H01L1
Invullen Karnaugh-kaart
Vanuit waarheidstabel of canonische vorm
m0 m1
m4 m5
xy
00
01
zw00 01
m3 m2
m7 m6
11 10
x
z
w
m12 m13
m8 m9
m15 m14
m11 m10
11
10
y
1 0 00
0 1 01
1 0 10
0 1 01
x y z w F0 0 0 0 10 0 0 1 00 0 1 0 00 0 1 1 00 1 0 0 00 1 0 1 10 1 1 0 00 1 1 1 11 0 0 0 11 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 01 1 0 1 11 1 1 0 01 1 1 1 1
0 0 0 0 10 0 0 1 00 0 1 0 00 0 1 1 00 1 0 0 00 1 0 1 10 1 1 0 00 1 1 1 11 0 0 0 11 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 01 1 0 1 11 1 1 0 01 1 1 1 1
Minimalisering
Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-11 06–07
H01L1
Gebruiken Karnaugh-kaart
Zoek zo groot mogelijke subkubussen(= aaneengesloten gebieden met zelfde waarde) Bijv. F = x’y’z’w’ + x’yz’w + x’yzw + xy’z’w’
+ xy’zw’ + xyz’w + xyzw
1 0
0 1
xy
00
01
zw00 01
0 0
1 0
11 10
x
z
w
0 1
1 0
1 0
0 1
11
10
y
F =yw+ xy’w’+ y’z’w’
Minimalisering
Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-12 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functiesKarnaugh-kaart Minimalisering met Karnaugh-kaarten
Minimale AND-OR realisatie Minimale OR-AND realisatie
Meerdere uitgangen ‘Don’t care’ conditiesQuine-McCluskey
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
(ADD, ALU, MUX, …)
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-13 06–07
H01L1
Minimalisering met Karnaugh-kaarten
Waarheidstabel of canonische vorm
Maak de Karnaugh-kaartMaak de Karnaugh-kaart
Bepaal alle priemimplicantenBepaal alle priemimplicanten
Bepaal alle essentiëlepriemimplicanten
Bepaal alle essentiëlepriemimplicanten
Zoek de minimale bedekkingZoek de minimale bedekking
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-14 06–07
H01L1
1. Maak de Karnaugh-kaart
w
x
yz
1
1
F = x’y’z’ + wz + xyz + w’y
F =x’y’z’1
1
1 1
11
1 1
11
1
11
1
1 1
11
Plaats enen op alle plaatsen in de Karnaugh-kaart waar een productterm 1 is.
+ wz+ xyz+ w’y
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-15 06–07
H01L1 2. Bepaal alle priemimplicanten
1 1 1
1 1
1 1
1 1 1w
x
yz
Analyseer elke 1-mintermBepaal de grootste subkubus(sen) die de
minterm bevat(ten) en voeg ze toe aan de lijst van priemimplicanten (als ze er nog niet op staan)
w’x’z’
x’y’z’
w’y
yz
wz
wx’y’
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-16 06–07
H01L1 3. Bepaal alle essentiëlepriemimplicanten
Zoek 1-mintermen die slechts in1 priemimplicant voorkomen;dit is een essentiële priemimplicant
1 1 1
1 1
1 1
1 1 1w
x
yz w’x’z’
x’y’z’
w’y
yz
wz
wx’y’
essentieel
essentieel
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-17 06–07
H01L1 4. Zoek de minimale bedekking
Fmin = x’y’z’ + w’y + wz
Zoek de kleinste set van (zo groot mogelijke) priemimplicanten die alle 1-mintermen omvat:
Initieer de set met de essentiële priemimplicanten Voeg telkens een priemimplicant toe die zoveel
mogelijk onbedekte 1-mintermen bevat Dit is een gulzige (‘greedy’) strategie: kies telkens de
beste oplossing zonder rekening te houden met de gevolgen op toekomstige keuzes
Niet noodzakelijk het globaal optimum
1 1 1
1 1
1 1
1 1 1w
x
yz
w’x’z’
x’y’z’
w’y
yz
wz
wx’y’
essentieel
essentieel
1
2
0
1
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-18 06–07
H01L1
Winst t.g.v. minimalisering
OrigineelF = x’y’z’ + w’y + xyz + wz
MinimaalFmin = x’y’z’ + w’y + wz
Kostprijs= 4×1 + 2×4 + 2×3 + 1×5= 23
Vertraging= 1 + 2,8 + 3,2= 7
w x y z w x y z
Kostprijs= 4×1 + 1×4 + 2×3 + 1×4= 18 (22% goedkoper)
Vertraging= 1 + 2,8 + 2,8= 6,6 (6% sneller)
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-19 06–07
H01L1
Een tweede voorbeeld
v w x y z F0 0 0 0 0 00 0 0 0 1 00 0 0 1 0 00 0 0 1 1 00 0 1 0 0 00 0 1 0 1 00 0 1 1 0 10 0 1 1 1 10 1 0 0 0 00 1 0 0 1 00 1 0 1 0 10 1 0 1 1 10 1 1 0 0 00 1 1 0 1 00 1 1 1 0 10 1 1 1 1 1
v w x y z F1 0 0 0 0 01 0 0 0 1 01 0 0 1 0 01 0 0 1 1 01 0 1 0 0 01 0 1 0 1 11 0 1 1 0 01 0 1 1 1 11 1 0 0 0 01 1 0 0 1 11 1 0 1 0 01 1 0 1 1 11 1 1 0 0 01 1 1 0 1 11 1 1 1 0 01 1 1 1 1 1
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-20 06–07
H01L1
Realisatie als som van 1-mintermen
F = (6,7,10,11,14,15,21,23,25,27,29,31)
wxyz
Kostprijs = 5×1 + 12×6 + 1×13 = 90Vertraging = 1 + 3,6 + 6,4 = 11
v
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-21 06–07
H01L1
Maak Karnaugh-kaart
0 0 0 0
0 0 1 1
0 0 1 1
0 0 1 1
0 0 0 0
0 1 1 0
0 1 1 0
0 1 1 0w
x
yz z
v
y
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-22 06–07
H01L1
Bepaal priemimplicanten
1 1
1 1
1 1
1 1
1 1
1 1w
x
yz z
v
y
v’xyv’wy
xyzwyz
vxzvwz
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-23 06–07
H01L1
Bepaal essentiële priemimplicanten
1 1
1 1
1 1
1 1
1 1
1 1w
x
yz z
v
y
F1min2 = v’xy + v’wy + vxz + vwz
Reeds de minimale bedekking
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-24 06–07
H01L1
Minimale AND-OR realisatie
F1min2 = v’xy + v’wy + vxz + vwz
Kostprijs = 1×1 + 4×4 + 1×5= 22 (76% goedkoper)
Vertraging = 1 + 2,8 + 3,2= 7 (34% sneller)
vwxyz
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-25 06–07
H01L1
Realisatie in meer dan 2 lagen
F = v’xy + v’wy + vxz + vwz= v’y(x + w) + vz(x + w)= (x + w)(v’y + vz) v
wxyz
Kostprijs = 1×1 + 5×3 = 16 (82% goedkoper)
Vertraging = 1 + 2,4 + 2,4 + 2,4= 8,2 (25% sneller)
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-26 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functiesKarnaugh-kaart Minimalisering met Karnaugh-kaarten
Minimale AND-OR realisatieMinimale OR-AND realisatie
Meerdere uitgangen ‘Don’t care’ conditiesQuine-McCluskey
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
(ADD, ALU, MUX, …)
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-27 06–07
H01L1 Duale minimaliseringmet Karnaugh-kaart
0 0 0 0
0 0 1 1
0 0 1 1
0 0 1 1
0 0 0 0
0 1 1 0
0 1 1 0
0 1 1 0w
x
yz z
v
y
Realiseer de nullen i.p.v. de enen
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-28 06–07
H01L1
Bepaal de priemimplicanten
0 0 0 0
0 0
0 0
0 0
0 0 0 0
0 0
0 0
0 0w
x
yz z
v
y
v+yw+x
v’+zy+z
= (v’y’)’ = (vz’)’
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-29 06–07
H01L1
Bepaal essentiële priemimplicanten
0 0 0 0
0 0
0 0
0 0
0 0 0 0
0 0
0 0
0 0w
x
yz z
v
y
F0min2 = (v+y)(w+x)(v’+z)
Reeds de minimale bedekking
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-30 06–07
H01L1
Minimale OR-AND realisatie
F0min2 = (v+y)(w+x)(v’+z)
Kostprijs = 1×1 + 3×3 + 1×4= 14 (84% goedkoper)
Vertraging = 1 + 2,4 + 2,8= 6,2 (44% sneller)
vwxyz
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-31 06–07
H01L1
Samenvatting
Verderop zullen we zien dat er nog andere mogelijkheden zijn, afhankelijk van de technologie OR-AND-INV
Kostprijs = 11 (Rel. kostprijs = 12%) Vertraging = 4 (Rel. vertraging = 36%)
NOR Kostprijs = 10 (Rel. kostprijs = 11%) Vertraging = 4,2 (Rel. vertraging = 38%)
compromis grootte snelheid
Realisatie Kost Rel. kostVertragin
gRel.
vertragingSom van 1-mintermen 90 100% 11 100%
Minimale AND-OR 22 24% 7 64%3-lagen 16 18% 8,2 75%
Minimale OR-AND 14 16% 6,2 56%
Minimalisering
• Karnaugh-kaart
Minimalisering
AND-OR
OR-AND
• Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-32 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functiesKarnaugh-kaartMinimalisering met Karnaugh-kaarten Meerdere uitgangen ‘Don’t care’ conditiesQuine-McCluskey
Impact van technologie
Tijdsgedrag
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
• Karnaugh-kaart
• Minimalisering
Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-33 06–07
H01L1
Meerdere uitgangen
Nadat alle essentiële priemimplicanten
gerealiseerd zijn: Selecteer alle priemimplicanten
die de mintermen realiseren en die al essentieel zijn voor een andere functie (en dus al gerealiseerd zijn) yw’ reeds essentieel voor a en b zw’ reeds essentieel voor a
Kies de implicant die in het kleinst aantal functies voorkomt (om de fan-out zo laag mogelijk te houden) yw’ reeds in a en b zw’ reeds in a
1 1
1 1 1
1 1 1
1 1
c
xy
1
1 1
1 1
1
a
xy
zw
1 1
1 1
b
xy
a = yw’ + zw’b = yw’c = yz’ + y’z + zw’
Minimalisering
• Karnaugh-kaart
• Minimalisering
Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-34 06–07
H01L1
Meerdere uitgangen
Soms voordelig om niet-priemimplicanten te gebruiken (‘trial-and-error’!)
Mogelijkheden stijgen als meerdere lagen toegelaten zijn
1 1 1
1 1 1
1
a
xy
zw
1 1 1
1 1 1
1
b zw
1 1 1
1 1 1
1
a
xy
1 1 1
1 1 1
1
b
a = yz’ + wyz + xwy’z’b = yw’ + wyz + xwy’z’
Kostprijs: 23
a = yz’ + yw + xwz’b = yw’ + zy + xwy’z’
Kostprijs: 26
Minimalisering
• Karnaugh-kaart
• Minimalisering
Multi-uitgang
• Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-35 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functiesKarnaugh-kaartMinimalisering met Karnaugh-kaartenMeerdere uitgangen ‘Don’t care’ conditiesQuine-McCluskey
Impact van technologie
Tijdsgedrag
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-36 06–07
H01L1
‘Don’t care’ condities
= onvolledig gespecificeerde Booleaanse functie
BCD 7-segmenta
b
c
d
e
fg
x y z w a b c d e f g0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1
1 1 1 1 1 1 0
1 1 1 1 0 0 1
1 0 1 1 0 1 1
1 1 1 0 0 0 0
1 1 1 1 0 1 1
0 1 1 0 0 0 01 1 0 1 1 0 1
0 1 1 0 0 1 1
1 0 1 1 1 1 1
1 1 1 1 1 1 1
X X X X X X XX X X X X X XX X X X X X XX X X X X X XX X X X X X XX X X X X X X
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-37 06–07
H01L1
1. Maak Karnaugh-kaarten
1 0 1 1
0 1 1 1
X X X X
1 1 X X
1 1 1 1
1 0 1 0
X X X X
1 1 X X
1 1 1 0
1 1 1 1
X X X X
1 1 X X
1 0 1 1
0 1 0 1
X X X X
1 1 X X
1 0 0 1
0 0 0 1
X X X X
1 0 X X
1 0 0 0
1 1 0 1
X X X X
1 1 X X
0 0 1 1
1 1 0 1
X X X X
1 1 X X
x
x
y
y
z z z zw w w w
a b c d
e f g
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-38 06–07
H01L1 2. Bepaal alle priemimplicanten
1 1 1
1 1 1
X X X X
1 1 X X
1 1 1 1
1 1
X X X X
1 1 X X
1 1 1
1 1 1 1
X X X X
1 1 X X
1 1 1
1 1
X X X X
1 1 X X
1 1
1
X X X X
1 X X
1
1 1 1
X X X X
1 1 X X
1 1
1 1 1
X X X X
1 1 X X
x
x
y
y
z z z zw w w w
a b c d
e f g
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-39 06–07
H01L1 3. Bepaal alle essentiëlepriemimplicanten
1 1 1
1 1 1
X X X X
1 1 X Xx
y
zw
a
volledigebedekking
1 1 1
1 1
X X X X
1 1 X X
zw
d
volledigebedekking
1
1 1 1
X X X X
1 1 X X
f
volledigebedekking
a = y’w’ + z + yw + x
b = y’ + z’w’ + zw c = z’ + w + y
d = y’w’ + y’z + yz’w + zw’ + x
e = y’w’ + zw’ f = z’w’ + yz’ + yw’ + x
1 1 1
1 1 1 1
X X X X
1 1 X X
zw
c
volledigebedekking
1 1 1 1
1 1
X X X X
1 1 X X
zw
b
volledigebedekking
1 1
1
X X X X
1 X Xxy
e
volledigebedekking
1 1
1 1 1
X X X X
1 1 X X
g
onvolledigebedekking
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-40 06–07
H01L1 4. Zoek de minimale bedekking
Keuze van de priemimplicant die deoverblijvende minterm realiseert: Selecteer alle priemimplicanten die
de minterm realiseren en die al essentieel zijn voor een andere functie zw’ reeds essentieel voor d of e yw’ reeds essentieel voor f
Kies de implicant die in het kleinst aantal functies voorkomt zw’ reeds in d en e yw’ reeds in f
1 1
1 1 1
X X X X
1 1 X X
g
xy
zw
g = y’z + yz’ + yw’ + x
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-41 06–07
H01L1
Minimale realisatiex y z w
a cb d e f g
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-42 06–07
H01L1
Kostprijs & vertraging
Som van 1-mintermen Kostprijs = 110 (100%)
Inverters : 4×1 = 4 AND-poorten : 10×5 = 50 OR-poorten : 9 + 9 + 10 + 8 + 5
+ 7 + 8 = 56 Vertraging = 1 + 3,2 + 5,2 = 9,4 (100%)
Kritisch pad = xc (9-input OR)
Minimale 2-lagen-implementatie Kostprijs = 64 (58%)
Inverters : 4×1 = 4 AND-poorten : 8×3 + 1×4 = 28 OR-poorten : 1×3 + 2×4 + 3×5 + 1×6
= 32 Vertraging = 1 + 2,8 + 3,6 = 7,4 (79%)
Kritisch pad = zd (3-input AND & 5-input OR)
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
Don't care
• Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
x y z w a b c d e f g0 0 0 0 1 1 1 1 1 1 00 0 0 1 0 1 1 0 0 0 00 0 1 0 1 1 0 1 1 0 10 0 1 1 1 1 1 1 0 0 10 1 0 0 0 1 1 0 0 1 10 1 0 1 1 0 1 1 0 1 10 1 1 0 1 0 1 1 1 1 10 1 1 1 1 1 1 0 0 0 01 0 0 0 1 1 1 1 1 1 11 0 0 1 1 1 1 1 0 1 1
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-43 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functiesKarnaugh-kaartMinimalisering met Karnaugh-kaartenMeerdere uitgangen ‘Don’t care’ condities Quine-McCluskey
Impact van technologie
Tijdsgedrag
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-44 06–07
H01L1
Quine-McCluskey
Karnaugh-kaarthandmatige methode:
visuele patroonherkenninggeen garantie op de optimale oplossing
(gulzige strategie)
Quine-McCluskeycomputermethode,
gebruik makend van tabellenoptimale oplossingvormt de basis van alle CAD-software
van het ontwerpen van schakelingen moeilijk met de hand zie boek
Minimalisering
• Karnaugh-kaart
• Minimalisering
• Multi-uitgang
• Don't care
Quine-McClusky
Technologie
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-45 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologieGate array: NAND, NORComponentenbibliotheek: AOI, OAI, …FPGA
Tijdsgedrag
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
Technologie
• Gate array
• Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-46 06–07
H01L1
Gate array
Aanpassing nodig omdat ze enkel m-input NAND- of m-input NOR-poorten bevatten: INV-AND-OR (minimalisering 1-mintermen)
m-input NAND INV-OR-AND (minimalisering 0-maxtermen)
m-input NOR Aanpassing aan de technologie:
Vervang n-input AND (OR) doorm-input ANDs (ORs), met m<n
DecompositieDecompositie
ConversieConversie Vervang AND & OR door NAND (NOR)
OptimaliseringOptimalisering Elimineer dubbele negaties
Optimalisering vertragingOptimalisering vertragingTracht alle vertragingen van ingangnaar uitgang gelijk te maken
Minimalisering
Technologie
Gate array
• Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-47 06–07
H01L1
Decompositie
=
=
Minimalisering
Technologie
Gate array
• Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
a + b + c + d = (a + b) + (c + d)= ((a + b) + c) + d
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-48 06–07
H01L1
Conversie & optimalisering
Conversie gebaseerd op dewetten van De Morgan:
Optimalisering:
= (xy)’ = x’ + y’
= (x + y)’ = x’y’
= (x’)’ = x
Minimalisering
Technologie
Gate array
• Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-49 06–07
H01L1
Enkele voorbeelden
De realisatie met alleen NAND of NOR is sneller:geen extra inverter per poort
Minimalisering
Technologie
Gate array
• Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-50 06–07
H01L1
Realisatie van een inverter
=Nadeel:
verdubbeling belasting van de sturende poort
=
1
0
Nadeel: langere bedrading
Minimalisering
Technologie
Gate array
• Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-51 06–07
H01L1
Optimalisering vertraging (‘retiming’)
= tracht alle vertragingen van een ingangnaar een uitgang gelijk te maken
Bijv. realiseer onderstaand voorbeeld enkel met 3-input NAND-poorten en optimaliseer de vertraging
Minimalisering
Technologie
Gate array
• Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-52 06–07
H01L1
Voorbeeld optimalisering vertraging
1e ontbinding in3-input NAND
2e ontbinding in3-input NAND
Vertraging = 6×1,8 = 10,8
Vertraging = 4×1,8 = 7,2 (67%)
Minimalisering
Technologie
Gate array
• Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-53 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologieGate array Componentenbibliotheek: AOI, OAI, …FPGA
Tijdsgedrag
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
Technologie
• Gate array
Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-54 06–07
H01L1
Bibliotheek van componenten
ASIC’s hebben AOI en OAI: klein en snel! Voor kleine functies: realiseer de
inverse functie met AND-OR of OR-AND Bijv. 2e voorbeeld minimalisering:
F =
(6,7,10,11,14,15,21,23,25,27,29,31)Realisatie als som van 1-mintermen:
kostprijs = 90 vertraging = 11
Minimale realisatie als OR-AND: kostprijs = 14 (16%) vertraging = 6,2 (56%)
Minimalisering
Technologie
• Gate array
Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-55 06–07
H01L1
Voorbeeld kleine functie
F = (6,7,10,11,14,15,21,23,25,27,29,31) F’= (0,1,2,3,4,5,8,9,12,13,16,17,18,19,20, 22,24,26,28,30)
Kostprijs = 5×1 + 6 = 11 (12%)Vertraging = 1 + 3 = 4 (36%)
1 1 1 1
1 1
1 1
1 1
1 1 1 1
1 1
1 1
1 1w
x
yz z
v
y vwxyz
F’
F
F
Minimalisering
Technologie
• Gate array
Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-56 06–07
H01L1
Grote functies (meerlagen realisatie)
Transformeer naar NAND of NORTransformeer naar NAND of NOR
Realiseer als AND-OR of OR-ANDRealiseer als AND-OR of OR-AND
Vervang zoveel mogelijk 2 lagen poorten
buiten het kritisch pad door AOI/OAI(lagere kost)
Vervang zoveel mogelijk 2 lagen poorten
buiten het kritisch pad door AOI/OAI(lagere kost)
Bepaal kritisch padBepaal kritisch pad
Vervang zoveel mogelijk 2 lagen poorten
op het kritisch pad door AOI/OAI(lagere kost / geen slechtere
vertraging)
Vervang zoveel mogelijk 2 lagen poorten
op het kritisch pad door AOI/OAI(lagere kost / geen slechtere
vertraging)
Minimalisering
Technologie
• Gate array
Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-57 06–07
H01L1
Voorbeeld: F = w’z’ + z(w+y)
1. Realiseer met AND en OR
2. Transformeer naar NAND en NOR
Kostprijs = 14Vertraging =
7,2
3. Bepaal het kritisch pad
Kostprijs = 11 (79%)Vertraging = 5,2 (72%)
y
z
wF
y
z
wF
Minimalisering
Technologie
• Gate array
Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-58 06–07
H01L1
AOI/OAI gebruiken (1e poging)
4. Vervang 2 poorten op kritisch paddoor AOI
5. Vervang 2 poorten buiten kritisch paddoor een component uit de bibliotheek
Kostprijs = 10 (71%)Vertraging = 5,6 (78%)
y
z
w F
y
z
w F
Kostprijs = 10 (71%)Vertraging = 5,6 (78%)
Minimalisering
Technologie
• Gate array
Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-59 06–07
H01L1
AOI/OAI gebruiken (2e poging)
4. Vervang 2 poorten op kritisch paddoor OAI
5. Vervang 2 poorten buiten kritisch paddoor een component uit de bibliotheek
Kostprijs = 7 (50%)Vertraging = 3,6 (50%)
y
z
w F
Kostprijs = 10 (71%)Vertraging = 5,6 (78%)
y
z
w F
Minimalisering
Technologie
• Gate array
Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-60 06–07
H01L1
AOI/OAI gebruiken (3e poging)
4. Vervang 2 poorten op kritisch paddoor OAI
4. Analyseer het nieuwe kritische pad
Kostprijs = 10 (71%)Vertraging = 3,8 (53%)
Kostprijs = 9 (64%)Vertraging = 3,8 (53%)
y
z
wF
y
z
wF
Minimalisering
Technologie
• Gate array
Chip-ontwerp
• FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-61 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologieGate arrayComponentenbibliotheek FPGA
Tijdsgedrag
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
Technologie
• Gate array
• Chip-ontwerp
FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-62 06–07
H01L1
Aanpassing aan FPGA
CLB2 functies van 4 variabelen1 functie van 5 variabelen
Aanpassing analoog aan vorige methode, maar zoek naar subschakelingen van 4 of 5 variabelen i.p.v. AOI/OAI
Voor FPGA’s (of ASIC’s) gebeurt de aanpassing voorprototype: software (automatisch)eindproduct: handmatige optimalisering
kanvoordelig zijn
Minimalisering
Technologie
• Gate array
• Chip-ontwerp
FPGA
Tijdsgedrag
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-63 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie
TijdsgedragHazards vermijden
Basisbouwblokken op RTL-niveau(ADD, ALU, MUX, …)
Minimalisering
Technologie
Tijdsgedrag
• Hazard
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-64 06–07
H01L1
Hazard
= bijkomende niveauverstoring (‘glitch’) t.g.v. tijdsgedrag
Statische hazard:constant niveau vertoont verstoringstatische 1-hazard:
uitgang moet 1 blijven maar wordt even 0statische 0-hazard:
uitgang moet 0 blijven maar wordt even 1 Dynamische hazard:
uitgang schakelt niet eenmaal(bijv. 1 0) maar meerdere malen(bijv. 1 0 1 0)
Minimalisering
Technologie
Tijdsgedrag
Hazard
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-65 06–07
H01L1
Voorbeeld statische hazard
1
1 1 1x
yz
x
y
y’
z
a
b
F
0 1 2 3 4 5 6
Statische 1-hazard
x
y
z
y’a
b
F
Minimalisering
Technologie
Tijdsgedrag
Hazard
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-66 06–07
H01L1
Voorbeeld dynamische hazard
Statisch equivalent:
x F
x’’
0 1 2 3 4 5 6 7 8 9
x
x’
a
F
x’ x’’a
Fx
Minimalisering
Technologie
Tijdsgedrag
Hazard
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-67 06–07
H01L1
Hazards vermijden
OorzaakVerschil in vertraging van eenzelfde
ingang naar eenzelfde uitgang langs verschillende paden
OplossingVoeg redundante termen toe om
disjuncte gebieden in de Karnaugh-kaart te bedekken 1-hazards:
mintermen voor disjuncte 1-gebieden 0-hazards:
maxtermen voor disjuncte 0-gebieden
Minimalisering
Technologie
Tijdsgedrag
Hazard
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-68 06–07
H01L1
Hazards vermijden
1
1 1 1x
yz
x
y
y’
z
a
b
F
0 1 2 3 4 5 6
c
x
y
z
y’a
bF
c
Minimalisering
Technologie
Tijdsgedrag
Hazard
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-69 06–07
H01L1
Hazard-problemen
Hazards zijn moeilijk handmatig te detecteren simulatie tijdsgedrag belangrijk
De kans op hazards vergroot naarmate tPLH en tPHL meer verschillen
Wanneer zijn hazards een probleem? Als signaalovergangen gebruikt worden (bijv.
klok)
Als signaalniveaus gebruikt worden en de hazard komt op een slecht ogenblik (cfr. sequentiële schakelingen)
Samen met de klok van een synchrone schakeling
Gelijk wanneer in een asynchrone schakeling
Minimalisering
Technologie
Tijdsgedrag
Hazard
Basisblokken RTL
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-70 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
Optellen & aftrekken Vermenigvuldigen (A)LU (De)multiplexerPrioriteitsencoderVergelijkenSchuifoperaties
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-71 06–07
H01L1
Interludium: XOR-poort
Herkenbaar aan dambordpatroon
Realiseerbaar als boom van 2-input XOR’s
Bruikbaar als programmeerbare inverter
xx
0x
x’1
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0x
y
zw
x y z w 0 0 1 1
1 1 0 0
0 0 1 1
1 1 0 0x
y
zw
x y z
x y z w= (x y) (z w)
xyzw
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-72 06–07
H01L1
Halve opteller (‘Half Adder’)
0 0
0 1xi
yici+1
0 1
1 0xi
yisi
HA
xi yi
ci+1
si
1 CLB
xi yi ci+1 si
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
xi yi
ci+1 si
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-73 06–07
H01L1
Opteller (‘Full Adder’)
1 CLB
xi yi ci ci+1 si
0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 0 1 1 01 1 1 1 1
FA
xi yi
cici+1
si
xiyi
ci
ci+1 si
1
1 1 1ci
xi
yi
ci+1
1 1
1 1ci
xi
yi
si
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-74 06–07
H01L1
Alternatieve implementatie
1 poort minder,grotere vertraging van xi & yi naar ci+1,dezelfde vertraging van ci naar ci+1
xi yi ci ci+1 si
0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 0 1 1 01 1 1 1 1
FA
xi yi
cici+1
si
xiyi
ci
ci+1 si
yi
1 1
1 1ci
xi
yi
si
1
1 1 1ci
xici+1
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-75 06–07
H01L1
Ripple-carry opteller
4-bit ripple-carry opteller
FA
x0 y0
c0=0c1
s0
FA
x1 y1
c2
s1
FA
x2 y2
c3
s2
FA
x3 y3
c4
s3
Kritisch pad: x0 of y0 cn: 1 XOR + n AND + n OR
Vertraging: 3,2 + n 2,4 + n 2,4
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-76 06–07
H01L1
Carry-look-ahead opteller
Ripple-carry opteller is traag omdat het kritisch pad van x0 naar cn+1 lang is
Versnelling mogelijk door cn+1 rechtstreeks (bijv. in 2 lagen) te berekenen uit c0, x0…xn en y0…yn
= ‘carry-look-ahead’ Cascadeerbare oplossing
met ‘carry-generate’ gi
en ‘carry-propagate’ pi :
ci+1 = gi + pi ci
gi = xi yi
pi = xi yi’ + xi’yi
Opmerking: ci+1 hangt nietrechtstreeks af van xi of yi
xiyi
ci
sici+1 pigi
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-77 06–07
H01L1
Carry-look-ahead opteller
CLA generatorfuncties:
x ycs
g p
xi yisi
x ycs
g p
xi+n−1yi+n−
1
si+n
−1
x ycs
g p
xi+2 yi+2si+2
x ycs
g p
xi+1 yi+1si+1
…
CLA generator ci
g0 p0gn−1pn−1 g2 p2 g1 p1
c0
c1
ci+1
c3
ci+3
c2
ci+2
cn
ci+n
…
g(i,i+n−1)p(i,i+n−1)
g(0,n−1)p(0,n−1)
1
1
( , ) ( , )
( , )
( , ) ( 1, )
j ij
kk i
j
j kk i
c g i j p i j c
p i j p
g i j g p k j g
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-78 06–07
H01L1
Carry-look-ahead opteller
Realisatie van CLA-functies in 2 lagenKritisch pad: xi of yi ci+n:
1 XOR + 1 n-input AND + 1 n-input ORVertraging: 3,2 + 2(1,6 + n0,4) = 6,4 +
0,8n Cascade van k-bit CLA-generators
in logk n niveaus: bijv. n = 24, k = 4
Vertraging = 3,2 + (2logk n − 1)(3,2 + 0,8k) logaritmisch stijgend
CLA CLA
CLA
CLACLA CLACLACLACLA
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-79 06–07
H01L1
Opteller-aftrekker (‘adder-subtractor’)
Adder/subtractor
X Y
F
SCout
Alleen voor 2-complement!
S Functie Bewerking0 X + Y Optelling
1X − Y = X + Y*
= X + Y’ + 1
Aftrekking
FA
x0 y0
c0c1
f0
FA
x1 y1
c2
f1
FA
x2 y2
c3
f2
FA
x3 y3
c4
f3
S
overflow
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-80 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
Optellen & aftrekken Vermenigvuldigen (A)LU (De)multiplexerPrioriteitsencoderVergelijkenSchuifoperaties
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-81 06–07
H01L1
Parallelle vermenigvuldiger
1-bit × 1-bit vermenigvuldiger
2-bit × 2-bit vermenigvuldiger
a0b0
b0
a0
b1
a1
a0b1
a1b0a1b1
c0c1c2c3Elke term is 1×1-
vermenigvuldiger
b0
a0
a0b0
= AND-poorta0 b0
c0
b0 a0 c0 = a0 × b0
0 0 00 1 01 0 01 1 1
b0b1
a0
b0b1
a1
HAHA
c0c1c2c3
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-82 06–07
H01L1
4-bit × 3-bit vermenigvuldiger
b0b1
a0b2b3
b0b1
a1 b2b3
4-bit opteller
0
b0b1
a2 b2b3
4-bit opteller
c0c1c2c3c4c5c6
s0s1s2s3cout
s0s1s2s3cout
Kostprijs = O(n×m)
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-83 06–07
H01L1 2-complement vermenigvuldiger
Hou rekening met de tekenbit Bijv. 11112 × 11112 = 000000012
( 11112 = −110 = −8 + 4 + 2 + 1 )
Converteer naar ‘sign-magnitude’-voorstelling dikwijls minder hardware
1 × −1 11111111
+ 2 × −1
+ 11111110
+ 4 × −1
+ 11111100
+ −8 × −1
+ 00001000
−1 × −1 00000001
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-84 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
Optellen & aftrekken Vermenigvuldigen (A)LU : (Aritmetische &) logische eenheid (De)multiplexerPrioriteitsencoderVergelijkenSchuifoperaties
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-85 06–07
H01L1
Logische eenheid
= component die alle 16 Booleaanse functies van 2 bits kan realiseren
Eenheid voor n bits= n eenheden voor 1 bit
4 bits S3S2S1S0 die de functie selecterenCodering van de selectiebits is identiek
aan het functienummer in de tabel van de mogelijke Booleaanse functies
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-86 06–07
H01L1
Functies logische eenheid
Functiewaarden voor x,y1-mintermen 00 01 10 11 Uitdrukking
— 0 0 0 0 F0 = 0
m3 0 0 0 1 F1 = xy
m2 0 0 1 0 F2 = xy’
m2 + m3 0 0 1 1 F3 = x
m1 0 1 0 0 F4 = x’y
m1 + m3 0 1 0 1 F5 = y
m1 + m2 0 1 1 0 F6 = xy’ + x’y
m1 + m2 + m3 0 1 1 1 F7 = x + y
m0 1 0 0 0 F8 = (x + y)’
m0 + m3 1 0 0 1 F9 = xy + x’y’
m0 + m2 1 0 1 0 F10 = y’
m0 + m2 + m3 1 0 1 1 F11 = x + y’
m0 + m1 1 1 0 0 F12 = x’
m0 + m1 + m3 1 1 0 1 F13 = x’ + y
m0 + m1 + m2 1 1 1 0 F14 = (xy)’
m0 + m1 + m2 + m3
1 1 1 1 F15 = 1
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-87 06–07
H01L1 Implementatie logische eenheid
S0S1S2S3
xiyi
fi
LU
xi yi
fi
S0..3
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-88 06–07
H01L1
Arithmetic-Logic Unit
= component die de volgende functies realiseert:4 aritmetische bewerkingen: optelling,
aftrekking, ‘increment’ (+1), ‘decrement’ (−1)
4 logische bewerkingen: AND, OR, INV, identiteit (doorgeven, nul-operatie)
Realisatie:Opteller voor aritmetische operatiesArithmetic-Logic Extender ervoor
conditionering ingangen opteller(cfr. XOR bij aftrekking)
logische operaties
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-89 06–07
H01L1
Implementatie ALU
M
M kiest het type bewerking: 0 = logisch, 1 = aritmetischS0 en S1 kiezen de bewerking
FA
a0 b0
f0
ALE
FA
a1 b1
f1
ALE
FA
a2 b2
f2
ALE
FA
a3 b3
f3
ALE
FA
a4 b4
f4
ALE
cout
S01
X Y
overflow
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-90 06–07
H01L1
ALU-functies
M S1 S0 Functie F X Y C0
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
AND A AND B A AND B 0 0Identity A A 0 0
OR A OR B A OR B 0 0
Decrement A−1 Aall 1
0Add A+B A B 0
Subtract A−B A B’ 1
Increment A+1 Aall 0
1
Complement A’ A’ 0 0
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-91 06–07
H01L1
Generatie carry-in
1 1M
S1
S0c0
M S1
c0
M S1 S0 Functie F X Y C0
0 0 0 Complement A’ A’ 0 00 0 1 AND A AND B A AND B 0 00 1 0 Identity A A 0 00 1 1 OR A OR B A OR B 0 0
1 0 0 Decrement A−1 Aall 1
0
1 0 1 Add A+B A B 01 1 0 Subtract A−B A B’ 1
1 1 1 Increment A+1 Aall 0
1
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-92 06–07
H01L1
ALE-implementatie: X
1
1 1
M
S1
S0X
1 1 1
1 1ai
bi
1 1 1 1
1 1 1 1
S1
S0
ba
S0S1
M
M S1 S0 Functie F X Y C0
0 0 0 Complement A’ A’ 0 00 0 1 AND A AND B A AND B 0 00 1 0 Identity A A 0 00 1 1 OR A OR B A OR B 0 0
1 0 0 Decrement A−1 Aall 1
0
1 0 1 Add A+B A B 01 1 0 Subtract A−B A B’ 1
1 1 1 Increment A+1 Aall 0
1
X
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-93 06–07
H01L1
ALE-implementatie: Y
bi
M
S1
S0Y
ai
1 1
1 1
S1
S0
11
11
ba
S0S1
M
M S1 S0 Function F X Y C0
0 0 0 Complement A’ A’ 0 00 0 1 AND A AND B A AND B 0 00 1 0 Identity A A 0 00 1 1 OR A OR B A OR B 0 0
1 0 0 Decrement A−1 Aall 1
0
1 0 1 Add A+B A B 01 1 0 Subtract A−B A B’ 1
1 1 1 Increment A+1 Aall 0
1
Y
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-94 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
Optellen & aftrekken Vermenigvuldigen (A)LU : (Aritmetische &) logische eenheid (De)multiplexerPrioriteitsencoderVergelijkenSchuifoperaties
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
(De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-95 06–07
H01L1
Decoder of DeMultiplexer
2-naar-4 decoder
EA1
A0
C3 C2 C1 C0
Decoder
C3..0
A1..0
E
2 CLB
E A1 A0 C3 C2 C1 C0
0 0 0 0 0 0 00 0 1 0 0 0 00 1 0 0 0 0 00 1 1 0 0 0 01 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 0
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
(De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-96 06–07
H01L1
Decoders cascaderen
nm-naar-2nm = n niveaus van m-naar-2m
(2nm − 1)/(2m − 1) elementen
Decoder
C3..0
A1..0
EDecoder
C7..4
A1..0
EDecoder
C11..8
A1..0
EDecoder
C15..12
A1..0
E
Decoder
A3..2
E
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
(De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-97 06–07
H01L1
Selector of Multiplexer
4-naar-1MUX
D3..0
S1..0
Y
In principe: 2-naar-1 MUX is ½ CLBWegens extra voorzieningen:4-naar-1 MUX is 1 CLB
S1 S0 Y
0 0 D0
0 1 D1
1 0 D2
1 1 D3
D3 D2 D1 D0
S1
S0
Y
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
(De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-98 06–07
H01L1 Alternatieve implementatie MUX
Met 3-state buffers
S1 S0 Y
0 0 D0
0 1 D1
1 0 D2
1 1 D3
D3 D2 D1 D0
Y
Deco
der
S1
S0
E Y
0 Z
1 D
D3 D2 D1 D0
Y
Deco
der
S1
S0
D Y
E
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
(De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-99 06–07
H01L1 Alternatieve implementatie MUX
Bus = gedistribueerde versie van MUX Gemakkelijk uit te breiden Nadeel MUX met hoge fan-in
fan-in OR-poort wordt te groot alle ingangen moeten naar 1 centrale plaats
3-state buffer meestal gratis in een FPGA elke CLB heeft er een die aan een horizontale
lange lijn verbonden kan worden
D1D2D3 D0
Deco
der
S1
S0
Bus
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
(De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-100 06–07
H01L1
Multiplexers cascaderen
4-naar-1MUX
S3..2
4-naar-1MUX
D7..4
S1..0
4-naar-1MUX
D11..8
S1..0
4-naar-1MUX
D15..12
S1..0
4-naar-1MUX
D3..0
S1..0
Y
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
(De)Mux
• Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-101 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
Optellen & aftrekken Vermenigvuldigen (A)LU : (Aritmetische &) logische eenheid (De)multiplexer PrioriteitsencoderVergelijkenSchuifoperaties
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-102 06–07
H01L1
Prioriteitsencoder
0
D2
D3
D1
D0
Any
0 0 0 0
D2
D3
D1
D0
A1
1 1
1 1 1 11 1 1 1
D2
D3
D1
D0
A0
D3 D2 D1 D0 A1 A0 Any
0 0 0 0 0 0 00 0 0 1 0 0 10 0 1 0 0 1 10 0 1 1 0 1 10 1 0 0 1 0 10 1 0 1 1 0 10 1 1 0 1 0 10 1 1 1 1 0 11 0 0 0 1 1 11 0 0 1 1 1 11 0 1 0 1 1 11 0 1 1 1 1 11 1 0 0 1 1 11 1 0 1 1 1 11 1 1 0 1 1 11 1 1 1 1 1 1
0 0 0 0 0 0 0
0 0 1 0 0 1 10 0 1 1 0 1 10 1 0 0 1 0 10 1 0 1 1 0 10 1 1 0 1 0 10 1 1 1 1 0 11 0 0 0 1 1 11 0 0 1 1 1 11 0 1 0 1 1 11 0 1 1 1 1 11 1 0 0 1 1 11 1 0 1 1 1 11 1 1 0 1 1 11 1 1 1 1 1 1
0 0 0 1 0 0 1
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-103 06–07
H01L1 Implementatie prioriteitsencoder
0
D2
D3
D1
D0
Any
0 0 0 0
D2
D3
D1
D0
A1
1 1
1 1 1 11 1 1 1
D2
D3
D1
D0
A0
D3
D0
Any A1 A0
Priorityencoder
D3..0
A1..0
Any1,5 CLB
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-104 06–07
H01L1 Prioriteitsencoders cascaderen
Priorityencoder
D3..0
Priorityencoder
D7..4
Priorityencoder
D11..8
Priorityencoder
D15..12
Priorityencoder
A3..2
Any 4-to-1MUX
A1
4-to-1MUX
A0
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
Prioriteits-encoder
• Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-105 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
Optellen & aftrekken Vermenigvuldigen (A)LU : (Aritmetische &) logische eenheid (De)multiplexerPrioriteitsencoder VergelijkenSchuifoperaties
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-106 06–07
H01L1
Comparator
1
11 1 1 1
y1
x1
x0
y0
G
11 1 1 1
1y1
x1
x0
y0
L
x1 y1 x0 y0G
(X>Y)L (X<Y)
0 0 0 0 0 00 0 0 1 0 10 0 1 0 1 00 0 1 1 0 00 1 0 0 0 10 1 0 1 0 10 1 1 0 0 10 1 1 1 0 11 0 0 0 1 01 0 0 1 1 01 0 1 0 1 01 0 1 1 1 01 1 0 0 0 01 1 0 1 0 11 1 1 0 1 01 1 1 1 0 0
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
Comparator
• Schuiver
Gin Lin
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-107 06–07
H01L1
x1x0y1y0
Implementatie comparator
1
11 1 1 1
y1
x1
x0
y0
G
11 1 1 1
1y1
x1
x0
y0
L
Comp
x1 y1
x0 (Gin)
y0 (Lin)G
L1 CLB
G L
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-108 06–07
H01L1
Comparators cascaderen
Comp
x1 y1
Comp
x2 y2
Comp
x3 y3
Comp
x4 y4
Comp
x5 y5
Comp
x6 y6
Comp
x7 y7 x0 y0
G
L
Comp
x1 y1x2 y2
Comp
x3 y3x4 y4
Comp
x5 y5x6 y6
Comp
x7 y7 x0 y0
Comp
Comp
Comp
G L
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-109 06–07
H01L1
Vergelijken met constanten
Eenvoudigere schakelingen, bijv. x is 8 bits breed
x = 0
x
x = 255 x ≥ 64
x
x < 192x7 x6
x7 x6
x is even
x is oneven
x0
x0
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
Comparator
• Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-110 06–07
H01L1
Ontwerp combinatorische schakelingen
Minimalisering van Booleaanse functies
Impact van technologie Tijdsgedrag Basisbouwblokken op RTL-niveau
Optellen & aftrekken Vermenigvuldigen (A)LU : (Aritmetische &) logische eenheid (De)multiplexerPrioriteitsencoderVergelijken Schuifoperaties
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-111 06–07
H01L1
Schuifoperaties
m posities schuiven: links ‘<<’, rechts ‘>>’Nieuwe bits
Logisch schuiven– Een bit van een bijkomende ingang
Aritmetisch schuiven– Links schuiven: m nullen rechts erbij– Rechts schuiven: m tekenbits links erbij
(MSB voor 2-complement, 0 anders)
i << m i × 2m i >> m i ÷ 2m
m posities roteren, links of rechtsDe bits die aan de ene kant afvallen
worden er aan de andere kant bijgezet
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-112 06–07
H01L1
Implementatie schuifoperatiesS2 S1 S0 functie
0 X X1 0 01 0 11 1 01 1 1
d0d1d2d3S2S1S0
L-in R-in
no shiftshift leftrotate leftshift rightrotate right
4-to-1MUX
4-to-1MUX
4-to-1MUX
4-to-1MUX
MM
y3 y2 y1 y0
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
Schuiver
Combina-torische
schakelingen
KATHOLIEKE UNIVERSITEIT
3-113 06–07
H01L1
‘8-bit barrel left rotator’
MMMMMMMM
MMMMMMMM
MMMMMMMM
S0
S1
S2
Minimalisering
Technologie
Tijdsgedrag
Basisblokken RTL
• Opteller
• Vermenig-vuldiger
• ALU
• (De)Mux
• Prioriteits-encoder
• Comparator
Schuiver