Post on 27-Apr-2022
Entwurf digitaler Schaltungen (F1)Kapitel 1: Einführung
G. Kemnitz
Institut für Informatik, TU Clausthal (EDS-F1)21. April 2016
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 1/67
Was ist Technische Informatik
Zwei relativ selbständige Gebiete:die technischen Anwendungen der Informatik
informationstechnische Erfassung, Modellierung und Steuerungtechnischer Systeme
die technische Basis der InformatikDigitaltechnik: Modellierung, Simulation, Entwurf und TestRechnerarchitektur bis hardwarenahe Programmierung.
Die LV Entwurf digitaler Schaltungen legt die Grundlagen für denzweiten Teil. Schwerpunkt Digitaltechnik.
Organisation:Vorkenntnisse: imperative Programmierung (C, Pascal o.ä.)Prüfung ab 10 Teilnehmen schriftlich (90min), sonst mündlich.Hausübungen: Prüfungsvorleistung + Bonuspunkte.Präsenzübungen: alternierend Labor / Hörsaal.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 2/67
Digitale Systeme sind groÿ
1970 1980 1990 2000 2010
Z804004
103
104
105
106
107
108
109
Transistoran
zahl
Six-Core i7
Core 2 Duo
Pentium 4
Pentium
8086
Einfuhrungsjahr
anzahl in Prozessoren(Verdopplung alle2 Jahre)
Zunahme der Transistor-
8048680386
Nach dem Mooreschen Gesetz verdoppelt sich die Transistoranzahldigitaler Schaltungen alle 2 Jahre. Die gröÿten derzeit gefertigtenSchaltkreise enthalten über eine Milliarde Transistoren.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 3/67
Wenn es die Möglichkeit gibt, innerhalb weniger Jahrefunktionierende digitale Schaltungen mit 109 Transistoren zuentwickeln, herzustellen und in Betrieb zu nehmen, sollte es für einenangehenden Bachelor of Science möglich sein, funktionierendeSchaltungen aus einigen Hundert bis Tausend Gattern zu verstehen,zu entwerfen und auszuprobieren.
Wie beherrscht man so groÿe Entwürfe?
rechnergestützt, teilautomatisiert,
hierarchisch, Bausteinkonzept.
Bausteine für digitale Funktionseinheiten:
Standardschaltkreise,
Rechnerschaltkreise,
programmierbare Logikschaltkreise,
Sensor- und Aktoreinheiten mit digitalen Schnittstellen, ...
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 4/67
Aufbau der Vorlesung
F1: Einführung anhand von zwei Beispielentwürfen:
1 Klassisch mit Standardschaltkreisen.
2 Rechnergestützt in einer Hardware-Beschreibungssprache mitprogrammierbaren Logikschaltkreisen.
Lernziele:
Entwurf erfolgt nach einfachen Regeln.
Herausforderung ist die Beherrschung der Gröÿe.
Der moderne rechnergestützte Entwurf eignet sich für vielgröÿere Systeme.
Die Vorlesung legt den Schwerpunkt auf den modernen rechner-gestützten Entwurf. Ähnlichkeit besteht mit einem modernenSoftware-Entwurf.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 5/67
Weitere Foliensätze
F2: Simulation
Einführung in VHDL (Hallo Welt, Signale, Datentypen,imperative Modelle, ereignisgesteuerte Simulation).
Strukturbeschreibung (Schnittstellen, Instanziierung undVerbinden von Teilschaltungen, Testrahmen).
Laufzeittoleranz (Glitches, Simulation von Zeittoleranzen,Laufzeitanalyse).
Speicher (Latches, Register, Verarbeitung + Abtastung,Register-Transfer-Funktionen, adressierbare Speicher).
F3: Synthese und Schaltungsoptimierung
Synthese (Verarbeitungsfunktionen,Register-Transfer-Funktionen, typische Beschreibungsfehler,Constraints).
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 6/67
Asynchrone Eingabe (Abtastung, Initialisierung, Entprellen,asynchrone Schnittstellen mit und ohne Übertragung desSendertaktes).
Schaltungsoptimierung (Energieverbrauch,Schaltungsumformung, KV-Diagramm, Verfahren von Quineund McCluskey, reduziertes geordnetes binäresEntscheidungsdiagramm (ROBDD)).
F4: Rechenwerke und Operationsabläufe
Rechenwerke (Addierer, Subtrahierer, Zähler, Multiplizierer,Komparatoren, Block-Shifter, ...).
Automaten (Entwurf mit KV-Diagrammen, Beschreibung inVHDL, redundante Zustände, Spezikation und Entwurf).
Operationsabläufe (serielle Schnittstelle, serieller Addierer,Dividierer).
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 7/67
F5: Vom Transistor zur Logikschaltung
Gatterentwurf (MOS-Transistoren als Schalter, FCMOS-Gatter,deaktivierbare Treiber, Transfergatter und Multiplexer,geometrischer Entwurf).
Signalverzögerung (Inverter, Logikgatter, Puer).
Latches und Register.
Blockspeicher (SRAM, Mehrport- und Assoziativspeicher,DRAM, Festwertspeicher).Programmierbare Logikschaltkreise.
F6: Rechner
Entwurf eines Prozessors (Befehlssatz, Verarbeitungs-Pipeline,Load/Store-Befehle, Sprungbefehle)Cordic (Algorithmus, erstes Simulationsmodell,Festkommazahlenformate, Algorithmus weiter optimiert).
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 8/67
Inhalt F1: Einführung
Standardschaltkreise
1.1 Entwurf eines Zählers
1.2 Test der Zählfunktion
1.3 Zustandsregister
1.4 Leiterplattenentwurf
VHDL + FPGA
2.1 Einfache Gatterschaltung
2.2 Increment Rechenwerk
2.3 Zähler und Ampelsteuerung
2.4 Simulation
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 9/67
1. Standardschaltkreise
Standardschaltkreise
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 10/67
1. Standardschaltkreise
Aufbau und Schaltplan einer digitalen Schaltung
Kondensator
Steckver-binder
(US-Symbol)Widerstand
Taster
Inverter, Schmitt-Trigger (Schwell-wertschalter mit Hysterese)
Das Beispiel zeigt ein Foto und einen Ausschnitt aus dem Schaltplaneiner Mikrorechneransteckbaugruppe aus dem Labor mit vier Tastern.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 11/67
1. Standardschaltkreise
H-Brückenmodul aus der Informatikwerkstatt
En
10
1
-01
Dir Motorspannung UM
0 VUVM
−UVM
Sensorsign.
UM
UVM
Abbildung der Mikrorechner Steuersignale EN (Enable, Freigabe)und Dir (Direction, Richtung) auf Motorschaltsignale. Rückgabe derWinkelmesssignale1.
1Die Vorlesung betrachtet nur den logischen Teil der Schaltung.
Elektronische Beschaltung später, siehe Vorlesung Elektronik.G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 12/67
1. Standardschaltkreise
Logikfamilie
Schaltkreise unterschiedlicher Funktion mit gleichem elektrischenAnschlussverhalten, gleicher Versorgungsspannung, ...
Klassiker war die 74...-Logikfamilie. Schaltungstechnik TTL(Transistor-Transistor-Logik). Heute veraltet.
In der Übung Nachfolger 74HC... CMOS-Logikfamilie. Schalt-kreisnummern und Anschlusswerte kompatibel zur 74er-Serie.
74HC00 4 × NAND274HC02 4 × NOR274HC04 6 × Inverter74HC08 4 × AND274HC10 3 × NAND374HC11 3 × AND374HC14 6 × Inverter (Schwell-wertschalter mit Hysterese)
74HC20 2 × NAND474HC30 1 × NAND874HC32 4 × OR274HC74 2 × D-Flipop74HC75 4 × Latch74HC86 4 × EXOR74HC174 6-Bit-Register
...G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 13/67
1. Standardschaltkreise
und Rucksetzeingang74HC174: 6 Bit-Register mit Takt-
Bei R = 0 werden alle 6 Speicher-
sonst bei steigender Flanke an Tzellen geloscht: Qi = 0
Ubernahme Qi ← Di
sonst speichern
MasseUV Versorgungsspannung
RD
RD
RD
RD
RD
RD
R
UV
1 2 3 4 5 6 7 8
91012131416 15 11
D1 D2 D3
D4D5
Q1 Q2 Q3
Q4 TQ5Q6D6
& &
&&
A1 B1 Y1 A2 B2 Y2
A3B3 Y3A4B4 Y4UV
1 2 3 4 5 6 7
891011121314
A1 B1 Y1 A2 B2 Y2
Funktion:
74HC00: 4 × NAND2 74HC86 4 × EXOR
1 2 3 4 5 6 7
891011121314
=1
=1 =1
=1
A3B3 Y3A4B4 Y4UV
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 14/67
1. Standardschaltkreise
Elektrische Eigenschaften
&
UIH
UIL
UIH UIL
UIL UIH
UOL
UOHUV
Ua
Testschaltung
Ue
Ue
Ua
Signalverzogerung
Ue
Ua
Ubertragungsfunktion
UOH
UOL maximale Spannung fur eine 0 am Ausgangmaximale Spannung fur eine 0 am Eingang
minimale Spannung fur eine 1 am Ausgangminimale Spannung fur eine 1 am Eingang
Versorgungs-spannung
rungszeitVerzoge-
UV
td
UV
2V4,5V6V
UOH UOL td1,9V 1,5V 0,5V 0,1V 100 ns4,4V 3,2V 1,4V 0,1V 20 ns5,9V 4,2V 1,8V 0,1V 16 ns
tdtdt
Typische elektrischeEigenschaften der74HC-Familie
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 15/67
1. Standardschaltkreise
Untersuchung einer Beispielschaltung
&
&&
&
R3
R4
1 × 74HC00
C
R2
2 Taster
UV = 3...5VR1, R2
R3, R4
C
LED-Vorwider-stande 50...200ΩStutzkondensatorLeuchtdiodenBT2
a
b
c
d
R1
BT1
LD1
LD2LD..
2...10mA beiUF = 1, 5...2, 5V
stande 10...100 kΩPullup-Wider-
Was passiert, wenn man die Taster nacheinander wie folgt drückt:
BT1 BT2 a b c d LD1 LD2
aus aus 0 1 1 0 aus anan ausaus ausaus an
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 16/67
1. Standardschaltkreise
Einige wichtigste Regeln für den Entwurf
Alle Versorgungsanschlüsse aller Schaltkreise mit UV = 2...6 Vund alle Masseanschlüsse mit Masse verbinden.Stützkondensator von 10/100nF zwischen UV- undMasseanschluss der Schaltkreise.Ein Ausgang kann mehrere Eingänge oder eine Low-CurrentLED treiben.LEDs brauchen immer einen Vorwiderstand zurStrombegrenzung.Ungenutzte Eingänge nicht oen lassen, sondern mit UV oderMasse verbinden.Ausgänge nie miteinander, mit UV oder Masse verbinden.Wenn Eingangsspannungen > UV oder < 0 nicht ausschlieÿbarsind, bei Eingabe über Stecker, 100Ω Schutzwiderstand in Reiheschalten.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 17/67
1. Standardschaltkreise 1. Entwurf eines Zählers
Entwurf eines Zählers
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 18/67
1. Standardschaltkreise 1. Entwurf eines Zählers
Entwurf der Zählfunktion
Aufgabe sei der Entwurf eines 4-Bit-Zählers aus Gattern und einem4-Bit-Register. Schaltungsentwurf für die Zähloperation:
&
=1
&
=1
&
=1
&
=1
x3 y3
c4
x2 y2y1x1x0 y0
c2c1 c3c0
xi ci ci+1 si0 0 00
101 01 1
11
100
0
c0+
y0y1y2y3
Zahloperation
x0x1x2x3 1101+ 1
Beispiel
0011
&
=1
Schaltung
Wertetabellefur jedes Bit
xi
ci
yi
ci+1
Erfordert einen 74HC08 (4×AND2) und einen 74HC86 (4×EXOR).
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 19/67
1. Standardschaltkreise 1. Entwurf eines Zählers
Platzierung und Verdrahtung
UV
1 2 3 4 5 6 7
891011121314
UV
& &
&&
x0 y0x1 y1
x2 y2x3
c0
c474HC08 74HC86
UV
1 2 3 4 5 6 7
891011121314
=1
=1 =1
=1
y3
Anordnung auf einem Steckbrett. Blau gesteckte Drahtbrücken, rotStützkondensatoren. Eingerahmte Punkte sind intern verbunden.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 20/67
1. Standardschaltkreise 2. Test der Zählfunktion
Test der Zählfunktion
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 21/67
1. Standardschaltkreise 2. Test der Zählfunktion
Schaltungsaufbau mit Electronics Explorer
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 22/67
1. Standardschaltkreise 2. Test der Zählfunktion
Testen
· · · objekt
Test-
objekt
Test-
· · ·Signal-genera-tor
· · ·Logik-analy-sator
UV
· · ·
UV
statischer Test dynamischer Test
Ein statischer Test legt die logischen Eingaben über Schalter oderSteckbrücken an und prüft die Ausgabewerte mit Leuchtdioden odereinem Multimeter. Kontrolliert wird die Funktion nach derWertetabelle. Bei einem dynamischen Test werden die Eingaben inEchtzeit von einem Signalgenerator erzeugt und die Ausgabe miteinem Logikanalysator aufgezeichnet. Dabei werden zusätzlich dieSignalverzögerungen kontrolliert.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 23/67
1. Standardschaltkreise 2. Test der Zählfunktion
Statischer Test mit dem Electronics Explorer
Electronics Explorer: Steckbrett mit Spannungsquellen,Signalquellen, Messwandlern, ... Ansteuerung und Messwert-erfassung über PC-Programm. Programmoberäche mit Led's undSchaltern für den statischen Test, ...:
c4 y3 y2 y1 y0
x3 x2 x1 x0 c0
Nacheinander mit Schaltern alle Testeingaben einstellen undLed-Ausgaben mit Sollwerten der Wertetabelle vergleichen.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 24/67
1. Standardschaltkreise 2. Test der Zählfunktion
Dynamischer Test
Bedienoberäche des Signalgenerators. Testeingaben sind im BeispielZufallswerte. Anschluss durch Namenszuordnung.
Im Beispiel bilden die Eingänge x0 bis x3 einen Bus und c0 ist einEinzelsignal. Für alle Eingabesignale ist eingestellt 10 MHz undZufallssignale. Nach Konguration starten mit Run.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 25/67
1. Standardschaltkreise 2. Test der Zählfunktion
Ergebnisaufzeichnung mit Logikanalysator
Ein Logikanalysator zeichnet digitale Abtastwerte auf. ErforderlicheEinstellungen: abzutastende Signale, Abtastfrequenz, Trigger(Bedingung für den Aufzeichnungsbeginn), ...
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 26/67
1. Standardschaltkreise 2. Test der Zählfunktion
Im Beispiel werden alle Ein- und Ausgangssignale mit 100 MHz, d.h.mit 10 Werten je Eingabeänderung aufgezeichnet. Damit sindVerzögerungen mit einer Auösung in 10ns-Schritten erkennbar.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 27/67
1. Standardschaltkreise 3. Zustandsregister
Zustandsregister
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 28/67
1. Standardschaltkreise 3. Zustandsregister
Schaltungen mit Registern
Ein Register besitzt i. Allg. einen Initialisierungs- und einen Takt-eingang sowie Dateneingänge. Bei aktivem Initialisierungssignal (imBild I = 1), Übernahme eines Anfangswertes, meist null. Sonst beiaktiver Taktanke (hier steigender) Datenübernahme, sonstspeichern.
unbestimmtbeliebig
10
10
10
10
I
x y
x DateneingangI InitialisierungseingangT Takteingangy Datenausgang
T
y
x
I
TI
Register diesen zur Abtastung, zur Verzögerung um einen Takt, undals Zustandsspeicher für Schaltungen mit Gedächtnis.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 29/67
1. Standardschaltkreise 3. Zustandsregister
Vom bisherigen Entwurf zum Zähler
Auf der Register-Transfer-Ebene besteht ein 4-Bit-Zähler auseiner Inrement-Funktion +c0für den Zählzustand undeinem Zustandsregister mit Takt-und Initialisierungseingang. II
T
+c0
4 xy
0001 0010
0010 00110000
0000
0001
0011
0100 0011 0100 0101 0110
01010100y
x
c0
T
I
01
01
01
Als 4-Bit-Register eignet sich z.B. der Schaltkreis 74HC174, der 6Registerzellen mit gemeinsamem Takt- und Init-Eingang enthält.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 30/67
1. Standardschaltkreise 4. Leiterplattenentwurf
Leiterplattenentwurf
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 31/67
1. Standardschaltkreise 4. Leiterplattenentwurf
Leiterplattenentwurf
Weitere Schritte nach dem Entwurf des Schaltplans:
Rechnereingabe in das Entwurfssystem (z.B. Eagle).
Kontrolle der elektrischen Anschlussregeln, z.B. dass jedesSignal genau eine Quelle hat, ...
Simulation mit Testbeispielen,
Platzierung und Verdrahtung,
Fertigung,
Test gefertigter Baugruppen ohne Versorgungsspannung aufBestückungs- und Verbindungsfehler,
Test unter Spannung mit Beispieleingaben.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 32/67
1. Standardschaltkreise 4. Leiterplattenentwurf
Schaltplaneingabe in Eagle
zwei Schaltkreise, einer mit 4 NAND2 und einer mit 4 EXORStecker mit 3 Eingängen, 2 Ausgängen, UV und Masse.Impliziter Anschluss von UV und Masse an die Schaltkreise.Stützkondensatoren bei der Platzierung, unmittelbar an denSchaltkreisen anordnen.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 33/67
1. Standardschaltkreise 4. Leiterplattenentwurf
Platzierung
sind noch anzuordnende VerbindungenBauteile platziert. Die dunnen LinienNach Wechsel von
der Schaltung- zurGeometrieansicht.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 34/67
1. Standardschaltkreise 4. Leiterplattenentwurf
Verdrahtung
(blau Unterseite, rot Oberseite; grün Lötaugen, beizweiseitigen Leiterplatten mit Durchkontaktierungen (Vias)).
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 35/67
1. Standardschaltkreise 4. Leiterplattenentwurf
Zusammenfassung traditioneller Digitalentwurf
Zusammenfügen passgerechter Bausteine nach einfachen Regeln.Überwiegend Fleiÿarbeit. Hauptaufwand Inbetriebnahme, Test undFehlersuche.
Auÿer Schaltkreisen mit Gattern und Registern gibt es auch höherintegrierte Schaltkreise mit
Zählern, Schieberegistern, Multiplexern,Rechenwerken, Rechnerbausteinen, Prozessoren, ...
Entwicklung in den vergangenen 30 Jahren:Zunehmend komplexere Funktionseinheiten alsStandardschaltkreise.ASICs (anwendungsspezische Schaltkreise).Programmierbare Logikschaltkreise.Kleinere Bauteile und höhere Packungsdichte auf Leiterplatten.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 36/67
2. VHDL + FPGA
VHDL + FPGA
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 37/67
2. VHDL + FPGA
Hardware-Programmierung
Heutiger Stand der Technik für den Entwurf digitaler Schaltungen istdie Beschreibung der Zielfunktion in einerHardware-Beschreibungssprache. Simulation auf dem Rechner.Prototyp-Fertigung mit programmierbaren Logikschaltkreisen (FPGAField Programmable Gate Array). FPGAs bestehen aus
programmierbaren Logikblöcken,programmierbaren EA-Schaltungen,einem programmierbaren Verbindungsnetzwerk undoptional weiteren kongurierbaren Schaltungsblöcken, z.B.Blockspeichern, Multiplizierern, Taktversorgung (Taktteiler und-vervielfacher, Zeitversatzkorrektur) und Prozessorkernen.
Programmierung ähnlich wie bei Mikrorechnern über eine serielleProgrammierschnittstelle (JTAG, ISP,...). ProgrammierdauerSekunden bis Minuten.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 38/67
2. VHDL + FPGA
Prototyp-Plattform für die Laborübungen
Prototype-Board Nexys 3:
ProgrammierbarerLogikschaltkreis Gröÿen-ordnung 106 Gatter.
100MHz Quarztakt,8 Leuchtdioden,
4 7-Segment-Anzeigen,
8 Schalter, 5 Taster,1MB SRAM,
Anschlüsse für USB-Tastatur/Maus, USB-UART, VGA,
Kameras, Touch-Screen, ...
Ausreichend für alles, was im Studium gelehrt wird.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 39/67
2. VHDL + FPGA
Der Programmierbare Logikschaltkreis
be-Ausgabe-Schaltungprogrammierbare Einga-
Verbindungsnetzwerkprogrammierbares
Logikblockprogrammierbarer
PLB PLB
PLB PLB
IO
IO
IO
IOPLB
Die Konguration wird ähnlich wie ein Programm auf dem PCentwickelt, übersetzt, ...
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 40/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Einfache Gatterschaltung
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 41/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Einprogrammieren von Logikfunktionen
&
&
≥1
=1
LD0
LD1
LD2
LD3
Schalter programmierbarer Schaltkreis Leuchtdioden
SW0
SW1
SW2
SW3
SW4
SW5
SW6
SW7
T10
T9
V9
M8
N8
U8
V8
T5
U16
V16
U15
V15
Im ersten Beispiel sollen vier Gatter so einprogrammiert werden, dassdie Eingänge von Schaltern steuer- und die Ausgänge mit LEDsbeobachtbar sind. Die Kästchen mit T10 etc. sind die Bezeichnerder Schaltkreisanschlüsse, an denen die Schalter und LEDs auf derBaugruppe angeschlossen sind.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 42/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Eine VHDL-Beschreibung besteht aus Schnittstellenbeschreibung:
entity Gatterscha l tung i s
port ( sw : in std_logic_vector (7 downto 0 ) ;l ed : out std_logic_vector (3 downto 0 ) ) ;
end entity ;
und einer Beschreibung der Realisierung:
architecture t e s t of Gatterscha l tung i s
begin
l ed (0 ) <= sw (0) and sw ( 1 ) ;l ed (1 ) <= sw (2) nand sw ( 3 ) ;l ed (2 ) <= sw (4) or sw ( 5 ) ;l ed (3 ) <= sw (6) xor sw ( 7 ) ;
end architecture ;
&
&
≥1
=1
LD0
LD1
LD2
LD3
SW0
SW1
SW2
SW3
SW4
SW5
SW6
SW7
U16
V16
U15
V15
T10
T9
V9
M8
N8
U8
V8
T5Die Schnittstelle deniert für dieAnschlüsse Bezeichner, Flussrich-tung (Ein-/Ausgang) und Datentyp. In der Realisierung stehen imBeispiel Signalzuweisungen mit logischen Verknüpfungen.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 43/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Entwurf
Projekt anlegen, einige Kongurationen vornehmen, ...Beschreibung eingeben, Syntaxtest, optional Simulation, ...Übersetzen (Synthesize bis Congure Target Device)
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 44/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Das Constraint-File
Die Constraints-Datei enthält alle zusätzlichen Informationen zurVorgabe der Zielfunktion, die nicht in der VHDL-Datei stehen: diePin-Namen der Schaltungsanschlüssen (s.o.), Taktfrequenz, obereund untere Schranken für Verzögerungen, ...
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 45/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Synthese
Berechnung einer Schaltung aus der VHDL-Beschreibung. ImBeispiel ist das trivial, weil die Schaltung nur aus vier Gatternbesteht. Für gröÿere Entwürfe wird die Zielfunktion mit Bitvektoren,arithmetischen Operatoren, Fallunterscheidungen, Unterprogrammen,... beschrieben. Die Synthese muss daraus die logischen Funktionenextrahieren, optimieren, mit Teilschaltungen nachbilden, ...
x0 x1 ∧ ∧ ∨ ⊕0101
0011
0001
1
0
11
0
1
0110
11
Unser programmierbarer Schaltkreis hatstatt Gatter als logische GrundbausteineTabellenfunktionen (LUT Look-Up Table,kleine programmierbare Speicher).An den Anschlüssen werden Buer eingefügt, die die internenkleineren Spannungspegel (0/1V) auf die gröÿeren Anschlusspegel(0/2,5...3,3V) umsetzen.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 46/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Syntheseergebnis
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 47/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Verdrahtung
Nach der Synthese folgt die Platzierung der einzelnenFunktionsblöcke und ihre Verdrahtung. Die blauen Quadrate sindPins und die Rechecke sind programmierbare Logikblöcke (slices).
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 48/67
2. VHDL + FPGA 1. Einfache Gatterschaltung
Schaltung in dem rot hervorgehobenen Slice:
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 49/67
2. VHDL + FPGA 2. Increment Rechenwerk
Increment Rechenwerk
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 50/67
2. VHDL + FPGA 2. Increment Rechenwerk
Komplexere Gatterschaltungen
Die Inkrementoperationcout &y = x + cin
(x, y 4-Bit-Vektoren) lässt sich mit derselben Schaltung wie aufFolie 19 implementieren:
&
=1
&
=1
&
=1
&
=1
x2 y2y1x1x0 y0
c2c1 c3cin
x3 y3
cout
entity Increment4Bit i s
port ( c in : 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 ;
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 51/67
2. VHDL + FPGA 2. Increment Rechenwerk
&
=1
&
=1
&
=1
&
=1
x2 y2y1x1x0 y0
c2c1 c3cin
x3 y3
cout
architecture Gatter_Arch of Increment4Bit i s
signal c : std_logic_vector (4 downto 0 ) ;begin
c (0 ) <= c in ;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 interneVerbindungen.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 52/67
2. VHDL + FPGA 2. Increment Rechenwerk
Die vier bis auf die Indizes gleichen Zeilen können auch zu einerSchleife zusammengefasst werden. Das ist keine Ablaufschleife, derenAnweisungen im Schleifenkörper hintereinander mit dem Index 0 bis3 abgearbeitet werden, sondern eine Generierungsschleife, die bei derÜbersetzung durch je eine Anweisungspaar für jeden Indexwertersetzt wird.
architecture Gen_Arch of Increment4Bit i s
signal c : std_logic_vector (4 downto 0 ) ;begin
c (0 ) <= c in ;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 keineexplizite Deklaration und die Iterationsgrenzen müssen zumÜbersetzungszeitpunkt bekannt sein.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 53/67
2. VHDL + FPGA 2. Increment Rechenwerk
Noch einfacher ist die Beschreibung mit dem Additionsoperator:
use ieee . numeric_std . a l l ;. . .architecture Num_Arch of Increment4Bit i s
signal sum : unsigned (4 downto 0 ) ;begin
sum <= ( '0 ' & x ) + c in ;y <= sum(3 downto 0 ) ;cout <= sum ( 4 ) ;
end architecture ;
Anmerkungen:Das Package ieee.numeric_std deniert u. a. den Datentypunsigned und den Additionsoperator dafür.x, y müssen vom Typ unsigned(3 downto 0) und cin vom Typunsigned(0 downto 0) sein. Erfordert Typumwandlungen.'0' & ... hängt an x zur Verlängerung auf 5 Bit eineführende null an. Erforderlich für Übertragsberechnung.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 54/67
2. VHDL + FPGA 3. Zähler und Ampelsteuerung
Zähler und Ampelsteuerung
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 55/67
2. VHDL + FPGA 3. Zähler und Ampelsteuerung
Zähler als Taktteiler
25
26
27
28
29
30
31
32
Z+1
LD0
LD1
LD2
LD3
LD7
LD6
LD5
LD4
U16
V16
U15
V15
M11
N11
R11
T11V10
24
100MHz
GCLK0
An Pin V10 liegt auf der Baugruppe der 100MHz-Takt an. Diesersoll mit einem 32-Bit-Zähler gezählt und die höchstwertigen 8 Bitauf LEDs ausgegeben werden. Jedes Zählbit halbiert den Takt:
f (zi) = 100 MHz · 2−(i+1)
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 56/67
2. VHDL + FPGA 3. Zähler und Ampelsteuerung
z3
z2
z1
GCLK0
z0
01
01
01
01
01
25
26
27
28
29
30
31
32
Z
LD0
LD1
LD2
LD3
LD7
LD6
LD5
LD4
U16
V16
U15
V15
M11
N11
R11
T11
24
+1
V10GCLK0
100MHz
f tP = 1f
programmierter SchaltkreisdiodenLeucht-
745mHz
373mHz
186mHz
93mHz
47mHz
23mHz
1,34 s
0,67 s
21,5 s
1,5Hz
3Hz 0,34 s
2,68 s
5,37 s
10,7 s
43,0 s
50MHz
25MHz
12,5MHz
6,25MHz
100MHz
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 57/67
2. VHDL + FPGA 3. Zähler und Ampelsteuerung
Schnittstellenbeschreibung:
entity Tak t t e i l e r i s
port (GCLK0: in std_logic ;l ed : out unsigned (7 downto 0 ) ) ;
end entity ;
Beschreibung der Realisierung:
architecture t e s t of Tak t t e i l e r i s
signal z : unsigned (31 downto 0 ) ;begin
process (GCLK0)begin
i f r i s ing_edge (GCLK0) then
z <= z + 1 ;end i f ;
end process ;
−− Ausgabefunkt ionl ed <= z (31 downto 24 ) ;
end architecture ;
led(0)
led(1)
led(2)
led(3)
led(4)
led(6)
led(5)
led(4)
z24
z25
z26
z27
z28
z29
z30
z31
+132
z
GCLK0V10
U16
T11
R11
N11
M11
V15
U15
V16
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 58/67
2. VHDL + FPGA 3. Zähler und Ampelsteuerung
Die Beschreibungsschablone für eine Register-Transfer-Funktion istein Prozess2 mit dem Takt in der Weckliste (hier CCLK0) undSignalzuweisungen nur bei aktiver Taktanke:
+1
GCLK0
ledz
32
8
process (GCLK0)begin
i f r i s ing_edge (GCLK0) then
z <= z + 1 ;end i f ;
end process ;
Die Beschreibungsschablone einer einfachen kombinatorischenSchaltung, hier die Verbindung der Registerausgänge mit denSchaltkreisausgängen zu den LEDs, bleiben weiterhin nebenläugeSignalzuweisungen ohne Prozessrahmen:
l ed <= z (31 downto 24 ) ;
2Prozess ist ein Rahmen, in dem die Anweisungen bei der Simulation
imperativ, d.h. wie bei einem normalen Programm hintereinander, statt
nebenläug abgearbeitet werden.G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 59/67
2. VHDL + FPGA 3. Zähler und Ampelsteuerung
Die meisten Register-Transfer-Funktionen haben eine asynchroneAnfangsinitialisierung für die Reset-Funktion des Gesamtsystems. Beidieser steht zusätzlich zum Takt das Initialisierungssignal in derWeckliste. Wenn es aktiv ist (im Beispiel bei I='1') übernimmt dasRegister eine Konstante (im Beispiel alles null). Alle anderenSignalzuweisungen nur bei inaktivem Initialisierungssignal und aktiverTaktanke:
+1ledz
32
8
I I
GCLK0
process ( I , GCLK0)begin
i f I = '1 ' then
z <= ( others=>'0 ')3 ;e l s i f r i s ing_edge (GCLK0) then
z <= z + 1 ;end i f ;
end process ;
3Das ist eine Zuordnungsliste, die allen anderen Bits, den der Wert nicht
explizit zugeordnet wird, z.B. mit 0=>'1' der Wert '0' zugeordnet.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 60/67
2. VHDL + FPGA 3. Zähler und Ampelsteuerung
Erweiterung zu einer Ampelsteuerung
z24
32+1
z(28...25) Autos
0000 gelbgelb
00100001
00110100
grungrungrun
Fussg.
rotrotrotrotrot
. . . . . . . . .
z
led(0)
led(3)
led(4)
led(5)
led(6)
led(7)GCLK0 V10
U16
V15
M11
N11
R11
T11
Komplexere kombinatorische Funktionen werden durch Prozesse mitallen Eingabesignalen in der Weckliste beschrieben, die bei jedemAufwecken alle Ausgabesignale neu berechnen:
process ( z )begin
l ed (0 ) <= z ( 2 4 ) ; −− Ausgabe von z (24) auf e ine LED<Beschreibung der Tabelle siehe nächste Folie>
end process ;G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 61/67
2. VHDL + FPGA 3. Zähler und Ampelsteuerung
z24
32+1
z(28...25) Autos
0000 gelbgelb
00100001
00110100
grungrungrun
Fussg.
rotrotrotrotrot
. . . . . . . . .
z
led(0)
led(3)
led(4)
led(5)
led(6)
led(7)GCLK0 V10
U16
V15
M11
N11
R11
T11
Tabellenbeschreibung mit einer Case-Anweisung:
case z (28 downto 25) i s
when "0000" | "0001"=> led (7 downto 3)<=b"010_01" ; −− A: ge l b ,F: ro twhen "0010" | "0011"=> led (7 downto 3)<=b"100_01" ; −− A: grün ,F: ro t−− ab h i e r s e l b s t we i t e r en tw i c k e l nwhen others
=> led (7 downto 3)<=b"001_01" ; −− A: rot ,F: ro tend case ;
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 62/67
2. VHDL + FPGA 4. Simulation
Simulation
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 63/67
2. VHDL + FPGA 4. Simulation
Simulation
Die Simulation benötigt ein Testobjekt. Das sei die Zählfunktion:
l ibrary ieee ;use ieee . std_logic_1164 . a l l ;use ieee . numeric_std . a l l ;
entity Inc i s
port ( x : in std_logic_vector (3 downto 0 ) ;y : out std_logic_vector (3 downto 0 ) ) ;
end i n c ;
architecture behahv iora l of Inc i s
begin
y <= std_logic_vector ( unsigned ( x ) + 1 ) ;end architecture ;
Zusätzlich wird ein Testrahmen zur Erzeugung der Eingabesignalebenötigt. Das ist eine Entwurfseinheit mit dem Testobjekt als Teil-schaltung und einem Prozess zur Erzeugung der Eingabe.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 64/67
2. VHDL + FPGA 4. Simulation
l ibrary ieee ;use ieee . std_logic_1164 . a l l ;use ieee . numeric_std . a l l ;
entity IncTB i s end entity ;
architecture behahv iora l of IncTB i s
signal x : std_logic_vector (3 downto 0) :=( others=> '0 ');signal y : std_logic_vector (3 downto 0 ) ) ;
begin
−− Einbindung des Te s t o b j e k t ( Unit under Test )uut : entity work . Inc port map ( x=>x , y=>y ) ;
process −− Erzeugung der Eingabenbegin
for i in 1 t i 10 loop
wait for 10 ns ;x <= std_logic_vector ( unsigned ( x ) + 1 ) ;
end loop ;wait ;
end process ;end architecture ;
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 65/67
2. VHDL + FPGA 4. Simulation
Simulationsarten
Simulation des Verhaltens ohne Verzögerungen:
Simulation der synthetisierten und verdrahteten Schaltung (mitVerzögerungen)
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 66/67
2. VHDL + FPGA 4. Simulation
Zusammenfassung
Im modernen Digitalentwurf wird die Zielfunktion in einerHochsprache mit Datentypen und -objekten, arithmetischen undlogischen Operatoren, Fallunterscheidungen, Schleifen,Unterprogrammen, ... beschrieben.
Eine so beschriebene Schaltung kann simuliert und innerhalb wenigerMinuten übersetzt, in einem Schaltkreis geladen und getestetwerden. Ähnlich wie Software-Entwurf.
Die bisher eingeführten Beschreibungsmittel sind bereits ausreichend,um die Zielfunktionen digitaler Schaltungen mit einigen hundert bistausend Gattern zu beschreiben, zu simulieren und erfolgreich inBetrieb zu nehmen.
G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 67/67