De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Inhoudstafel Inleiding De basis van digitaal ontwerp

Verwante presentaties


Presentatie over: "Inhoudstafel Inleiding De basis van digitaal ontwerp"— Transcript van de presentatie:

1 Inhoudstafel Inleiding De basis van digitaal ontwerp
Vak - hoofdstuk Inhoudstafel Inleiding De basis van digitaal ontwerp Combinatorische schakelingen Sequentiële schakelingen Niet-programmeerbare processoren Programmeerbare processoren Hardware-beschrijvingstalen

2 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Een voorbeeld: FPGA

3 Digitaal ontwerp in grote lijnen
Vak - hoofdstuk Digitaal ontwerp in grote lijnen Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp Specificatie Bibliotheek Synthese Documentatie Analyse Documentatie handleiding gebruikers handleiding hersteller documentatie voor verdere ontwikkelingen

4 Vak - hoofdstuk Specificatie Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp 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

5 Vak - hoofdstuk Synthese Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp 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

6 Bibliotheek van componenten
Vak - hoofdstuk Bibliotheek van componenten Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-ontwerp 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 (× 220 ≈ × 106 op 30–40 jaar) Specificatie Bibliotheek Synthese Analyse

7 Analyse van het ontwerp
Vak - hoofdstuk Analyse van het ontwerp Ontwerppad Specificatie Synthese Bibliotheek Analyse Digitale data Boole-algebra Logische poorten FPGA-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 × V2 (in 17 jaar × 1000) C  chipgrootte  (0,25 cm2 in 1983; 4 cm2 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

8 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-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

9 Getallen digitaal voorstellen
Vak - hoofdstuk Getallen digitaal voorstellen MSB LSB Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp radix r (10 voor decimale notatie) cijfer iteratief : Bijv. het getal 1234,5610 (in decimale notatie) 1∙ ∙ ∙ ∙ ∙10−1 + 6∙10−2 1∙ ∙ ∙10 + 4∙1 + 5∙0,1 + 6∙0,01

10 Andere radixen Binair : r = 2, di = 0..1 bijv. 1011,0112 = 11,37510
Vak - hoofdstuk Andere radixen Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Binair : r = 2, di = 0..1 bijv. 1011,0112 = 11,37510 1∙23 + 0∙22 + 1∙21 + 1∙20 + 0∙2−1 + 1∙2−2 + 1∙2−3 1∙8 + 1∙2 + 1∙1 + 1∙0,25 + 1∙0,125 Octaal : r = 8, di = 0..7 bijv. 7654,328 = 4012, 7∙83 + 6∙82 + 5∙81 + 4∙80 + 3∙8−1 + 2∙8−2 7∙ ∙64 + 5∙8 + 4∙1 + 3∙1/8 + 2∙1/64 Hexadecimaal : r = 16, di = 0..9 & A..F bijv. F9D8,7616 = 63960, 15∙ ∙ ∙ ∙ ∙16−1 + 6∙16−2 15∙ ∙ ∙ /16 + 6/256

11 Vak - hoofdstuk Radix-conversie : r1 ® r2 Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Als r1 = r0p en r2 = r0q q cijfers (r1) ® pq cijfers (r0) ® p cijfers (r2) bijv. hex (r1 = 24) ® octaal (r2 = 23) Anders bepaal het getal D van de voorstelling Dr1 , bepaal de cijfers van D voor r2 988B16 1001|1000|1000|1011 = 1|001|100|010|001|011

12 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-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

13 Binaire optelling & aftrekking
Vak - hoofdstuk Binaire optelling & aftrekking Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Decimale optelling 7 2 8 3 x 6 5 y som overdracht 1 Engelse benaming: overdracht = carry lenen = borrow Binaire optelling Binaire aftrekking overdracht 1 x som y x y lenen resultaat

14 Binaire vermenigvuldiging
Vak - hoofdstuk Binaire vermenigvuldiging Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp × Vermenigvuldiging via herhaalde optelling & schuifoperatie: # cycli = # bits van vermenigvuldiger Er bestaan snellere implementaties

15 Vak - hoofdstuk Binaire deling Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp 1 0 0 Deling via herhaalde aftrekking & schuifoperatie: # cycli = # bits van het resultaat Meestal deze implementatie

16 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-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

17 ‘Sign-Magnitude’-voorstelling
Vak - hoofdstuk ‘Sign-Magnitude’-voorstelling Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Elk getal bestaat uit twee delen: een teken & een grootte Decimaal voorbeeld: en −12310 Generische voorstelling: B = <s,m> Binaire getallen MSB = teken (‘0’ = positief, ‘1’ = negatief) bijv = en = −1210 Een ‘sign-magnitude’-getal met n bits ligt tussen −(2n−1 − 1) en +(2n−1 − 1) met twee voorstellingen voor nul: en

18 Optelling & aftrekking
Vak - hoofdstuk Optelling & aftrekking Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Begin aftrekking s2 = s2’ Begin optelling s1 = s2 Vele testen  traag & duur  weinig gebruikt m1 = m2 neen mr = m1 + m2 sr = s1 ja m1 > m2 neen mr = 0 sr = 0 ja mr = m2 − m1 sr = s2 neen ja mr = m1 − m2 sr = s1 Einde

19 Twee-complement voorstelling
Vak - hoofdstuk Twee-complement voorstelling Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp 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 87610 het 1-complement van is 00102 Het radix-complement D* van een getal D met radix r en m cijfers is D* = rm − D het 10-complement van is 103 − = 87710 het 2-complement van is 24 − 1310 = 310 = 00112 D* = D’ (bewijs in boek) Dit gebruiken we om het 2-complement te berekenen!

20 Twee-complement voorstelling
Vak - hoofdstuk Twee-complement voorstelling Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Als slechts n bits gebruikt worden, dan rn  0 & D* = rn − D Þ D*  −D D* kan dus gebruikt worden als binaire voorstelling van −D met n bits Bijv. bij gebruik van 4 bits D = 310 =  D* = = 11012 −D = −310 kan voorgesteld worden als 11012 Afspraak nodig om te kunnen interpreteren: is het −310 (2-complement) of 1310 (‘unsigned’)? Slechts één voorstelling voor nul: D =  −D  D* = = Een 2-complement getal van n bits kan een waarde van −2n−1 tot en met 2n−1 − 1 hebben

21 Vergelijking Decimaal 2-complement ‘Sign-magnitude’ −8 1000 − −7 1001
Vak - hoofdstuk Vergelijking Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Decimaal 2-complement ‘Sign-magnitude’ −8 1000 −7 1001 1111 −6 1010 1110 −5 1011 1101 −4 1100 −3 −2 −1 0000 1000 & 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111

22 Optelling & aftrekking
Vak - hoofdstuk Optelling & aftrekking Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Begin aftrekking Br = B1 + B2’ + 1 Begin optelling Br = B1 + B2 Einde Eenvoudige implementatie, zelfs voor aftrekking: Weinig bewerkingen en geen testen Eenvoudige hardware beschikbaar voor 1-complement (B2’) Geen extra hardware nodig voor “+ 1” (gebruik LSB carry-in)

23 Optelling & aftrekking
Vak - hoofdstuk Optelling & aftrekking 00000 Optelling + Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp 1100 −4 00000 1110 −2 + 1110 −2 1100 −4 11000 1010 −6 + 1011 (+4)’ 00111 1110 −2 Aftrekking + 0011 (−4)’ 00111 + 1110 −2 0011 (−4)’ 11111 + 01100 1101 −3 ‘Overflow’ + 1001 −7 1010 −6 10000 +

24 Modulus rest bij een deling:
Vak - hoofdstuk Modulus Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp rest bij een deling: Als b = 2n dan is dit hetzelfde als de n minstbeduidende bits overhouden: mod 1000 = 101 a b a mod b > 0 a rem b < 0 (a rem b) + b a b rem mod 5 3 2 −3 −1 −5 −2 1

25 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-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

26 Getallen met vaste komma
Vak - hoofdstuk Getallen met vaste komma Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp fix<i,f>: 1101,010  i = 4, f = 3 puur geheel : f = 0 puur fractioneel : i = 0 # bits na een bewerking fix<i1,f1> + fix<i2,f2> = fix<i,f>  i = max(i1,i2) + 1 & f = max(f1,f2) fix<i1,f1>  fix<i2,f2> = fix<i,f>  i = i1 + i2 & f = f1 + f2

27 Getallen met vlottende komma
Vak - hoofdstuk Getallen met vlottende komma Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp float <f,e> Genormaliseerde fractie: R > mantissa ≥ 1 of 1 > mantissa ≥ 1/R IEEE-formaat: R = 2, bias B = 2e−1 − 1 Enkelvoudige precisie : e = 8, f = 23, B = 127 Dubbele precisie : e = 11, f = 52, B = 1023 mantissa s exp. fractie 1 e f bits niet-genormaliseerde F verborgen bit

28 Rekenen met vlottende komma
Vak - hoofdstuk Rekenen met vlottende komma Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Optelling 0,24 ,99102 Maak exponenten gelijk = 0,02 ,99102 Tel mantissa’s op = 1,01102 Normaliseer = 0,10103 Vermenigvuldiging 0,11101  0,12102 Vermenigvuldig mantissa’s & tel exponenten op = 0,0132103 Normaliseer (hooguit 1 cijfer) = 0,13102

29 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-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

30 Binary Coded Decimal Decimaal cijfer BCD 0000 1 0001 2 0010 3 0011 4
Vak - hoofdstuk Binary Coded Decimal Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp Decimaal cijfer BCD 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001

31 American Standard Code for Information Interchange
Vak - hoofdstuk American Standard Code for Information Interchange Ontwerppad Digitale data Getallen Binair rekenen Negatieve getallen Niet-gehele getallen Andere codes Boole-algebra Logische poorten FPGA-ontwerp b3b2b1b0 b6b5b4 000 001 010 011 100 101 110 111 0000 NUL DLE SP @ P p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f v 0111 BEL ETB 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L \ l | 1101 CR GS - = M ] m } 1110 SO RS . > N ^ n ~ 1111 SI US / ? O _ o DEL

