Wie erstelle und verwende ich meine eigene VHDL-Bibliothek?

Ich versuche, eine Komponentenbibliothek in VHDL zu erstellen. Ich habe viele .vhd-Quelldateien mit unterschiedlichen Komponenten. Idealerweise möchte ich sie in einem Design mit der gleichen Methode wie eine Standardbibliothek (oder ähnlich) instanziieren können.

Beispiel:

library my_lib;
use my_lib.something.all;

Und bauen Sie ein Design auf, indem Sie diese Komponenten strukturell verwenden. Idealerweise möchte ich diese als separate Dateien aufbewahren, da angehängte benutzerdefinierte Symboldateien (BDS) zugeordnet sind.

Die Symbole spielen nur bei der Verwendung von Active-HDL (10.1) eine Rolle. Es wäre großartig, diese Dateien einlesen und in der Blockdiagrammdatei verwenden zu können!

Ich würde Aldec Active-HDL (10.1), Xilinx Vivado (2014.2) und Altera Quartus (9.1 Web) verwenden.

Jede Hilfe wäre sehr willkommen.

Antworten (2)

Xilinx-Vivado :

Sie können die Bibliothek, in der sich eine Datei in Vivado befindet, erstellen/ändern, indem Sie auf die Datei klicken und dann auf die Schaltfläche rechts neben der Bibliotheksbezeichnung auf der Source File PropertiesRegisterkarte klicken. Sie können eine Bibliothek erstellen, indem Sie einer nicht vorhandenen Bibliothek eine Datei zuweisen.

Altera Quartus II :

Die Bibliothek können Sie Propertiesz. B. unter festlegen: Geben Sie hier die Bildbeschreibung einSie können die Quartus II-Einstellungsdatei (".qsf") für das Projekt auch über set_global_assignmentOptionen ändern.

Sie können Ihre Komponentendeklarationen in ein VHDL-Paket verschieben. Dieses Paket wird dann durch eine Anweisung geladen use.

Eine Bibliothek kann nicht durch eine Datei erstellt werden, aber alle Tools - die ich kenne - haben die Möglichkeit, eine Bibliothek im Projekt zu erstellen und diesen Dateien zuzuordnen. Oder einige Tools haben ein Dateieigenschaftsfeld, um die ausgewählte Datei einer Bibliothek zuzuweisen.

Wenn Sie Komponentendeklarationen im Architekturheader vermeiden möchten, gibt es auch eine "neue" Syntax, um den vollständigen Namen einer Entität anzugeben:

myinst : entity mylib.myentity
  port map (
  ...
  );

Sie brauchen nur die verwendete Bibliothek wie das bekannte IEEE zu benennen:

library mylib;