Entwurf digitaler Schaltungen (F1) Einführung Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 20. April 2015 Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 1/74 Was ist Technische Informatik Zwei relativ selbständige Gebiete: die technischen Anwendungen der Informatik informationstechnische Erfassung, Modellierung und Steuerung technischer Systeme die technische Basis der Informatik Digitaltechnik: Modellierung, Simulation, Entwurf und Test digitaler Schaltungen Die LV Entwurf digitaler Schaltungen legt die Grundlagen für den zweiten Teil. Lernziele: Verständnis und praktische Fertigkeiten für die Funktionsweise, Modellierung und den Entwurf digitaler Schaltungen Voraussetzung imperative Programmierung (C, Pascal o.ä.) Prüfung schriftlich Hausübungen begleitende Laborübungen Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 2/74 Transistoranzahl Digitale Systeme sind groÿ 109 108 107 106 105 104 103 Six Core Core i7 Zunahme der TransistorCore 2 Duo anzahl in Prozessoren Pentium 4 (Verdopplung alle 2 Jahre) Pentium 80486 80386 8086 Z80 Einführungsjahr 4004 1970 1980 1990 2000 2010 Nach dem Moorschen Gesetz verdoppelt sich die Transistoranzahl digitaler Schaltungen alle 2 Jahre. Die gröÿten derzeit gefertigten Schaltkreise enthalten über eine Milliarde Transistoren. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 3/74 Wenn es die Möglichkeit gibt, innerhalb weniger Jahre funktionierende digitale Schaltungen mit 109 Transistoren zu entwickeln, herzustellen und in Betrieb zu nehmen, sollte es für einen angehenden Bachelor of Engineering möglich sein, funktionierende Schaltungen aus einigen Hundert bis Tausend Gattern zu verstehen, zu entwerfen und auszuprobieren. Wie beherrscht man so groÿe Entwürfe? rechnergestützt, teilautomatisiert, hierarchisch, mit gut abgestimmten Bausteinkonzepten. Bausteinsysteme für den Baugruppenentwurf: Standardschaltkreise, Rechnerschaltkreise, programmierbare Logikschaltkreise sowie Sensoren und Ansteuereinheiten für Aktoren mit digitalen Ein- und Ausgängen, die direkt oder über Anpassungsschaltkreise an das digitale System anschlieÿbar sind. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 4/74 Aufbau der Vorlesung Thema 1: Zwei einführende Beispiele traditioneller Entwurf mit Standardschaltkreisen und ein vergleichbarer Entwurf in einer Hardware-Beschreibungssprache und einem programmierbaren Logikschaltkreis. Lernziel: Der traditionelle Entwurf ist ein Zusammenfügen passgerechter Bausteine nach einfachen Regeln, überwiegend Fleiÿarbeit. Der Hauptaufwand entfällt wie bei der Software-Entwicklung auf Test und Fehlersuche. Der moderne Digitalentwurf funktioniert fast genauso wie die Software-Entwicklung. Beschreibung der Zielfunktion in einer Programmiersprache. Simulation auf dem Rechner. Prototyp-Fertigung ähnlich wie die Programmierung von Mikrorechnern. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 5/74 Thema 2: Handwerkszeug Teil 1: Simulation mit VHDL, synthesegerechte Beschreibung, Logikoptimierung und Rechenwerke. Lernziele: Einführung in VHDL, ereignisgesteuerte Simulation kombinatorischer und getakteter Schaltungen, Testrahmen. Synthesegerechte Beschreibung, Optimierung auf Hochsprachenniveau und typische Beschreibungsfehler. Optimierungsziele. Bleistift-und-Papier-Optimierung mit KV-Diagrammen. Das klassische Verfahren von Quine und McCluskey sowie die modernen Optimierungsmethoden mit geordneten binären Entscheidungsdiagrammen. Rechenwerke: Aufwands- und geschwindigkeitsoptimierte Schaltungen für die Addition, Subtraktion, Multiplikation, Vergleicher und Block-Shifter. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 6/74 Thema 3: Handwerkszeug Teil 2: Automaten, Operationssteuerungen, Zeitverhalten und asynchrone Eingabe. Lernziele: Beschreibung von Abläufen mit Automaten. Schaltungsentwurf für Automaten mit KV-Diagrammen. Beschreibung von Automaten in VHDL. Umgang mit redundanten Zuständen. Erweiterung des Automatenmodells um die Steuerung und Auswertung von Register-Transfer-Operationen. Sequentiell arbeitende Rechenwerke. Modellierung und Kontrolle von Zeitbedingungen. Robuste Datenübernahme von Schaltern, Tastern und Systemen mit nicht ausgerichtetem Takt. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 7/74 Thema 4: Vom Transistor zum Logikbaustein Aufbau und Funktionsweise von MOS-Transistoren, Gattern, Speicherzellen, Latches, Registern, RAM, ROM, Flash bis hin zu programmierbaren Logikschaltkreisen. Lernziel: Grundvorstellung der inneren Funktion digitaler Bausteine. Lösen einfacher Entwurfsaufgaben auf Transistorebene. Einschätzung der Realisierbarkeit, des Aufwands, der Geschwindigkeit und des Stromverbrauchs digitaler Systeme. Thema 5: Komplexe Entwürfe Dafür erforderliche weitere VHDL-Beschreibungsmittel, Schrittweiser Entwurf einer seriellen Schnittstelle, eines Cordic-Rechenwerks (Sinus, Kosinus, ...) und eines Spezialrechners für FIR-Filter (Signalverarbeitung). Lernziele: Festigung der zuvor vermittelten Lehrinhalte an Beispielen. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 8/74 Inhalt des Foliensatzes 1.1 1.2 1.3 1.4 1.5 2.1 2.2 2.3 2.4 Standardschaltkreise Beispielentwurf Test Schaltungen mit Registern Leiterplattenentwurf Aufgaben VHDL + FPGA Einfache Gatterschaltung Zähler und Ampelsteuerung Simulation Aufgaben Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 9/74 1. Standardschaltkreise Prof. G. Kemnitz Standardschaltkreise · Institut für Informatik, Technische Universität Clausthal 20. April 2015 10/74 1. Standardschaltkreise Aufbau und Schaltplan einer digitalen Schaltung Inverter, Schmitt-Trigger (Schwellwertschalter mit Hyterese) Steckverbinder Taster Kondensator Widerstand (US-Symbol) Das Beispiel zeigt ein Foto und einen Ausschnitt aus dem Schaltplan einer Mikrorechneransteckbaugruppe für unsere Mikrorechnerversuchsbaugruppen im Labor mit vier Tastern. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 11/74 1. Standardschaltkreise UM Dir En Motorspannung UM 0V 0 UVM 0 1 −UVM 1 1 Sensorsign. UVM Der H-Brückenschaltkreis bildet aus den Steuersignalbelegungen von EN (Enable, Freigabe) und Dir (Direction, Richtung) vom Mikrocontroller die Spannung für den Motor. Die beiden Inverter invertieren die vom Motor kommenden Sensorsignale und passen die Pegel für null und eins an die vom Mikrorechner erwarteten an. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 12/74 1. Standardschaltkreise Logikfamilie Schaltkreise mit unterschiedlichen Logikfunktionen, gleicher Herstellungsprozess, gleiche Schaltungstechnik mit ähnlichen elektrischen und mechanischen Eigenschaften, die sich problemlos kombinieren lassen. Am verbreitetsten war die 74...-Serie. Schaltungstechnik TTL (Transistor-Transistor-Logik) heute veraltet. Ein Nachfolger 74HC... CMOS, Bezeichnungen und Anschlusswerte kompatibel zur 74er-Serie. 74HC00 4 74HC02 4 74HC04 6 74HC08 4 74HC10 3 74HC11 3 74HC14 6 Trigger Prof. G. Kemnitz × × × × × × × · NAND2 NOR2 Inverter AND2 NAND3 AND3 Inverter Schmitt 74HC20 2 × NAND4 74HC30 1 ×NAND8 74HC32 4 ×OR2 74HC74 2 ×D-Flipop 74HC75 4 × Latch 74HC86 4 × EXOR 74HC174 6-Bit-Register ... Institut für Informatik, Technische Universität Clausthal 20. April 2015 13/74 1. Standardschaltkreise 74HC00: 4 × NAND2 UV B4 A4 Y4 B3 A3 Y3 14 13 12 11 10 & 2 8 14 4 5 6 7 74HC174: 6 Bit-Register mit Taktund Rücksetzeingang 10 1 UV Versorgungsspannung Masse 2 9 8 =1 =1 3 4 5 6 7 A1 B1 Y1 A2 B2 Y2 U V D6 Q6 D5 Q5 D4 Q4 16 15 Funktion: Bei R̄ = 0 werden alle 6 Speicherzellen gelöscht: Qi = 0 sonst bei steigender Flanke an T Übernahme Qi ← Di sonst speichern · 11 =1 & 3 12 =1 A1 B1 Y1 A2 B2 Y2 Prof. G. Kemnitz 13 & & 1 9 74HC86 4 × EXOR UV B4 A4 Y4 B3 A3 Y3 1 2 14 13 12 11 D R D R D R R D R D R D 3 4 5 6 T 10 9 7 8 R̄ Q1 D1 D2 Q2 D3 Q3 Institut für Informatik, Technische Universität Clausthal 20. April 2015 14/74 1. Standardschaltkreise Elektrische Eigenschaften Testschaltung Signalverzögerung Übertragungsfunktion Ue UOH UV & Ue UOH UIH UOL UIL Ua Ua UOL Ua UIL UIH Ue td minimale Spannung für eine 1 am Ausgang minimale Spannung für eine 1 am Eingang maximale Spannung für eine 0 am Ausgang maximale Spannung für eine 0 am Eingang Typische elektrische Eigenschaften der 74HC-Familie Prof. G. Kemnitz · UV 2V 4,5 V 6V UOH 1,9 V 4,4 V 5,9 V UIH 1,5 V 3,2 V 4,2 V UIL 0,5 V 1,4 V 1,8 V Institut für Informatik, Technische Universität Clausthal td t UV Versorgungsspannung td Verzögerungszeit UOL 0,1 V 0,1 V 0,1 V td 100 ns 20 ns 16 ns 20. April 2015 15/74 1. Standardschaltkreise Untersuchung einer Beispielschaltung UV = 3...5 V C R1 R2 & & BT1 BT2 a & & b R3 c LD1 R4 d LD2 1 × 74HC00 2 Taster R1 , R2 Pullup-Widerstände 10...100 kΩ R3 , R4 LED-Vorwiderstände 50...200 Ω C Stützkondensator LD.. Leuchtdioden 2...10 mA bei UF = 1, 5...2, 5 V Was passiert, wenn man die Taster nacheinander wie folgt drückt: BT1 BT2 a b c d LD1 LD2 aus an aus aus aus aus aus an 0 1 1 0 aus an Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 16/74 1. Standardschaltkreise Einige wichtigste Regeln für den Entwurf Alle Versorgungsanschlüsse aller Schaltkreise mit UV = 2...6 V und alle Masseanschlüsse mit Masse verbinden. Stützkondensator von 10/100nF zwischen UV - und Masseanschluss der Schaltkreise. Ein Ausgang kann mehrere Eingänge oder eine Low-Current LED treiben. LEDs brauchen immer einen Vorwiderstand zur Strombegrenzung. Ungenutzte Eingänge nicht oen lassen, sondern mit UV oder Masse verbinden. Ausgänge nie miteinander, mit UV oder Masse verbinden. Wenn Eingangsspannungen > UV oder < 0 nicht ausschlieÿbar sind, bei Eingabe über Stecker, 100Ω Schutzwiderstand in Reihe schalten. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 17/74 1. Standardschaltkreise Prof. G. Kemnitz 1. Beispielentwurf Beispielentwurf · Institut für Informatik, Technische Universität Clausthal 20. April 2015 18/74 1. Standardschaltkreise Entwurf einer Zählfunktion 1. Beispielentwurf Aufgabe sei der Entwurf eines 4-Bit-Zählers aus Gattern und einem 4-Bit-Register. Schaltungsentwurf für die Zähloperation: Zähloperation x3 x2 x1 x0 + c0 y3 y2 y1 y0 x0 y0 x 1 =1 c0 & + y1 =1 c1 & für jedes Bit Wertetabelle xi ci ci+1 si 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 Beispiel x2 1011 1 1100 y2 =1 c2 & x3 y3 xi =1 c3 & c4 Schaltung =1 yi ci Erfordert einen 74HC08 (4×AND2) und einen 74HC86 (4×EXOR). Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal & ci+1 20. April 2015 19/74 1. Standardschaltkreise Platzierung und Verdrahtung x2 74HC08 14 13 12 x3 c4 11 10 9 8 UV 14 13 & & UV y2 74HC86 12 11 y3 10 9 8 UV & 1 1. Beispielentwurf 2 c0 x0 =1 & 3 4 5 x1 =1 =1 6 7 1 2 =1 3 4 y0 5 6 7 y1 Anordnung auf einem Steckbrett. Blau gesteckte Drahtbrücken, rot Stützkondensatoren. Eingerahmte Punkte sind verbunden. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 20/74 1. Standardschaltkreise Prof. G. Kemnitz 2. Test Test · Institut für Informatik, Technische Universität Clausthal 20. April 2015 21/74 1. Standardschaltkreise Schaltungsaufbau mit Electronics Explorer Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 2. Test 20. April 2015 22/74 1. Standardschaltkreise Testen statischer Test UV ··· Testobjekt ··· 2. Test dynamischer Test UV SignalTestgenera· · · objekt · · · tor Logikanalysator Ein statischer Test legt die logischen Eingaben über Schalter oder Steckbrücken an und prüft die Ausgabewerte mit Leuchtdioden oder einem Multimeter. Kontrolliert wird die Funktion nach der Wertetabelle. Bei einem dynamischen Test werden die Eingaben in Echtzeit von einem Signalgenerator erzeugt und die Ausgabe mit einem Logikanalysator aufgezeichnet. Dabei werden zusätzlich die Signalverzögerungen kontrolliert. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 23/74 1. Standardschaltkreise Statischer Test 2. Test Der Explorer kann über die Oberäche Static IO unterschiedliche Ein- und Ausgabeelemente für den statischen Test nachbilden: Leuchtdioden, Schalter, Taster, 7-Segment-Anzeige ... c4 y3 y2 y1 y0 x3 x2 x1 x0 c0 Der Test der Beispielschaltung erfordert fünf Schalter als Eingabe und fünf Leuchtdioden als Ausgabe. Damit ist eine Stichprobe der Zeilen aus der Wertetabelle zu überprüfen. Erkannte Fehler sind zu beseitigen. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 24/74 1. Standardschaltkreise Dynamischer Test 2. Test Für den dynamischen Test sind über die Bedienoberäche Generator die Anschlusszuordnung und die Signalverläufe für die Eingabe festzulegen. Im Beispiel bilden die Eingänge x0 bis x3 einen Bus und c0 ist ein Einzelsignal. Für alle Eingangssignale ist eingestellt 10 MHz und Zufallssignale. Nach Konguration starten mit Run. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 25/74 1. Standardschaltkreise Ergebnisaufzeichnung mit Logikanalysator 2. Test Ein Logikanalysator zeichnet digitale Abtastwerte auf. Erforderliche Einstellungen: abzutastende Signale, Abtastfrequenz, Trigger (Bedingung für den Aufzeichnungsbeginn), ... · Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 20. April 2015 26/74 1. Standardschaltkreise 2. Test Im Beispiel werden alle Ein- und Ausgangssignale mit 100 MHz, d.h. mit 10 Werten je Eingabeänderung aufgezeichnet. Damit sind Verzögerungen mit einer Auösung in 10ns-Schritten erkennbar. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 27/74 1. Standardschaltkreise Prof. G. Kemnitz 3. Schaltungen mit Registern Schaltungen mit Registern · Institut für Informatik, Technische Universität Clausthal 20. April 2015 28/74 1. Standardschaltkreise Schaltungen mit Registern 3. Schaltungen mit Registern Ein Register besitzt i.Allg. einen Initialisierungs-, einen Datenund einen Takteingang. Wenn das Signal am Initialisierungseingang aktiv ist (im Bild I = 1), Übernahme eines Anfangswertes, meist null. Sonst bei aktiver Taktanke (hier steigender) Datenübernahme, sonst speichern. x I T x I T y y I Dateneingang Initialisierungseingang Takteingang Datenausgang T 1 0 I 1 0 x y 1 0 1 0 unbestimmt beliebig Mit Registern werden Schaltungen mit Gedächtnis realisiert, die ihre Folgezustände und Ausgaben aus der Eingabe und dem aktuellen Zustand bilden. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 29/74 1. Standardschaltkreise Vom bisherigen Entwurf zum Zähler 3. Schaltungen mit Registern Auf der Register-Transfer-Ebene besteht ein Zähler aus dem bisher entworfenen 4 x + Rechenwerk für +c0 c0 und einem 4-Bit-Register mit I I Takt- und Initialisierungseingang. T T I c0 x y y 1 0 1 0 1 0 0100 0100 0000 0001 0010 0011 0100 0101 0101 0110 0000 0001 0010 0011 0100 0100 0101 Als 4-Bit-Register eignet sich z.B. der Schaltkreis 74HC174, der ein 6-Bit-Register mit Takt- und Initialisierungseingang enthält. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 30/74 1. Standardschaltkreise Prof. G. Kemnitz 4. Leiterplattenentwurf Leiterplattenentwurf · Institut für Informatik, Technische Universität Clausthal 20. April 2015 31/74 1. Standardschaltkreise Beispielschaltplan in Eagle 4. Leiterplattenentwurf zwei Schaltkreise, einer mit 4 NAND2 und einer mit 4 EXOR Stecker mit 3 Eingängen, 2 Ausgängen, Versorgungsspannung und Masse Stützkondensatoren bei der Platzierung, unmittelbar an den Schaltkreisen anzuordnen. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 32/74 1. Standardschaltkreise Platzierung 4. Leiterplattenentwurf Nach Wechsel von Bauteile platziert. Die braunen Linien der Schaltung- zur sind noch anzuordnende Verbindungen Geometrieansicht. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 33/74 1. Standardschaltkreise Verdrahtung 4. Leiterplattenentwurf (blau Unterseite, rot Oberseite; grün Lötaugen, bei zweiseitigen Leiterplatten mit Durchkontaktierungen (Vias)). Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 34/74 1. Standardschaltkreise Zusammenfassung 4. Leiterplattenentwurf Der traditionelle Digitalentwurf bildet die Zielfunktion aus Schaltkreisen nach. Zusammenfügen passgerechter Bausteine nach einfachen Regeln, ist überwiegend Fleiÿarbeit. Der Hauptaufwand entfällt wie bei der Software-Entwicklung auf Inbetriebnahme, Test und Fehlersuche. Auÿer mit Gattern und Registern gibt es auch höher integrierte Schaltkreise mit Zählern, Schieberegistern, Multiplexern, Rechenwerken, Rechnerbausteine, Prozessoren, ... Als es noch Stand der Technik war, Schaltungen aus solchen Bausteinen zusammen zu setzen, hatte sich eine Vorlesung zum Entwurf von Digitalschaltungen ab hier weiter mit den Funktionen dieser quasi Standardbausteine und ihrer Erweiterung zu gröÿeren Systeme befasst. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 35/74 1. Standardschaltkreise Prof. G. Kemnitz 5. Aufgaben Aufgaben · Institut für Informatik, Technische Universität Clausthal 20. April 2015 36/74 1. Standardschaltkreise Aufgabe 1.1: Ausfüllen der Wertetabelle 5. Aufgaben Gegeben ist die nachfolgende Schaltung. Füllen Sie die Wertetabelle rechts daneben aus. x1 & z4 & z5 z1 x2 z2 x3 Prof. G. Kemnitz & z3 · & y x3 0 0 0 0 1 1 1 1 x2 0 0 1 1 0 0 1 1 x1 0 1 0 1 0 1 0 1 z5 z4 z3 z2 z1 Institut für Informatik, Technische Universität Clausthal y 20. April 2015 37/74 1. Standardschaltkreise Aufgabe 1.2: Signalverläufe bestimmen & x I T 5. Aufgaben y1 z1 ≥1 z2 y2 I I unbestimmt beliebig T 1 0 I 1 0 x 1 0 z1 1 0 z2 1 0 y1 1 0 y2 1 0 Ergänzen Sie die Signalverläufe für z1 ,z2 , y1 und y2 . Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 38/74 1. Standardschaltkreise Aufgabe 1.3: Verdrahtungen 5. Aufgaben Die Schaltung aus Aufgabe 1.1 soll mit je einem Schaltkreis vom Typ 74HC00 und 74HC10 aufgebaut werden. Entwickeln Sie eine Schaltplan und tragen Sie in die nachfolgende Tabelle die Signalnamen ein, an die die Schaltkreisanschlüsse in der Schaltung anzuschlieÿen sind. 74HC00 UV B4 A4 Y4 B3 A3 Y3 14 13 12 11 10 & 2 2 UV C1 Y1 C3 B3 A3 Y3 14 13 12 11 10 & 3 4 5 3 4 9 8 6 7 & & & 6 A1 B1 Y1 A2 B2 Y2 1 74HC10 8 & & 1 9 5 7 6 1 2 3 4 5 A1 B1 A2 B2 C2 Y2 7 8 9 10 11 12 13 14 74HC00 74HC10 Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 39/74 2. VHDL + FPGA Prof. G. Kemnitz VHDL + FPGA · Institut für Informatik, Technische Universität Clausthal 20. April 2015 40/74 2. VHDL + FPGA Hardware-Programmierung Heutiger Stand der Technik für den Entwurf digitaler Schaltungen ist die Beschreibung der Zielfunktion in einer Hardware-Beschreibungssprache. Simulation auf dem Rechner. Prototyp-Fertigung mit programmierbaren Logikschaltkreisen (FPGA eld programmable logic circuits). FPGAs bestehen aus programmierbaren Logikblöcken, programmierbaren EA-Schaltungen, einem programmierbaren Verbindungsnetzwerk und optional weiteren kongurierbaren Schaltungsblöcken, z.B. Blockspeichern, Multiplizierern, Taktversorgung (Taktteiler und -vervielfacher, Zeitversatzkorrektur) und Prozessorkernen. Programmierung ähnlich wie bei Mikrorechnern über eine serielle Programmierschnittstelle (JTAG, ISP,...). Programmierdauer wenige Minuten. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 41/74 2. VHDL + FPGA Prototyp-Plattform für die Laborübungen IO PLB PLB PLB PLB IO IO PLB IO Prof. G. Kemnitz programmierbarer Logikblock programmierbares Verbindungsnetzwerk programmierbare Eingabe-Ausgabe-Schaltung · Institut für Informatik, Technische Universität Clausthal 20. April 2015 42/74 2. VHDL + FPGA Das verwendete Prototypboard hat einen programmierbaren Schaltkreis für Schaltungen, die mit normalen Schaltkreisen bis zu 106 Gatter umfassen können, 50MHz Quarztakt, 8 Leuchtdioden, 4 7-Segment-Anzeigen, 8 Schalter, 4 Taster, 1MB SRAM, Anschlüsse für PS2, UART und VGA. Ausreichend für alles, was im Studium vermittelbar ist. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 43/74 2. VHDL + FPGA Prof. G. Kemnitz 1. Einfache Gatterschaltung Einfache Gatterschaltung · Institut für Informatik, Technische Universität Clausthal 20. April 2015 44/74 2. VHDL + FPGA Einprogrammieren von Logikfunktionen 1. Einfache Gatterschaltung Schalter SW0 SW1 SW2 SW3 SW4 SW5 SW6 SW7 programmierbarer Schaltkreis F12 G12 H14 H13 J14 J13 K14 K13 Leuchtdioden & K12 LD0 & P14 LD1 ≥1 L12 LD2 =1 N14 LD3 Im ersten Beispiel sollen vier Gatter so einprogrammiert werden, dass die Eingänge von Schaltern steuer- und die Ausgänge mit LEDs beobachtbar sind. Die Kästchen mit F12 etc. sind die Bezeichner der Schaltkreisanschlüsse, an denen die Schalter und LEDs auf der Baugruppe angeschlossen sind. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 45/74 2. VHDL + FPGA 1. Einfache Gatterschaltung Eine VHDL-Beschreibung besteht aus Schnittstellenbeschreibung: entity Gatterschaltung is port(sw: in std_logic_vector(7 downto 0); led: out std_logic_vector(3 downto 0)); end entity; und einer Beschreibung der Realisierung architecture test of Gatterschaltung is begin SW0 F12 led(0) <= sw(0) and sw(1); SW1 G12 led(1) <= sw(2) nand sw(3); SW2 H14 led(2) <= sw(4) or sw(5); SW3 H13 led(3) <= sw(6) xor sw(7); SW4 J14 end architecture; SW5 J13 SW6 & K12 LD0 & P14 LD1 ≥1 L12 LD2 K14 LD3 =1 N14 Die Schnittstelle deniert für die SW7 K13 Anschlüsse Bezeichner, Flussrichtungen (Ein-/Ausgang) und Datentyp. In der Realisierung stehen im Beispiel Zuweisungen logischer Verknüpfungen von Eingabesignalen an Ausgabesignale. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 46/74 2. VHDL + FPGA Entwurf 1. Einfache Gatterschaltung Projekt anlegen, einige Kongurationen vornehmen, ... Beschreibung eingeben, Syntaxtest, optional Simulation, ... Übersetzen (Synthesize bis Congure Target Device) Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 47/74 2. VHDL + FPGA Das Constraint-File 1. Einfache Gatterschaltung Die Constraint-Datei enthält alle zusätzlichen Informationen zur Vorgabe der Zielfunktion, die nicht in der VHDL-Datei stehen: die Pin-Namen der Schaltungsanschlüssen (s.o.), Taktfrequenz, obere und untere Schranken für Verzögerungen, ... Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 48/74 2. VHDL + FPGA Synthese 1. Einfache Gatterschaltung Berechnung einer Schaltung aus der VHDL-Beschreibung. Im Beispiel ist das trivial, weil die Schaltung nur aus vier Gattern besteht. Für gröÿere Entwürfe wird die Zielfunktion mit Bitvektoren, arithmetischen Operatoren, Fallunterscheidungen, Unterprogrammen, ... beschrieben. Die Synthese muss daraus die logischen Funktionen extrahieren, optimieren, mit Teilschaltungen nachbilden, ... x0 x1 ∧ ∧ ∨ ⊕ Unser programmierbarer Schaltkreis hat 0 0 0 1 0 0 statt Gatter als logische Grundbausteine 0 1 0 0 1 1 1 0 0 0 1 1 Tabellenfunktionen (LUT Look-Up Table, 1 1 1 0 1 0 kleine programmierbare Speicher). An den Anschlüssen werden Buer eingefügt, die die internen kleineren Spannungspegel (0/1V) auf die gröÿeren Anschlusspegel (0/2,5...3,3V) umsetzen. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 49/74 2. VHDL + FPGA sw(7:0) Prof. G. Kemnitz I ibuf O sw 0 IBUF I I ibuf O sw 1 IBUF ibuf O sw 2 IBUF I I ibuf O sw 3 IBUF ibuf O sw 4 IBUF I I ibuf O sw 5 IBUF ibuf O sw 6 IBUF I · ibuf O sw 7 IBUF 1. Einfache Gatterschaltung O I1 I0 lut2 I obuf O led(3:0) led 0 obuf led 0 annd00001 I1 I0 O lut2 I obuf O led 1 obuf led 1 not00001 O I1 I0 lut2 I obuf O led 2 obuf led 2 or00001 O I1 I0 lut2 I obuf O led 3 obuf Mxor led<3> Result1 Institut für Informatik, Technische Universität Clausthal lut programmierte Tabellenfunktion (look-up table) ibuf Eingangstreiber (input buffer) obuf Ausgangstreiber (output buffer) 20. April 2015 50/74 2. VHDL + FPGA Verdrahtung 1. Einfache Gatterschaltung Prof. G. Kemnitz BRAM VN LUTs Nach der Synthese folgt die Platzierung der einzelnen Funktionsblöcke und ihre Verdrahtung. Ein FPGA besteht aus kongurierbaren Funktionsblöcken (LUTs), EA-Schaltungen, Multiplizierern, Blockspeichern (BRAM),... und programmierbare Verbindungsnetzwerken (VN). sw(4) sw(5) led(2) EA sw(2) · Institut für Informatik, Technische Universität Clausthal 20. April 2015 51/74 2. VHDL + FPGA 1. Einfache Gatterschaltung Ein vergröÿerter Ausschnitt mit dem Logikblock, in den das EXOR-Gatter programmiert ist, und den beiden Eingangstreibern vor dem EXOR. Handverdrahtung ist möglich, aber nicht zu empfehlen. Pin sw(6) mit ibuf LUT mit EXOR-Funktion Leitung zu led(3) progr. Verbindungsnetzwerk spezielle Signalleitungen Prof. G. Kemnitz · progr. Verbindungsnetzwerk Pin sw(7) mit ibuf allgemeine Signalleitungen Institut für Informatik, Technische Universität Clausthal 20. April 2015 52/74 2. VHDL + FPGA Komplexere Gatterschaltungen 1. Einfache Gatterschaltung Die Inkrementoperation c4 y = x + c0 (x, y 4-Bit-Vektoren) lässt sich mit derselben Schaltung wie auf Folie 19 implementieren: x0 y0 x 1 =1 c0 & y1 =1 c1 & x2 y2 x3 =1 c2 & =1 c3 entity Increment4Bit is port(cin: in std_logic; x: in std_logic_vector(3 downto 0); y: out std_logic_vector(3 downto 0); cout: out std_logic); end entity; Prof. G. Kemnitz · y3 & Institut für Informatik, Technische Universität Clausthal c4 20. April 2015 53/74 2. VHDL + FPGA x0 y0 x 1 =1 c0 & 1. Einfache Gatterschaltung y1 =1 c1 & x2 y2 =1 c2 & x3 y3 =1 c3 & c4 architecture Gatter_Arch of Increment4Bit is signal c: std_logic_vector(4 downto 0); begin c(0) <= cin; y(0) <= x(0) xor c(0); c(1) <= x(0) and c(0); y(1) <= x(1) xor c(1); c(2) <= x(1) and c(1); y(2) <= x(2) xor c(2); c(3) <= x(2) and c(2); y(3) <= x(3) xor c(3); c(4) <= x(3) and c(3); cout <= c(4); end architecture; Neu benutzte Konstrukte: Bitvektoren und Signale für interne Verbindungen. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 54/74 2. VHDL + FPGA 1. Einfache Gatterschaltung Die vier bis auf die Indizes gleichen Zeilen können auch zu einer Schleife zusammengefasst werden. Das ist keine Ablaufschleife, deren Anweisungen im Schleifenkörper hintereinander mit dem Index 0 bis 3 abgearbeitet werden, sondern eine Generierungsschleife, die bei der Übersetzung durch je eine Anweisungspaar für jeden Indexwert ersetzt wird. architecture Gen_Arch of Increment4Bit is signal c: std_logic_vector(4 downto 0); begin c(0) <= cin; genHA: for i in 0 to 3 generate y(i) <= x(i) xor c(i); c(i+1) <= x(i) and c(i); end generate; cout <= c(4); end architecture; Die Schleifenvariable einer Generierungsschleife braucht keine explizite Deklaration und die Iterationsgrenzen müssen zum Übersetzungszeitpunkt bekannt sein. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 55/74 2. VHDL + FPGA 1. Einfache Gatterschaltung Noch einfacher ist theoretisch die Beschreibung mit dem Additionsoperator: use ieee.numeric_std.all; ... architecture Num_Arch of Increment4Bit is signal sum: unsigned(4 downto 0); begin sum <= ('0' & x) + cin; y <= sum(3 downto 0); cout <= sum(4); end architecture; Anmerkungen: Das Package ieee.numeric_std deniert unsigned und den Additionsoperator dafür. x, y müssen hier vom unsigned(3 downto 0) und cin vom Typ unsigned(0 downto 0) sein. Erfordert Typumwandlungen. '0' & ... hängt an a zur Verlängerung auf 5 Bit eine führende null an. Erforderlich für Übertragsberechnung. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 56/74 2. VHDL + FPGA Prof. G. Kemnitz 2. Zähler und Ampelsteuerung Zähler und Ampelsteuerung · Institut für Informatik, Technische Universität Clausthal 20. April 2015 57/74 2. VHDL + FPGA Zähler als Taktteiler 2. Zähler und Ampelsteuerung z24 z25 z26 +1 z 32 z27 z28 z29 z30 GCLK0 T9 z31 K12 P14 L12 N14 P13 N12 P12 P11 led(0) led(1) led(2) led(3) led(4) led(5) led(6) led(7) (50 MHz) An Pin T9 liegt auf der Baugruppe der 50MHz-Takt an. Dieser soll mit einem 32-Bit-Zähler gezählt und die höchstwertigen 8 Bit auf LEDs ausgegeben werden. Jedes Zählbit halbiert den Takt: Prof. G. Kemnitz · f (zi ) = 50 MHz · 2−(i+1) Institut für Informatik, Technische Universität Clausthal 20. April 2015 58/74 2. VHDL + FPGA 2. Zähler und Ampelsteuerung programmierter Schaltkreis z24 z25 z26 +1 Takteingang Prof. G. Kemnitz 32 z27 z28 z29 z30 T9 GCLK0 GCLK0 z0 z1 z2 z3 z z31 K12 P14 L12 N14 P13 N12 P12 P11 Leuchtdioden led(0) led(1) led(2) led(3) led(4) led(5) led(6) led(7) tP = f1 0,67 s 1,34 s 2,68 s 5,37 s 10,7 s 21,5 s 43,0 s 83,9 s 50 MHz 25 MHz 12,5 MHz 6,25 MHz 3,125 MHz 1 0 1 0 1 0 1 0 1 0 · f 1,5 Hz 745 mHz 373 mHz 186 mHz 93 mHz 47 mHz 23 mHz 11 mHz Institut für Informatik, Technische Universität Clausthal 20. April 2015 59/74 2. VHDL + FPGA 2. Zähler und Ampelsteuerung Schnittstellenbeschreibung: entity Taktteiler is port(GCLK0: in std_logic; led: out unsigned(7 downto 0)); end entity; Beschreibung der Realisierung: architecture test of Taktteiler is signal z: unsigned(31 downto 0); begin process(GCLK0) begin if rising_edge(GCLK0) then z24 z25 z <= z + 1; end if; end process; -- Ausgabefunktion led <= z(31 downto 24); end architecture; Prof. G. Kemnitz · z26 +1 z 32 z27 z28 z29 z30 T9 z31 K12 P14 L12 N14 P13 N12 P12 P11 led(0) led(1) led(2) led(3) led(4) led(5) led(6) led(4) GCLK0 Institut für Informatik, Technische Universität Clausthal 20. April 2015 60/74 2. VHDL + FPGA 2. Zähler und Ampelsteuerung Die Beschreibungsschablone für eine Register-Transfer-Funktion ist ein Prozess1 mit dem Takt in der Weckliste2 (hier CCLK0) und Signalzuweisungen nur bei aktiven Taktanke: process(GCLK0) begin if rising_edge(GCLK0) then z <= z + 1; end if; end process; 32 z 8 +1 led GCLK0 Die Beschreibungsschablone einer einfachen kombinatorischen Schaltung, hier die Verbindung der Registerausgänge mit den Schaltkreis- ausgängen zu den LEDs, bleiben weiterhin nebenläuge Signalzuweisungen ohne Prozessrahmen: led <= z(31 downto 24); Prozess ist ein Rahmen, in dem die Anweisungen bei der Simulation imperativ, d.h. wie bei einem normalen Programm hintereinander, statt nebenläug abgearbeitet werden. 2 Signalliste hinter process, deren Wertänderungen den Prozess wecken. 1 Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 61/74 2. VHDL + FPGA 2. Zähler und Ampelsteuerung Die meisten Register-Transfer-Funktionen haben eine asynchrone Anfangsinitialisierung für die Reset-Funktion des Gesamtsystems. Bei dieser steht zusätzlich zum Takt das Initialisierungssignal in der Weckliste. Wenn es aktiv ist (im Beispiel bei I='1') übernimmt das Register eine Konstante (im Beispiel alles null). Alle anderen Signalzuweisungen nur bei inaktivem Initialisierungssignal und aktiver Taktanke: process(I, GCLK0) begin if I='1' then z <= (others=>'0')3 ; elsif rising_edge(GCLK0) then 32 z 8 +1 I led I GCLK0 z <= z + 1; end if; end process; Das ist eine Zuordnungsliste, die allen anderen Bits, den der Wert nicht explizit zugeordnet wird, z.B. mit 0=>'1' der Wert '0' zugeordnet. 3 Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 62/74 2. VHDL + FPGA Erweiterung zu einer Ampelsteuerung 2. Zähler und Ampelsteuerung z24 +1 GCLK0 T9 z 32 z(28...25) 0000 0001 0010 0011 0100 ... Autos gelb gelb grün grün grün ... Fussg. rot rot rot rot rot ... K12 led(0) N14 P13 N12 P12 P11 led(3) led(4) led(5) led(6) led(7) Komplexere kombinatorische Funktionen werden durch Prozesse mit allen Eingabesignalen in der Weckliste beschrieben, die bei bei jedem Aufwecken alle Ausgabesignale neu berechnen: process(z) begin led(0) <= z(24); -- Ausgabe von z24 auf eine LED <Beschreibung der Tabelle siehe nächste Folie> end process; Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 63/74 2. VHDL + FPGA 2. Zähler und Ampelsteuerung z24 +1 GCLK0 T9 z 32 z(28...25) 0000 0001 0010 0011 0100 ... Autos gelb gelb grün grün grün ... Fussg. rot rot rot rot rot ... K12 led(0) N14 P13 N12 P12 P11 led(3) led(4) led(5) led(6) led(7) Tabellenbeschreibung mit einer Case-Anweisung: case z(28 downto 25) is when "0000"|"0001" => led(7 downto 3) <= b"010_01"; --A:gelb, F:rot when "0010"|"0011" => led(7 downto 3) <= b"100_01"; --A:grün, F:rot -- ab hier selbst weiterentwickeln when others => led(7 downto 3) <= b"001_01"; --A:rot, F:rot end case; Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 64/74 2. VHDL + FPGA Prof. G. Kemnitz 3. Simulation Simulation · Institut für Informatik, Technische Universität Clausthal 20. April 2015 65/74 2. VHDL + FPGA Simulation 3. Simulation Die Simulation benötigt ein Testobjekt. Das sei hier die nachfolgende Zählfunktion: Zusätzlich wird ein Testrahmen zur Erzeugung der Eingabesignale benötigt. Das ist eine Entwurfseinheit mit dem Testobjekt als Teilschaltung und im einfachsten Fall einem Prozess zur Erzeugung der Eingabe. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 66/74 2. VHDL + FPGA Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 3. Simulation 20. April 2015 67/74 2. VHDL + FPGA Simulationsarten 3. Simulation Simulation des Verhaltens ohne Verzögerungen: Simulation der synthetisierten und verdrahteten Schaltung (mit Verzögerungen) Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 68/74 2. VHDL + FPGA Zusammenfassung 3. Simulation Im modernen Digitalentwurf wird die Zielfunktion in einer Hochsprache mit Datentypen und -objekten, arithmetischen und logischen Operatoren, Fallunterscheidungen, Schleifen, Unterprogrammen, ... beschrieben. Eine so beschriebene Schaltung kann simuliert und innerhalb weniger Minuten übersetzt, in einem Schaltkreis geladen und getestet werden. Ähnlich wie im Software-Entwurf. Die bisher eingeführten Beschreibungsmittel sind bereits ausreichend, um die Zielfunktionen digitaler Schaltungen mit einigen hundert bis tausend Gattern zu beschreiben, zu simulieren und erfolgreich in Betrieb zu nehmen. Die weiteren Foliensätze werden VHDL detaillierter einführen und auf weitere nützliche Beschreibungsmittel eingehen, insbesondere für Testrahmen, synthesegerechte Beschreibungen und ezientes Debuggen. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 69/74 2. VHDL + FPGA Prof. G. Kemnitz 4. Aufgaben Aufgaben · Institut für Informatik, Technische Universität Clausthal 20. April 2015 70/74 2. VHDL + FPGA 4. Aufgaben Aufgabe 2.4: Beschreibung einer Gatterschaltung Beschreiben Sie die nachfolgende Gatterschaltung in VHDL. Prof. G. Kemnitz x1 x2 x3 · & z3 & z4 & z5 z1 z2 & Institut für Informatik, Technische Universität Clausthal y 20. April 2015 71/74 2. VHDL + FPGA Aufgabe 2.5: Extraktion einer Gatterschaltung 4. Aufgaben Zeichnen Sie die Schaltung zu der nachfolgenden VHDL-Beschreibung. entity GSxx is port( x: in std_logic_vector(3 downto 0); y: out std_logic_vector(1 downto 0); end entity; architecture a1 of GSxx is signal z: std_logic; begin z <= x(0) and (not x(1)) and x(3); y(0) <= z or (x(2) and not(x(0))); y(1) <= z or (not(x(2) and x(3)); end architecture; Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 72/74 2. VHDL + FPGA 4. Aufgaben Aufgabe 2.6: Schaltung mit Speicherelementen Beschreiben Sie die nachfolgende Schaltung in VHDL. & x I T y1 z1 ≥1 z2 y2 I I Hinweis: Die Initialisierung sei asynchron. Verwenden Sie die Beschreibungsschablone auf Folie 62. Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 20. April 2015 73/74 2. VHDL + FPGA Aufgabe 2.7: Testrahmen 4. Aufgaben Entwickeln Sie einen Testrahmen, der für die Schaltung und das Simulationsmodell aus der Aufgabe zuvor die zu ergänzenden Signalverläufe in der nachfolgenden Abbildung berechnet. T 1 0 I 1 0 x 1 0 z1 1 0 z2 1 0 y1 1 0 y2 1 0 Prof. G. Kemnitz 0 · 20 40 60 80 100 120 140 160 Institut für Informatik, Technische Universität Clausthal t in ns 20. April 2015 74/74