De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT 3-13-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen:

Verwante presentaties


Presentatie over: "Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT 3-13-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen:"— Transcript van de presentatie:

1 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen: uitgang = combinatie ingangen  Sequentiële schakelingen  Niet-programmeerbare processoren  Programmeerbare processoren  Hardware-beschrijvingstalen

2 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Impact van technologie  Tijdsgedrag  Basisbouwblokken op RTL-niveau (ADD, ALU, MUX, …) Minimalisering Technologie Tijdsgedrag Basisblokken RTL

3 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Karnaugh-kaart  Minimalisering met Karnaugh-kaarten  Meerdere 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

4 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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’ Kostprijs(1+1) + (4+4) + 3 = = 4 Vertraging1 + 2,8 + 2,4 = 6,21 + 2,4 = 3,4 xyzxyz Minimalisering  Karnaugh-kaart Minimalisering Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

5 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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 = 1 als x = 1 en y = 0, onafhankelijk van z  Alleen maar duidelijk voor z omdat de lijnen voor z = 0 of 1 onder mekaar liggen  N-kubus of Karnaugh-kaart xyzF xy’z’ 1011xy’z Minimalisering  Karnaugh-kaart Minimalisering Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

6 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 N-kubus =n-dimensionale kubus waarbij elke dimensie met 1 variabele overeen komt  2 variabelen  4 variabelen  3 variabelen Minimalisering  Karnaugh-kaart Minimalisering Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

7 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Karnaugh-kaart =2-dimensionale voorstelling van n-kubus  elk vierkant heeft n buren  naburige vierkanten hebben slechts voor 1 variabele een verschillende waarde Spiegeling  x’y’z’x’y’z xy’z’xy’z x 0 1 yz 0001 x’yzx’yz’ xyzxyz’ 1110 x y z x’z (y niet belangrijk) x’y’zx’yzxy’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

8 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Meer dan 4 variabelen  Spiegeling van kaart met 1 variabele minder  Niet alle buren liggen fysisch naast mekaar! 0 xy zw x z w y xy y x z w v Minimalisering  Karnaugh-kaart Minimalisering Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

9 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Meer dan 4 variabelen  Herhaling van kaart met 1 variabele minder  Onoverzichtelijker naarmate meer variabelen! 0 xy zw xy x y z w x z w v y Minimalisering  Karnaugh-kaart Minimalisering Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

10 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Invullen Karnaugh-kaart  Vanuit waarheidstabel of canonische vorm m0m0 m1m1 m4m4 m5m5 xy zw 0001 m3m3 m2m2 m7m7 m6m x z w m 12 m 13 m8m8 m9m9 m 15 m 14 m 11 m y xyzwF Minimalisering  Karnaugh-kaart Minimalisering Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

11 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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 xy zw x z w y F =yw + xy’w’ + y’z’w’ Minimalisering  Karnaugh-kaart Minimalisering Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

12 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Karnaugh-kaart  Minimalisering met Karnaugh-kaarten  Minimale AND-OR realisatie  Minimale OR-AND realisatie  Meerdere uitgangen  ‘Don’t care’ condities  Quine-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

13 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimalisering met Karnaugh-kaarten Waarheidstabel of canonische vorm Maak de Karnaugh-kaart Bepaal alle priemimplicanten Bepaal alle essentiële priemimplicanten Bepaal alle essentiële priemimplicanten Zoek de minimale bedekking Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

14 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 1. Maak de Karnaugh-kaart w x y z 1 1 F = x’y’z’ + wz + xyz + w’y F =x’y’z’  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

15 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 2. Bepaal alle priemimplicanten w x y z  Analyseer elke 1-minterm  Bepaal 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

16 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 3. Bepaal alle essentiële priemimplicanten  Zoek 1-mintermen die slechts in 1 priemimplicant voorkomen; dit is een essentiële priemimplicant w x y z w’x’z’ x’y’z’ w’y yz wz wx’y’ essentieel Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

17 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 4. Zoek de minimale bedekking F min = 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 w x y z w’x’z’ x’y’z’ w’y yz wz wx’y’ essentieel Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

18 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Winst t.g.v. minimalisering  Origineel F = x’y’z’ + w’y + xyz + wz  Minimaal F min = 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 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

19 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Een tweede voorbeeld vwxyzF vwxyzF Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

20 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie als som van 1-mintermen F =  (6,7,10,11,14,15,21,23,25,27,29,31) w x y z Kostprijs= 5×1 + 12×6 + 1×13= 90 Vertraging= 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

