Unterlagen
Vorlesungsunterlagen, Datenblätter & Dokumentation und diverse Links - thematisch sortiert. Die Liste wird im Lauf der Veranstaltung aktualisiert...Aktuell | VHDL | EDA-Programme | Hardware
Aktuell
Allgemeines Material aus den Plenumsterminen: Foliensätze, Beispieldateien usw.20.10.2022
- Foliensatz: "Einführung", 1,9Mi pdf
- Foliensatz: "Rechnerarchitekturen: ISA / Pipelining / Speicherhierarchie", 2,2Mi pdf
- Foliensatz: "VHDL-Einführung / HDL-Übersicht", 476Ki pdf
- introVHDL.tgz - Beispiele der VHDL-Folien und "Templates" für die Simulation
VHDL
Allgemeine Dokumentation zu VHDL und Beschreibung der Syntax.- "VHDL Kompakt", 558Ki pdf - die Syntax und viele VHDL Beispiele
- introVHDL.tgz - Beispiele der VHDL-Folien und "Templates" für die Simulation
Links
EDA-Programme
EDA für Electronic Design Automation - Hier sind die Anleitungen zur Benutzung der Programme sowie Links zu deren Herstellern.- Hersteller und OpenSource
- Intel FPGA (Altera)
- Siemens (Mentor Graphics): ModelSim - eingeschränkt in Quartus (=Intel FPGA) enthalten
- Cadence
- Synopsys
- GHDL und GTKWave (OpenSource VHDL-Simulator)
- Setup
- Um die Initialisierung der Werkzeuge zu vereinfachen, gibt es Shellscripte für bash/sh oder tcsh/csh, die die benötigten Suchpfade und Umgebungsvariablen setzen:
source $tamsSW/profile.d/edaSetup.sh [tool-list]
source $tamsSW/profile.d/edaSetup.csh [tool-list]
- Eingaben für tool-list sind beispielsweise:
ams ldv für die Simulation: xmvhdl, xmvlog, xmelab, xmsim alt für den FPGA Entwurf: quartus - Cadence Simulation
- Um alle temporären Dateien separat zu halten, empfiehlt es sich die
VHDL Arbeitsbibliothek work auf ein entsprechendes
Unterverzeichnis abzubilden. Dieses kann dann später komplett
gelöscht werden. Dazu sind
- ein Unterverzeichnis work im aktuellen Verzeichnis anzulegen
- die Dateien cds.lib und hdl.var in das aktuelle Verzeichnis zu kopieren
- Hier die Schritte zur Simulation der Ampelschaltung aus den
VHDL-Beispielen:
xmvhdl -linedebug tlcWalk.vhd tlcTest.vhd xmelab tlcTest xmsim -gui tlcTest
- ghdl und gtkwave
- Zur Nutzung der OpenSource Werkzeuge ghdl und
gtkwave folgen hier die Schritte, um zu simulieren und
sich die Ergebnisse anzusehen.
Auch hier wird davon ausgegangen, dass ein Unterverzeichnis work erstellt wurde (s.o.). - ghdl und gtkwave sind bereits auf den TAMS-Rechnern vorinstalliert:
ghdl -a --workdir=work tlcWalk.vhd ghdl -a --workdir=work tlcTest.vhd ghdl -e --workdir=work tlcTest ghdl -r --workdir=work tlcTest --vcd=tlctest.vcd gtkwave tlctest.vcd
- ghdl - Linux vs. Windows
- Während ghdl wie oben beschrieben in der Linux Version
alle internen Objekte in die Datei für gtkwave schreibt,
gibt die Windows Version nur Bit-/Bitvector- und Integer Typen in
Standard VCD-Dateien aus. Hier hilft ein internes Datenformat,
mit dem dann auch eigene Aufzählungstypen (z.B. Zustandsvariablen
von Automaten) ausgegeben werden:
... ....\bin\ghdl.exe -r --workdir=work tlcTest --wave=tlcTest.ghw ...
- Aus dem letzten Jahr: Windows Binaries (2.0-dev): bei mir funktionieren die 64-bit Binaries von ghdl nicht, bzw. sie erzeugen nur leere vcd/ghw-Dateien, die 32-bit Version lief...
- memorySim.tgz enthält
Simulationsmodelle für ROM und SRAM (ohne Timing). Über Dateiein-
und -ausgabe kann der Speicher einfach initialisiert werden.
rom.vhd ROM Simulationsmodell ramB.vhd RAM Simulationsmodell: bidirektionaler-/Tristate-Datenbus ramIO.vhd RAM Simulationsmodell: getrennte Lese- und Schreib-Datenbusse. Sollte hier benutzt werden, da es später direkt durch die Quartus-generierten Speicher ersetzt werden kann! memPkg.vhd Package mit Deklarationen instMem.dat Beispieldatei: Speicherinhalt procTest.vhd Beispieldatei: Benutzung Diese Speicher (rom, ramIO) dienen erst einmal dazu, die Prozessorhardware mit einem ersten (einfachen) Simulationsmodell zu versorgen. Später, bei der weiteren Umsetzung auf der Prototypenplatine, wird der Speicher dann durch Quartus Speicher ersetzt.
- "DE0-Nano User Manual" ist das Manual zu der Prototypenplatine. In den nachfolgenden Archiven ist es jeweils auch in dem Unterverzeichnis doc enthalten.
- de0Board.tgz enthält die Templates um die Platine für eigene Entwürfe zu benutzen: de0Board.xxx. In dem Verzeichnis doc stehen die Manuals und die Datenblätter der Komponenten.
- de0-tlc.tgz die Beispiel-Ampelschaltung aus der Demo.
- de0cDisplay.tgz ist ein Beispiel zur Ansteuerung des LCD (Character-) Displays und kann als Ergänzung des eigenen Entwurfs integriert werden.
- memory.tgz enthält
Beispiele für RAM und ROM, jeweils mit 10-bit Adressen
(ja Eure Entwürfe können natürlich mehr) und 32-bit
Wortbreite.
Interessant sind die mif-Dateien, die die initialen Werte
RAM, bzw. die Inhalte ROM, vorgeben. Die müsst Ihr an eigene
Entwürfe anpassen!
Die ROM/RAM-Speicher wurden von Altera quartus aus generiert: IP Catalog dann Library - Basic Functions - On Chip Memory. - de0-mikrorechner.tgz
Beispielprojekt für den kompletten 32-bit Prozessor: alle
Projektdateien für Simulationen (sim/...),
den Quartus Speicher (memory), die Platine mit dem Display
(cDisplay) und das top-level Quartus Projekt
(de0Board).
Es fehlen "nur noch" die Dateien des eigenen Prozessors, siehe README...