32 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-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

33 Axiomatische definitie van Booleaanse algebra
Vak - hoofdstuk Axiomatische definitie van Booleaanse algebra Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp 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 genoemd x + 0 = x B heeft een eenheidselement voor •, 1 genoemd x • 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

34 Axiomatische definitie van Booleaanse algebra
Vak - hoofdstuk Axiomatische definitie van Booleaanse algebra Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp 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

35 Verschil met gewone algebra
Vak - hoofdstuk Verschil met gewone algebra Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp 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

36 Booleaanse algebra met 2 waarden
Vak - hoofdstuk Booleaanse algebra met 2 waarden Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp x x’ 1 NOT-operator AND-operator x y x  y 1 OR-operator x y x + y 1 gedefinieerd met waarheidstabellen

37 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-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

38 Theorema’s Te bewijzen via Elk theorema heeft een duaal theorema:
Vak - hoofdstuk Theorema’s Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp 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

39 Theorema’s Theorema 3: absorptie Theorema 4: involutie
Vak - hoofdstuk Theorema’s y x y  x y  x + x 1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp 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’

40 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-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

41 Vak - hoofdstuk Booleaanse functies Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp uitdrukking van binaire variabelen en de bewerkingen AND, OR en NOT Bijv. F1 = xy + xy’z + x’yz F1 = 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 F1 = 0 F1 bestaat uit 3 AND-termen en 1 OR-term Prioriteit van bewerkingen: haakjes NOT AND OR

42 Booleaanse functies Rechtstreekse realisatie
Vak - hoofdstuk Booleaanse functies Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp Rechtstreekse realisatie binaire variabelen = ingangssignalen bewerking = poort Bijv. F1 = xy + xy’z + x’yz x y z AND OR F1 NOT

43 Waarheidstabel van een functie
Vak - hoofdstuk Waarheidstabel van een functie Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp tabel met de functiewaarde(n) voor alle combinaties van ingangswaarden n (ingangs)variabelen  2n rijen Bijv. F1 = xy + xy’z + x’yz x y z Rij x y z F1 1 2 3 4 5 6 7 1 2 1 3 1 F1 4 1 5 1 6 1 7 1

44 Waarheidstabel van een functie
Vak - hoofdstuk Waarheidstabel van een functie Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp Nummering van de rijen Standaard-code: natuurlijke opvolging Gray-code: 2 opeenvolgende rijen verschillen maar in 1 variabele Opmerking: functie verandert niet! x 1 y 1 z 1 F 1 1 1 x 1 y 1 z 1 F 1 1 1

45 Complementaire functie
Vak - hoofdstuk Complementaire functie Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp Alternatieve realisatie F1 = (F1’)’ F1’ = (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 F1 = xy + xy’z + x’yz OR-AND realisatie F1 = ((x’+y’) (x’+y+z’) (x+y’+z’))’ x y z F1

46 Algebraïsche manipulatie
Vak - hoofdstuk Algebraïsche manipulatie Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp F1 = 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 F1 = xy + xy’z + x’yz x y z F1 F1 = xy + xz + yz

47 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-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

48 Vak - hoofdstuk Mintermen Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp Een minterm is een Booleaanse functie die waar is voor slechts voor één enkele rij van de waarheidstabel Rij x y z minterm notatie x’y’z’ m0 1 x’y’z m1 2 x’yz’ m2 3 x’yz m3 4 xy’z’ m4 5 xy’z m5 6 xyz’ m6 7 xyz m7

49 Canonische vorm met mintermen
Vak - hoofdstuk Canonische vorm met mintermen Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp Een 1-minterm is een minterm waarvoor de functie 1 is; een 0-minterm is een minterm waarvoor de functie 0 is F1 = xy + xy’z + x’yz Rij x y z F1 1-minterm 1 2 3 m3 = x’yz 4 5 m5 = xy’z 6 m6 = xyz’ 7 m7 = xyz Elke Booleaanse functie kan beschreven worden als de som van zijn 1-mintermen : F1 = x’yz + xy’z + xyz’ + xyz = m3 + m5 + m6 + m7 = (3,5,6,7)

50 Vak - hoofdstuk Maxtermen Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp Een maxterm is een Booleaanse functie die waar is voor alle rijen van de waarheidstabel behalve één Rij x y z maxterm notatie x+y+z M0 1 x+y+z’ M1 2 x+y’+z M2 3 x+y’+z’ M3 4 x’+y+z M4 5 x’+y+z’ M5 6 x’+y’+z M6 7 x’+y’+z’ M7

51 Canonische vorm met maxtermen
Vak - hoofdstuk Canonische vorm met maxtermen Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp Een 0-maxterm is een maxterm waarvoor de functie 0 is; een 1-maxterm is een maxterm waarvoor de functie 1 is F1 = xy + xy’z + x’yz Rij x y z F1 0-maxterm M0 = x+y+z 1 M1 = x+y+z’ 2 M2 = x+y’+z 3 4 M4 = x’+y+z 5 6 7 Elke Booleaanse functie kan beschreven worden als het product van zijn 0-maxtermen: F1 = (x+y+z)(x+y+z’)(x+y’+z)(x’+y+z) = M0M1M2M4 = (0,1,2,4)

52 Vak - hoofdstuk Standaard vorm Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp 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

53 Voorbeelden van standaard vorm
Vak - hoofdstuk Voorbeelden van standaard vorm Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp F2 = xyz + xyz’ + xy’z + xy’z’ = xy(z + z’) + xy’(z + z’) = xy + xy’ = x(y + y’) = x F3 = 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’

54 Minimale implementatie
Vak - hoofdstuk Minimale implementatie Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp De standaard vorm is de goedkoopste implementatie in twee lagen F2 = xy + xz + yz Een niet-standaard vorm met meer dan twee lagen kan goedkoper zijn F2 = x(y + z) + yz x z y F2 x z y F2

55 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-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

56 De 16 functies van 2 variabelen
Vak - hoofdstuk De 16 functies van 2 variabelen Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp Waarom 16 functies? 2 binaire variabelen  22 = 4 mogelijke ingangscombinaties Elke ingangscombinatie heeft 2 mogelijke functiewaarden (0 en 1)  24 = 16 mogelijke functies x y 1 F0 F1 F2 F15 1

57 De 16 functies van 2 variabelen
Vak - hoofdstuk De 16 functies van 2 variabelen Naam Symbool Functiewaarde voor x,y Uitdrukking 00 01 10 11 Zero F0 = 0 AND x·y 1 F1 = xy Inhibition x/y F2 = xy’ Transfer F3 = x y/x F4 = x’y F5 = y XOR xÅy F6 = xy’+x’y OR x+y F7 = x+y NOR x¯y F8 = (x+y)’ XNOR F9 = xy+x’y’ Complement y’ F10 = y’ Implication F11 = x+y’ x’ F12 = x’ F13 = x’+y NAND x­y F14 = (xy)’ One F15 = 1 Ontwerppad Digitale data Boole-algebra Axioma's Theorema's Functies Canonische & standaard vorm 16 functies Logische poorten FPGA-ontwerp

58 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie FPGA-ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Functionele eigenschappen Niet-functionele eigenschappen Verbindingen Implementatietechnologieën Een voorbeeld: FPGA

59 Logische waarden voorstellen
Vak - hoofdstuk Logische waarden voorstellen Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie FPGA-ontwerp Welke fysische waarden worden gebruikt om de twee logische waarden voor te stellen? Een “Low” & een “High” fysisch bereik, Meestal 2 spanningen: VL & VH Andere mogelijkheden: stromen, optische reflectie, druk, … afgebeeld op de logische niveaus L H Positieve logica 1 Negatieve logica

60 Actief laag signaal het signaal is actief als het ‘0’ is
Vak - hoofdstuk Actief laag signaal Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie FPGA-ontwerp 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* 1

61 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-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

62 Vak - hoofdstuk Schakelaars Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp Logische poort meestal opgebouwd uit schakelaars met twee standen: Elektrische weerstand: 0   Drukventiel: open  gesloten Licht doorlaten: wel  niet Werking afhankelijk van stuursignaal L L H H

63 MOS-transistor als schakelaar
Vak - hoofdstuk MOS-transistor als schakelaar Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp NMOS transistor (boek: P-transistor) VGS < VT VGS > VT PMOS transistor (verwissel ‘n’↔‘p’, S↔D) Gate (poort) Isolator Metaal L Source Drain n+ n+ p H Halfgeleider Geleidend pad als VGS > VT VGS > VT noot: VGS & VT < 0 L H

64 Inverter F = x’ 2 transistoren (afgekort “tors”)
Vak - hoofdstuk Inverter Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp F = x’ 2 transistoren (afgekort “tors”) Relatieve vertragingstijd : 1 x = L F = H VCC (H) VSS (L) x F L H x = H F = L H L Opmerking: vanaf nu enkel positieve logica 1 x F

65 NAND-poort F = (xy)’ 4 transistoren Relatieve vertragingstijd : 1,4
Vak - hoofdstuk NAND-poort Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp F = (xy)’ 4 transistoren Relatieve vertragingstijd : 1,4 VCC VSS x = 0 y = 0 F = 1 x F y y = 1 x = 1 1 1 F = 0 1 1 Opmerking: Dit is een NOR-poort voor negatieve logica!

66 NOR-poort F = (x + y)’ 4 transistoren Relatieve vertragingstijd : 1,4
Vak - hoofdstuk NOR-poort Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp F = (x + y)’ 4 transistoren Relatieve vertragingstijd : 1,4 VCC VSS x = 0 y = 0 F = 1 y = 1 x F y 1 x = 1 1 F = 0 1 1

67 Andere basispoorten Buffer of ‘driver’ (meer vermogen) AND-poort
Vak - hoofdstuk Andere basispoorten Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp 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 x F x F y x F y x F y x F y

68 Waarom enkel inverterende basispoorten?
Vak - hoofdstuk Waarom enkel inverterende basispoorten? Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp Buffer NMOS transistor is een slechte pull-up slechts geleidend als VGS > VT  uitgangsspanning daalt met VT 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) H VT L ≥−VT

69 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-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

70 Meerdere ingangen (fan-in)
Vak - hoofdstuk Meerdere ingangen (fan-in) VCC Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp F = 1 als x = 0 of y = 0 of z = 0  F = x’ + y’ + z’ = (xyz)’ Om kortsluiting te vermijden kan deze blok enkel geleiden als de bovenste niet geleidt: PDN = PUN’ PDN PUN x y z x F y F z z y x 3-input NAND : F = (xyz)’ 6 transistoren Relatieve vertragingstijd : 1,8 VSS

71 Relatieve kostprijs & vertraging
Vak - hoofdstuk Relatieve kostprijs & vertraging Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp 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 0,6 + fan-in × 0,4 1,6 + fan-in × 0,4

72 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-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

73 Meerdere operatoren in 1 poort: 2-wide 2-input AND-OR-Invert
Vak - hoofdstuk Meerdere operatoren in 1 poort: 2-wide 2-input AND-OR-Invert VCC Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp F = 0 als ( x = 1 en y = 1 ) of ( z = 1 en w = 1 ) z w y x w z F x y F y w 2-wide 2-input AOI F = (xy + zw)’ 8 transistoren Relatieve vertragingstijd : 2,2 x z VSS

74 Meerdere operatoren in 1 poort : 2-wide 2-input OR-AND-Invert
Vak - hoofdstuk Meerdere operatoren in 1 poort : 2-wide 2-input OR-AND-Invert VCC Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Basispoorten Complexe poorten Niet-functioneel Verbindingen Technologie FPGA-ontwerp F = 0 als ( x = 1 of y = 1 ) en ( z = 1 of w = 1 ) y w y x w z F x z F z w 2-wide 2-input OAI F = ((x + y) (z + w))’ 8 transistoren Relatieve vertragingstijd : 2,2 x y VSS

75 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-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

76 Spanningsniveaus Logisch niveau  spanningsgebied Voordeel:
Vak - hoofdstuk Spanningsniveaus Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp Logisch niveau  spanningsgebied Voordeel: minder gevoelig aan procesvariaties, die de karakteristieken van componenten veranderen minder gevoelig aan omgevingsvariaties, zoals temperatuur, voedingsspanning, … Logisch niveau Spanningsgebied TTL van tot L VSS VIL 0 V 0,8 V H VIH VCC 2 V 5 V

77 Vak - hoofdstuk Ruismarge Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp spanningsmarge beschikbaar door een kleiner gebied van uitgangsspanningen te gebruiken dan toegelaten TTL 0 V 5 V 0,4 V 2,4 V 0,8 V 2 V Uitgang Ingang VCC VCC H H VOH marge VIH VIL marge L VOL L VSS VSS

78 Onlogische spanningen
Vak - hoofdstuk Onlogische spanningen Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp Tijdens de verandering van logisch niveau ontstaan spanningen die niet met een logisch niveau overeenkomen! Bijv. TTL-inverter Vuit VT ideaal 5 Transferfunctie afhankelijk van productieproces omgevingsfactoren H 2,4 0,4 L 0,8 2 5 Vin L H

79 Schmitt-trigger-ingangen
Vak - hoofdstuk Schmitt-trigger-ingangen Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp Bijkomende problemen voor trage signalen Schmitt-trigger-ingangen hebben een hysteresis Vin VT+ VT− VT Vout VT Vin H L t Vout t H L VT+ VT− Vout Vin H L t H L Vout

80 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-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

81 Effect capacitieve belasting
Vak - hoofdstuk Effect capacitieve belasting Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp L  H overgang H  L overgang Vcc C ROH RIH C ROL RIL

82 Effect capacitieve belasting
Vak - hoofdstuk Effect capacitieve belasting Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp Snelle overgangen als uitgangsimpedantie RO zo klein mogelijk  grote stromen  groot vermogenverbruik C (van draad & ingang) zo klein mogelijk  vermijdt lange verbindingen ingangsimpedantie RI zo groot mogelijk Daarom RTL-technologie niet populair vervang bovenste blok transistoren (PUN) door een weerstand R beperk vermogenverbruik  RO = R redelijk groot  grote stijgtijden R Vcc x = 0 F = 1 x = 1 F = 0

83 Vertragingstijd Stijgtijd Daaltijd 90% of VIH 50% VT 90% 50% 10% tPHL
Vak - hoofdstuk Vertragingstijd Stijgtijd Daaltijd Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp 90% of VIH 50% VT 90% 50% 10% tPHL tPLH Vertragingstijd: tP = (tPLH + tPHL)/2 10% VIL

84 Vak - hoofdstuk Vertragingstijd Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp Wordt beïnvloed door de stijg/daaltijd en dus door de capacitieve belasting in in tPLH tPLH uit uit kleine stijgtijd grote stijgtijd

85 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-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

86 Fan-out = min(IOH/IIH, IOL/IIL)
Vak - hoofdstuk Fan-out Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp maximum aantal ingangen die aan één uitgang kunnen gekoppeld worden ‘Stroomgedreven’ technologieën (TTL, ECL, ...) Fan-out = min(IOH/IIH, IOL/IIL) IOH IIH IOL IIL

87 Fan-out ‘Ladinggedreven’ technologieën (CMOS)
Vak - hoofdstuk Fan-out Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp ‘Ladinggedreven’ technologieën (CMOS) II ≈ 0  IO gebruiken voor op/ontladen C fan-out × ingangscapaciteit capaciteit verbindingen fan-out bepaalt maximale schakelfrequentie I = C  dV/dt = C  f  DV  f = I/(C  DV) bijv. voor Xilinx Virtex: 10 pF ingangscapaciteit, IOmax = 20 mA, 0,8 pF/cm PCB, Vcc = 3,3 V Voor fan-out = 3 & 10 cm PCB-draden: C = 3  ,8  10 = 38 pF schakelfrequentie = I/(C  DV) = 20 mA/(38 pF  3,3 V) = 160 MHz

88 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-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

89 Vermogenverbruik Verbruikte vermogen moet worden
Vak - hoofdstuk Vermogenverbruik Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Spanningen Tijdsgedrag Fan-out Vermogen Verbindingen Technologie FPGA-ontwerp Verbruikte vermogen moet worden geleverd : kostprijs energie, levensduur batterijen gedissipeerd : warmte moet afgevoerd worden TTL verbruikt voortdurend vermogen P = VCC  ICC  10mW/poort  1 miljoen poorten: 10 KW! Gebruikt bij hoge spanningen/stromen (bussen, …) CMOS verbruikt enkel bij het schakelen P = C  f  V2 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!

90 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Bus als poort Technologie FPGA-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

91 Types verbindingen Traditioneel: 1 aansturing van verbinding
Vak - hoofdstuk Types verbindingen Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp Traditioneel: 1 aansturing van verbinding Meerdere aansturingen mogelijk = bus(verbinding) Slechts 1 aansturing tegelijkertijd!  3-state buffers gebruiken

92 ‘Tri-state’ derde mogelijkheid, naast 0 en 1
Vak - hoofdstuk ‘Tri-state’ Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp 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: E Uit Z 1 In In Uit E Uit Vcc Vss E In In Uit E

93 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Bus als poort Technologie FPGA-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

94 ‘Open-drain/collector’ uitgang
Vak - hoofdstuk ‘Open-drain/collector’ uitgang Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp Maak R van RTL extern Eigenschappen: Slechte stijgtijd Uitgangen verbinden geeft geen kortsluiting  bussen ‘Wired logic’ (cfr. infra) Vcc In Uit Vcc In Uit Vcc Vcc

95 ‘Wired logic’ Wired-AND : verbinding van open-drain uitgangen
Vak - hoofdstuk ‘Wired logic’ Vcc Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Bus als poort Technologie FPGA-ontwerp Wired-AND : verbinding van open-drain uitgangen Wired-OR : voor actief lage signalen actief lage OR  actief hoge AND R A B A’ B’ F 1 A’ A 1 F 1 1 B’ B A F B effect van bedrading

96 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-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

97 Integratieniveau SSI: Small Scale Integration
Vak - hoofdstuk Integratieniveau Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp 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

98 Integratieniveau VLSI: Very Large Scale Integration
Vak - hoofdstuk Integratieniveau Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp 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

99 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-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

100 Maatwerk (‘custom design’)
Vak - hoofdstuk Maatwerk (‘custom design’) Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp 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!)

101 Standaard-cel ontwerp
Vak - hoofdstuk Standaard-cel ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-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’)

102 Standaard-cel ontwerpstappen
Vak - hoofdstuk Standaard-cel ontwerpstappen Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp Schema Ingave ontwerp Simulatie ‘Placement’ Implementatie ‘Routing’ Simulatie tijdsgedrag Productie: n maskers Realisatie Testen

103 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-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

104 Vak - hoofdstuk Gate array Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp 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

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

106 Digitaal ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-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

107 Field programmable design
Vak - hoofdstuk Field programmable design Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp 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)

108 PLA: Programmable Logic Array
Vak - hoofdstuk PLA: Programmable Logic Array Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp Programmeerbare AND-matrix & OR-matrix Afgeleiden (sneller & betrouwbaarder) PAL : vaste OR-matrix PROM : vaste AND-matrix (adresdecoder) Ingangen Uitgangen x Ingangen Uitgangen = AND-matrix OR-matrix x

109 PLD: Programmable Logic Device
Vak - hoofdstuk PLD: Programmable Logic Device Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp Uitgebreide macro-cellen : extra logica/flip-flops aan de uitgangen D D

110 CPLD: Complexe PLD O I/O I/O O PLD PLD Schakelmatrix PLD PLD O I/O I/O
Vak - hoofdstuk CPLD: Complexe PLD Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp O I/O I/O O PLD PLD Schakelmatrix PLD PLD O I/O I/O O

111 Field Programmable Gate Array
Vak - hoofdstuk Field Programmable Gate Array Schakelmatrices Directe verbindingen tussen naburige blokken Lange lijnen Globale kloklijnen Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp I/O SM CLB

112 FPGA: extra specifieke hardware
Vak - hoofdstuk FPGA: extra specifieke hardware Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp 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)

113 FPGA Configurable Logic Block
Vak - hoofdstuk FPGA Configurable Logic Block 16x1 LUT: Booleaanse functie van 4 variabelen FF G GQ F FQ Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp Look-Up Table opzoektabel voor booleaanse functie bruikbaar als 32-bit SRAM

114 Spartan-3 CLB 1 Spartan-3 CLB = 4 “slices”
Vak - hoofdstuk Spartan-3 CLB Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp 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

115 Spartan-3 CLB Slice Standaard logica Extra logica
Vak - hoofdstuk Spartan-3 CLB Slice Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp 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

116 FPGA Switching Matrix element
Vak - hoofdstuk FPGA Switching Matrix element Ontwerppad Digitale data Boole-algebra Logische poorten Functioneel Niet-functioneel Verbindingen Technologie Integratie Chip-ontwerp Gate array Field progr. FPGA-ontwerp Vcc ‘Pass’-transistor

117 SM programmering Ontwerppad Digitale data Boole-algebra
Vak - hoofdstuk 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 Digitaal ontwerp in grote lijnen Gegevensvoorstelling
Vak - hoofdstuk Digitaal ontwerp Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp Digitaal ontwerp in grote lijnen Gegevensvoorstelling Booleaanse algebra Logische poorten Een voorbeeld: FPGA Xilinx ISE-omgeving, gebruikt in labozittingen

119 Xilinx ISE-omgeving inhoud bestanden of resultaat actie
Vak - hoofdstuk Xilinx ISE-omgeving Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp inhoud bestanden of resultaat actie bestanden van het project mogelijke acties op het bestand output acties

120 FPGA ontwerpstappen Ingave ontwerp Functionele simulatie
Vak - hoofdstuk FPGA ontwerpstappen Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp Ingave ontwerp Functionele simulatie Technology mapping Placement Routing Simulatie tijdsgedrag Downloading Testen

121 Ingave ontwerp op hiërarchische wijze
Vak - hoofdstuk Ingave ontwerp op hiërarchische wijze Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp specifieke FPGA-hardware toestands-diagramma VHDL-beschrijving LogiCORE subschema

122 FPGA ontwerpstappen Ingave ontwerp Functionele simulatie
Vak - hoofdstuk FPGA ontwerpstappen Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp Ingave ontwerp Functionele simulatie Technology mapping Placement Routing Simulatie tijdsgedrag Downloading Testen

123 FPGA ontwerpstappen beeld alle functies af op de CLB’s Ingave ontwerp
Vak - hoofdstuk FPGA ontwerpstappen Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp Ingave ontwerp Functionele simulatie Technology mapping beeld alle functies af op de CLB’s Placement Routing Simulatie tijdsgedrag Downloading Testen

124 FPGA mapping, placement & routing
Vak - hoofdstuk FPGA mapping, placement & routing Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp synthese van (V)HDL tot een netlijst vertaal naar logische primitieven afbeelding op FPGA-elementen placement & routing genereer aangepaste tijdsinformatie

125 FPGA ontwerpstappen Ingave ontwerp Functionele simulatie
Vak - hoofdstuk FPGA ontwerpstappen Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp Ingave ontwerp Functionele simulatie Technology mapping Placement Routing Simulatie tijdsgedrag Downloading Testen

126 FPGA ontwerpstappen Ingave ontwerp Functionele simulatie
Vak - hoofdstuk FPGA ontwerpstappen Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp Ingave ontwerp Functionele simulatie Technology mapping Placement Routing Simulatie tijdsgedrag Downloading Testen

127 Testen op een FPGA hardware-bord
Vak - hoofdstuk Testen op een FPGA hardware-bord Ontwerppad Digitale data Boole-algebra Logische poorten FPGA-ontwerp download-connector FPGA UitgangsLED’s Ingangsschakelaars


Download ppt "Inhoudstafel Inleiding De basis van digitaal ontwerp"

Verwante presentaties


Ads door Google