Podcast
Questions and Answers
Welche Aussage trifft im Allgemeinen für die Realisierung kombinatorischer Schaltungen zu?
Welche Aussage trifft im Allgemeinen für die Realisierung kombinatorischer Schaltungen zu?
- NAND-Gatter können nur für einfache logische Funktionen verwendet werden.
- Jede kombinatorische Schaltung kann sowohl mit NAND- als auch mit NOR-Gattern realisiert werden. (correct)
- Jede kombinatorische Schaltung lässt sich ausschließlich mit NOR-Gattern realisieren.
- Beliebige kombinatorische Schaltungen können ausschließlich mit NAND-Gattern realisiert werden.
Warum werden integrierte Schaltkreise wie der 7447 üblicherweise in fester Hardware gefertigt?
Warum werden integrierte Schaltkreise wie der 7447 üblicherweise in fester Hardware gefertigt?
- Um die Produktionskosten bei großen Stückzahlen zu senken. (correct)
- Um die Flexibilität bei Designänderungen zu erhöhen.
- Um die Komplexität des Schaltungsdesigns zu reduzieren.
- Um die Schaltung vor Umwelteinflüssen zu schützen.
Welche Aussage beschreibt am besten das Hauptproblem bei der Verwendung von Masken in der Hardwarefertigung?
Welche Aussage beschreibt am besten das Hauptproblem bei der Verwendung von Masken in der Hardwarefertigung?
- Masken sind leicht zu erstellen und kostengünstig für jede Produktionsmenge.
- Masken sind vielseitig einsetzbar und können für verschiedene Hardwarekonfigurationen angepasst werden.
- Die Verwendung von Masken ermöglicht eine hohe Flexibilität in der Hardwarekonfiguration bei niedrigen Kosten.
- Die Erstellung einer Maske ist teuer und daher nur für große Produktionsmengen wirtschaftlich sinnvoll. (correct)
Welche Aussage beschreibt am besten die grundlegende Funktionsweise eines Gate-Arrays?
Welche Aussage beschreibt am besten die grundlegende Funktionsweise eines Gate-Arrays?
Beschreibe kurz (in einem Satz) die Kernidee, wie Eingangssignale in ein Gate-Array eingespeist werden.
Beschreibe kurz (in einem Satz) die Kernidee, wie Eingangssignale in ein Gate-Array eingespeist werden.
Einmal programmiert, verhält sich programmierbare Hardware in Bezug auf Geschwindigkeit und Laufzeitverzögerungen identisch zu echter, fest verdrahteter Hardware.
Einmal programmiert, verhält sich programmierbare Hardware in Bezug auf Geschwindigkeit und Laufzeitverzögerungen identisch zu echter, fest verdrahteter Hardware.
Ordnen Sie die folgenden Eigenschaften den entsprechenden Hardwaretypen zu:
Ordnen Sie die folgenden Eigenschaften den entsprechenden Hardwaretypen zu:
Was ist ein Hauptmerkmal von CPLDs im Vergleich zu einfacheren PLDs?
Was ist ein Hauptmerkmal von CPLDs im Vergleich zu einfacheren PLDs?
CPLDs können keine synchronen Ausgaben erzeugen, da sie nicht getaktet werden können.
CPLDs können keine synchronen Ausgaben erzeugen, da sie nicht getaktet werden können.
Ordnen Sie die folgenden Begriffe ihren Beschreibungen zu:
Ordnen Sie die folgenden Begriffe ihren Beschreibungen zu:
Welche Aussage beschreibt am besten den Unterschied zwischen OTP (One-Time-Programmable) und EEPROM (Electrically-Erasable-Programmable-Read-Only-Memory) im Kontext der FPGA-Konfiguration?
Welche Aussage beschreibt am besten den Unterschied zwischen OTP (One-Time-Programmable) und EEPROM (Electrically-Erasable-Programmable-Read-Only-Memory) im Kontext der FPGA-Konfiguration?
Beschreiben Sie kurz, wie der Bitstrom im Kontext der FPGA-Programmierung verwendet wird.
Beschreiben Sie kurz, wie der Bitstrom im Kontext der FPGA-Programmierung verwendet wird.
Welche der folgenden Aussagen beschreibt am besten einen typischen Anwendungsfall für ein CPLD?
Welche der folgenden Aussagen beschreibt am besten einen typischen Anwendungsfall für ein CPLD?
Ein CPLD ist ideal, wenn eine komplexe Funktionalität mit niedriger Geschwindigkeit benötigt wird.
Ein CPLD ist ideal, wenn eine komplexe Funktionalität mit niedriger Geschwindigkeit benötigt wird.
Nennen Sie einen Vorteil der Verwendung eines CPLD zur Anpassung unterschiedlicher Hardware.
Nennen Sie einen Vorteil der Verwendung eines CPLD zur Anpassung unterschiedlicher Hardware.
Ein CPLD wird oft in der __________ eingesetzt, um unterschiedliche Hardware anzupassen.
Ein CPLD wird oft in der __________ eingesetzt, um unterschiedliche Hardware anzupassen.
Ordnen Sie die folgenden Eigenschaften den passenden Anwendungsbereichen von CPLDs zu:
Ordnen Sie die folgenden Eigenschaften den passenden Anwendungsbereichen von CPLDs zu:
Flashcards
NAND-Vollständigkeit
NAND-Vollständigkeit
Jede kombinatorische Schaltung kann ausschließlich mit NAND-Gattern aufgebaut werden.
Hardware-Realisierung
Hardware-Realisierung
Kombinatorische Schaltungen werden oft fest in Hardware durch Maskenverfahren/Photolithographie realisiert.
Konfigurierbarkeit in Hardware
Konfigurierbarkeit in Hardware
Die Hardware kann so entworfen werden, dass sie durch Software oder andere Mechanismen angepasst werden kann, um verschiedene Funktionen auszuführen.
Was ist ein Gate-Array?
Was ist ein Gate-Array?
Signup and view all the flashcards
Wie werden Eingänge in ein Gate-Array eingespeist?
Wie werden Eingänge in ein Gate-Array eingespeist?
Signup and view all the flashcards
Eigenschaften programmierter Geräte
Eigenschaften programmierter Geräte
Signup and view all the flashcards
Kompromiss programmierter Geräte
Kompromiss programmierter Geräte
Signup and view all the flashcards
Was sind CPLDs?
Was sind CPLDs?
Signup and view all the flashcards
Funktionsweise von CPLDs
Funktionsweise von CPLDs
Signup and view all the flashcards
Programm-Konfiguration
Programm-Konfiguration
Signup and view all the flashcards
Bitstrom Definition
Bitstrom Definition
Signup and view all the flashcards
CPLD Anwendung
CPLD Anwendung
Signup and view all the flashcards
CPLD Anpassungsfähigkeit
CPLD Anpassungsfähigkeit
Signup and view all the flashcards
Study Notes
Eigenschaften von NAND
- Jede kombinatorische Schaltung kann mit NAND oder NOR allein realisiert werden.
- Kombinatorische Schaltungen wie der 7447 werden üblicherweise in fester Hardware mittels Maskenverfahren/Photolithographie hergestellt.
Konfigurierbarkeit
- Die Maskenerstellung ist teuer und nur für große Stückzahlen geeignet.
- Für kleine Stückzahlen ist sie unerschwinglich.
- Es wird die Frage aufgeworfen, wie die Vorteile von Hardware realisiert und gleichzeitig eine gewisse Vielseitigkeit/Konfigurierbarkeit erreicht werden kann.
- Gate-Arrays sind eine Lösung, um Hardwarevorteile mit Vielseitigkeit zu kombinieren.
- Gate-Arrays haben viele UND-Gatter in einem x/y-Raster.
- Die Ausgänge dieser UND-Gatter sind über ODER-Gatter verbunden.
- Alle Gatter sind fest und werden durch eine Maske erzeugt, aber die Verbindungen zum Netz (Ein-/Ausgänge) wären über Schalter konfigurierbar.
- Kernidee: Ein Eingangspin und sein invertiertes Gegenstück werden auf einen Bus gespeist, der an jedes UND-Gatter angeschlossen werden kann.
- Nach der Programmierung hat das Gerät gleiche Eigenschaften wie echte Hardware, besonders bezüglich Geschwindigkeit/Laufzeitverzögerungen.
- Sie sind nicht effizient (nicht die optimale Lösung).
- Es ist ein Kompromiss zwischen Konfigurierbarkeit/Vielseitigkeit und Optimalität.
CPLD
- PLDs können getaktete Geräte sein und synchrone Ausgaben erzeugen.
- Anspruchsvolle Varianten sind CPLDs.
- CPLDs enthalten mehr interne Schaltkreise (z. B. MUX/LUTs) und können komplexere Schaltungen realisieren.
CPLD-Anwendungsfall
- Typische Anwendung von CPLDs ist die Schnittstellenlogik.
- Sie eignen sich, wenn einfache Funktionalität und hohe Geschwindigkeit (geringe Ausbreitungsverzögerung) erforderlich sind.
- Geräte können für die Anpassung unterschiedlicher Hardware oder zur "Übersetzung" von Protokollen einfach angepasst werden.
Programm-Stream
- Die Konfiguration ist entweder dauerhaft (One-Time-Programmable -> OTP) oder semi-permanent (Electrically-Erasable-Programmable-Read-Only-Memory -> EEPROM).
- Der Bitstrom wird von einfachen, proprietären Programmen generiert, die eine Logikfunktion definieren und die Verbindungspunkte berechnen.
Komplexere Anwendungsfälle
- CPLDs sind oft zu klein für komplexere Gerätefunktionen (nicht genügend Gatter).
- Geräte mit komplexeren Makroschaltungen (z. B. RAM und flexiblere Verbindungen) werden benötigt.
- Hier kommen FPGAs (Field-Programmable Gate Array) zum Einsatz.
Das Gerät hat nach der Programmierung die gleichen Eigenschaften wie echte Hardware, besonders bezüglich Geschwindigkeit/Laufzeitverzögerungen
- Es ist nicht effizient (nicht die optimale Lösung)
- Kompromiss: Konfigurierbarkeit/ Vielseitigkeit vs. Optimalität
FPGA-Zusammenfassung
- FPGAs haben typischerweise einen flüchtigen Bitstrom (die Switch-Konfiguration wird im RAM gespeichert).
- Nebeneffekt ist Reprogrammierbarkeit während der Laufzeit.
- Chips können sich live an die Probleme "anpassen".
FPGA
- FPGAs werden in Hochgeschwindigkeits-Datenerfassung, Hochgeschwindigkeitskryptografie, Hardware-Prototyping oder (De-)Kodierungsanwendungen eingesetzt.
- Sie sind teuer, aber außergewöhnlich leistungsfähig.
FPGA-Zusammenfassung
- Sie sind so leistungsfähig, dass ganze CPUs in ihnen emuliert werden können.
- So wird die CPU-Entwicklung durchgeführt (Prototyp).
- Dies wird als Softcore bezeichnet (ein CPU-Kern innerhalb eines FPGAs, der durch Software konfiguriert wird).
Programmieren
- Es gibt zwei große Programmiersprachen im Hardwarebereich: VHDL und Verilog.
VHDL
- VHDL ist eine komplexere Sprache.
- Dies liegt daran, dass Parallelität und Taktsynchronität modelliert werden.
- Aktionen geschehen nicht zu dem Zeitpunkt, an dem man sie erwarten würde, wenn man den VHDL-Code wie einen "normalen" Programmiercode liest.
VHDL-Prüfstand
- Modelle werden in kleinere Subkomponenten aufgeteilt, die einzeln in Testständen getestet werden.
- Einzelne Komponenten können modelliert und dann in größeren Designs wiederverwendet werden.
- Ein CPU-Kern kann einfach "instanziiert" und zusätzlich Peripheriegeräte aufgerufen werden, um diese über einen Bus miteinander zu verbinden.
VHDL-Besonderheiten
- Signale in VHDL werden nur taktsynchron geschaltet.
- Das heißt, im Wesentlichen passiert A=B und B=A gleichzeitig bei der nächsten Taktflanke.
- Das Verhalten unterscheidet sich deutlich von einer imperativen Programmiersprache.
In Software geschriebene Hardware
- VHDL und Verilog sind Hardwarebeschreibungssprachen.
- Sie bieten eine Möglichkeit, das Verhalten von Hardware nur mit Software auszudrücken.
- Es ist relativ einfach, diese Hardware mit einer Verhaltenssimulation zu testen.
Von der Software zum IC
- Proprietäre Software kann verwendet werden, um einen FPGA-Bitstream zu synthetisieren.
- Sobald man davon überzeugt ist, dass der Chip wie erwartet funktioniert, kann man den HDL-Input verwenden, um einen Grundriss für einen ASIC (Application-specific Integrated Circuit) zu erstellen.
- So werden moderne ICs hergestellt.
Mikroprozessor vs. Mikrocontroller
- Ein Mikroprozessor hat in der Regel keine Peripheriegeräte an Bord.
- Er verfügt über einen externalisierten Adress-/Datenbus und geht davon aus, dass die Peripheriegeräte außerhalb des Kerns fest verdrahtet sind.
- Mikrocontroller integrieren manchmal viele Peripheriegeräte intern im Controller.
- ROM, SRAM, Timer/Counter usw.
- Dadurch werden Mikrocontroller (MUCs) zu autonomen Geräten.
- Es handelt sich um Single-Chip-Lösungen, die eine Vielzahl von Zwecken erfüllen können und frei programmierbar sind.
- MUCs sind überall zu finden (Haushaltsgeräte, Steuergeräte, Leuchten).
Fähigkeiten
- ROM liegt typischerweise im Bereich von 1k - 1M; typische Größen sind 8k, 64k, 256k.
- SRAM liegt im Bereich von 16 Byte (kleine Geräte) bis 256k (große Geräte).
- Programmierer müssen vorsichtig mit der Speicherhandhabung/Verwaltung umgehen.
Entwicklung von MUCs
- Früher waren 8 Bit MUCs weit verbreitet.
- 4 Bit MUCs sind kostengünstig (Tamagochi).
- Es gibt relativ wenige 16 Bit MUCs.
Betriebssystem
- Auf kleineren Mikrocontrollern läuft nie ein OS.
- Auf größeren gibt es welche, aber nicht oft.
Echtzeitfähigkeit
- MCs sind hervorragend darin, vorhersagbare und zuverlässige Reaktionszeiten zu liefern.
- Auf der CPU ist nicht viel los (z. B. kein präemptives Multitasking).
- Dadurch eignen sie sich für alle Arten von Steuerungsanwendungen.
Programmieren
- C wird beim Programmieren von MUCs verwendet.
- Beim Kompilieren des Codes erhält man eine verknüpfte Binärdatei mit hohem Gewicht (z. B. ELFE).
Von ELF zum Bild
- Es gibt keinen Loader für ELF-Binärdateien auf dem Ziel.
- Die internen Segmente müssen in einem binären Bitstrom konvertiert werden, der direkt ins ROM des Ziels geflasht werden muss.
- Dies wird durch eine Art Shell-Skript oder Makefile erreicht.
- Dieser binäre Blob wird als Firmware des Geräts bezeichnet.
JTAG
- Die Firmware muss in das Flash-ROM gelangen.
- Spezielle Hardware (JTAG-Adapter) wird verwendet.
- JTAG kann von dem Hostsystem, das sich mit dem Ziel verbindet, genutzt werden, um den Speicher zunächst zu programmieren, aber auch um das System "live" zu debuggen.
Hallo Welt
- Blinky ist das erste MCU-Programm, um die Systemsfunktion zu testen.
- Blinky hat die Aufgabe, eine extern angeschlossene LED an und aus zu machen.
- Grundlegendste Peripheriegerät für diese Aufgabe: GPIO.
- Die Register dieses GPIO-Peripheriegeräts sind im Datenblatt oder im TRM zu finden.
- Beispiel: AVR ATtiny2313.
- Seite 2: Pinbelegung.
- Seite 3: Blockdiagramm.
- Seite 48: GPIOs.
- Seite 58: GPIO Registermap.
- Aufgabe: GPIO Port Pin PB5 ein- und ausschalten.
Bitoperationen
- Bits in einem speicherabgebildeten I/O Register setzen und löschen.
- Auf Adresse 0xabcd1234 ist ein 32 Bitregister vorhanden und wir möchten 5 Bits [22:18] auf den Wert 21 setzen.
Bitoperation clear
- Zuerst müssen die Bits gelöscht werden, die möglicherweise dort gesetzt sind.
- Geschieht durch ein bitweises UND Register mit einer Registermaske.
- (*REG)= (*REG) & ~(0x1f
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Jede kombinatorische Schaltung kann mit NAND- oder NOR-Gattern realisiert werden. Kombinatorische Schaltungen, wie der 7447, werden typischerweise in Maskenverfahren/Photolithographie gefertigt. Das ermöglicht die Herstellung fester Hardware.