Speicherart CPLD + Eigenschaften
EEPROM
nicht flüchtig
neu programmierbar
Speichertart FPGA
SRAM
flüchtig
preiswert
kleiner realisierbar
Hauptmerkmale PLDs
ähnlich wie ASICs
in Fläche programmierbar
bestehen mindestens aus Blöcken für Logik — Routing —Eingabe/Ausgabe
optional Boot Speicher
Einteilung PLDs
a) Prinzip der Signalverarbeitung (analog, digital, hybrid)
b) Programmierbarkeit (One-Time-Programmable [Anti-Fuse], statische Reprogrammierbarkeit [EEPROM], In-System-Programmierbarkeit [FPGA SRAM])
Eigenschaften CPLD
Verbund aus Simplen PLDs
Konfiguration basierend auf EEPROM
geringer Beschaltungsaufwand
schnelle Pin-to-PIn-Laufzeit
Einsatzgebiete CPLD
kombinatorische Logik, einfache Steuerungsaufgaben (Adressdecoder, Busmultiplexer, Konfigurationslogik für FPGAs)
Digitaluhren mit alphanumerischem Display, Seriell/Parallel Wandler, PWM-Generator, Speichercontroller für mehrere CPUs, zeitgesteuerte Einschaltlogik
Aufbau CPLD
mindestens eine Und-Oder-Matrix (PLA oder PAL)
Speicherelemente (FF), meist zu Funktionsblöcken zusammengefasst, die frei miteinander verbunden werden können
globale Verbindungsmatrix
~32 bis 512 FFs (gekoppelt an Anzahl der User-I/O)
Aufbau PLA
UND-Array und ODER-Array, ggf. mit Invertern am Eingang/Ausgang
Realisieren Sie ein 2-Bit-XOR mittels eines PLA, Ihnen stehen Eingang I1 und I2 jeweils original sowie negiert zur Verfügung
Realisierung mittels Termbildung:
O§=(I1 and (not I2)) or ((not I1) and I2)
Merkmale FPGA
Kombination aus FF und davor geschalteten Logikelementen (Logikgatter oder LUTs)
SRAM-basierter Konfigurationsspeicher
Unterstützung vieler I/O-Signalstandards (TLL-Pegel, differentiell, High-Speed, in Bänken zusammengefasst, Pull-Up/Pull-Down und Tristate möglich)
hohe Taktfrequenz bei hohem Integrationsgrad
Was ist eine LUT?
Look-Up-Table
SRAM-basierter Speicher zum Speichern von vorberechneten Ergebnissen für alle Möglichen Eingangskombinationen
Wieviele binäre Operationen lassen sich mit Hilfe einer 4-Bit-LUT mit einem Bit Wortbreite am Ausgang realisieren?
4 Eingangsbits auf ein Ausgangsbit abgebildet
es gibt 2 hoch 4=16 mögliche Eingangssignalkombinationen
16 verschiedene binäre Funktionen möglich, um das eine Ausgangsbit zu berechnen
Welche Sichten und Ebenen werden Y-Diagramm dargestellt?
3 Sichten: Verhaltenssicht, Struktursicht, Geometriesicht
5 Ebenen: Systemebene, Algorithmische Ebene, RT-Ebene, Logikebene, Schaltkreisebene
Wie wird HW-Entwurf ausgehend vom Y-Diagramm beschrieben?
mittels Transformation und Verfeinerung zwischen Sichtweisen und Schichten
—> Synthese, Verifikation, Abstraktion
Welche Möglichkeiten ("Richtungen") des HW-Entwurfs gibt es und was kennzeichnet diese?
Bottom-up -> kleine Teile zu größeren Blöcken zusammengesetzt -> von unten nach oben im Y-Diagramm
Top-Down -> Gesamtproblem in Unterprobleme zerlegen -> von oben nach unten im Y-Diagramm
Ebene und Sichtweise Y-Diagramm zuordnen
Systemebene (Struktur)
Algorithmische Ebene (Verhalten)
Schaltkreisebene (Struktur)
Logikebene (Struktur)
Schaltkreisebene (Geometrie)
Register-Transfer-Ebene (Struktur)
Vorteile HDL beim Systementwurf
Modellierung auf unterschiedlichen Ebenen
gute Dokumentationsmöglichkeiten
gute Wartbarkeit
einfacher Datenaustausch durch Programmunabhängigkeit
Technologierunabhängigkeit
einfache Austauschbarkeit von Komponenten
gute Wiederverwendbarkeit von Modulen
gute Simulierbarkeit/Verifikationsmöglichkeit
Aufgaben Synthese
Abbildung von RT-Beschreibungen/Algorithmischen Beschreibungen aus Gatterebene
Erstellung einer Netzliste aus VHDL-Code oder Schematic-Eingaben
Ergebnisse Synthese
Netzlisten, NGC oder EDIF-Format, repräsentiert logische Gatter und Verknüpfungen
Optimierungsparameter Synthese
Fläche (Ressourcenverbrauch)
Geschwindigkeit (Taktfrequenz)
Unterschied Simulation RT-Ebene und Simulation auf Logikebene
Bezeichung dieser Simulationsarten
RT (Register-Transfer): nur taktabhängig ohne Verzögerung
—> funktionale Simulation
auf Logikebene kommen Gatterlaufzeiten dazu
—> Zeitsimulation
Aufbau VHDL
Package (Bibliotheken und Komponenten)
Entity (Modulschnittstellen)
Architectures (Modulinnenleben)
Optional configurations (Konfigurationsparameter)
Eigenschaften VHDL-Signale
Wertträger bestimmten Typs
Verdrahtung ähnlich physischer Leitungen
nur ein aktiver Treiber erlaubt
Auflösung durch VHDL-Datentypen möglich
VHDL-Prozessbeschreibung
sequentielles Einlesen der Anweisungen innerhalb eines Prozesses
gleichzeitig Wertzuweisung am Ende eines Prozesses
parallele Ausführung mehrerer Prozesse
Neuauswertung aller Wertzuweisungen bei Änderung eines Signals in der Sisitivitätsliste des Prozesses
Womit werden Simulationen in VHDL beschrieben?
Testbench: UUT wird instanziiert
Unterschied Simulation zu Hardware-VHDL-Beschreibung
nur Subset der Anweisungen der Simulation ist synthetisierbar (beim Hardwareentwurf müssen alle Anweisungen synthetisierbar sein) zB.: insbesondere Verzögerungen (wait), Schleifen, spezielle Signalabfragen (‘quiet, ‘active, …) sind nicht synthesefähig
Simulationsmodell meist einfacher beschreibbar, zur Verifikation für das synthetisierbare Modell nutzbar
Gründe für den Einsatz synchronen Designs
Einschwingvorgänge bei Pegelumschaltung
kritischer Pfad bestimmt maximal erreichbare Taktfrequenz
einfachere Testbarkeit
bessere Übersichtlichkeit
Vorteile und Nachteile PLD (CPLD und FPGA) gegenüber Mikrocontrollern/Mikroprozessoren
parallele Abarbeitung der Funktionaliät (erarbeitung in einer Schaltung in der Fläche) im PLD
höherer Datendurchstaz im PLD möglich
bessere Energieeffizienz im PLD (für bestimmte Algorithmen)
Umdenken bei der Parametrisierung eines PLD gegenüber der sequentiellen Programmierung eines Mirkoprozessoers notwendig
flexibles Hardwaredesign-Software-Co-Design möglich
Designfluss beim (Xilinx-) FPGA-Entwurf
Planing —> Coding —> RT-Simulation —> Synthese —> Funktionale Simulation —> Implementierung (Translate, Map, Route) —> Timing beachten und simulieren —> Bit-File erstellen —> FPGA konfigurieren
Teilschritte bei der Implementierung im FPGA-Designfluss
Translate: Zusammenfassung mehrerer Designeingaben in einer Netzliste
Map: Zuweisung logischer Symbole der Netzliste (Gatter) zu vorhandenen Komponenten (Slices, IOs)
Place&Route: Platzierung und Verbindung der Komponenten auf dem FPGA, Erstellen von Timing Reports
Möglichkeiten für Eingaben eines Systementwurf in Entwicklungsumgebung am PC um digitales System beschreiben zu können
a) HDL: herstellerunabhägig (IDE übergreifend portierbar), flexibel parametrierbar
b) Schematic (graphische Eingabe): anschaulich, bibliotheksgebunden/herstellerspezifisch
c) Zustandstabellen: effektiv, übersichtlich, helfen bei ENtwurfsfehlervermeidung
Hardwarebeschreibungssprachen
VHDL: Tools für Synthese und Simulation weit verbreitet, Gatter/RT/ (alg.) Ebene, sehr „ausführlicher“ Code
Verilog: C-ähnlich; Tools für Synthese und Simulation weit verbreitet, Gatter/RT/(alg.) Ebene, schnelle Simulation
System-C: high-level C++, Objektorientiert, noch wenig Verbreitung
System-Verilog für high-level-Beschreibung
VHDL-AMS: Erweiterung von VHDL für analoge Komponenten
Entwurf eines einfachen digitalen Systems zur Mittelwertbildung:
Erstellen Sie einen Systementwurf (Skizze) auf RT-Ebene in Struktursicht für ein digitales Filter mit dem Eingang x(z) und der Übertragungsfunktion y(z) = ( x(z-3) + x(z-1) ) / 2 !
x(t) sei ein 8-bit breiter Eingangsvektor im Festkommaformat, wobei alle 8 Bit Vorkommastellen darstellen. Die Arbeitsfrequenz des Filters beträgt clk=50MHz. Für y(z) soll kein Genauigkeitsverlust auftreten.
Wie breit ist der Ausgangsvektor y(z) und wie viele Nachkommastellen hat y(z)?
Zur Realisierung stehen Register, Dividierer und Addierer beliebiger Breite zur Verfügung! Die benötigten Bitbreiten an deren Ein- und Ausgangssignalen sind jeweils mit in der Zeichnung anzugeben.
y ist 9 Bit breit
y hat 8 Vorkommastellen und 1 Nachkommastelle
Addierer und Div sind auch in umgekehrter Reihenfolge möglich
Register sind mit 50 MHz getaktet
Entwurf eines Zustandautomaten zur Ampelsteuerung
Hauptarten von Zustandsautomaten
Moore: Ausgabe abhängig von Zustand
Mealy: Ausgabe abhängig von Zustand + Eingabe
Es sei folgende Problemstellung aus Verhaltenssicht auf Systemebene spzifiziert: Eine elektronische Türschließanlage reagiert auf den eingeführten Schlüssek. Ist die Tür verschlossen und wird ein Schlüssel in das Schloss gesteckt, erfolgt eine Prüfung. Diese dauert eine Sekunde. Bei einem zugangsberechtigten Schlüssel wird die Tür geöffnet. Anschließend wird davon ausgegangen, dass der Nutzer den Schlüssel abzieht, hindurchgeht und die Tür schließt. Wird bei verschlossener Tür ein nicht zugangsberechtigter Schlüssel eingeführt, bleibt die Tür nach der Prüfung verschlossen und es kann ein neuer Schlüssel geprüft werden. Bei geöffneter Tür wird nicht auf eingeführte Schlüssel reagiert.
Zeichnen Sie einen Zustandsautomaten, welcher 3 Zustände und x Übergänge inklusive y Übergangsbedingungen enthält. Sonderfälle, die nicht genannt sind, brauchen nicht behandelt werden.
Nebenläufigkeit
mehrere Prozesse werden parallel bearbeitet
Stelle Signalzuweisung für Signale/Ausgänge innerhalb eines Prozesses
innerhalb Prozess: Signalzuweisung am Ende
Was ist das Ergebnis für die Signale a, b, c und d in folgender VHDL-Beschreibung (eingeschwungener Zustand)?
a=60
b=10
c=30
d=30
Zeichnen Sie den fehlenden Teil der Funktion für die Signale c und d! Die Register reagieren auf die steigende Taktflakne, die Gatterlaufzeiten können vernachlässigt werden.
Nennen Sie 2 gebräuchliche Möglichkeiten der Geerierung und Zuführung von Referenzwerten für die Simulation.
Warum kann in vielen Fällen keine ausschöpfende Simulation vorgenommen werden?
Warum kann meist auch kein ausschöpfender Test einer digitalen Komponente im FPGA auf der fertigen Hardwareplattform vorgenommen werden?
a) Simulation mittels Testbench
a1) durch Einlesen vorberechneter Vergleichswerte aus einer Datei
a2) durch Berechnen von Vergleichswerten aus einer Referenzbeschreibung in VHDL
b) Test durch Download in Hardware und Vergleich von Testsignalen bzw. Logikanalyse
Simulation: da die Lösungsmenge zu groß ist und der Test zu lange dauern würde
Hardware: begrenzte Möglichkeiten des Einspeisens von Testmustern, evtl. störende Peripherie
Last changed2 years ago