De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-12-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen  Sequentiële."— Transcript van de presentatie:

1 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen  Sequentiële schakelingen  Niet-programmeerbare processoren  Programmeerbare processoren  Hardware-beschrijvingstalen

2 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp

3 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

4 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

5 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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, ASIC’s)  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

6 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 18–24 maanden (× 2 20 ≈ × 10 6 op 30–40 jaar) Specificatie Bibliotheek Synthese Analyse Ontwerppad Specificatie Synthese  Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp

7 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

8 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

9 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Getallen digitaal voorstellen  radix r (10 voor decimale notatie)  cijfer iteratief : Bijv. het getal 1234,56 10 (in decimale notatie) =1∙ ∙ ∙ ∙ ∙10 −1 + 6∙10 −2 =1∙ ∙ ∙10 + 4∙1 + 5∙0,1 + 6∙0,01 MSBLSB Ontwerppad Digitale data  Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp

10 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Andere radixen  Binair : r = 2, d i = 0..1 bijv. 1011,011 2 = 11, =1∙ ∙ ∙ ∙ ∙2 −1 + 1∙2 −2 + 1∙2 −3 =1∙8 + 1∙2 + 1∙1 + 1∙0,25 + 1∙0,125  Octaal : r = 8, d i = 0..7 bijv. 7654,32 8 = 4012, =7∙ ∙ ∙ ∙ ∙8 −1 + 2∙8 −2 =7∙ ∙64 + 5∙8 + 4∙1 + 3∙1/8 + 2∙1/64  Hexadecimaal : r = 16, d i = 0..9 & A..F bijv. F9D8,76 16 = 63960, =15∙ ∙ ∙ ∙ ∙16 −1 + 6∙16 −2 =15∙ ∙ ∙ /16 + 6/256 Ontwerppad Digitale data  Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp

11 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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  Ontwerppad Digitale data  Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp

12 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

13 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 7283x 652y 35som88 overdracht010 Binaire optelling & aftrekking  Binaire optelling  Decimale optelling overdracht x som y x y lenen resultaat 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

14 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Binaire vermenigvuldiging ×  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

15 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Binaire deling  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

16 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

17 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 ‘Sign-Magnitude’-voorstelling  Elk getal bestaat uit twee delen: een teken & een grootte  Decimaal voorbeeld: en −  Generische voorstelling: B =  Binaire getallen  MSB = teken (‘0’ = positief, ‘1’ = negatief) bijv = en = −12 10  Een ‘sign-magnitude’-getal met n bits ligt tussen −(2 n−1 − 1) en +(2 n−1 − 1) met twee voorstellingen voor nul: en Ontwerppad Digitale data Getallen Binair rekenen  Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp

18 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

19 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 is  het 1-complement van is  Het radix-complement D* van een getal D met radix r en m cijfers is D* = r m − D  het 10-complement van is 10 3 − =  het 2-complement van is 2 4 − = 3 10 =  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

20 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 =  D* = = −D = −3 10 kan voorgesteld worden als  Afspraak nodig om te kunnen interpreteren: is het −3 10 (2-complement) of (‘unsigned’)?  Slechts één voorstelling voor nul: D =  −D  D* = =  Een 2-complement getal van n bits kan een waarde van −2 n−1 tot en met 2 n−1 − 1 hebben Ontwerppad Digitale data Getallen Binair rekenen  Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp

21 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Vergelijking Decimaal2-complement‘Sign-magnitude’ −81000− − − − −41100 − − − & Ontwerppad Digitale data Getallen Binair rekenen  Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp

22 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

23 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Optelling & aftrekking Optelling − − − − (+4)’ −2 Aftrekking (−4)’ − (−4)’ −3 ‘Overflow’ − − Ontwerppad Digitale data Getallen Binair rekenen  Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp

24 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Modulus =rest bij een deling:  Als b = 2 n dan is dit hetzelfde als de n minstbeduidende bits overhouden: 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 −3 2−1 −5 3−2 1 −5−3−2 Ontwerppad Digitale data Getallen Binair rekenen  Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp

