Digitale Elektronica en Processoren Vak - hoofdstuk Digitale Elektronica en Processoren Luc Van Eycken Luc.VanEycken@esat.kuleuven.be
Waar hebben we hardware nodig? Vak - hoofdstuk Waar hebben we hardware nodig? Doelstellingen Praktische informatie Uiteenlopende toepassingen Krachtige computersystemen Multimedia, spelen Draagbare telecommunicatie Intelligente kledij Huishoudapparatuur … Afhankelijk van de toepassing kan het volgende belangrijk zijn: Hoge verwerkingskracht (voor ingewikkelde algoritmen) Zeer laag vermogenverbruik Zeer compacte implementatie Goedkoop (voor massaproducten)
Wat zullen we hiervoor nodig hebben? Vak - hoofdstuk Wat zullen we hiervoor nodig hebben? Doelstellingen Praktische informatie “System on Chip” combinatie (op een chip) van één of meerdere programmeerbare processoren zeer flexibel goedkoop qua ontwerp 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
Voorbeeld: de Cell-processor Vak - hoofdstuk Voorbeeld: de Cell-processor Doelstellingen Praktische informatie
Gedragsniveau (algoritmen) Vak - hoofdstuk Hoe ontwerpen we dit? Gedragsniveau (algoritmen) Doelstellingen Praktische informatie Software Analoog Transistorniveau Fysisch niveau Hardware Hardware Digitaal Digitaal Processoren Basiscomponenten Poorten in deze cursus
Wat leren we in deze cursus? Vak - hoofdstuk Wat leren we in deze cursus? Doelstellingen Praktische informatie Inzicht verwerven in het ontwerp van digitale elektronische systemen op poort- en RTL-niveau Alle bouwblokken (inclusief processoren) leren kennen die nodig zijn om complexe digitale schakelingen te bouwen De basisconcepten van programmeertalen voor de beschrijving en ontwerp van digitale hardware (zoals VHDL) leren kennen Ervaring opdoen met moderne ontwerp-omgevingen (voor FPGA)
Inhoudstafel Inleiding De basis van digitaal ontwerp Vak - hoofdstuk Inhoudstafel Doelstellingen Praktische informatie Inleiding De basis van digitaal ontwerp Combinatorische schakelingen: geheugenloze schakelingen Sequentiële schakelingen: schakelingen met geheugen Niet-programmeerbare processoren Programmeerbare processoren Hardware-beschrijvingstalen (VHDL)
Inleiding Doelstellingen van de cursus Praktische informatie Vak - hoofdstuk Inleiding Doelstellingen Praktische informatie Doelstellingen van de cursus Praktische informatie Cursustekst Oefeningen & labo’s Examen
Cursusmateriaal Verplicht materiaal Zeer sterk aangeraden materiaal Vak - hoofdstuk Cursusmateriaal Doelstellingen Praktische informatie Verplicht materiaal transparanten (ook beschikbaar via Toledo) Zeer sterk aangeraden materiaal Principles of Digital Design, Daniel D. Gajski, Prentice Hall, 1997, ISBN 0-13-301144-5 Topics uit andere boeken: Digital Design: principles & practices, John F. Wakerly, Prentice Hall, 2000, ISBN 0-13-769191-2 asynchrone sequentiële schakelingen; VHDL Digital System Design with VHDL, Mark Zwolinski, Prentice Hall, 2000, ISBN 0-201-36063-2 metastabiliteit; CPLD; FPGA; VHDL Andere referentiewerken: The Designer’s Guide to VHDL, Peter J. Ashenden, Morgan Kaufmann, 2002, ISBN 1-55860-674-2
Oefeningen & labo’s Traditionele oefeningen over Vak - hoofdstuk Oefeningen & labo’s Doelstellingen Praktische informatie Traditionele oefeningen over ontwerp combinatorische schakelingen ontwerp synchrone sequentiële schakelingen ontwerp niet-programmeerbare processoren begrijpen VHDL-beschrijvingen van hardware Volledig hardware-ontwerp gebruik makend van Xilinx FPGA-hardware en ontwikkelomgeving Vertaling van een probleem in schema’s Simulatie van het ontwerp Uitvoering op de FPGA-hardware
Examen Mondeling gesloten boek met schriftelijke voorbereiding Vak - hoofdstuk Examen Doelstellingen Praktische informatie Mondeling gesloten boek met schriftelijke voorbereiding Drie soorten vragen: Vertaling van een algoritme naar een hardware blokschema Ontwerp van een FSM Theorievragen Voorbeelden van vragen zijn te vinden verderop en op Toledo Aan het einde van het semester is een extra les als vragenuurtje voorzien
Vertaling van een algoritme naar een hardware blokschema Vak - hoofdstuk Vertaling van een algoritme naar een hardware blokschema Doelstellingen Praktische informatie Ontwerp een FSMD die volgende functie uitvoert: entity fsmd is port(i: in integer range 0 to 255; clk, start: in bit; o: out integer range 0 to 4095); end entity fsmd; architecture behav of fsmd is begin process is variable a,b,c: integer; begin wait until clk = '1'; if start = '0' then o <= 0; else a := i; wait until clk = '1'; b := i; wait until clk = '1'; c := i; wait until clk = '1'; while abs(b-c) <= abs(a-b) loop o <= 5 * abs(a-b); end loop; o <= 3 * c + 1; end if; end process; end architecture behav; Ontwerp het datapad tot op RTL componenten en de controller tot op FSM-niveau. Doe ‘left edge register merging’ op je ontwerp.
Vak - hoofdstuk Ontwerp van een FSM Doelstellingen Praktische informatie Maak de goedkoopst mogelijke IC-realisatie van volgende FSM met JK-flip-flops en NAND-poorten: 00 01 11 10 S0 S0/10 S0/00 S7/00 S2/01 S1 S0/11 S4/11 S5/11 S2 S1/01 S2/00 S2/10 S7/10 S3 S3/00 S1/00 S4 S5/00 S5 S6/01 S1/10 S6 S7/01 S7
Vak - hoofdstuk Enkele theorievragen Doelstellingen Praktische informatie Beschrijf het IEEE-formaat voor getallen met “enkelvoudige precisie vlottende komma voorstelling”. Geef ook aan welke getallen hiermee kunnen voorgesteld worden. Geef de realisatie en bespreek de werking van een “prioriteitsencoder”. Wat zijn de verschillende stappen in het ontwerp van een CISC-computer? Wat zijn de belangrijkste voordelen van het gebruik van VHDL?