VHDL-entity und-Architektur-design
Ada-kann ich spaltete meine modulare Einheiten in die Spezifikation und Körper mit .anzeigen und .adb-Dateien.
Ist es möglich, separaten VHDL-entity und-Architektur? Wenn ja, gibt es eine Namenskonvention, oder die empfohlene Stil, dies zu tun? Und können die Einheiten platziert werden, die in einer benutzerdefinierten Bibliothek/Paket?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bibliotheken
Alles kompiliert wird, in eine Bibliothek. Standardmäßig heißt diese "Arbeit", aber Sie können dies überschreiben. Ich habe nur selten Verwendung, obwohl - es ist gelegentlich sinnvoll, mit externen IP wenn es zu namespace clashes. Als Chiggs kommentiert, mit Bibliotheken zu erstellen Namensräume ist eine gute Praxis. Die meisten Synthesizer kann sich mit mehreren Bibliotheken, obwohl es war nicht immer der Fall. Alle Simulatoren können (soweit ich weiß). Es ist auch ein bisschen mehr Aufwand in der Einrichtung (Sie sagen dem compiler, wo Sie alle sind).
vielleicht ein Beispiel - angenommen, Sie haben eine i2c-controller und ein spi-controller. Sie nennen könnten beide Blöcke
controller
und kompilieren Sie Sie in Ihre eigenen Bibliotheken genannti2c
undspi
und dann instanziieren Sie wie folgt:oder könnte man Sie bezeichnen
i2c_controller
undspi_controller
und tun:Und Bibliotheken sind nicht "genauso" als Festplatte Ordner. Sie werden verwaltet durch den VHDL-compiler, so dass Sie erstellen, und ordnen Sie Sie mit was auch immer-syntax verwendet das tool.
Zum Beispiel mit Modelsim,
vlib
erstellt eine Bibliothek an einer bestimmten Stelle im Dateisystem (also es sieht aus wie ein Ordner an dieser Stelle) undvmap
teilt dem compiler mit, wie die Zuordnung eineruse some_lib;
Klausel zu einer bestimmten bit-Dateisystem.Personen, Architekturen, Pakete
Können Sie separate entity und-Architektur (oder sogar mehr als eine architecture pro entity) in mehrere Dateien, oder halten Sie Sie in einer Datei. Halten Sie die
architecture
in einer separaten Datei, die bedeutet, dass, wenn Sie kompilieren, müssen Sie nicht neu kompilieren, dieentity
, was bedeutet, dass Sie nicht neu kompilieren müssen, alles, was erzeugt es.Ähnlich ist es mit
packages
undpackage body
s - Körper in einer separaten Datei bedeutet, Sie können nur neu kompilieren, dass ein Teil ohne Neukompilierung alles andere. Beachten Sie, dasspackage
s sind nicht für das Inverkehrbringen von Entitäten.(Neben - Modelsim hat eine
-just
Schalter, der ermöglicht es Ihnen, um alles in eine Datei zu kompilieren ausgewählten bits der Dateien, zum Beispiel, nur diearchitecture
- und/oderbody
Teil(s))Zusammenfassung
work
Bibliotheklibrary i2c; i_i2c_controller : entity i2c.controller
Entity und Architektur sind separate design-Einheiten. Sie können in der gleichen Datei oder in separaten Dateien. Die Datei-Erweiterungen bleiben die gleichen: in der Regel
.vhd
aber.vhdl
ist auch möglich. Für den Dateinamen gibt es keine allgemein anerkannten Bezeichnungen. (Es gibt Hunderte von Konventionen wirklich, also, das ist so nützlich wie keine Konvention überhaupt) Alles funktioniert; als ein Beispiel, könnten SiemyEntity.vhd
undmyEntity_RTL.vhd
.Können Sie kompilieren von entities und Architekturen, die Sie schreiben in Ihrer eigenen Bibliothek. Verwenden Sie Ihren Firmennamen als name der Bibliothek.
Nicht zu verwechseln Bibliotheken mit Pakete, aber! Ein Paket ist eine Zusammenstellung Gerät, dass hält wiederverwendbare Erklärungen. Eine Bibliothek ist eine benannte Menge von compilation units.
vcom -work myLibrary myFile.vhd