25 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

26 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

27 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Getallen met vlottende komma  float  Genormaliseerde fractie: R > mantissa ≥ 1 of 1 > mantissa ≥ 1/R  IEEE-formaat: R = 2, bias B = 2 e−1 − 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

28 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Rekenen met vlottende komma  Optelling 0,24  ,99  10 2  Maak exponenten gelijk= 0,02  ,99  10 2  Tel mantissa’s op= 1,01  10 2  Normaliseer= 0,10  10 3  Vermenigvuldiging 0,11  10 1  0,12  10 2  Vermenigvuldig mantissa’s & 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

29 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

30 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Binary Coded Decimal Decimaal cijferBCD Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen  Andere codes Boole-algebra Logische poorten FPGA-ontwerp

31 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 American Standard Code for Information Interchange b3b2b1b0b3b2b1b0 b6b5b4b6b5b NULDLESP 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

32 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Definitie via axioma’s  Theorema’s  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

33 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

34 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

35 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

36 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Booleaanse algebra met 2 waarden NOT-operator AND-operator xy x  y OR-operator xyx + y xx’ gedefinieerd met waarheidstabellen Ontwerppad Digitale data Boole-algebra  Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

37 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Definitie via axioma’s  Theorema’s  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

38 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Theorema’s  Te bewijzen via  axioma’s (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

39 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Theorema’s  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 Ontwerppad Digitale data Boole-algebra Axioma's  Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

40 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Definitie via axioma’s  Theorema’s  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

41 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Booleaanse functies =uitdrukking van binaire variabelen en de bewerkingen AND, OR en NOT Bijv. F 1 = xy + xy’z + x’yz  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

42 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Booleaanse functies  Rechtstreekse realisatie  binaire variabelen = ingangssignalen  bewerking = poort Bijv. F 1 = xy + xy’z + x’yz xyz F1F1 AND OR NOT Ontwerppad Digitale data Boole-algebra Axioma's Theorema's  Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

43 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Waarheidstabel van een functie =tabel met de functiewaarde(n) voor alle combinaties van ingangswaarden  n (ingangs)variabelen  2 n rijen Bijv. F 1 = xy + xy’z + x’yz RijxyzF1F xyz F1F1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's  Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

44 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 y x z y x F F Ontwerppad Digitale data Boole-algebra Axioma's Theorema's  Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

45 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Complementaire functie  Alternatieve realisatie F 1 = (F 1 ’)’ F 1 ’= (xy + xy’z + x’yz)’ = (xy)’(xy’z)’(x’yz)’(De Morgan) = (x’ + y’)(x’ + y + z’)(x + y’ + z’)(De Morgan) AND-OR realisatie F 1 = xy + xy’z + x’yz 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

46 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Algebraïsche manipulatie F 1 = xy + xy’z + x’yz= xy + xyz + xy’z + x’yz(absorptie) = xy + x(y+y’)z + x’yz(distributiviteit) = xy + x1z + x’yz(complement) = xy + xz + x’yz(identiteit) = xy + xyz + xz + x’yz(absorptie) = xy + xz + (x+x’)yz(distributiviteit) = xy + xz + 1yz(complement) = xy + xz + yz(identiteit)  Goedkoper resultaat, maar niet evident welke combinatie van theorema’s hiervoor nodig zijn F 1 = xy + xy’z + x’yz 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

47 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Definitie via axioma’s  Theorema’s  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

48 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Mintermen  Een minterm is een Booleaanse functie die waar is voor slechts voor één enkele rij van de waarheidstabel Rijxyzmintermnotatie 0000x’y’z’m0m0 1001x’y’zm1m1 2010x’yz’m2m2 3011x’yzm3m3 4100xy’z’m4m4 5101xy’zm5m5 6110xyz’m6m6 7111xyzm7m7 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies  Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

49 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 + xy’z + x’yz RijxyzF1F1 1-minterm — — — 30111m 3 = x’yz — 51011m 5 = xy’z 61101m 6 = xyz’ 71111m 7 = xyz  Elke Booleaanse functie kan beschreven worden als de som van zijn 1-mintermen : F 1 = x’yz + xy’z + 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

50 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Maxtermen  Een maxterm is een Booleaanse functie die waar is voor alle rijen van de waarheidstabel behalve één Rijxyzmaxtermnotatie 0000x+y+zM0M0 1001x+y+z’M1M1 2010x+y’+zM2M2 3011x+y’+z’M3M3 4100x’+y+zM4M4 5101x’+y+z’M5M5 6110x’+y’+zM6M6 7111x’+y’+z’M7M7 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies  Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

51 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 + xy’z + x’yz RijxyzF1F1 0-maxterm 00000M 0 = x+y+z 10010M 1 = x+y+z’ 20100M 2 = x+y’+z — 41000M 4 = x’+y+z — — —  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

52 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

53 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeelden van standaard vorm  F 2 = xyz + xyz’ + xy’z + xy’z’ = xy(z + z’) + xy’(z + z’) = xy + xy’ = x(y + y’) = x  F 3 = xyz + xyz’ + xy’z + x’yz + x’y’z’ = xyz + xyz’ + xy’z + xyz + xyz + x’yz + x’y’z’ = xy(z + z’) + x(y’ + y)z + (x + x’)yz + x’y’z’ = xy + xz + yz + x’y’z’ Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies  Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

54 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

55 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Definitie via axioma’s  Theorema’s  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

56 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 F0F0 F1F1 F2F2 … F Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm  16 functies Logische poorten FPGA-ontwerp

57 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 De 16 functies van 2 variabelen NaamSymbool Functiewaarde voor x,y Uitdrukking Zero—0000F 0 = 0 ANDx·y0001F 1 = xy Inhibitionx/y0010F 2 = xy’ Transfer—0011F 3 = x Inhibitiony/x0100F 4 = x’y Transfer—0101F 5 = y XOR xyxy 0110F 6 = xy’+x’y ORx+y0111F 7 = x+y NOR xyxy 1000F 8 = (x+y)’ XNOR—1001F 9 = xy+x’y’ Complementy’1010F 10 = y’ Implication—1011F 11 = x+y’ Complementx’1100F 12 = x’ Implication—1101F 13 = x’+y NAND xyxy 1110F 14 = (xy)’ One—1111F 15 = 1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm  16 functies Logische poorten FPGA-ontwerp

58 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Verbindingen  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie FPGA-ontwerp

59 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

60 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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* Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen Technologie FPGA-ontwerp

61 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten  Functioneel  Basispoorten  Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp

62 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

63 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

64 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 xF Ontwerppad Digitale data Boole-algebra Logische poorten  Functioneel  Basispoorten  Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp

65 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 NAND-poort  F = (xy)’  4 transistoren  Relatieve vertragingstijd : 1,4 x F y 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

66 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 NOR-poort  F = (x + y)’  4 transistoren  Relatieve vertragingstijd : 1,4 x F y 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

67 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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’ + x’y = ((x + y’) (x’ + y))’  12 tor (cfr. OAI); vertraging = 3,2  XNOR-poort  F = (x  y)’ = xy + x’y’ = ((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

68 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

69 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten  Functioneel  Basispoorten  Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp

70 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

71 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

72 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Basispoorten  Meerdere ingangen  Meerdere operatoren  Niet-functionele eigenschappen  Verbindingen  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten  Functioneel  Basispoorten  Complexe poorten Niet- functioneel Verbindingen Technologie FPGA-ontwerp

73 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

74 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

75 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Spanningsniveaus  Tijdsgedrag  Fan-out  Vermogenverbruik  Verbindingen  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel  Niet- functioneel  Spanningen  Tijdsgedrag  Fan-out  Vermogen Verbindingen Technologie FPGA-ontwerp

76 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

77 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

78 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

79 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

80 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Spanningsniveaus  Tijdsgedrag  Fan-out  Vermogenverbruik  Verbindingen  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel  Niet- functioneel  Spanningen  Tijdsgedrag  Fan-out  Vermogen Verbindingen Technologie FPGA-ontwerp

81 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

82 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

83 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

84 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Vertragingstijd  Wordt beïnvloed 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

85 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Spanningsniveaus  Tijdsgedrag  Fan-out  Vermogenverbruik  Verbindingen  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel  Niet- functioneel  Spanningen  Tijdsgedrag  Fan-out  Vermogen Verbindingen Technologie FPGA-ontwerp

86 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Fan-out =maximum aantal ingangen die aan één uitgang kunnen gekoppeld worden  ‘Stroomgedreven’ technologieën (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

87 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Fan-out  ‘Ladinggedreven’ technologieën (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  ,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

88 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Spanningsniveaus  Tijdsgedrag  Fan-out  Vermogenverbruik  Verbindingen  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel  Niet- functioneel  Spanningen  Tijdsgedrag  Fan-out  Vermogen Verbindingen Technologie FPGA-ontwerp

89 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

90 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Verbindingen  Busverbinding  Verbinding als poort  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel  Verbindingen  Bus  als poort Technologie FPGA-ontwerp

91 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

92 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 ‘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

93 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Verbindingen  Busverbinding  Verbinding als poort (‘wired logic’)  Implementatietechnologieën  Een voorbeeld: FPGA Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel  Verbindingen  Bus  als poort Technologie FPGA-ontwerp

94 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 ‘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

95 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 ‘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 ABA’B’F A F B effect van bedrading A’ B’ Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel  Verbindingen  Bus  als poort Technologie FPGA-ontwerp

96 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Verbindingen  Implementatietechnologieën  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

97 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

98 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

99 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Verbindingen  Implementatietechnologieën  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

100 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

101 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

102 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

103 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Verbindingen  Implementatietechnologieën  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

104 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

105 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Gate array ontwerpstappen Ingave ontwerp ‘Placement’ ‘Routing’ Simulatie Simulatie tijdsgedrag Productie: 1 masker Testen =beeld alle functies af op beschikbare 3-input NAND’s ‘Technology mapping’ Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen  Technologie  Integratie  Chip-ontwerp  Gate array  Field progr. FPGA-ontwerp

106 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Digitaal ontwerp  Digitaal ontwerp in grote lijnen  Gegevensvoorstelling  Booleaanse algebra  Logische poorten  Functionele eigenschappen  Niet-functionele eigenschappen  Verbindingen  Implementatietechnologieën  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

107 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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 (<100K stukken/jaar)  10 k logische cellen (> 5 M 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

108 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1  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

109 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

110 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

111 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

112 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 FPGA: extra specifieke hardware  Spartan-3 (labo)  klokgeneratie  geheugen  vermenig- vuldiger  Andere moderne FPGA’s  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

113 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

114 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

115 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

116 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

117 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 SM programmering Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet- functioneel Verbindingen  Technologie  Integratie  Chip-ontwerp  Gate array  Field progr. FPGA-ontwerp

118 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

119 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

120 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp

121 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Ingave ontwerp op hiërarchische wijze subschema LogiCORE specifieke FPGA-hardware toestands- diagramma VHDL-beschrijving Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp

122 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp

123 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping =beeld alle functies af op de CLB’s Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp

124 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 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

125 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp

126 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 FPGA ontwerpstappen Ingave ontwerp Placement Routing Functionele simulatie Simulatie tijdsgedrag Downloading Testen Technology mapping Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp

127 Digitaal ontwerp KATHOLIEKE UNIVERSITEIT –07H01L1 Testen op een FPGA hardware-bord FPGA Ingangsschakelaars UitgangsLED’s download-connector Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp


Download ppt "Digitaal ontwerp KATHOLIEKE UNIVERSITEIT 2-12-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen  Sequentiële."

Verwante presentaties


Ads door Google