21 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Maak Karnaugh-kaart w x y zz v y Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

22 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Bepaal priemimplicanten w x y zz v y v’xy v’wy xyz wyz vxz vwz Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

23 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Bepaal essentiële priemimplicanten w x y zz v y F 1min2 = 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

24 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimale AND-OR realisatie F 1min2 = 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) v w x y z Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

25 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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 w x y z 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

26 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Karnaugh-kaart  Minimalisering met Karnaugh-kaarten  Minimale AND-OR realisatie  Minimale OR-AND realisatie  Meerdere uitgangen  ‘Don’t care’ condities  Quine-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

27 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Duale minimalisering met Karnaugh-kaart w x y zz 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

28 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Bepaal de priemimplicanten w x y zz v y v+y w+x v’+z y+z = (v’y’)’= (vz’)’ Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

29 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Bepaal essentiële priemimplicanten w x y zz v y F 0min2 = (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

30 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimale OR-AND realisatie F 0min2 = (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) v w x y z Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

31 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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 RealisatieKostRel. kostVertragingRel. vertraging Som van 1-mintermen90100%11100% Minimale AND-OR2224%764% 3-lagen1618%8,275% Minimale OR-AND1416%6,256% Minimalisering Karnaugh-kaart  Minimalisering  AND-OR  OR-AND Multi-uitgang Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

32 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Karnaugh-kaart  Minimalisering met Karnaugh-kaarten  Meerdere 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

33 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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 c x y a x y z w b x y 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

34 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Meerdere uitgangen  Soms voordelig om niet-priemimplicanten te gebruiken (‘trial-and-error’!)  Mogelijkheden stijgen als meerdere lagen toegelaten zijn a x y z w b z w a x y 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

35 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Karnaugh-kaart  Minimalisering met Karnaugh-kaarten  Meerdere 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

36 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 ‘Don’t care’ condities =onvolledig gespecificeerde Booleaanse functie BCD  7-segment a b c d e f g xyzwabcdefg XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX Minimalisering Karnaugh-kaart Minimalisering Multi-uitgang  Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

37 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 1. Maak Karnaugh-kaarten XXXX 11XX XXXX 11XX XXXX 11XX XXXX 11XX XXXX 10XX XXXX 11XX XXXX 11XX x x y y zzzz wwww abcd efg Minimalisering Karnaugh-kaart Minimalisering Multi-uitgang  Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

38 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 2. Bepaal alle priemimplicanten XXXX 11XX XXXX 11XX XXXX 11XX XXXX 11XX 11 1 XXXX 1XX XXXX 11XX XXXX 11XX x x y y zzzz wwww abcd efg Minimalisering Karnaugh-kaart Minimalisering Multi-uitgang  Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

39 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 3. Bepaal alle essentiële priemimplicanten XXXX 11XX x y z w a volledige bedekking XXXX 11XX z w d volledige bedekking XXXX 11XX f volledige bedekking a = y’w’ + z + yw + x b = y’ + z’w’ + zwc = z’ + w + y d = y’w’ + y’z + yz’w + zw’ + x e = y’w’ + zw’f = z’w’ + yz’ + yw’ + x XXXX 11XX z w c volledige bedekking XXXX 11XX z w b volledige bedekking 11 1 XXXX 1XX x y e volledige bedekking XXXX 11XX g onvolledige bedekking Minimalisering Karnaugh-kaart Minimalisering Multi-uitgang  Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

40 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 4. Zoek de minimale bedekking Keuze van de priemimplicant die de overblijvende 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 XXXX 11XX g x y z w g = y’z + yz’ + yw’ + x Minimalisering Karnaugh-kaart Minimalisering Multi-uitgang  Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

41 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimale realisatie x y z w acbdefg Minimalisering Karnaugh-kaart Minimalisering Multi-uitgang  Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL

42 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Kostprijs & vertraging  Som van 1-mintermen  Kostprijs = 110 (100%)  Inverters: 4×1 = 4  AND-poorten: 10×5 = 50  OR-poorten: = 56  Vertraging = 1 + 3,2 + 5,2 = 9,4 (100%)  Kritisch pad = x  c (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 = z  d (3-input AND & 5-input OR) Minimalisering Karnaugh-kaart Minimalisering Multi-uitgang  Don't care Quine-McClusky Technologie Tijdsgedrag Basisblokken RTL xyzwabcdefg

43 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Karnaugh-kaart  Minimalisering met Karnaugh-kaarten  Meerdere 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

44 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Quine-McCluskey  Karnaugh-kaart  handmatige methode: visuele patroonherkenning  geen garantie op de optimale oplossing (gulzige strategie)  Quine-McCluskey  computermethode, gebruik makend van tabellen  optimale oplossing  vormt 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

45 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Impact van technologie  Gate array: NAND, NOR  Componentenbibliotheek: AOI, OAI, …  FPGA  Tijdsgedrag  Basisbouwblokken op RTL-niveau (ADD, ALU, MUX, …) Minimalisering Technologie Gate array Chip-ontwerp FPGA Tijdsgedrag Basisblokken RTL

46 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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) door m-input ANDs (ORs), met m

47 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Decompositie = = Minimalisering Technologie  Gate array Chip-ontwerp FPGA Tijdsgedrag Basisblokken RTL a + b + c + d= (a + b) + (c + d) = ((a + b) + c) + d

48 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Conversie & optimalisering  Conversie gebaseerd op de wetten van De Morgan:  Optimalisering: = (xy)’ = x’ + y’ = (x + y)’ = x’y’ = (x’)’ = x Minimalisering Technologie  Gate array Chip-ontwerp FPGA Tijdsgedrag Basisblokken RTL

49 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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

50 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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

51 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Optimalisering vertraging (‘retiming’) =tracht alle vertragingen van een ingang naar 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

52 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld optimalisering vertraging 1 e ontbinding in 3-input NAND 2 e ontbinding in 3-input NAND Vertraging = 6×1,8 = 10,8Vertraging= 4×1,8 = 7,2 (67%) Minimalisering Technologie  Gate array Chip-ontwerp FPGA Tijdsgedrag Basisblokken RTL

53 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Impact van technologie  Gate array  Componentenbibliotheek: AOI, OAI, …  FPGA  Tijdsgedrag  Basisbouwblokken op RTL-niveau (ADD, ALU, MUX, …) Minimalisering Technologie Gate array  Chip-ontwerp FPGA Tijdsgedrag Basisblokken RTL

54 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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. 2 e 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

55 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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= = 4 (36%) w x y zz v y v w x y z F’ F F Minimalisering Technologie Gate array  Chip-ontwerp FPGA Tijdsgedrag Basisblokken RTL

56 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Grote functies (meerlagen realisatie) Transformeer naar NAND of NOR Realiseer 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 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

57 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld: F = w’z’ + z(w+y) 1.Realiseer met AND en OR 2.Transformeer naar NAND en NOR Kostprijs = 14 Vertraging = 7,2 3.Bepaal het kritisch pad Kostprijs = 11 (79%) Vertraging = 5,2 (72%) y z w F y z w F Minimalisering Technologie Gate array  Chip-ontwerp FPGA Tijdsgedrag Basisblokken RTL

58 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 AOI/OAI gebruiken (1 e poging) 4.Vervang 2 poorten op kritisch pad door AOI 5.Vervang 2 poorten buiten kritisch pad door 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

59 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 AOI/OAI gebruiken (2 e poging) 4.Vervang 2 poorten op kritisch pad door OAI 5.Vervang 2 poorten buiten kritisch pad door 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

60 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 AOI/OAI gebruiken (3 e poging) 4.Vervang 2 poorten op kritisch pad door OAI 4.Analyseer het nieuwe kritische pad Kostprijs = 10 (71%) Vertraging = 3,8 (53%) Kostprijs = 9 (64%) Vertraging = 3,8 (53%) y z w F y z w F Minimalisering Technologie Gate array  Chip-ontwerp FPGA Tijdsgedrag Basisblokken RTL

61 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Impact van technologie  Gate array  Componentenbibliotheek  FPGA  Tijdsgedrag  Basisbouwblokken op RTL-niveau (ADD, ALU, MUX, …) Minimalisering Technologie Gate array Chip-ontwerp  FPGA Tijdsgedrag Basisblokken RTL

62 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Aanpassing aan FPGA  CLB  2 functies van 4 variabelen  1 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 voor  prototype: software (automatisch)  eindproduct:handmatige optimalisering kan voordelig zijn Minimalisering Technologie Gate array Chip-ontwerp  FPGA Tijdsgedrag Basisblokken RTL

63 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Impact van technologie  Tijdsgedrag  Hazards vermijden  Basisbouwblokken op RTL-niveau (ADD, ALU, MUX, …) Minimalisering Technologie Tijdsgedrag Hazard Basisblokken RTL

64 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Hazard =bijkomende niveauverstoring (‘glitch’) t.g.v. tijdsgedrag  Statische hazard: constant niveau vertoont verstoring  statische 1-hazard: uitgang moet 1 blijven maar wordt even 0  statische 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

65 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld statische hazard x y z x y y’ z a b F Statische 1-hazard x y z y’ a b F Minimalisering Technologie Tijdsgedrag  Hazard Basisblokken RTL

66 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld dynamische hazard Statisch equivalent: xF x’’ x x’ a F x’’ a F x Minimalisering Technologie Tijdsgedrag  Hazard Basisblokken RTL

67 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Hazards vermijden  Oorzaak  Verschil in vertraging van eenzelfde ingang naar eenzelfde uitgang langs verschillende paden  Oplossing  Voeg 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

68 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Hazards vermijden x y z x y y’ z a b F c x y z a b F c Minimalisering Technologie Tijdsgedrag  Hazard Basisblokken RTL

69 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Hazard-problemen  Hazards zijn moeilijk handmatig te detecteren  simulatie tijdsgedrag belangrijk  De kans op hazards vergroot naarmate t PLH en t PHL 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

70 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Impact van technologie  Tijdsgedrag  Basisbouwblokken op RTL-niveau  Optellen & aftrekken  Vermenigvuldigen  (A)LU  (De)multiplexer  Prioriteitsencoder  Vergelijken  Schuifoperaties Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

71 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Interludium: XOR-poort  Herkenbaar aan dambordpatroon  Realiseerbaar als boom van 2-input XOR’s  Bruikbaar als programmeerbare inverter x x 0 x x’ x y z w x  y  z  w x y z w x  y  z x  y  z  w = (x  y)  (z  w) x y z w Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

72 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Halve opteller (‘Half Adder’) xixi yiyi c i xixi yiyi sisi HA xixi yiyi c i+1 sisi 1 CLB xixi yiyi c i+1 sisi xixi yiyi sisi Minimalisering Technologie Tijdsgedrag Basisblokken RTL  Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

73 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Opteller (‘Full Adder’) 1 CLB xixi yiyi cici c i+1 sisi FA xixi yiyi cici c i+1 sisi xixi yiyi cici sisi cici xixi yiyi cici xixi yiyi sisi Minimalisering Technologie Tijdsgedrag Basisblokken RTL  Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

74 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Alternatieve implementatie 1 poort minder, grotere vertraging van x i & y i naar c i+1, dezelfde vertraging van c i naar c i+1 xixi yiyi cici c i+1 sisi FA xixi yiyi cici c i+1 sisi xixi yiyi cici sisi yiyi cici xixi yiyi sisi cici xixi Minimalisering Technologie Tijdsgedrag Basisblokken RTL  Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

75 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ripple-carry opteller 4-bit ripple-carry opteller FA x0x0 y0y0 c 0 =0c1c1 s0s0 FA x1x1 y1y1 c2c2 s1s1 x2x2 y2y2 c3c3 s2s2 x3x3 y3y3 c4c4 s3s3 Kritisch pad: x 0 of y 0  c n : 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

76 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Carry-look-ahead opteller  Ripple-carry opteller is traag omdat het kritisch pad van x 0 naar c n+1 lang is  Versnelling mogelijk door c n+1 rechtstreeks (bijv. in 2 lagen) te berekenen uit c 0, x 0 …x n en y 0 …y n = ‘carry-look-ahead’  Cascadeerbare oplossing met ‘carry-generate’ g i en ‘carry-propagate’ p i : c i+1 = g i + p i c i g i = x i y i p i = x i y i ’ + x i ’y i Opmerking: c i+1 hangt niet rechtstreeks af van x i of y i xixi yiyi cici sisi c i+1 pipi gigi Minimalisering Technologie Tijdsgedrag Basisblokken RTL  Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

77 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Carry-look-ahead opteller  CLA generatorfuncties: xy cs gp xixi yiyi sisi xy cs gp x i+n−1 y i+n−1 s i+n−1 xy cs gp x i+2 y i+2 s i+2 xy cs gp x i+1 y i+1 s i+1 … CLA generator cici g0g0 p0p0 g n−1 p n−1 g2g2 p2p2 g1g1 p1p1 c0c0 c1c1 c i+1 c3c3 c i+3 c2c2 c i+2 cncn c i+n … g(i,i+n−1) p(i,i+n−1) g(0,n−1) p(0,n−1) Minimalisering Technologie Tijdsgedrag Basisblokken RTL  Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

78 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Carry-look-ahead opteller  Realisatie van CLA-functies in 2 lagen  Kritisch pad: x i of y i  c i+n : 1 XOR + 1 n-input AND + 1 n-input OR  Vertraging: 3,2 + 2  (1,6 + n  0,4) = 6,4 + 0,8n  Cascade van k-bit CLA-generators in  log k n  niveaus: bijv. n = 24, k = 4  Vertraging = 3,2 + (2  log k n  − 1)  (3,2 + 0,8k)  logaritmisch stijgend Minimalisering Technologie Tijdsgedrag Basisblokken RTL  Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

79 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Opteller-aftrekker (‘adder-subtractor’) Adder/ subtractor XY F S C out Alleen voor 2-complement! SFunctieBewerking 0X + YOptelling 1 X − Y = X + Y* = X + Y’ + 1 Aftrekking FA x0x0 y0y0 c0c0 c1c1 f0f0 x1x1 y1y1 c2c2 f1f1 x2x2 y2y2 c3c3 f2f2 x3x3 y3y3 c4c4 f3f3 S overflow Minimalisering Technologie Tijdsgedrag Basisblokken RTL  Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

80 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp combinatorische schakelingen  Minimalisering van Booleaanse functies  Impact van technologie  Tijdsgedrag  Basisbouwblokken op RTL-niveau  Optellen & aftrekken  Vermenigvuldigen  (A)LU  (De)multiplexer  Prioriteitsencoder  Vergelijken  Schuifoperaties Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller  Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

81 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Parallelle vermenigvuldiger  1-bit × 1-bit vermenigvuldiger  2-bit × 2-bit vermenigvuldiger a0b0a0b0 b0b0 a0a0 b1b1 a1a1 a0b1a0b1 a1b0a1b0 a1b1a1b1 c0c0 c1c1 c2c2 c3c3 Elke term is 1×1- vermenigvuldiger b0b0 a0a0 a0b0a0b0 = AND-poort a0a0 b0b0 c0c0 b0b0 a0a0 c 0 = a 0 × b b0b0 b1b1 a0a0 b0b0 b1b1 a1a1 HA c0c0 c1c1 c2c2 c3c3 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller  Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

82 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 4-bit × 3-bit vermenigvuldiger b0b0 b1b1 a0a0 b2b2 b3b3 b0b0 b1b1 a1a1 b2b2 b3b3 4-bit opteller 0 b0b0 b1b1 a2a2 b2b2 b3b3 c0c0 c1c1 c2c2 c3c3 c4c4 c5c5 c6c6 s0s0 s1s1 s2s2 s3s3 c out s0s0 s1s1 s2s2 s3s3 Kostprijs = O(n×m) Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller  Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

83 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 2-complement vermenigvuldiger  Hou rekening met de tekenbit Bijv × = ( = −1 10 = − )  Converteer naar ‘sign-magnitude’- voorstelling  dikwijls minder hardware 1 × −1  × −1  × −1  −8 × −1  −1 × −1  Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller  Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator Schuiver

84 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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  Prioriteitsencoder  Vergelijken  Schuifoperaties Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger  ALU (De)Mux Prioriteits- encoder Comparator Schuiver

85 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Logische eenheid =component die alle 16 Booleaanse functies van 2 bits kan realiseren  Eenheid voor n bits = n eenheden voor 1 bit  4 bits S 3 S 2 S 1 S 0 die de functie selecteren  Codering 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

86 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Functies logische eenheid Functiewaarden voor x,y 1-mintermen Uitdrukking —0000F 0 = 0 m3m3 0001F 1 = xy m2m2 0010F 2 = xy’ m 2 + m F 3 = x m1m1 0100F 4 = x’y m 1 + m F 5 = y m 1 + m F 6 = xy’ + x’y m 1 + m 2 + m F 7 = x + y m0m0 1000F 8 = (x + y)’ m 0 + m F 9 = xy + x’y’ m 0 + m F 10 = y’ m 0 + m 2 + m F 11 = x + y’ m 0 + m F 12 = x’ m 0 + m 1 + m F 13 = x’ + y m 0 + m 1 + m F 14 = (xy)’ m 0 + m 1 + m 2 + m F 15 = 1 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger  ALU (De)Mux Prioriteits- encoder Comparator Schuiver

87 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Implementatie logische eenheid S0S0 S1S1 S2S2 S3S3 xixi yiyi fifi LU xixi yiyi fifi S 0..3 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger  ALU (De)Mux Prioriteits- encoder Comparator Schuiver

88 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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 operaties  Arithmetic-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

89 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Implementatie ALU M M kiest het type bewerking: 0 = logisch, 1 = aritmetisch S 0 en S 1 kiezen de bewerking FA a0a0 b0b0 f0f0 ALE FA a1a1 b1b1 f1f1 ALE FA a2a2 b2b2 f2f2 ALE FA a3a3 b3b3 f3f3 ALE FA a4a4 b4b4 f4f4 ALE c out S 01 XY overflow Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger  ALU (De)Mux Prioriteits- encoder Comparator Schuiver

90 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 ALU-functies MS1S1 S0S0 FunctieFXYC0C ANDA AND B 00 IdentityAA00 ORA OR B 00 DecrementA−1Aall 10 AddA+BAB0 SubtractA−BAB’1 IncrementA+1Aall 01 ComplementA’ 00 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger  ALU (De)Mux Prioriteits- encoder Comparator Schuiver

91 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Generatie carry-in 11 M S1S1 S0S0 c0c0 MS1S1 c0c0 MS1S1 S0S0 FunctieFXYC0C0 000ComplementA’ ANDA AND B IdentityAA00 011ORA OR B DecrementA−1Aall AddA+BAB0 110SubtractA−BAB’1 111IncrementA+1Aall 01 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger  ALU (De)Mux Prioriteits- encoder Comparator Schuiver

92 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 ALE-implementatie: X 1 11 M S1S1 S0S0 X aiai bibi S1S1 S0S0 b a S0S0 S1S1 M MS1S1 S0S0 FunctieFXYC0C0 000ComplementA’ ANDA AND B IdentityAA00 011ORA OR B DecrementA−1Aall AddA+BAB0 110SubtractA−BAB’1 111IncrementA+1Aall 01 X Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger  ALU (De)Mux Prioriteits- encoder Comparator Schuiver

93 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 ALE-implementatie: Y bibi M S1S1 S0S0 Y aiai S1S1 S0S b a S0S0 S1S1 M MS1S1 S0S0 FunctionFXYC0C0 000ComplementA’ ANDA AND B IdentityAA00 011ORA OR B DecrementA−1Aall AddA+BAB0 110SubtractA−BAB’1 111IncrementA+1Aall 01 Y Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger  ALU (De)Mux Prioriteits- encoder Comparator Schuiver

94 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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  Prioriteitsencoder  Vergelijken  Schuifoperaties Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU  (De)Mux Prioriteits- encoder Comparator Schuiver

95 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Decoder of DeMultiplexer 2-naar-4 decoder E A1A1 A0A0 C3C3 C2C2 C1C1 C0C0 Decoder C 3..0 A 1..0 E 2 CLB EA1A1 A0A0 C3C3 C2C2 C1C1 C0C Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU  (De)Mux Prioriteits- encoder Comparator Schuiver

96 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Decoders cascaderen nm-naar-2 nm = n niveaus van m-naar-2 m (2 nm − 1)/(2 m − 1) elementen Decoder C 3..0 A 1..0 E Decoder C 7..4 A 1..0 E Decoder C A 1..0 E Decoder C A 1..0 E Decoder A 3..2 E Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU  (De)Mux Prioriteits- encoder Comparator Schuiver

97 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Selector of Multiplexer 4-naar-1 MUX D 3..0 S 1..0 Y In principe: 2-naar-1 MUX is ½ CLB Wegens extra voorzieningen: 4-naar-1 MUX is 1 CLB S1S1 S0S0 Y 00D0D0 01D1D1 10D2D2 11D3D3 D3D3 D2D2 D1D1 D0D0 S1S1 S0S0 Y Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU  (De)Mux Prioriteits- encoder Comparator Schuiver

98 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Alternatieve implementatie MUX  Met 3-state buffers S1S1 S0S0 Y 00D0D0 01D1D1 10D2D2 11D3D3 D3D3 D2D2 D1D1 D0D0 Y Decoder S1S1 S0S0 EY 0Z 1D D3D3 D2D2 D1D1 D0D0 Y S1S1 S0S0 D Y E Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU  (De)Mux Prioriteits- encoder Comparator Schuiver

99 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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 D1D1 D2D2 D3D3 D0D0 Decoder S1S1 S0S0 Bus Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU  (De)Mux Prioriteits- encoder Comparator Schuiver

100 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Multiplexers cascaderen 4-naar-1 MUX S naar-1 MUX D 7..4 S naar-1 MUX D S naar-1 MUX D S naar-1 MUX D 3..0 S 1..0 Y Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU  (De)Mux Prioriteits- encoder Comparator Schuiver

101 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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  Prioriteitsencoder  Vergelijken  Schuifoperaties Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux  Prioriteits- encoder Comparator Schuiver

102 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Prioriteitsencoder 0 D2D2 D3D3 D1D1 D0D0 Any 0000 D2D2 D3D3 D1D1 D0D0 A1A D2D2 D3D3 D1D1 D0D0 A0A0 D3D3 D2D2 D1D1 D0D0 A1A1 A0A Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux  Prioriteits- encoder Comparator Schuiver

103 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Implementatie prioriteitsencoder 0 D2D2 D3D3 D1D1 D0D0 Any 0000 D2D2 D3D3 D1D1 D0D0 A1A D2D2 D3D3 D1D1 D0D0 A0A0 D3D3 D0D0 A1A1 A0A0 Priority encoder D 3..0 A 1..0 Any 1,5 CLB Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux  Prioriteits- encoder Comparator Schuiver

104 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Prioriteitsencoders cascaderen Priority encoder D 3..0 Priority encoder D 7..4 Priority encoder D Priority encoder D Priority encoder A 3..2 Any 4-to-1 MUX A1A1 4-to-1 MUX A0A0 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux  Prioriteits- encoder Comparator Schuiver

105 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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  Prioriteitsencoder  Vergelijken  Schuifoperaties Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder  Comparator Schuiver

106 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Comparator y1y1 x1x1 x0x0 y0y0 G y1y1 x1x1 x0x0 y0y0 L x1x1 y1y1 x0x0 y0y0 G (X>Y)L (X

107 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 x1x1 x0x0 y1y1 y0y0 Implementatie comparator y1y1 x1x1 x0x0 y0y0 G y1y1 x1x1 x0x0 y0y0 L Comp x1x1 y1y1 x 0 (G in ) y 0 (L in ) G L 1 CLB GL Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder  Comparator Schuiver

108 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Comparators cascaderen Comp x1x1 y1y1 x2x2 y2y2 x3x3 y3y3 x4x4 y4y4 x5x5 y5y5 x6x6 y6y6 x7x7 y7y7 x0x0 y0y0 G L x1x1 y1y1 x2x2 y2y2 x3x3 y3y3 x4x4 y4y4 x5x5 y5y5 x6x6 y6y6 x7x7 y7y7 x0x0 y0y0 GL Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder  Comparator Schuiver

109 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Vergelijken met constanten Eenvoudigere schakelingen, bijv. x is 8 bits breed x = 0 x x = 255x ≥ 64 x x < 192 x7x7 x6x6 x7x7 x6x6 x is even x is oneven x0x0 x0x0 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder  Comparator Schuiver

110 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 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  Prioriteitsencoder  Vergelijken  Schuifoperaties Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator  Schuiver

111 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Schuifoperaties  m posities schuiven: links ‘ >’  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 ÷ 2 m  m posities roteren, links of rechts  De 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

112 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Implementatie schuifoperaties S2S2 S1S1 S0S0 functie 0XX d0d0 d1d1 d2d2 d3d3 S2S2 S1S1 S0S0 L-in R-in no shift shift left rotate left shift right rotate right 4-to-1 MUX 4-to-1 MUX 4-to-1 MUX 4-to-1 MUX MM y3y3 y2y2 y1y1 y0y0 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator  Schuiver

113 Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 ‘8-bit barrel left rotator’ MMMMMMMM MMMMMMMM MMMMMMMM S0S0 S1S1 S2S2 Minimalisering Technologie Tijdsgedrag Basisblokken RTL Opteller Vermenig- vuldiger ALU (De)Mux Prioriteits- encoder Comparator  Schuiver


Download ppt "Combina- torische schakelingen KATHOLIEKE UNIVERSITEIT 3-13-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen:"

Verwante presentaties


Ads door Google