Was sind die Hauptmerkmale von PLDs?
Hauptmerkmale von Programmierbaren Logik Devices (PLDs):
funktionieren ähnlich, wie ASICs, sind aber „in der Fläche“ programmierbar (konfigurierbar)
bestehen mindestens aus Blöcken für: Logik ---- Routing ---- Eingabe/Ausgabe
Optional „Boot Speicher“
Welche Speicherart wird zur Konfiguration von CPLDs und welche Speicherart wird zur Konfiguration von FPGAs hauptsächlich genutzt und was sind deren Eigenschaften?
Konfiguration CPLD: → Speicherart EEPROM: nicht flüchtiger Speicher (behält beim Abschalten der Betriebsspannung seine Inhalte), ist aber trotzdem wieder neu programmierbar (ähnlich wie beim USB-Stick)
Konfiguration FPGA: → Speicherart SRAM: flüchtig (verliert beim Wegfall der Betriebsspannung den Inhalt), ist preiswerter und kleiner realisierbar als EEPROM (ähnlich wie beim PC CPU Cache-Speicher)
Wie lassen sich PLDs einteilen?
Einteilung von PLDs:
nach Prinzip der Signalverarbeitung: i) Analog, ii) Digital (die Mehrheit der Fälle), iii) Hybrid
nach Programmierbarkeit: i) One-Time-Programmable (OTP) z.B. Anti-Fuse, ii) Statische Reprogrammierbarkeit z.B. EEPROM, iii) In-System-Programmierbarkeit (ISP) z.B. FPGA SRAM
Welche Eigenschaften zeichnen CPLDs aus?
Eigenschaften von CPLDs
Complexe PLDs sind ein Verbund von einfachen SimplePLDs
Konfiguration basierend auf EEPROM-Technologie (nicht flüchtig!)
Geringer Beschaltungsaufwand im Vergleich zu FPGAs
sehr schnelle Pin-to-Pin Laufzeit
Für welche Anwendungen werden CPLDs häufig eingesetzt?
im Bereich kombinatorischer Logik, sowie für einfache Steuerungsaufgaben, z.B.Adressdecoder, Busmultiplexer, Konfigurationslogik für FPGAs,
Digitaluhren mit alphanumerischem Display, Seriell/Parallel Wandler, PWM-Generator, Speichercontroller für mehrere CPUs, Zeitgesteuerte Einschaltlogik (Einschaltsequenz)
Erläutern Sie kurz den Aufbau eines CPLD.
CPLDs bestehen aus:
Mindstens einer Und-Oder-Matrix (PLA oder PAL) und
Speicherelementen (FF), meist zusammengefasst zu Funktions- blöcken, die frei miteinander verbunden werden können und
Einer globale Verbindungsmatrix (dadurch einfaches Routing)
Typische Größenordnungen sind:
~32 bis 512 FFs, fest gekoppelt an die Anzahl der User-I/O (~1-2 FFs/IO-Pin)
Skizzieren Sie den Aufbau eines PLA und erklären Sie dessen Funktionsweise.
Aufbau: UND-Array und Oder-Array, ggf. mit Invertern am Eingang/Ausgang
Nennen Sie 4 Merkmale eines FPGA.
Kombination aus FF und davor geschalteten Logikelementen (Logikgatter (z.B. Actel) oder LUTs (z.B. Xilinx))
SRAM-basierter Konfigurationsspeicher (flüchtig)
Meist mit zusätzlichen Ressourcen, wie Speicher, Arithmetische Blöcke, uC-Cores, DLL, ...
Unterstützung vieler I/0 Signalstandards (TTL-Pegel (5V, 3,3V, 2,5V) diferentiell (LVDS, GTL), High-Speed (Rocket-IO); I/O in Bänken zusammengefasst; Pull-Up/Pull-Down und Tristate möglich
Relativ hohe Taktfrequenzen bei hohem Integrationsgrad
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: z.B.: O3= (I1 and (not I2)) or ((not I1) and I2)
Was ist eine LUT? Wieviele binäre Operationen lassen sich mit Hilfe einer 4-Bit-LUT mit einem Bit Wortbreite am Ausgang realisieren?
LUT: Look-Up Table,
SRAM-basierter Speicher zum Speichern von vorberechneten Ergebnissen für alle möglichen Eingangskombinationen
mit einer 4-Bit LUT werden:
4 Eingangsbits auf ein Ausgangsbit abgebildet, daraus folgt
es gibt 2 hoch 4=16 mögliche Eingangssignalkombinationen, also
sind 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?
Welche Möglichkeiten ("Richtungen") des Entwurfs gibt es und was kennzeichnet diese?
Wie?: mittelsTransformation und Verfeinerung zwischen Sichtweisen und Schichten
Synthese, Verifikation, Abstraktion
Möglichkeiten:
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
Nennen Sie Beispiele für die Ebenen des Y-Diagramms in Verhaltenssicht.
Systemespezifikation
Algorithmen
Register-Transfer-Beschreibung
Boolesche Gleichungen
Differentialgleichungen
Nennen Sie Beispiele für die Ebenen des Y-Diagramms in Struktursicht.
CPU u. Speicher
Subsysteme u. Busse
Module u. Leitungen
Gatter u. FF
Transistoren u. Leitungsstücke
Ordnen Sie folgende Abbildungen einer Ebene und einer Sichtweise im Y-Diagramm zu!
Nennen Sie fünf Vorteile, die den Einsatz einer HDL (Hardware Description Language) beim Systementwurf rechtfertigen.
Modellierung auf unterschiedlichen Ebenen (von der Spezifikation bis zur Simulation und Synthese)
Gute Dokumentationsmöglichkeiten
Gute Wartbarkeit
Einfacher Datenaustausch durch Programmunabhängigkeit
Technologieunabhängigkeit
Einfache Austauschbarkeit von Komponenten
Gute Wiederverwendbarkeit von Modulen
Gute Simulierbarkeit/Verifikationsmöglichkeit
Was sind die Aufgaben der Synthese? Was ist das Ergebnis einer Synthese? Welche Optimierungsparameter kann eine Synthese haben?
Aufgaben:
Abbildung von RT-Beschreibungen/Algorithmischen Beschreibungen auf Gatterebene
Erstellung einer Netzliste aus VHDL-Code oder Schematic- Eingaben
Ergebnisse:
Netzlisten, NGC oder EDIF-Format, repräsentiert logische Gatter und Verknüpfungen
Syntheseoptimierungsparameter:
Fläche (Ressourcenverbrauch)
Geschwindigkeit (Taktfrequenz)
Was unterscheidet eine Simulation auf RT-Ebene von einer Simulation auf Logikebene? Wie werden diese Arten der Simulation bezeichnet?
Unterschied:
RT (Register-Transfer): nur taktabhängig ohne Verzögerung,
auf Logikebene kommen Gatterlaufzeiten dazu
Bezeichnung:
RT) funktionale Simulation: zur Verifikation der Datenverarbeitung Logik)
Zeitsimulation: zur Überprüfung des Zeitverhaltens
Beschreiben Sie den allgemeinen Aufbau einer VHDL-Beschreibung
Aufbau VHDL:
Package (Bibliotheken von Komponenten)
Entity (Modulschnittstellen)
Architectures (Modulinnenleben)
Optional configurations (Konfigurationsparameter)
Nennen Sie Eigenschaften von Signalen in VHDL?
Wertträger bestimmten Typs
Verdrahtung ähnlich physischer Leitungen
nur ein aktiver Treiber erlaubt
Auflösung durch VHDL-Datentypen möglich
Wie werden Prozesse in VHDL bearbeitet?
sequentielles Einlesen der Anweisungen innerhalb eines Prozesses
gleichzeitige Wertzuweisung am Ende eines Prozesses
parallele Ausführung mehrerer Prozesse
Neuauswertung aller Wertzuweisungen bei Änderung eines Signals in der Sensitivitätsliste des Prozesses
Womit werden Simulationen in VHDL beschrieben? Was ist der Unterschied zu einer Hardware-VHDL-Beschreibung?
Simulationen werden mittel Testbench beschrieben: die UUT wird instanziiert
nur ein Subset der Anweisungen der Simulation ist synthetisierbar (beim Hardwareentwurf müssen alle Anweisungen synthetisierbar sein) z.B. insbesondere Verzögerungen (wait), Schleifen, spezielle Signalabfragen ('quiet, 'active, ...) sind nicht synthesefähig
Ein Simulationsmodell ist meist einfacher beschreibbar, zur Verifikation für das synthetisierbare Modell nutzbar
Welche Gründe gibt es für den Einsatz synchronen Designs?
Einschwingvorgänge bei Pegelumschaltung -> kurzzeitig undefinierte oder unerwünschte Pegel an Logikausgängen möglich
kritischer Pfad bestimmt maximal erreichbare Taktfrequenz
Einfachere Testbarkeit
Bessere Übersichtlichkeit
Welche Charakteristika (Vorteile und Nachteile) bietet der Einsatz von PLD (CPLD und FPGA) gegenüber Mikrocontrollern/Mikroprozessoren?
Parallele Abarbeitung der Funktionalität (Verarbeitung in einer Schaltung / in der Fläche) im PLD
Höherer Datendurchsatz im PLD möglich Bessere Energieeffizienz im PLD für bestimmte Algorithmen möglich
Umdenken bei der Parametrisierung(Programmierung) eines PLD gegenüber der sequentiellen Programmierung eines Mikroprozessors notwendig
Flexibles Hardware-Software-Co-Design möglich
Skizzieren/Nennen Sie den 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
Erläutern Sie die drei Teilschritte bei der Implementierung im FPGA- Designfluss.
3 Teilschritte:
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
Nennen Sie 2 grundsätzlich verschiedene Möglichkeiten für Eingaben eines Systementwurfs in der Entwicklungsumgebung am PC, um ein digitalen System beschreiben zu können! Nennen Sie dazu jeweils zwei Eigenschaften für jede der beiden Möglichkeiten!
a) HDL:
herstellerunabhängig (IDE übergreifend) portierbar, flexibel parametrierbar
b) Schematic (graphische Eingabe):
anschaulich, bibliotheks (IDE)gebunden/herstellerspezifisch
ZusatzPunkt: Variante 3: Zustandstabellen:
sind effektiv, sind übersichtlich, helfen bei Entwurfsfehlervermeidung
Nennen Sie drei Hardwarebeschreibungssprachen (HDLs)!
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
Last changed8 months ago