Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-12-106–07H01L1 Inhoudstafel Inleiding De basis van...

download Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-12-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen  Sequentiële.

If you can't read please download the document

Transcript of Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-12-106–07H01L1 Inhoudstafel Inleiding De basis van...

  • Dia 1
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-12-10607H01L1 Inhoudstafel Inleiding De basis van digitaal ontwerp Combinatorische schakelingen Sequentile schakelingen Niet-programmeerbare processoren Programmeerbare processoren Hardware-beschrijvingstalen
  • Dia 2
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-22-20607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 3
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-32-30607H01L1 Digitaal ontwerp in grote lijnen Documentatie handleiding gebruikers handleiding hersteller documentatie voor verdere ontwikkelingen Specificatie Documentatie Bibliotheek Synthese Analyse Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 4
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-42-40607H01L1 Specificatie =beschrijf de functionaliteit, inclusief de interface (interactie met de omgeving) Beschrijving in de natuurlijke taal dikwijls niet eenduidig met een blokschema Dikwijls een onvolledige beschrijving Niet altijd duidelijk wat mogelijk is en wat niet Wordt vervolledigd/aangevuld later in het ontwerpproces Maakt dikwijls reeds implementatiebeslissingen die onnodige beperkingen opleggen aan het ontwerp Specificatie Bibliotheek Synthese Analyse Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 5
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-52-50607H01L1 Synthese =vertaling van een specificatie op een hoog abstractieniveau naar een lager niveau, waarbij beslissingen i.v.m. de implementatie genomen worden: x+y 16-bit ripple-carry adder & 2 registers Verschillende niveaus: Systeemsynthese (bouwblokken: processoren, geheugen, ASICs) Architectuursynthese (met RTL-componenten: optellers, tellers, schuifregisters) Sequentieel ontwerp (met poorten en flip-flops) Combinatorisch ontwerp (met poorten) Circuit-ontwerp (met transistoren) Fysisch ontwerp (met halfgeleideroppervlakken) Specificatie Bibliotheek Synthese Analyse Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 6
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-62-60607H01L1 Bibliotheek van componenten Ontwerpen evolueren (geen revolutie): Hergebruik componenten economisch zeer belangrijk Ontbrekende componenten kopen/ontwerpen Op de verschillende niveaus: Processor, ook specifieke (FFT, convolutie, ) Opteller, teller, (RTL-niveau) Logische poort Transistor Trend naar bibliotheken op hoog niveau wegens steeds hogere integratieniveaus Wet van Moore: # transistoren 2 per 1824 maanden ( 2 20 10 6 op 3040 jaar) Specificatie Bibliotheek Synthese Analyse Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 7
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-72-70607H01L1 Analyse van het ontwerp =test of het ontwerp voldoet aan zijn specificaties Na elke synthesestap! Wat wordt getest? Functionaliteit: doet het wat het moet doen? Kostprijs: oppervlakte, # pinnen Vermogenverbruik: C f V 2 (in 17 jaar 1000) C chipgrootte (0,25 cm 2 in 1983; 4 cm 2 in 2000) f (1 MHz in 1983; 1 GHz in 2000) V (5 V in 1983; 1,5 V in 2000) Snelheid: vertraging, throughput (# resultaten/s), ontwikkelingstijd Testbaarheid: kunnen alle fouten ontdekt worden via testvectoren? Specificatie Bibliotheek Synthese Analyse Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 8
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-82-80607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Getallen digitaal voorstellen Rekenen met binaire natuurlijke getallen Negatieve getallen Niet-gehele getallen Andere codes Booleaanse algebra Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 9
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-92-90607H01L1 Getallen digitaal voorstellen radix r (10 voor decimale notatie) cijfer iteratief : Bijv. het getal 1234,56 10 (in decimale notatie) =110 3 + 210 2 + 310 1 + 410 0 + 510 1 + 610 2 =11000 + 2100 + 310 + 41 + 50,1 + 60,01 MSBLSB Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 10
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-100607H01L1 Andere radixen Binair : r = 2, d i = 0..1 bijv. 1011,011 2 = 11,375 10 =12 3 + 02 2 + 12 1 + 12 0 + 02 1 + 12 2 + 12 3 =18 + 12 + 11 + 10,25 + 10,125 Octaal : r = 8, d i = 0..7 bijv. 7654,32 8 = 4012,40625 10 =78 3 + 68 2 + 58 1 + 48 0 + 38 1 + 28 2 =7512 + 664 + 58 + 41 + 31/8 + 21/64 Hexadecimaal : r = 16, d i = 0..9 & A..F bijv. F9D8,76 16 = 63960,4609375 10 =1516 3 + 916 2 + 1316 1 + 816 0 + 716 1 + 616 2 =154096 + 9256 + 1316 + 8 + 7/16 + 6/256 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 11
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-110607H01L1 Radix-conversie : r 1 r 2 Als r 1 = r 0 p en r 2 = r 0 q q cijfers (r 1 ) pq cijfers (r 0 ) p cijfers (r 2 ) bijv. hex (r 1 = 2 4 ) octaal (r 2 = 2 3 ) Anders bepaal het getal D van de voorstelling D r 1, bepaal de cijfers van D voor r 2 988B 16 1001|1000|1000|1011 = 1|001|100|010|001|011 114213 8 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 12
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-120607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Getallen digitaal voorstellen Rekenen met binaire natuurlijke getallen: + Negatieve getallen Niet-gehele getallen Andere codes Booleaanse algebra Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 13
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-130607H01L1 7283x 652y 35som88 overdracht010 Binaire optelling & aftrekking Binaire optelling Decimale optelling overdracht0011111 x10011011 som11110010 y1010111 x y lenen resultaat 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 Binaire aftrekking Engelse benaming: overdracht = carry lenen = borrow Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 14
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-140607H01L1 Binaire vermenigvuldiging 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 Vermenigvuldiging via herhaalde optelling & schuifoperatie: # cycli = # bits van vermenigvuldiger Er bestaan snellere implementaties Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 15
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-150607H01L1 Binaire deling 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 Deling via herhaalde aftrekking & schuifoperatie: # cycli = # bits van het resultaat Meestal deze implementatie Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 16
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-160607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Getallen digitaal voorstellen Rekenen met binaire natuurlijke getallen Negatieve getallen Niet-gehele getallen Andere codes Booleaanse algebra Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 17
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-170607H01L1 Sign-Magnitude-voorstelling Elk getal bestaat uit twee delen: een teken & een grootte Decimaal voorbeeld: +123 10 en 123 10 Generische voorstelling: B = Binaire getallen MSB = teken (0 = positief, 1 = negatief) bijv. 01100 2 = +12 10 en 11100 2 = 12 10 Een sign-magnitude-getal met n bits ligt tussen (2 n1 1) en +(2 n1 1) met twee voorstellingen voor nul: 000...0 en 100...0 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 18
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-180607H01L1 Optelling & aftrekking Begin optelling Begin optelling Begin aftrekking Begin aftrekking s 2 = s 2 Einde m 1 > m 2 neen m 1 = m 2 neen s 1 = s 2 ja m r = m 1 m 2 s r = s 1 m r = m 1 m 2 s r = s 1 m r = m 2 m 1 s r = s 2 m r = m 2 m 1 s r = s 2 neen m r = m 1 + m 2 s r = s 1 m r = m 1 + m 2 s r = s 1 ja m r = 0 s r = 0 m r = 0 s r = 0 ja Vele testen traag & duur weinig gebruikt Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 19
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-190607H01L1 Twee-complement voorstelling Het (cijfer-)complement D van een getal D met radix r is het getal waarbij elk cijfer i vervangen is door zijn complement r 1 i het 9-complement van 123 10 is 876 10 het 1-complement van 1101 2 is 0010 2 Het radix-complement D* van een getal D met radix r en m cijfers is D* = r m D het 10-complement van 123 10 is 10 3 123 10 = 877 10 het 2-complement van 1101 2 is 2 4 13 10 = 3 10 = 0011 2 D* = D + 1 (bewijs in boek) Dit gebruiken we om het 2-complement te berekenen! Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 20
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-200607H01L1 Twee-complement voorstelling Als slechts n bits gebruikt worden, dan r n 0 & D* = r n D D* D D* kan dus gebruikt worden als binaire voorstelling van D met n bits Bijv. bij gebruik van 4 bits D = 3 10 = 0011 2 D* = 1100 2 + 0001 2 = 1101 2 D = 3 10 kan voorgesteld worden als 1101 2 Afspraak nodig om 1101 2 te kunnen interpreteren: is het 3 10 (2-complement) of 13 10 (unsigned)? Slechts n voorstelling voor nul: D = 0000 2 D D* = 1111 2 + 0001 2 = 10000 2 Een 2-complement getal van n bits kan een waarde van 2 n1 tot en met 2 n1 1 hebben Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 21
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-210607H01L1 Vergelijking Decimaal2-complementSign-magnitude 81000 710011111 610101110 510111101 41100 311011011 211101010 111111001 000001000 & 0000 10001 20010 30011 40100 50101 60110 70111 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 22
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-220607H01L1 Optelling & aftrekking Begin optelling Begin optelling B r = B 1 + B 2 Einde Eenvoudige implementatie, zelfs voor aftrekking: Weinig bewerkingen en geen testen Eenvoudige hardware beschikbaar voor 1-complement (B 2 ) Geen extra hardware nodig voor + 1 (gebruik LSB carry-in) Begin aftrekking Begin aftrekking B r = B 1 + B 2 + 1 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 23
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-230607H01L1 Optelling & aftrekking 0010 +2 0100 +4 00000 0110 +6 Optelling + 0010 +2 1100 4 00000 1110 2 + 1100 4 11000 1010 6 + 0010 +2 1011 (+4) 00111 1110 2 Aftrekking + 0010 +2 0011 (4) 00111 0110 +6 + 1110 2 0011 (4) 11111 0010 +2 + 0111 +7 0110 +6 01100 1101 3 Overflow + 1001 7 1010 6 10000 0011 +3 + Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 24
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-240607H01L1 Modulus =rest bij een deling: Als b = 2 n dan is dit hetzelfde als de n minstbeduidende bits overhouden: 1110101 mod 1000 = 101 aba mod b > 0 a rem b > 0< 0(a rem b) + b < 0> 0(a rem b) + b < 0 a rem b abremmod 5 3 2 2 53 21 5 32 1 532 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 25
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-250607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Getallen digitaal voorstellen Rekenen met binaire natuurlijke getallen Negatieve getallen Niet-gehele getallen: vaste/vlottende komma (fixed/floating point) Andere codes Booleaanse algebra Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 26
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-260607H01L1 Getallen met vaste komma fix : 1101,010 i = 4, f = 3 puur geheel: f = 0 puur fractioneel: i = 0 # bits na een bewerking fix + fix = fix i = max(i 1,i 2 ) + 1 & f = max(f 1,f 2 ) fix fix = fix i = i 1 + i 2 & f = f 1 + f 2 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 27
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-270607H01L1 Getallen met vlottende komma float Genormaliseerde fractie: R > mantissa 1 of 1 > mantissa 1/R IEEE-formaat: R = 2, bias B = 2 e1 1 Enkelvoudige precisie : e = 8, f = 23, B = 127 Dubbele precisie : e = 11, f = 52, B = 1023 sexp.fractie 1efbits mantissa niet-genormaliseerde F verborgen bit Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 28
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-280607H01L1 Rekenen met vlottende komma Optelling 0,24 10 1 + 0,99 10 2 Maak exponenten gelijk= 0,02 10 2 + 0,99 10 2 Tel mantissas op= 1,01 10 2 Normaliseer= 0,10 10 3 Vermenigvuldiging 0,11 10 1 0,12 10 2 Vermenigvuldig mantissas & tel exponenten op= 0,0132 10 3 Normaliseer (hooguit 1 cijfer) = 0,13 10 2 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 29
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-290607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Getallen digitaal voorstellen Rekenen met binaire natuurlijke getallen Negatieve getallen Niet-gehele getallen Andere codes: BCD, ASCII, ECC, Booleaanse algebra Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 30
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-300607H01L1 Binary Coded Decimal Decimaal cijferBCD 00000 10001 20010 30011 40100 50101 60110 70111 81000 91001 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 31
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-310607H01L1 American Standard Code for Information Interchange b3b2b1b0b3b2b1b0 b6b5b4b6b5b4 000001010011100101110111 0000NULDLESP 0@Pp 0001SOHDC1 !1AQaq 0010STXDC2 2BRbr 0011ETXDC3 #3CScs 0100EOTDC4 $4DTdt 0101ENQNAK %5EUeu 0110ACKSYN &6FVfv 0111BELETB 7GWgw 1000BSCAN (8HXhx 1001HTEM )9IYiy 1010LFSUB *:JZjz 1011VTESC +;K[k{ 1100FFFS,N^n~ 1111SIUS /?O_o DEL Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 32
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-320607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Definitie via axiomas Theoremas Booleaanse functies Canonische & standaard vorm 16 functies van 2 variabelen Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 33
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-330607H01L1 Axiomatische definitie van Booleaanse algebra Axioma 1 (Closure): B is gesloten t.o.v. + (OR)x + y B B is gesloten t.o.v. (AND)x y (= xy) B Axioma 2 (Eenheidselement) B heeft een eenheidselement voor +, 0 genoemdx + 0 = x B heeft een eenheidselement voor, 1 genoemdx 1 = x Axioma 3 (Commutativiteit) B is commutatief t.o.v. +x + y = y + x B is commutatief t.o.v. x y = y x Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 34
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-340607H01L1 Axiomatische definitie van Booleaanse algebra Axioma 4 (Distributiviteit) is distributief t.o.v. + x (y + z) = (x y) + (x z) + is distributief t.o.v. x + (y z) = (x + y) (x + z) Axioma 5 (Complementair element : NOT operator) x B, x B : x + x = 1 en x x = 0 Axioma 6 (Cardinality bound) B heeft minstens twee elementen Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 35
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-350607H01L1 Verschil met gewone algebra In booleaanse algebra bestaat geen inverse bewerking voor de optelling (OR) of de vermenigvuldiging (AND) aftrekking of deling bestaan niet In gewone algebra is + niet distributief t.o.v. : 5 + (2 4) (5 + 2) (5 + 4) In gewone algebra geldt niet dat x + x = 1 en x x = 0 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 36
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-360607H01L1 Booleaanse algebra met 2 waarden NOT-operator AND-operator xy x y 000 010 100 111 OR-operator xyx + y 000 011 101 111 xx 01 10 gedefinieerd met waarheidstabellen Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 37
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-370607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Definitie via axiomas Theoremas Booleaanse functies Canonische & standaard vorm 16 functies van 2 variabelen Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 38
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-380607H01L1 Theoremas Te bewijzen via axiomas (meerdere malen toepassen) waarheidstabel (mogelijkheden opsommen) Elk theorema heeft een duaal theorema: Vervang elke OR door een AND en vice-versa Vervang elke 0 door 1 en vice-versa Theorema 1: idempotency x + x = x Duaal: x x = x Theorema 2 x + 1 = 1 Duaal: x 0 = 0 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 39
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-390607H01L1 Theoremas Theorema 3: absorptie (y x) + x = x Duaal: (y + x) x = x Theorema 4: involutie (x) = x Theorema 5: associativiteit (x + y) + z = x + (y + z) Duaal: (x y) z = x (y z) Theorema 6: wet van De Morgan (x + y) = x y Duaal: (x y) = x + y yx y xy x + x 0000 0101 1000 1111 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 40
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-400607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Definitie via axiomas Theoremas Booleaanse functies Canonische & standaard vorm 16 functies van 2 variabelen Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 41
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-410607H01L1 Booleaanse functies =uitdrukking van binaire variabelen en de bewerkingen AND, OR en NOT Bijv. F 1 = xy + xyz + xyz F 1 = 1 als x = 1 en y = 1 of als x = 1, y = 0 en z = 1 of als x = 0, y = 1 en z = 1; anders F 1 = 0 F 1 bestaat uit 3 AND-termen en 1 OR-term Prioriteit van bewerkingen: haakjes NOT AND OR Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 42
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-420607H01L1 Booleaanse functies Rechtstreekse realisatie binaire variabelen = ingangssignalen bewerking = poort Bijv. F 1 = xy + xyz + xyz xyz F1F1 AND OR NOT Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 43
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-430607H01L1 Waarheidstabel van een functie =tabel met de functiewaarde(n) voor alle combinaties van ingangswaarden n (ingangs)variabelen 2 n rijen Bijv. F 1 = xy + xyz + xyz RijxyzF1F1 00000 10010 20100 30111 41000 51011 61101 71111 30111 51011 61101 71111 00000 10010 20100 41000 xyz F1F1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 44
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-440607H01L1 Waarheidstabel van een functie Nummering van de rijen Standaard-code: natuurlijke opvolging Gray-code: 2 opeenvolgende rijen verschillen maar in 1 variabele Opmerking: functie verandert niet! z 0 1 0 1 y 0 0 1 1 0 1 0 1 0 0 1 1 x 0 0 0 0 1 1 1 1 z 0 1 1 0 y 0 0 1 1 0 1 1 0 1 1 0 0 x 0 0 0 0 1 1 1 1 F 0 0 0 1 0 1 1 1 F 0 0 1 0 1 1 1 0 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 45
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-450607H01L1 Complementaire functie Alternatieve realisatie F 1 = (F 1 ) F 1 = (xy + xyz + xyz) = (xy)(xyz)(xyz)(De Morgan) = (x + y)(x + y + z)(x + y + z)(De Morgan) AND-OR realisatie F 1 = xy + xyz + xyz OR-AND realisatie F 1 =((x+y)(x+y+z) (x+y+z)) xyz F1F1 xyz F1F1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 46
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-460607H01L1 Algebrasche manipulatie F 1 = xy + xyz + xyz= xy + xyz + xyz + xyz(absorptie) = xy + x(y+y)z + xyz(distributiviteit) = xy + x1z + xyz(complement) = xy + xz + xyz(identiteit) = xy + xyz + xz + xyz(absorptie) = xy + xz + (x+x)yz(distributiviteit) = xy + xz + 1yz(complement) = xy + xz + yz(identiteit) Goedkoper resultaat, maar niet evident welke combinatie van theoremas hiervoor nodig zijn F 1 = xy + xyz + xyz xyz F1F1 F 1 = xy + xz + yz xyz F1F1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 47
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-470607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Definitie via axiomas Theoremas Booleaanse functies Canonische & standaard vorm 16 functies van 2 variabelen Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 48
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-480607H01L1 Mintermen Een minterm is een Booleaanse functie die waar is voor slechts voor n enkele rij van de waarheidstabel Rijxyzmintermnotatie 0000xyzm0m0 1001xyzm1m1 2010xyzm2m2 3011xyzm3m3 4100xyzm4m4 5101xyzm5m5 6110xyzm6m6 7111xyzm7m7 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 49
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-490607H01L1 Canonische vorm met mintermen Een 1-minterm is een minterm waarvoor de functie 1 is; een 0-minterm is een minterm waarvoor de functie 0 is F 1 = xy + xyz + xyz RijxyzF1F1 1-minterm 00000 10010 20100 30111m 3 = xyz 41000 51011m 5 = xyz 61101m 6 = xyz 71111m 7 = xyz Elke Booleaanse functie kan beschreven worden als de som van zijn 1-mintermen : F 1 = xyz + xyz + xyz + xyz = m 3 + m 5 + m 6 + m 7 = (3,5,6,7) Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 50
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-500607H01L1 Maxtermen Een maxterm is een Booleaanse functie die waar is voor alle rijen van de waarheidstabel behalve n Rijxyzmaxtermnotatie 0000x+y+zM0M0 1001x+y+zM1M1 2010x+y+zM2M2 3011x+y+zM3M3 4100x+y+zM4M4 5101x+y+zM5M5 6110x+y+zM6M6 7111x+y+zM7M7 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 51
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-510607H01L1 Canonische vorm met maxtermen Een 0-maxterm is een maxterm waarvoor de functie 0 is; een 1-maxterm is een maxterm waarvoor de functie 1 is F 1 = xy + xyz + xyz RijxyzF1F1 0-maxterm 00000M 0 = x+y+z 10010M 1 = x+y+z 20100M 2 = x+y+z 30111 41000M 4 = x+y+z 51011 61101 71111 Elke Booleaanse functie kan beschreven worden als het product van zijn 0-maxtermen: F 1 = (x+y+z)(x+y+z)(x+y+z)(x+y+z) = M 0 M 1 M 2 M 4 = (0,1,2,4) Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 52
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-520607H01L1 Standaard vorm In de canonische vorm is elke functie een som van 1-mintermen of een product van 0-maxtermen Elke minterm of maxterm bevat alle variabelen dure implementatie De standaard vorm is een som van producttermen of een product van somtermen met het kleinst aantal variabelen Een productterm of somterm moet niet altijd alle variabelen bevatten goedkoper qua implementatie Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 53
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-530607H01L1 Voorbeelden van standaard vorm F 2 = xyz + xyz + xyz + xyz = xy(z + z) + xy(z + z) = xy + xy = x(y + y) = x F 3 = xyz + xyz + xyz + xyz + xyz = xyz + xyz + xyz + xyz + xyz + xyz + xyz = xy(z + z) + x(y + y)z + (x + x)yz + xyz = xy + xz + yz + xyz Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 54
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-540607H01L1 Minimale implementatie De standaard vorm is de goedkoopste implementatie in twee lagen F 2 = xy + xz + yz Een niet-standaard vorm met meer dan twee lagen kan goedkoper zijn F 2 = x(y + z) + yz xzy F2F2 xzy F2F2 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 55
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-550607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Definitie via axiomas Theoremas Booleaanse functies Canonische & standaard vorm 16 functies van 2 variabelen Logische poorten Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 56
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-560607H01L1 De 16 functies van 2 variabelen Waarom 16 functies? 2 binaire variabelen 2 2 = 4 mogelijke ingangscombinaties Elke ingangscombinatie heeft 2 mogelijke functiewaarden (0 en 1) 2 4 = 16 mogelijke functies xy 00 01 10 11 F0F0 F1F1 F2F2 F 15 0001 0001 0011 0101 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 57
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-570607H01L1 De 16 functies van 2 variabelen NaamSymbool Functiewaarde voor x,y Uitdrukking 00011011 Zero0000F 0 = 0 ANDxy0001F 1 = xy Inhibitionx/y0010F 2 = xy Transfer0011F 3 = x Inhibitiony/x0100F 4 = xy Transfer0101F 5 = y XOR xyxy 0110F 6 = xy+xy ORx+y0111F 7 = x+y NOR xyxy 1000F 8 = (x+y) XNOR1001F 9 = xy+xy Complementy1010F 10 = y Implication1011F 11 = x+y Complementx1100F 12 = x Implication1101F 13 = x+y NAND xyxy 1110F 14 = (xy) One1111F 15 = 1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp
  • Dia 58
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-580607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Verbindingen Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 59
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-590607H01L1 Logische waarden voorstellen Welke fysische waarden worden gebruikt om de twee logische waarden voor te stellen? Een Low & een High fysisch bereik, Meestal 2 spanningen: V L & V H Andere mogelijkheden: stromen, optische reflectie, druk, afgebeeld op de logische niveaus LH Positieve logica01 Negatieve logica10 Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 60
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-600607H01L1 Actief laag signaal =het signaal is actief als het 0 is Meestal aangeduid als, X* of X Actief zijn is een interpretatie van een signaal, niet een niveau! RST* = 0 reset toestel actief laag OR actief hoog AND Waarom actief lage signalen? Afgesloten verbindingen zijn meestal 1 als ze niet aangestuurd (= niet actief) zijn Wired-or functionaliteit bij een open-drain implementatie (cfr. transparant 2-95) X*Y*F* 111 100 010 000 Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 61
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-610607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Basispoorten ( 2 ingangen) Meerdere ingangen Meerdere operatoren Niet-functionele eigenschappen Verbindingen Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 62
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-620607H01L1 Schakelaars Logische poort meestal opgebouwd uit schakelaars met twee standen: Elektrische weerstand: 0 Drukventiel: open gesloten Licht doorlaten: wel niet Werking afhankelijk van stuursignaal L H LH Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 63
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-630607H01L1 MOS-transistor als schakelaar NMOS transistor (boek: P-transistor) V GS < V T V GS > V T PMOS transistor (verwissel n p, S D) V GS < V T p n+ Gate (poort) Source Drain Metaal Isolator Halfgeleider Geleidend pad als V GS > V T H L V GS > V T L H noot: V GS & V T < 0 Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 64
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-640607H01L1 Inverter F = x 2 transistoren (afgekort tors) Relatieve vertragingstijd : 1 xF HL LH x = LF = H V CC (H) V SS (L) x = HF = L Opmerking: vanaf nu enkel positieve logica 10 01 xF Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 65
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-650607H01L1 NAND-poort F = (xy) 4 transistoren Relatieve vertragingstijd : 1,4 x F y 10 0 10 1 11 0 01 1 Opmerking: Dit is een NOR-poort voor negatieve logica! V CC V SS x = 0 y = 0 F = 1 y = 1 F = 0 x = 1 Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 66
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-660607H01L1 NOR-poort F = (x + y) 4 transistoren Relatieve vertragingstijd : 1,4 x F y 10 0 00 1 01 0 01 1 V CC V SS x = 0 y = 0 F = 1 y = 1 x = 1 F = 0 Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 67
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-670607H01L1 Andere basispoorten Buffer of driver (meer vermogen) F = x = (x) 4 tor; vertraging = 2 AND-poort F = xy = ((xy)) 6 tor; vertraging = 2,4 OR-poort F = x + y = ((x + y)) 6 tor; vertraging = 2,4 XOR-poort F = x y = xy + xy = ((x + y) (x + y)) 12 tor (cfr. OAI); vertraging = 3,2 XNOR-poort F = (x y) = xy + xy = ((x + y)(x + y)) 12 tor (cfr. OAI); vertraging = 3,2 xF x F y x F y x F y x F y Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 68
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-680607H01L1 Waarom enkel inverterende basispoorten? NMOS transistor is een slechte pull-up slechts geleidend als V GS > V T uitgangsspanning daalt met V T na elke tor NMOS enkel in onderste tak (= kan enkel goed L doorgeven) PMOS transistor is een slechte pull-down PMOS enkel in bovenste tak (= kan enkel goed H doorgeven) Buffer H VTVT VTVT L V T Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 69
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-690607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Basispoorten Meerdere ingangen (fan-in) Meerdere operatoren Niet-functionele eigenschappen Verbindingen Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 70
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-700607H01L1 Meerdere ingangen (fan-in) z F y x 3-input NAND : F = (xyz) 6 transistoren Relatieve vertragingstijd : 1,8 F = 1 als x = 0 of y = 0 of z = 0 F = x + y + z = (xyz) V CC V SS x y x y F z z Om kortsluiting te vermijden kan deze blok enkel geleiden als de bovenste niet geleidt: PDN = PUN PDN PUN Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 71
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-710607H01L1 Relatieve kostprijs & vertraging Relatief t.o.v. inverter (2 transistoren) Kostprijs Inverterende poort (INV, NAND, NOR) =fan-in (aantal ingangen) Niet-inverterende poort (AND, OR) =fan-in + 1 Vertraging Inverterende poort (INV, NAND, NOR) =0,6 + fan-in 0,4 Niet-inverterende poort (AND, OR) =1,6 + fan-in 0,4 Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 72
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-720607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Basispoorten Meerdere ingangen Meerdere operatoren Niet-functionele eigenschappen Verbindingen Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 73
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-730607H01L1 Meerdere operatoren in 1 poort: 2-wide 2-input AND-OR-Invert 2-wide 2-input AOI F = (xy + zw) 8 transistoren Relatieve vertragingstijd : 2,2 V CC V SS xy x y z w z w F F = 0 als( x = 1 en y = 1 ) of ( z = 1 en w = 1 ) y x w z F Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 74
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-740607H01L1 Meerdere operatoren in 1 poort : 2-wide 2-input OR-AND-Invert 2-wide 2-input OAI F = ((x + y) (z + w)) 8 transistoren Relatieve vertragingstijd : 2,2 F = 0 als( x = 1 of y = 1 ) en ( z = 1 of w = 1 ) V CC V SS x y x y z w zw F y x w z F Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp
  • Dia 75
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-750607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Spanningsniveaus Tijdsgedrag Fan-out Vermogenverbruik Verbindingen Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 76
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-760607H01L1 Spanningsniveaus Logisch niveau spanningsgebied Voordeel: minder gevoelig aan procesvariaties, die de karakteristieken van componenten veranderen minder gevoelig aan omgevingsvariaties, zoals temperatuur, voedingsspanning, Logisch niveau SpanningsgebiedTTL vantotvantot LV SS V IL 0 V0,8 V HV IH V CC 2 V5 V Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 77
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-770607H01L1 Ruismarge =spanningsmarge beschikbaar door een kleiner gebied van uitgangsspanningen te gebruiken dan toegelaten L L H H UitgangIngang V SS V CC V IL V IH marge V SS V CC V OL V OH TTL 0 V 5 V 0,4 V 2,4 V TTL 0 V 5 V 0,8 V 2 V Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 78
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-780607H01L1 Onlogische spanningen Tijdens de verandering van logisch niveau ontstaan spanningen die niet met een logisch niveau overeenkomen! Bijv. TTL-inverter V uit V in H L 5 2,4 0,4 0 00,825 HL Transferfunctie afhankelijk van productieproces omgevingsfactoren VTVT ideaal Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 79
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-790607H01L1 Schmitt-trigger-ingangen Bijkomende problemen voor trage signalen Schmitt-trigger-ingangen hebben een hysteresis t 0 V in VTVT V T+ V T V out VTVT V in H L V out t H L t H L V T+ V T V out V in H L Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 80
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-800607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Spanningsniveaus Tijdsgedrag Fan-out Vermogenverbruik Verbindingen Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 81
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-810607H01L1 Effect capacitieve belasting L H overgang H L overgang V cc C R OH R IH CR OL R IL Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 82
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-820607H01L1 Effect capacitieve belasting Snelle overgangen als uitgangsimpedantie R O zo klein mogelijk grote stromen groot vermogenverbruik C (van draad & ingang) zo klein mogelijk vermijdt lange verbindingen ingangsimpedantie R I zo groot mogelijk Daarom RTL-technologie niet populair =vervang bovenste blok transistoren (PUN) door een weerstand R beperk vermogenverbruik R O = R redelijk groot grote stijgtijden R V cc x = 0 F = 1 x = 1 F = 0 Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 83
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-830607H01L1 Vertragingstijd 90% 50% 10% t PHL t PLH Vertragingstijd: t P = (t PLH + t PHL )/2 90% ofV IH 50%V T 10%V IL StijgtijdDaaltijd Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 84
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-840607H01L1 Vertragingstijd Wordt benvloed door de stijg/daaltijd en dus door de capacitieve belasting in uit t PLH kleine stijgtijd in uit t PLH grote stijgtijd Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 85
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-850607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Spanningsniveaus Tijdsgedrag Fan-out Vermogenverbruik Verbindingen Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 86
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-860607H01L1 Fan-out =maximum aantal ingangen die aan n uitgang kunnen gekoppeld worden Stroomgedreven technologien (TTL, ECL,...) Fan-out = min(I OH /I IH, I OL /I IL ) I OH I IH I OL I IL Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 87
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-870607H01L1 Fan-out Ladinggedreven technologien (CMOS) I I 0 I O gebruiken voor op/ontladen C fan-out ingangscapaciteit capaciteit verbindingen fan-out bepaalt maximale schakelfrequentie I = C dV/dt = C f V f = I/(C V) bijv. voor Xilinx Virtex: 10 pF ingangscapaciteit, I Omax = 20 mA, 0,8 pF/cm PCB, V cc = 3,3 V Voor fan-out = 3 & 10 cm PCB-draden: C = 3 10 + 0,8 10 = 38 pF schakelfrequentie= I/(C V) = 20 mA/(38 pF 3,3 V) = 160 MHz Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 88
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-880607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Spanningsniveaus Tijdsgedrag Fan-out Vermogenverbruik Verbindingen Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 89
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-890607H01L1 Vermogenverbruik Verbruikte vermogen moet worden geleverd : kostprijs energie, levensduur batterijen gedissipeerd : warmte moet afgevoerd worden TTL verbruikt voortdurend vermogen P = V CC I CC 10mW/poort 1 miljoen poorten: 10 KW! Gebruikt bij hoge spanningen/stromen (bussen, ) CMOS verbruikt enkel bij het schakelen P = C f V 2 vermits I = C f V trend: sterke stijging (cfr. transparant 2-7) Virtex: P = 38 pF 160 MHz (3,3 V) 2 = 66 mW/pin; als de helft van de 200 pinnen gelijktijdig schakelen is er 6,6 W nodig voor de externe pinnen Microprocessoren: 40W koeling! Nu een van de belangrijkste ontwerpbeperkingen! Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp
  • Dia 90
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-900607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Verbindingen Busverbinding Verbinding als poort Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp
  • Dia 91
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-910607H01L1 Types verbindingen Traditioneel: 1 aansturing van verbinding Meerdere aansturingen mogelijk = bus(verbinding) Slechts 1 aansturing tegelijkertijd! 3-state buffers gebruiken Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp
  • Dia 92
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-920607H01L1 Tri-state =derde mogelijkheid, naast 0 en 1 Z (hoog-impedant of zwevend) = aan niets verbonden Een 3-state buffer laat toe om de uitgang los te koppelen van zijn aansturing Een implementatie: Uit V cc V ss E In E In Uit E InUit E E 0Z 1In Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp
  • Dia 93
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-930607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Verbindingen Busverbinding Verbinding als poort (wired logic) Implementatietechnologien Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp
  • Dia 94
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-940607H01L1 Open-drain/collector uitgang Maak R van RTL extern Eigenschappen: Slechte stijgtijd +Uitgangen verbinden geeft geen kortsluiting bussen +Wired logic (cfr. infra) V cc In Uit V cc In Uit V cc Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp V cc
  • Dia 95
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-950607H01L1 Wired logic Wired-AND : verbinding van open-drain uitgangen Wired-OR : voor actief lage signalen actief lage OR actief hoge AND R V cc A B F ABABF 00111 A F B 01100 10010 11000 effect van bedrading A B Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp
  • Dia 96
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-960607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Verbindingen Implementatietechnologien Integratieniveau Maatwerk & standaard cellen Gate array Field programmable design Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 97
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-970607H01L1 Integratieniveau SSI: Small Scale Integration < 10 poorten per verpakking poorten direct verbonden aan pinnen ontwerp op transistorniveau gebruikt in ontwerpen op poortniveau MSI: Medium Scale Integration 10 100 poorten per verpakking registers, optellers, pariteitsgeneratoren, ontwerp op poortniveau gebruikt in ontwerpen op Register Transfer Level (RTL) LSI: Large Scale Integration 100 10K poorten per verpakking controllers, datapaden ontwerp op RTL-niveau gebruikt in ontwerpen op gedragsniveau Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 98
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-980607H01L1 Integratieniveau VLSI: Very Large Scale Integration 10K 1M poorten per verpakking geheugen, microprocessor, microcontroller, FFT ontwerp op gedragsniveau gebruikt in ontwerpen op systeemniveau ULSI: Ultra Large Scale Integration ? > 1M poorten per verpakking 2 controllers, 20 DSP-processoren, 16 Mbyte geheugen, 10 hardware-versnellers, 1 Mgate FPGA, analoge interface, RF, ontwerp op systeemniveau slechts 1 chip voor volledige toepassingen Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 99
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-990607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Verbindingen Implementatietechnologien Integratieniveau Maatwerk & standaard cellen Gate array Field programmable design Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 100
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1000607H01L1 Maatwerk (custom design) =elke transistor en elke verbinding wordt afzonderlijk ontworpen als een set rechthoeken (chipoppervlakte) Ideaal voor optimaal ontwerp van componenten uit een bibliotheek, die dikwijls kunnen herbruikt worden Moet volledig herontworpen worden bij elke technologiewijziging (alle 18 maanden!) Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 101
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1010607H01L1 Standaard-cel ontwerp Bibliotheek van standaard cellen elke cel is een poort standaard hoogte, variabele breedte, afgewisseld met ruimte voor bedrading (routing channels) alle ingangen bovenaan, alle uitgangen onderaan Sneller ontwerp van complexere bouwblokken Cellen ontworpen door chipfabrikanten, geoptimaliseerd voor hun procestechnologie Allocatie componenten (placement) Allocatie bedrading (routing) Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 102
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1020607H01L1 Realisatie Implementatie Schema Standaard-cel ontwerpstappen Ingave ontwerp Placement Routing Simulatie Simulatie tijdsgedrag Productie: n maskers Testen Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 103
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1030607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Verbindingen Implementatietechnologien Integratieniveau Maatwerk & standaard cellen Gate array Field programmable design Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 104
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1040607H01L1 Gate array Tweedimensionaal rooster van identieke poorten (sea of gates) elke cel is bijv. een 3-input NAND-poort standaard hoogte, afgewisseld met ruimte voor bedrading alle ingangen bovenaan, alle uitgangen onderaan Goedkoper dan standaard cellen Alleen de laatste metallisatielaag (voor de verbindingen) is eigen aan een project Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 105
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1050607H01L1 Gate array ontwerpstappen Ingave ontwerp Placement Routing Simulatie Simulatie tijdsgedrag Productie: 1 masker Testen =beeld alle functies af op beschikbare 3-input NANDs Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 106
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1060607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Verbindingen Implementatietechnologien Integratieniveau Maatwerk & standaard cellen Gate array Field programmable design Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 107
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1070607H01L1 Field programmable design Gebruik makend van zekeringen(PLA, PLD) Doorbranden zekering verbreekt verbinding irreversibel; slechts bijprogrammeren mogelijk EE- en flash-programmeerbaar(CPLD) Verbindingen zijn transistoren waarvan het poortniveau opgeladen kan worden herprogrammeren mogelijk, maar traag en slechts een beperkt aantal keren Gebruik makend van SRAM(FPGA) Verbindingen zijn transistoren waarvan het poortniveau in een RAM-geheugen opgeslagen wordt herprogrammeren vlot mogelijk: (statische of dynamische) herconfiguratie mogelijk telkens herladen na aanleggen voedingsspanning Toepassingen: Voor prototypes & medium volumes ( 5 M poorten) @ 400 MHz (in 2004) Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 108
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1080607H01L1 Programmeerbare AND-matrix & OR-matrix Afgeleiden (sneller & betrouwbaarder) PAL : vaste OR-matrix PROM : vaste AND-matrix (adresdecoder) AND-matrix OR-matrix PLA: Programmable Logic Array Ingangen Uitgangen = Ingangen Uitgangen x x x x x x x x x x x x x x x x x x x x x x x x x x Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 109
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1090607H01L1 PLD: Programmable Logic Device Uitgebreide macro-cellen : extra logica/flip-flops aan de uitgangen DD Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 110
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1100607H01L1 CPLD: Complexe PLD PLD OI/O Schakelmatrix I/OO PLD OI/O PLD O Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 111
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1110607H01L1 Field Programmable Gate Array Schakelmatrices Directe verbindingen tussen naburige blokken Lange lijnen Globale kloklijnen SM I/O CLB Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 112
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1120607H01L1 FPGA: extra specifieke hardware Spartan-3 (labo) klokgeneratie geheugen vermenig- vuldiger Andere moderne FPGAs specifieke transceivers of voor hoge snelheid (bijv. Ethernet, 10 Gbit/s + CRC) DSP-functies (bijv. MAC) microprocessoren (bijv. 32 bit PowerPC met specifieke interface voor hardware-versnellers) Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 113
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1130607H01L1 FPGA Configurable Logic Block Look-Up Table opzoektabel voor booleaanse functie bruikbaar als 32-bit SRAM 16x1 LUT: Booleaanse functie van 4 variabelen 16x1 LUT: Booleaanse functie van 4 variabelen FF G GQ 16x1 LUT: Booleaanse functie van 4 variabelen 16x1 LUT: Booleaanse functie van 4 variabelen FF F FQ Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 114
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1140607H01L1 Spartan-3 CLB 1 Spartan-3 CLB = 4 slices 1 slice komt overeen met wat in de rest van de cursus 1 CLB genoemd wordt! Enkel linkse slices kunnen als RAM of schuifregister gebruikt worden Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 115
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1150607H01L1 Spartan-3 CLB Slice Standaard logica 2 f(4 vars) ev. met 2 FF 1 f(5 vars) ev. met FF via F5MUX Extra logica carry logica (incl. AND en XOR) multiplexers 2 16 bit gedistribueerde RAM 2 16 bit schuifregister Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 116
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1160607H01L1 FPGA Switching Matrix element Pass-transistor V cc Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 117
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1170607H01L1 SM programmering Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp
  • Dia 118
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1180607H01L1 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Een voorbeeld: FPGA Xilinx ISE-omgeving, gebruikt in labozittingen Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 119
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1190607H01L1 Xilinx ISE-omgeving bestanden van het project mogelijke acties op het bestand inhoud bestanden of resultaat actie output acties Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 120
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1200607H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 121
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1210607H01L1 Ingave ontwerp op hirarchische wijze subschema LogiCORE specifieke FPGA-hardware toestands- diagramma VHDL-beschrijving Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 122
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1220607H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 123
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1230607H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping =beeld alle functies af op de CLBs Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 124
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1240607H01L1 FPGA mapping, placement & routing synthese van (V)HDL tot een netlijst afbeelding op FPGA-elementen placement & routing genereer aangepaste tijdsinformatie vertaal naar logische primitieven Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 125
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1250607H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 126
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1260607H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp
  • Dia 127
  • Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-1270607H01L1 Testen op een FPGA hardware-bord FPGA Ingangsschakelaars UitgangsLEDs download-connector Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp