Digitale elektronica en processoren B-KUL-H01L1A & B-KUL-X0B93A Deel 1: Introductie en basics (Les 1&2) Marian Verhelst Marian.Verhelst@esat.kuleuven.be DEP (22-23) 1.2 1. Inleiding & basics Wie ben ik? Marian Verhelst ❑ KU Leuven & imec ❑ Onderzoek in: ➢ Digitale elektronica ➢ Chips voor AI en machine learning ➢ Computerarchitecturen ❑ Wetenschapscommunicatie Professor DEP (22-23) 1.3 Digitale elektronica? 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten = Elektronische schakelingen die een systeem toelaten om data te verwerken in het Digitale domein en de kern vormen van uiteenlopende toepassingen Augmented reality DEP (22-23) 1.4 Digitale elektronica? 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten = Elektronische schakelingen die een systeem toelaten om data te verwerken in het Digitale domein en de kern vormen van uiteenlopende toepassingen Autonomous vehicles DEP (22-23) 1.5 1. Inleiding & basics Digitale elektronica? ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 2048 CUDA cores (GPU), 12 ARM CPU cores, etc… DEP (22-23) 1.6 Digitale elektronica! 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten = Elektronische schakelingen die een systeem toelaten om data te verwerken in het Digitale domein en de kern vormen van uiteenlopende toepassingen Huidige toepassingen ➢ ➢ ➢ ➢ ➢ Krachtige computersystemen Multimedia, beveiliging Telecommunicatie (Medische) apparatuur … De nabije toekomst ➢ ➢ ➢ ➢ ➢ Augmented reality Autonome robots “Wearable computing” Implantables … DEP (22-23) 1.7 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Hoe ontwerpen we een elektronisch systeem? Specificatie gedrag Software Specificatie randvoorwaarden Interactie! Hardware (programmeerb. | niet programmeerb.) Algoritme grootte persoon goede herkenning Remtijd 20 m: 1,5 s @ 55 km/u DEP (22-23) 1.8 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Hoe ontwerpen we een elektronisch systeem? Specificatie gedrag Specificatie randvoorwaarden Algoritme Hardware Software Digitaal Analoog Processoren in deze cursus Basiscomponenten Poorten Transistorniveau Fysisch niveau DEP (22-23) 1.9 Digitale elektronica 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Wat is belangrijk? ❑ Hoge verwerkingskracht (voor ingewikkelde algoritmen) ❑ Zeer laag vermogenverbruik ❑ Zeer compacte implementatie ❑ Goedkoop & programmeerbaar (voor massaproducten) ➢ Trade-off tussen enkel het noodzakelijke & herbruikbaar DEP (22-23) 1.10 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Voorbeeld: autonomous vehicles Wat is belangrijk? Hoge verwerkingskracht ➔ neurale netwerken (deep learning) (voor ingewikkelde algoritmen) ~1011-1012 bewerkingen per video frame (30fps) ❑ Zeer laag vermogenverbruik ➔ 10Watt in handschoenkastje ❑ Zeer compacte implementatie ❑ Goedkoop & (waar nodig) programmeerbaar ❑ (voor massaproducten) ➢ Trade-off tussen enkel het noodzakelijke (efficiëntie!) & herbruikbaarheid (kost!) DEP (22-23) 1.11 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Voorbeeld: autonomous vehicles ❑ Rekenkracht: ~1011-1012 bewerkingen per video frame (30fps) ➔ 10 biljoen bewerkingen per seconde (10TOP/s) ❑ Zeer laag vermogenverbruik: 10Watt in handschoenkastje ➔ 1pJ/operatie, of 1 biljoen bewerkingen per seconde per Watt (1TOP/s/W) ❑ Alles in SW op CPU of GPU? ➢ ➢ CPU: ~100GOPs, ~10Gops/Watt GPU: ~1TOPs, ~200Gops/Watt DEP (22-23) 1.12 1. Inleiding & basics Digitale elektronica? ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 1 ISP, 1 GPU, video coder, 12 ARM CPU’s 2 AI cores DEP (22-23) Voorbeeld implementatie: 1.13 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Machine Learning acceleratie ❑ Hoe efficiënter rekenen? ➢ ➢ ➢ ➢ ➢ ❑ Hardware! Geavanceerde technologie (5nm!) Efficiente optellers en vermenigvuldigers Efficiente databewegingen Geoptimizeerde processoren met veel parallelisme TPU’s, NPU’s, NNA, … ▪ ▪ ▪ ▪ ▪ bv. Google TPU (tensor processing unit) Tesla NPU (neural processing unit); Apple neural engine Neural Network Accelerator (NNA) … DEP (22-23) 1.14 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Who is investing? HW-centric companies… DEP (22-23) 1.15 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Who is investing? SW-centric companies…! DEP (22-23) 1.16 1. Inleiding & basics HW making the difference! ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Tesla’s NNA (Neural Network Accelerator) Google’s TPU (Tensor Processing Unit) Huawei’s NPU (Neural Processing Unit) Intel NNP (Neural Network Processor) Nvidia’s Tensor Cores Apple’s Neural Engines Samsung’s NPU Amazon’s Inferentia … Hardware als key differentiator “Systems-on-a-chip” DEP (22-23) Voorbeeld implementatie: een ‘System on Chip’ 1.17 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten = combinatie (op een chip) van één of meerdere ➢ Programmeerbare processoren ⇒ zeer flexibel ⇒ herbruikbaar over producten ⇒ belangrijk voor kost! ➢ beperkt-/niet-programmeerbare processoren ⇒ ⇒ ⇒ ⇒ hoge verwerkingskracht compacte implementatie goedkoop qua componenten & vermogen kan (beperkt) reconfigureerbaar zijn in sommige implementaties ➢ controle-eenheden om alles aan te sturen DEP (22-23) 1.18 Wat leren we in deze cursus? 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ Inzicht verwerven in het ontwerp van Digitale elektronische systemen van op poort-niveau tot op processor-niveau (no magic…) ❑ Alle bouwblokken (inclusief processoren) leren kennen die nodig zijn om complexe digitale systemen en processoren te bouwen ❑ De basisconcepten van programmeertalen voor de beschrijving en ontwerp van Digitale hardware leren kennen en gebruiken (met focus op Verilog) ❑ Ervaring opdoen met moderne ontwerp-omgevingen voor Digitale elektronica Op het einde in staat om je eigen micro-processor to bouwen! DEP (22-23) 1.19 Inhoud cursus 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Ontwerp van Digitale schakelingen 1 • Abstractie-niveaus Inleiding • Getalsystemen & Digitale poorten & basics (L1-2) 22 • Booleaanse algebra Combina- • Van logica naar gates • Verilog • Fysische implementatie • Sequentieel&timing Sequen- • FSM’s • Verilog tieel • ASM’s and FSMD’s • Van RTL tot ASIC of FPGA torisch (L3-6) 3 (L7-11) 44 Processoren (L12-L17) • Van ISA’s… • …naar complex programs • Single cycle processor • Processor verbeteringen: pipelining, parallelism & caching NAND toTrends Tetris! • (L18) en Qn&A DEP (22-23) 1.20 Inhoud cursus (Live / Virtueel) 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Ontwerp van Digitale schakelingen 1 • Abstractie-niveaus Inleiding • Getalsystemen & Digitale poorten & basics (L1-2) 22 • Booleaanse algebra Combina- • Van logica naar gates • Verilog • Fysische implementatie • Sequentieel&timing Sequen- • FSM’s • Verilog tieel • ASM’s and FSMD’s • Van RTL tot ASIC of FPGA torisch (L3-6) 3 (L7-11) 44 Processoren (L12-L17) • Van ISA’s… • …naar complex programs • Single cycle processor • Processor verbeteringen: pipelining, parallelism & caching NAND toTrends Tetris! • (L18) en Q&A DEP (22-23) 1.21 Inhoud cursus (Live / Virtueel) 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 1 2 3 4 1 1 Intro & basics Intro & basics 2 2 3 Combinatorisch 3 Combinatorisch Intro abstractieniveaus Intro en en abstractieniveaus Live in Leuven Live in Leuven en in Kortrijk 4 4 logica naar gates VanVan logica naar gates Live Leuven, streaming Kortrijk Live Leuven, streaming Kortrijk 5 5 Verilog Verilog Online Online 6 6 Fysische implementatie Fysische implementatie 7 7 Sequentieel & timing Sequentieel & timing 8 8 Sequentieel 9 9Sequentieel FSM’s FSM’s Live Leuven, Live Leuven, streaming Kortrijk Online Online Live in Leuven Live in Leuven en in Kortrijk Verilog Verilog Online Online 10 10 ASM’s FSMD’s ASM’s en en FSMD’s Live Leuven, Live Leuven, streaming Kortrijk 11 11 naar ASICs FPGA's VanVan RTLRTL naar ASICs en en FPGA's Online Online 12 12 ISA’s… VanVan ISA’s… Live Leuven, Live Leuven, streaming Kortrijk 13 13 …naar complex programs …naar complex programs Online Online 14 14 Processoren Processoren 15 15 Single cycle processor Single cycle processor Live Leuven, Live Leuven, streaming Kortrijk Pipelining Pipelining Online Online 16 16 Parallelisme Parallelisme Live Leuven, Live Leuven, streaming Kortrijk 17 17 Trends Q&A en en Q&A 18 18Trends Caching Caching Live of online (TBD) Live of online (TBD) Live in Leuven Live in Leuven en in Kortrijk Getalsystemen digitale poorten Live Getalsystemen && digitale poorten Live Kortrijk, streaming Leuven Kortrijk, streaming Leuven Booleaanse algebra Booleaanse algebra Online Online DEP (22-23) 1.22 Vereiste voorkennis 1. Inleiding & basics ▪ Doelstellingen ⇨ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ Elektrische netwerken (B-KUL-H01Z2A) ➢ Elektrische concepten en grootheden: spanning, stroom, vermogen ➢ Eenvoudige elektrische netwerken: Vin R ▪ Componenten: R, C, L ▪ Wet van Ohm C ▪ Werking transistor ❑ Informatieoverdracht en -verwerking (B-KUL-H01D2A) ➢ Getalvoorstellingen ➢ Digitale gates – of equivalent ▪ (quick recap…) ❑ Methodiek van de informatica (B-KUL-H01B6B) ➢ Types van operaties ➢ Controlestructuren ➢ Collecties ▪ (quick recap) – of equivalent DEP (22-23) 1.23 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Didactische organisatie Hoorcollege Cursusmateriaal • Mix tussen in aula en online • In aula: delen waarvoor live meerwaarde heeft! • Online: MUST see voor volgende les! • Leuven/Kulak • slides • volgen (optioneel) referentieboek Oefeningen & practica Examen ISBN: 0128200643 DEP (22-23) 1.24 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Didactische organisatie Hoorcollege Cursusmateriaal • Mix tussen in aula en online • In aula: delen waarvoor live meerwaarde heeft! • Online: MUST see voor volgende les! • Leuven/Kulak • slides • volgen (optioneel) referentieboek Oefeningen & practica Examen • 4 zittingen op papier • 4 zittingen op PC (verilog, verplicht aanwezigheid, indienen resultaat!) • Sommige lessen suggesties voor inoefenen thuis DEP (22-23) 1.25 Oefeningen & practica 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ ❑ Traditionele oefeningen over ➢ ontwerp combinatorische schakelingen ➢ ontwerp sequentiële schakelingen ➢ ontwerp processoren [1 papier + 1 PC] [2 papier + 1 PC] [1 papier + 2 PC] PC zittingen = hardware-ontwerp gebruik makend van Verilog ➢ tot op processor niveau ➢ zelf Verilog schrijven ➢ simulatie van het ontwerp ⇒ practica zijn verplicht + indienen resultaat DEP (22-23) 1.26 Thuis inoefenen 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ Online open-source tools ➢ https://nandgame.com/ (L2-14) ➔ combinatorische en sequentiële schakelingen ➢ https://www.edaplayground.com/ (L5/9/oefenzit.) ➔ Online Verilog schrijven, simuleren, delen, …) ➢ https://github.com/mortbopet/Ripes (L12-17) ➔ Computer architectuur simulator DEP (22-23) 1.27 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Didactische organisatie Hoorcollege Cursusmateriaal • Mix tussen in aula en online • In aula: delen waarvoor live meerwaarde heeft! • Online: MUST see voor volgende les! • Leuven/Kulak • slides • volgen (optioneel) referentieboek Oefeningen & practica Examen • 4 zittingen op papier • 4 zittingen op PC (verilog, verplicht aanwezigheid!) • Sommige lessen suggesties voor inoefenen thuis • Schriftelijk, gesloten boek • Mix van oefeningen, & theorie • Voorwaarde: deelname & indiening practica DEP (22-23) 1.28 Examen 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ⇨ Examen ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ Schriftelijk gesloten boek (3 uur max.) ❑ Deelname aan de practica is een voorwaarde om deel te nemen ❑ Voorbeelden van vragen te vinden in de oefenzittingen, aan het einde van verschillende lessen, en op Toledo DEP (22-23) 1.29 Voorbeeldvraag oefeningen 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ⇨ Examen ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ Gegeven volgende combinatorische functie: 𝑥𝑦𝑧 ′ 𝑤 + 𝑥 ′ 𝑦𝑧 ′ 𝑤 + 𝑥𝑦 ′ 𝑧 ′ 𝑤 + 𝑥 ′ 𝑦 ′ 𝑧 ′ 𝑤 + 𝑥𝑦 ′ 𝑧𝑤 + 𝑥𝑦 ′ 𝑧𝑤 ′ + 𝑥𝑦𝑧′𝑤′ ➢ Stel de waarheidstabel op ➢ Vereenvoudig tot de meest compacte Booleaanse vergelijking ➢ Ontwerp een logische schakeling die deze functie realiseert met zo weinig mogelijk NAND, NOR en INV poorten ➢ Ontwerp een nieuwe digitale poort die deze schakeling met 1 poort realiseert. DEP (22-23) 1.30 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ⇨ Examen ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Voorbeeldvraag oefeningen (2) DEP (22-23) 1.31 Voorbeeldvraag oefeningen (3) 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ⇨ Examen ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ Maak de goedkoopst mogelijke IC-realisatie van volgende FSM met D-flipflops en NAND-of NOR-poorten met 2 ingangen. ➢ Hoe lang is het kritische pad van deze schakeling? ➢ Wat kan je zeggen over het vermogenverbruik van deze schakeling? DEP (22-23) 1.32 Voorbeeldvraag oefeningen (4) 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ⇨ Examen ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ Hoeveel klokcycli zijn nodig om het programma op de 5-stage RISC-V processor te laten lopen? ➢ Duid alle hazards aan in de code ➢ Maak een verbetering aan de processor om dit aantal cycli te verminderen. 1 1 ▪ Hoeveel cycli win je? ▪ Teken de aanpassingen op hardware niveau RISC-V Assembly funct: 0: addi t0, zero, 0 # Initialize i = t0 to 0 1: addi t1, zero, 4 # Initialize j = t2 to 4 2: addi t2, zero, 0 # Initialize C = t1 to 0 loop: 1 1 3: lw t3, 0(a0) # Load A[i] in a0 4: lw t4, 0(a1) # Load B[i] in a1 5: mul t5, t3, t4 # Multiply A[i] and B[i] 6: add t2, t2, t5 # Add to C 7: addi t0, t0, 1 # Increment i 8: addi a0, a0, 4 # Increment A pointer 9: addi a1, a1, 4 # Increment B pointer 10: bne t0, t1, loop # Check if i == j a0, t2 # Move C to a0 endloop: 11: mv 12: ret # Return DEP (22-23) 1.33 Voorbeeldvragen theorie 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ⇨ Organisatie ⇨ Examen ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ Beschrijf het IEEE-formaat voor getallen met “enkelvoudige precisie vlottende komma voorstelling”. Geef ook aan welke getallen hiermee kunnen voorgesteld worden. ❑ Wat betekenen de setup-tijd en de houdtijd van een flipflop? Wat is het nut van deze tijden? ❑ Wat is het verschil tussen een RISC en een CISC? ❑ Bespreek de verschillende manieren om in Verilog vertragingen te beschrijven. ❑ Welke cache replacement technieken ken je en geef de voor- en nadelen van elke techniek. DEP (22-23) 1.34 Inhoud cursus 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Ontwerp van Digitale schakelingen 1 • Abstractie-niveaus Inleiding • Getalsystemen & Digitale poorten & basics (L1-2) 2 • Booleaanse algebra Combina- • Van logica naar gates • Verilog • Fysische implementatie • Sequentieel&timing Sequen- • FSM’s • Verilog tieel • ASM’s and FSMD’s • Van RTL tot ASIC of FPGA torisch (L3-6) 3 1.2 The Art of Managing Complexity (L7-11) 4 Processoren (L12-L17) • Van ISA’s… • …naar complex programs • Single cycle processor • Processor verbeteringen: pipelining, parallelism & caching NAND toTrends Tetris! • (L18) en Qn&A DEP (22-23) 1.35 1. Inleiding & basics Digitale systemen zijn complex… ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten [iFixit] DEP (22-23) 1.36 1. Inleiding & basics Digitale systemen zijn opgebouwd uit chips, opgebouwd uit processoren, opgebouwd uit poorten, opgebouwd uit transistoren ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 88mm2! DEP (22-23) 1.37 1. Inleiding & basics Digitale systemen zijn opgebouwd uit chips, opgebouwd uit processoren, opgebouwd uit poorten, opgebouwd uit transistoren ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 88mm2! Chips ➔ (veel) transistoren DEP (22-23) 1.38 Een idee van de complexiteit (II) 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Processor Technologie jaar Aantal transistors 8086 3 µm 1978 29 000 Lego Analogie DEP (22-23) 1.39 Een idee van de complexiteit (II) 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Processor Technologie jaar Aantal transistors 8086 3 µm 1978 29 000 Pentium 0.8 µm 1993 3 100 000 Lego Analogie DEP (22-23) 1.40 Een idee van de complexiteit (II) 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Processor Technologie jaar Aantal transistors 8086 3 µm 1978 29 000 Pentium 0.8 µm 1993 3 100 000 Pentium 4 180 nm 2000 50 000 000 Lego Analogie DEP (22-23) 1.41 Een idee van de complexiteit (II) 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Processor Technologie jaar Aantal transistors 8086 3 µm 1978 29 000 Pentium 0.8 µm 1993 3 100 000 Pentium 4 180 nm 2000 50 000 000 Intel Core i7 45 nm – 32 nm 2008 1 000 000 000 Lego Analogie X 20!! DEP (22-23) 1.42 Een idee van de complexiteit (II) 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Processor Technologie jaar Aantal transistors 8086 3 µm 1978 29 000 Pentium 0.8 µm 1993 3 100 000 Pentium 4 180 nm 2000 50 000 000 Intel Core i7 45 nm – 32 nm 2008 1 000 000 000 Apple M2 5nm 2022 20 000 000 000 Lego Analogie X 20!! ± wereldwijde jaarlijkse productie legoblokjes DEP (22-23) 1.43 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Een idee van de complexiteit (III) Apple M2 5 nm 2022 20 000 000 000 20 miljard legoblokjes op elkaar gestapeld: 190 000 km Maan Aarde ± wereldwijde jaarlijkse productie legoblokjes DEP (22-23) 1.44 1. Inleiding & basics Meer transistoren/mm2 = krachtige electronica in een kleine vormfactor! ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten gsm 2022: 1 computer = 1 rijstkorrel x10M sneller, x100M data opslag, 2W Vele parallele processoren op 1 chip (voor AI,...) ENIAC 1946: 1 computer = 1 kamer 5,000 operaties/sec, 1,600 bits opslag, 150kW DEP (22-23) 1.45 Digitale systemen zijn complex! 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Moore’s Law: transistors/chip: 2x elke ~2 jaar ➢ rekenkracht: 2x elke 18-24 maanden ➢ Self-fulfilling prophecy… ➢ Limiet bereikt? ➢ X50 miljoen! ❑ DEP (22-23) 1.46 1. Inleiding & basics ❑ Slide-boek ❑ Boek VTK ❑ Computer architectures (minor CS) 1.47 Omgaan met complexiteit?! ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 1. Abstractie maken ➢ Systeem opsplitsen device drivers instructions registers datapaths controllers adders memories AND gates NOT gates amplifiers filters transistors diodes electrons laag niveau details in laagjes! ➢ Om je niet te verliezen in de details, de details die nog niet relevant zijn verbergen ➢ Maar 1 laagje per keer uitwerken / beschouwen ➢ Vaak wel kennis nodig ivm. de gevolgen voor de lagere lagen programs focus of this course 1. Inleiding & basics abstractie DEP (22-23) 1.48 Omgaan met complexiteit?! 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 1. Abstractie maken ➢ Deze cursus: programs Digitale circuits tot device drivers architectuur instructions registers Behandeld in bottom-up volgorde focus of this course DEP (22-23) datapaths controllers adders memories AND gates NOT gates amplifiers filters transistors diodes electrons 1.49 Omgaan met complexiteit?! 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 1. 2. Abstractie maken Discipline en standardisatie programs device drivers ➢ Afwijken van afspraken = abstractieniveaus breken… Cfr. Ford: “Any customer can have a car painted any color that he wants so long as it is black.” Succes van iPhones, Tesla’s, … instructions registers focus of this course DEP (22-23) datapaths controllers adders memories AND gates NOT gates amplifiers filters transistors diodes electrons 1.50 Omgaan met complexiteit?! 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten 1. 2. 3. Abstractie maken Discipline en standardisatie The Three Y’s… programs device drivers instructions registers focus of this course DEP (22-23) datapaths controllers adders memories AND gates NOT gates amplifiers filters transistors diodes electrons DEP (22-23) 1.51 The Three -Y’s 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ ❑ ❑ Hierarchy ➢ Abstractie in niveaus Modularity ➢ Een ‘component’ heeft gekende specificaties Regularity ➢ Hergebruik ➢ ‘Bibliotheek’ van bestaande componenten (op elk niveau) DEP (22-23) 1.52 The Three –Y’s (auto’s) 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten • • • • Hierarchy Grootte Topsnelheid Draaicirkel … Modularity Chassis Deur Koffer • • … … • • • • Aanhechtingspunten Vermogen Gewicht … Breedte … … Regurality • • • Capaciteit Afmetingen … • • • Interface Vermogen … … … DEP (22-23) 1.53 The Three –Y’s (digitale chips) 1. Inleiding & basics Modularity Hierarchy Neural Engine Instr. & data geheugen CPU • • ISA 64-bit GPU Register file ALU Decoder • • 2 inputs, 1 output +, -, >>, … • Regurality • • flipflops waarheidstabel 3 terminals Gedrag voor G= ‘1’ en ‘ ’ DEP (22-23) Gradueel afdalen in abstractie-niveaus: Y-chart 1.54 1. Inleiding & basics ❑ ❑ Y-chart stelt relatie tussen abstractie-niveaus voor Op elk abstractie niveau: ➢ ➢ ➢ Gedrag Structuur Fysische implementatie Niet in boek. Optioneel leesvoer: https://link.springer.com/ content/pdf/10.1007/978 -3-030-10552-5.pdf DEP (22-23) Gradueel afdalen in abstractie-niveaus: Y-chart 1.55 1. Inleiding & basics ❑ ❑ ❑ Design flow = top down door de Y-chart naar het midden “spiralen” Tot alles tot laatste details is uitgewerkt. In deze cursus: ➢ ➢ ➢ ➢ ➢ 1. Van specificaties 2. Naar algoritme 3. Synthestiseren 4. Implement 5. Drop 1 level, of keer terug Niet in boek. Optioneel leesvoer: (p4-7) https://link.springer.com/ content/pdf/10.1007/978 -3-030-10552-5.pdf DEP (22-23) 1.56 1. Inleiding & basics Digitaal ontwerp in grote lijnen ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Specificatie Algoritme Bibliotheek Ga naar lager niveau en ontwerp componenten Synthese & implement Verifieer onvolledig Ga naar hoger niveau en pas specificaties aan probleem klaar niet oplosbaar op dit niveau DEP (22-23) 1.57 Specificatie 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten ❑ ➢ ➢ ❑ ❑ Specificatie De specificatie beschrijft: Functionaliteit Randvoorwaarden: snelheid, kost, vermogenverbruik Dikwijls niet eenduidig en/of onvolledig Legt dikwijls onnodige beperkingen op aan het ontwerp Voorbeeld: min/max berekening ❑ Bereken tegelijkertijd het minimum en maximum van twee 8-bits getallen ❑ De maximale vertraging van in- naar uitgang is 1 ns Algoritme Bibliotheek Synthese & implement Verifieer DEP (22-23) 1.58 Algoritme 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Een algoritme is een gedetailleerd stappenplan ❑ Keuze uit verschillende mogelijkheden Specificatie ❑ ➢ Implementatiebeslissingen ➢ Hangt af van hardware ❑ Voorbeeld: Als in1 < in2 dan min = in1 en max = in2 anders min = in2 en max = in1 Algoritme Bibliotheek Synthese & implement Verifieer DEP (22-23) 1.59 Synthese 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten De synthese is de structurele uitwerking van het algoritme ❑ De implementatie is de realisatie van het ontwerp ❑ Gebruikmakend van componenten Specificatie ❑ Algoritme Bibliotheek Synthese & implement Verifieer ➢ Uit bibliotheek ▪ Op elk niveau – Logische poort uit Standard Cell Library – Processor – … Als in1 < in2 dan min = in1 en max = in2 anders min = in2 en max = in1 ➢ Zelf ontwikkelen op volgend niveau Comparator uit bibliotheek? DEP (22-23) 1.60 Analyse 1. Inleiding & basics ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten De verificatie is de test van het ontwerp ❑ Via simulatie of prototype Specificatie ❑ ➢ Teststimuli aanbrengen aan ingang ➢ Uitgang controleren ❑ Synthese & implement Verifieer Testcriteria: ➢ Functionaliteit ➢ Kost ➢ Snelheid ➢… ❑ Algoritme Bibliotheek Probleem: keer terug in Y-chart tot waar het oplosbaar is Sneller? Vermogen? DEP (22-23) 1.61 1. Inleiding & basics Digitaal ontwerp in grote lijnen ▪ Doelstellingen ▪ Voorkennis ▪ Organisatie ⇨ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Elk ontwerp doorloopt de Y-chart van specificatie tot volledige implementatie Digitale elektronica en processoren B-KUL-H01L1A & B-KUL-X0B93A Les2: Recap: getalsystemen en digitale poorten Marian Verhelst Marian.Verhelst@esat.kuleuven.be DEP (22-23) 1.63 Inhoud cursus 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Ontwerp van Digitale schakelingen 1 • Abstractie-niveaus Inleiding • Getalsystemen & Digitale poorten & basics (L1-2) 2 • Booleaanse algebra Combina- • Van logica naar gates • Verilog • Fysische implementatie • Sequentieel&timing Sequen- • FSM’s • Verilog tieel • ASM’s and FSMD’s • Van RTL tot ASIC of FPGA torisch (L3-6) 3 (L7-11) 4 Processoren (L12-L17) • Van ISA’s… • …naar complex programs • Single cycle processor • Processor verbeteringen: pipelining, parallelism & caching NAND toTrends Tetris! • (L18) en Qn&A DEP (22-23) Ontwerp van Digitale schakelingen 1.64 1. Inleiding & basics 1 ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten • Abstractie-niveaus Inleiding • Getalsystemen & basics • Digitale poorten (L1-2) • Van decimal naar binair 1.3 The digital abstraction 1.4 Number Systems • Vaste (INT) en vlottende komma (FP) voorstelling • Optellen/aftrekken/vermenigvuldigen met vast komma • Optellen/aftrekken/vermenigvuldigen met vlottende komma DEP (22-23) 1.65 De Digitale Abstractie 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten Analoog • Continue signalen • Fysieke wereld ❑ • Discrete signalen (beperking) • Robuust / eenvoudig In de praktijk: bijna uitsluitend binaire signalen ➢ ➢ ❑ Digitaal 2 waarden van spanning, (stroom, druk, …) Voorstelling: “ ” en “1” Bits combineren om niet-binaire waarden voor te stellen ➢ D = log2 N bits VD D VIH VIL H ongedefinieerd L VSS DEP (22-23) 1.66 Getallen digitaal voorstellen 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Hoe getallen voorstellen? ➢ Decimaal (radix=10) ➢ Binaire voorstelling (radix=2) most siqnificant bit (msb) least siqnificant bit (lsb) DEP (22-23) 1.67 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten Voor digitale hardware is ALLES enkel 1-en en 0-en Tekst: Elk karakter is 8bits (ASCII) ❑ Geluid: Elke audio-sample = 32bits ❑ Foto’s: Elke pixel = 24bit: ❑ (binaire RGB waarde) DEP (22-23) 1.68 Omzetting decimaal naar binair 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Algoritme Delen door 2 2. De rest toevoegen aan het binaire getal 3. Herhaal 1. 84 42 0 21 0 10 1 5 0 2 1 1 0 0 1 => 8410 = 10101002 DEP (22-23) 1.69 Hexadecimaal 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten 16 tekens: 0-9 en A-F (radix=16) ❑ 2 hexadecimale tekens maken 1 byte (8 bits) ❑ Dit maakt het leesbaarder voor de mens. Hardware gebruikt dit niet… ❑ Schrijfwijze: 0x2ED hex dec … … 9 9 A 10 B 11 C 12 D 13 … … DEP (22-23) 1.70 Words – bytes – nibbles – … 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ ❑ ❑ ❑ Words typically 32 to 64bits Nibble = 1 hex symbol 2-bits? Crumb… 2 nieuwe prefixes! DEP (22-23) Ontwerp van Digitale schakelingen 1.71 1. Inleiding & basics 1 ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten • Abstractie-niveaus Inleiding • Getalsystemen & basics • Digitale poorten (L1-2) 1.4 Number Systems 5.3 Number Systems • Van decimal naar binair • Vaste (INT) en vlottende komma (FP) voorstelling • Optellen/aftrekken/vermenigvuldigen met vast komma • Optellen/aftrekken/vermenigvuldigen met vlottende komma DEP (22-23) 1.72 Integers 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten Gehele getallen voorgesteld met n bits (radix=2) ❑ Bereik ❑ ➢ Unsigned: enkel natuurlijke getallen van 0 t.e.m. 2n-1 195 met 8 bits 27 26 25 24 23 22 21 20 1 1 0 0 0 0 1 1 DEP (22-23) 1.73 Vaste komma voorstelling (fixed point) 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten Hoe kommagetallen voorstellen? ❑ Voorstelling opdelen in geheel (i) en fractioneel (f) deel ❑ ➢ bv.: 11,2510 ❑ = 1011,0102 → fix<4,3> Komma is geïmpliceerd door de definitie van het datatype ➢ niet zichtbaar in hardware ❑ Bereik ➢ Unsigned: 0 t.e.m. +(2i –2-f) in stappen π in fix<2,6> afgerond naar 3.140625 van 2-f 21 20 2-1 2-2 2-3 2-4 2-5 2-6 1 1 0 0 1 0 0 1 DEP (22-23) 1.74 Negatieve getallen? 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Hoe negatieve getallen voorstellen? Sign-magnitude 2. Complement voorstelling 1. DEP (22-23) 1.75 Sign-magnitude 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Getal bestaan uit een teken (s) en een grootte (m) ➢ voorstelling <s,m> ❑ Binair voorbeeld ➢ msb is de tekenbit: “ ” positief, “1” negatief ▪ bv. 011002 = +1210 en 111002 = −1210 ➢ Een SM-getal kan waarde van −(2n−1 − 1) tot en met +(2n−1 − 1) hebben Voordeel: Simpel!! ❑ Nadeel: ❑ ➢ Moeilijker voor computer om op te tellen (zie later) ➢ Twee voorstelling voor nul: 000...0 en 100...0 DEP (22-23) 1.76 Complement voorstelling 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Het (cijfer-)complement (‘diminished-radix 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 12310 is 87610 het 1-complement van 11012 is 00102 dalend stijgend Bits SM 1-C. … … … 1001 -1 -6 1000 -0 -7 0111 7 7 0110 6 6 … … … blijft stijgend: begint na maximum terug bij minimum DEP (22-23) 1.77 Radix-complement voorstelling 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Het radix-complement D* van een getal D met radix r en n cijfers is D* = rn − D het 10-complement van 12310 is 103 − 12310 = 87710 ➢ het 2-complement van 11012 is 24 − 1310 = 310 = 00112 ➢ ❑ D* = D’ + 1 ➢ omdat D’ = (rn − 1) − D Dit gebruiken we om het 2-complement te berekenen! DEP (22-23) 1.78 Twee-Complement 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Als slechts n bits gebruikt worden, dan rn ≡ 0 & D* = rn − D ⇒ D* ≡ −D D* kan dus voor een traditionele optelling gebruikt worden als binaire voorstelling van −D met n bits Bv. bij gebruik van 4 bits D = 310 = 00112 ⇒ D* = 11002 + 00012 = 11012 −D = −310 kan voorgesteld worden als 11012 ❑ D = D*[MSB-1..0] – 2n-1.D*[MSB] ❑ Bereik ➢ ❑ −2n−1 t.e.m. 2n−1 − 1 Slechts één voorstelling voor nul: D = 00002 ⇒ −D ≡ D* = 11112 + 00012 = 100002 Bits SM 1-C. 2-C. … … … … 1001 -1 -6 -7 1000 -0 -7 -8 0111 7 7 7 0110 6 6 6 … … … … DEP (22-23) 1.79 Twee-Complement 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Unsigned ➢ ❑ Meer positieve getallen Sign-magnitude Simpele voorstelling ➢ Eenvoudig vermenigvuldigen ➢ ❑ 2-complement ➢ ➢ ➢ 1 voorstelling voor nul makkelijk optellen Veel gebruikt 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ‘unsigned’ ‘sign-magnitude’ 2-complement 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +0 1 2 3 4 5 6 7 − −1 −2 −3 −4 −5 −6 −7 0 1 2 3 4 5 6 7 −8 −7 −6 −5 −4 −3 −2 −1 DEP (22-23) 1.80 Probleem fixed point 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Stel 100 8-bit fixed-point getallen vermenigvuldigen ➢ Getal heeft steeds meer bits nodig ➢ Getal moet steeds afgerond of afgekapt worden <1,7> ❑ × <1,7> <2,14> × <1,7> <3,21> × <1,7> … × <1,7> <100,700> Variabele komma nodig zoals wetenschappelijke notatie ➢ Floating point DEP (22-23) 1.81 Vlottende komma voorstellingen (floating point) 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ ❑ float <m,e> Mantisse: vaste komma getal ➢ genormaliseerd: 1 < mantisse < radix (R) ➢ Impliciete “leading 1” ➢ Bias B voor de exponent: B = R#e−1 − 1 ➢ ❑ Bereik van 32 bit getallen ➢ 0 ➢ 231−1 Vlottende komma (R=2, e=8) −2128 −2−128 0 2−128 1 e m −1 𝑠 . 1, 𝑀 ∗ 𝑅𝐸−𝐵 Gehele getallen (2-complement) −231 s exp. E mantisse M 2128 bits DEP (22-23) 1.82 IEEE standaardisering 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ ❑ Radix=2 Gestandardizeerde grootte ➢ ➢ single: e = 8, m = 23, B = 127 M=0 double: e = 11, m = 52, B = 1023 M ≠ π in single-precisie ( −1 ) s s E M 1 e m bits E=0 0 < E < 2e−1 0 ( −1 ) 1, M 2E −B s ( −1 ) 1, M 2E −B s 0, M 2− B +1 niet genormaliseerd E = 2e−1 ( −1 ) s NaN verborgen bit = genormaliseed 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 E = 128 => exp = 1 M = (1.)57079637050628662109 ≈π/2 DEP (22-23) Ontwerp van Digitale schakelingen 1.83 1. Inleiding & basics 1 ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten • Abstractie-niveaus Inleiding • Getalsystemen & basics • Digitale poorten (L1-2) 5.3.1 Fixed Point Number Systems • Van decimal naar binair • Vaste (INT) en vlottende komma (FP) voorstelling • Optellen/aftrekken/vermenigvuldigen met vast komma • Optellen/aftrekken/vermenigvuldigen met vlottende komma DEP (22-23) 1.84 Binaire optelling 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Hoe getallen optellen? ➢ Cijferen 15510 + 8710 = 24210 carry X 0 1 1 1 5 5 X 0 1 0 0 1 1 0 1 1 8 7 Y 0 0 1 0 1 0 1 1 1 4 2 Som 0 1 1 1 1 0 0 1 0 Y Som 0100110112 + 0010101112 = 0111100102 2 carry ➢ Logische functies: ▪ c0 = x0 AND y0 ▪ s0 = x0 XOR y0 0 0 1 1 1 1 1 DEP (22-23) 1.85 Binaire aftrekking met sign-magnitude? 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Hoe getallen aftrekken? ➢ Cijferen 15510 - 8710 = 6810 carry -1 -1 X 1 5 Y Som 0 0100110112 + 1010101112 = 1111100102? (-244) carry 0 0 1 1 1 1 1 5 X 0 1 0 0 1 1 0 1 1 - 8 -7 Y 1 0 1 0 1 0 1 1 1 6 8 Som 1 1 1 1 1 0 0 1 0 =! 68 FOUT! DEP (22-23) 1.86 2-complement optelling 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Optelling 00 0 0 0 ❑ 0 0 0 1 0 1 0 +2 1 1 +3 0 1 +5 Aftrekking 1. 2. ➢ inverteren: optellen Weglaten 1100 0000 0 0 1 0 +2 1 1 1 0 -2 1 1 0 1 -3 1 0 1 1 -5 1 1 0 1 -3 1 1 1 1 -1 1-complement 2-complement 1100 1101 (-3) 0011 (+3) inverteren Logische functies: ▪ Functies voor optellen (AND, XOR) ▪ Plus voor inverteren: x’i = NOT xi +1 DEP (22-23) 1.87 Vaste komma optelling 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ➢ Komma juist aligneren 15,510 + 8,2510 = 23,7510 carry 0 1 A 1 B carry 5 8 Som 2 1111,12 + 1000,012 = 10111,112 3 , , , 5 1 A 1 1 1 1 ,1 1 0 0 0 ,0 1 2 5 B 7 5 Som 1 0 1 1 1 ,1 1 ➢ Extra logische functies: ▪ Geen: verschuiving in hardware is een kwestie van bedrading DEP (22-23) 1.88 Vermenigvuldiging 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten 2-complement getallen Natuurlijke getallen 2210 * 510 = 11010 101102 * 1012 = 11011102 -310 * -110 = 310 11012 * 11112 = 00112 -23 22 24 23 22 21 20 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 1 1 0 Tekenbit uitbreiden 2-compl. van 1101 21 20 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 DEP (22-23) 1.89 Vermenigvuldiging 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ➢ Logische functies: -23 22 21 20 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 ▪ Vermenigvuldigen: AND ▪ Uitbreiding: geen ▪ Complement: NOT (&’+1’) ▪ Optelling: XOR, AND ▪ (Zie volgende les!) 1 DEP (22-23) Ontwerp van Digitale schakelingen 1.90 1. Inleiding & basics 1 ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten • Abstractie-niveaus Inleiding • Getalsystemen & basics • Digitale poorten (L1-2) 5.3.2 Floating Point Number Systems • Van decimal naar binair • Vaste (INT) en vlottende komma (FP) voorstelling • Optellen/aftrekken/vermenigvuldigen met vast komma • Optellen/aftrekken/vermenigvuldigen met vlottende komma DEP (22-23) 1.91 Rekenen met vlottende komma 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Optelling 2,4 ∙ 1 1 + 9,9 ∙ 1 ➢ Maak exponenten gelijk = 0,24 ∙ 1 ➢ Tel mantissen op = 10,14 ∙ 1 ➢ Normaliseer en rond af (tot waarde dichtst bij) = 1, ∙ 1 3 2 2 + 9,9 ∙ 1 2 2 DEP (22-23) 1.92 Optelling positieve IEEE single float 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • SM or 2’s C • +-* met FP ▪ Digitale poorten 1. 2. 3. 4. 5. 6. 7. 8. Splits exponent en mantisse Voeg 1 terug toe voor de komma Vergelijk exponenten Verschuif de kleinste mantisse Tel mantissen op Normaliseer mantisse en pas exponent aan Rond af Combineer DEP (22-23) 1.93 Rekenen met vlottende komma 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ❑ Vermenigvuldiging 5,7 ∙ 1 1 × 4,3 ∙ 1 ➢ Vermenigvuldig mantissen en tel exponenten op = 24,51 ∙ 1 ➢ Normaliseer (hooguit 1 cijfer) en rond af = 2,5 ∙ 1 4 3 2 DEP (22-23) 1.94 Vermenigvuldiging positieve IEEE single float 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • SM or 2’s C • +-* met FP ▪ Digitale poorten 1. 2. 3. 4. 5. 6. 7. Splits exponent en mantisse Voeg 1 terug toe voor de komma Tel exponenten op Vermenigvuldig mantissen Normaliseer mantisse en pas exponent aan Rond af Combineer DEP (22-23) 1.95 Vermenigvuldiging positieve IEEE single float 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • SM or 2’s C • +-* met FP ▪ Digitale poorten 1. 2. 3. 4. 5. 6. 7. Splits exponent en mantisse Voeg 1 terug toe voor de komma Fixed point + Tel exponenten op Vermenigvuldig mantissen Fixed point * Normaliseer mantisse en pas exponent aan Rond af Combineer Dure operatie: gebruik vaste komma indien mogelijk ➢ Specifieke hardware: Floating Point Unit (FPU, zie volgende lessen) ➢ DEP (22-23) 1.96 1. Inleiding & basics FPU architectuur details Exacte link: See volgende lessen!! DEP (22-23) 1.97 1. Inleiding & basics FPU in de “AMD Zen2” processor ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ⇨ Getalsystemen • Dec2bin • INT en FP • +-* met INT • +-* met FP ▪ Digitale poorten ALU: Arithmetic Logic Unit voor integers/fixed-point DEP (22-23) Ontwerp van Digitale schakelingen 1.98 1. Inleiding & basics 1 ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten • Abstractie-niveaus Inleiding • Getalsystemen & basics • Digitale poorten (L1-2) • Logische poorten: AND / OR / BUF • Implementatie met transistoren (CMOS) • INV / NAND / NOR • XOR / XNOR • Complexe functies / poorten • Poorten aan elkaar hangen • Nieuwe poorten ontwerpen DEP (22-23) 1.99 Logische poorten 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten NOT OR AND x x’ x NOT x 0 1 1 0 x x∙y y x y x+y x y x AND y x y x OR y 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 DEP (22-23) 1.100 Logische poorten 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten NAND XOR x y x⊕y NOR x (x∙y)’ y x y (x+y)’ x y x⊕y x y x NAND y x y x NOR y 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 XOR: eXclusive OR DEP (22-23) 1.101 Logische schakeling 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten = netwerk van verbonden logische poorten ➢ Realiseert een bepaalde logische functie Schema x y a b Waarheidstabel f x y a b f 0 0 1 0 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 DEP (22-23) Ontwerp van Digitale schakelingen 1.102 1. Inleiding & basics 1 ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten • Abstractie-niveaus Inleiding • Getalsystemen & herh. • Digitale poorten (L1-2) • Logische poorten: AND / OR / BUF • Implementatie met transistoren (CMOS) • INV / NAND / NOR • XOR / XNOR • Complexe functies / poorten • Poorten aan elkaar hangen • Nieuwe poorten ontwerpen 1.5 Logic Gates 1.7 CMOS Transistors DEP (22-23) 1.10 3 MOS-transistor 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ nMOS ➢ geleidt als VGS > Vt D L G H D G S ❑ S pMOS ➢ ➢ VGS < 0, Vt < 0 geleidt als VGS < Vt S L G S H D VGS : spanning gate source Vt : threshold-spanning G D symmetrisch: source = drain DEP (22-23) 1.104 Implementatie CMOS-inverter 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten Play the nandgame.com: Optional levels: ‘Invert’ x NOT x 0 1 1 0 VDD Pull-up network (PUN) x =1 0 ❑ ❑ 1 pMOS-schakelaar in PUN 1 nMOS-schakelaar in PDN f =0 1 Pull-down network (PDN) 1 ingang 2 transistoren DEP (22-23) 1.105 AND in CMOS? 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten x y x AND y 0 0 0 0 1 0 1 0 0 1 1 1 VDD Play the nandgame.com: ‘And’, ‘OR’ Enkel pMOS in PUN x=1 ❑ pMOS geleidt enkel als de gate input laag is y =1 ≠1 ➢ Uitgang “1” als ingangen “1” zijn is onmogelijk met PMOS in PUN PDN GND x AND y DEP (22-23) 1.106 nMOS in PUN? 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten Kan een AND-poort dan gemaakt worden met nMOS in PUN? ❑ nMOS transistor is een slechte pull-up ➢ x f y slechts geleidend als VGS > Vt ⇒ uitgangsspanning daalt met Vt na elke tor ⇒ nMOS enkel in PDN (= kan enkel goed L doorgeven) ❑ H pMOS transistor is een slechte pull-down Vt ⇒ pMOS enkel in PUN (= kan enkel goed H doorgeven) ⇒ AND en OR poorten zijn NIET implementeerbaar! ≥−Vt L DEP (22-23) 1.107 Implementatie NAND 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten x y ❑ f x y f 0 0 1 0 1 1 1 0 1 1 1 0 Altijd een geleidend pad van VDD/GND naar uitgang VDD Play the nandgame.com: ‘Nand’ x=1 0 f=1 0 y = 10 2 ingangen 4 transistors DEP (22-23) 1.108 Implementatie NOR 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten x y f x y f 0 0 1 0 1 0 1 0 0 1 1 0 VDD x=1 0 f=1 0 y = 10 2 ingangen 4 transistors DEP (22-23) 1.109 CMOS = Complementary MOS 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ PUN is het complement van PDN ➢ PUN (“pullt” de output naar VDD) gemaakt uit pMOS ➢ PDN (“pullt” de output naar GND) gemaakt uit ❑ nMOS Altijd een geleidend pad naar voeding of grond DEP (22-23) Ontwerp van Digitale schakelingen 1.110 1. Inleiding & basics 1 ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten • Abstractie-niveaus Inleiding • Getalsystemen & herh. • Digitale poorten (L1-2) • Logische poorten: AND / OR / BUF • Implementatie met transistoren (CMOS) • INV / NAND / NOR • XOR / XNOR • Complexe functies / poorten • Poorten aan elkaar hangen • Nieuwe poorten ontwerpen DEP (22-23) 1.111 Complexere functies van NAND / NOR / INV 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Fysische eigenschappen Poorten kunnen achter elkaar geschakeld worden om meer complexe functies te realizeren. ❑ Bv: ❑ ➢ AND-OR-INVert b (AOI) a xy f z DEP (22-23) 1.112 Complexere functies van NAND / NOR / INV 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Fysische eigenschappen Poorten kunnen achter elkaar geschakeld worden om meer complexe functies te realizeren. ❑ Bv: ❑ ➢ AND-OR-INVert b (AOI) a xy f z b ❑ Opgepast: a f yz ➢ Elke poort-uitgang kan meerdere poort-ingangen sturen. ➢ Maar elke poort-ingang kan maar gestuurd worden door 1 poort-uitgang DEP (22-23) 1.113 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Fysische eigenschappen Reden om poortuitgangen niet te verbinden? Geleidende transistoren hebben een lage weerstand ⇓ Vermijd kortsluiting (zeer hoge stromen) ➢ PUN en PDN nooit samen actief ⇒ PUN = (PDN)’ ➢ Nooit uitgangen verbinden! ⇒ geen wired-AND DEP (22-23) 1.114 NAND (of NOR) completeness 1. Inleiding & basics Eender welke logische functie, kan gemaakt worden met NAND gates. Maar 1 poort nodig? ❑ Bv: Zou kunnen, maar leidt wel ❑ ➢ INV: ➢ AND: ➢ (N)OR: tot grotere schakelingen… DEP (22-23) 1.115 Complexere functies met NAND / NOR / INV 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Fysische eigenschappen ❑ AND-OR-INVert (AOI) ➢ bv.: b a xy ❑ f z 5 ingangen 4+2+4+2+4 = 16 transistoren OR-AND-INVert (OAI) ➢ bv.: b Kan dat beter? a xy f z DEP (22-23) 1.116 Nog meer complexe CMOS poorten? CMOS 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Fysische eigenschappen ❑ AND-OR-INVert (AOI) ➢ bv.: b a b a xy f z y x z 5 ingangen 16 transistors f a x y b z ❑ Probeer zelf: OR-AND-INVert (OAI) 5 ingangen 10 transistors DEP (22-23) 1.117 Mogelijke PUN’s 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ Enkel pMOS ontwerpen ➢ VDD nMOS volgt uit pMOS: parallel wordt serie en omgekeerd… VDD X VDD X Y X Z Y Y X’ AND (Y’ OR Z’) X’ AND Y’ X’ OR Y’ DEP (22-23) 1.118 XOR in CMOS 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ VDD X XOR Y = ((NOT X) AND Y) OR (X AND (NOT Y)) ❑ ❑ Eerst PUN Overeenkomstig PDN ➢ ❑ parallel ↔ serie X X’ Y’ Y Ook 2 NOT-poorten nodig x y x⊕y 0 0 0 0 1 1 1 0 1 1 1 0 X Y’ X’ Y Play the nandgame.com: ‘Xor’ DEP (22-23) 1.119 Oefening 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ Implementeer 𝑋 = 𝐴 + 𝐵(𝐶 + 𝐷𝐸) in één CMOS-poort. ➢ PUN: ▪ 𝑋 = 1 als 𝐴 + 𝐵 𝐶 + 𝐷𝐸 = 0 ➢ PDN ▪ parallel ↔ serie DEP (22-23) 1.120 Oefening 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ Exercise 1.73: Implementeer een majority gate met 3 ingangen in 1 CMOS poort. ➢ Een majority gate is één poort die hoog wordt als meer dan de helft van haar ingangen hoog zijn. DEP (22-23) 1.121 Extra oefeningen (integratie les 2,3,4) 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ ❑ Z = NOT (a OR (b AND c)) T = NOT (a AND (b OR c)) Examen Voor elke opgave: 1. Implementeer van basis INV, NAND, NOR poorten (enkel gebruik makend van de a, b en c ingang – pas na les 4) 2. Implementeer van basis enkel NAND poorten 3. Implementeer als 1 enkele logische poort (je mag veronderstellen dat je a, b en c, en a’, b’ en c’ als ingang ter beschikking hebt) ➔ Vergelijk het aantal transistoren dat je nodig hebt met methode 1, 2 en 3. DEP (22-23) 1.12 2 Play the nandgame.com 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ Van transistor (of relay) tot processor! ❑ Standard game: gebruikt relays. Maak eerst NAND poort met 2 relay’s (zie rechts) ➢ Vervolledig dan de andere levels met je NAND poort ➢ ▪ Maak level “Invert” tot en met “Xor” ❑ En/of: optional levels op basis van transistoren ➢ Maak NAND, INV en NOR hier, dan verder van XOR in normale game Play the nandgame.com: DEP (22-23) 1.123 Andere veelgebruikte poorten 1. Inleiding & basics ▪ ▪ ▪ ▪ Doelstellingen Voorkennis Organisatie Abstractieniveaus ▪ Getalsystemen ⇨ Digitale poorten • Logische poorten • Implementeerbare poorten • Complexe functies / poorten ❑ ❑ ❑ ❑ ❑ Buffer f = x = (x’)’ ≡ AND-poort f = xy = ((xy)’)’ ≡ OR-poort f = x + y = ((x + y)’)’ ≡ XOR-poort (≡ bits verschillend?) f = x ⊕ y = xy’ + x’y ≡ = ((x’+y)(x+y’))’ XNOR-poort (≡ bits dezelfde?) f = (x ⊕ y)’ = xy + x’y’ = ((x’+y’)(x+y))’ ≡ OAI OAI DEP (22-23) 1.124 Relevante oefeningen van boek voor deel 1 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Exercises 1.9-1.36 ❑ Exercises 1.52-1.61, 1.66, ❑ Exercises 1.71-1.77, 1.84-1.88 ❑ Exercises 5.32-5.46 ❑ DEP (22-23) 1.12 5 1. Inleiding & basics ⇨ Doelstellingen ▪ Voorkennis ▪ Organisatie ▪ Abstractieniveaus ▪ Getalsystemen ▪ Digitale poorten Rest van dit vak: Hoe zorgen dat we kunnen rekenen in die Ontwerp van Digitale schakelingen getalsystemen, gebruikt makend van • Abstractie-niveaus • Getalsystemen & Digitale poorten de kracht van de digitale poorten! Inhoud cursus 1 22 Inleiding & basics (L1-2) • Booleaanse algebra Combina- • Van logica naar gates • Verilog • Fysische implementatie • Sequentieel&timing Sequen- • FSM’s • Verilog tieel • ASM’s and FSMD’s • Van RTL tot ASIC of FPGA torisch (L3-6) 3 (L7-11) 44 Processoren (L12-L17) • Van ISA’s… • …naar complex programs • Single cycle processor • Processor verbeteringen: pipelining, parallelism & caching NAND toTrends Tetris! • (L18) en Qn&A