VHDL-Tutorials: 13 wichtige Konzepte

In diesem VHDL-Tutorial besprechen wir einige der grundlegenden Konzepte im Zusammenhang mit der VHDL-Technologie und einige Beispiele für die Codierung. Das VHDL-Tutorial ist wie folgt unterteilt:

THEMEN DER DISKUSSION

A. Was ist VHDL?

B. Geschichte und Standardisierung

C. VHDL-Entwurfsverfahren

D. Einige Regeln und grundlegende Informationen zu VHDL

E. Syntax & einige wichtige Konzepte zum Schreiben von VHDL-Codes

F. VHDL-Simulatoren für das VHDL-Lernprogramm

VHDL || Was ist VHDL?

Die vollständige Form von VHDL steht für VHSIC-HDL (Very High Speed ​​Integrated Circuit Hardware Description Language).

Wie der Name schon sagt, ist VHDL eine Hardwarebeschreibungssprache oder eine spezielle Art von Programmiersprache, die die Hardwareimplementierungen von digitalen Systemen und Schaltungen beschreibt. Es ist eine stark typisierte Sprache und weist darauf hin, dass es sich nicht um eine Programmiersprache handelt.  

Geschichte und Standardisierung

Das US-Verteidigungsministerium leistet einen bedeutenden Beitrag zum modernen Technologiefeld. Es hat zu viele großartige Ideen und Innovationen hervorgebracht. US Defence entwickelte im Jahr 1983 auch VHDL. Es wurde zur Dokumentation des Verhaltens der anwendungsspezifischen integrierten Schaltkreise entwickelt.

Später wurden einige Ideen aus Ada-Programmiersprachen umgesetzt. VHDL wurde zum ersten Mal im Jahr 1987 standardisiert. Es wurden mehrere Datentypen verschiedener Typen hinzugefügt, darunter Zeichenfolgen sowie numerische und logische.

Standardisierung

VHDL oder für Hardwarebeschreibungssprachen für integrierte Hochgeschwindigkeitsschaltungen (VHSIC-HDL) ist durch den Standard IEEE 1076 standardisiert. Es wird von Geburt an aktualisiert und hat viele Überarbeitungen erfahren. Schauen wir uns einige der Standardrevisionen und wichtigen Updates an.

ÜberarbeitungenUpdates
IEEE 1076 - 1987Überarbeitung und Standardisierung durch die US-Verteidigung.
IEEE 1076 - 1993Kam mit der größten Veröffentlichung und es ist die am weitesten verbreitete Version.
IEC 61691 -1-1-1: 2004Die IEC hat die IEEE 1076-2002-Version übernommen
IEEE 1076-2008Aktualisiert mit einigen wichtigen Änderungen wie - Einführung von Generika in Paketen und Verwendung externer Namen
IEC 61691 -1-1-1: 2011Die IEC hat die IEEE 1076-2008-Version übernommen
Überprüfen Sie die Standardisierung hier, VHDL-Tutorial-Tabelle – 1

Design von VHDL

Das VHDL-Design hat einige Designeinheiten. Sie sind bekannt als - Entität, Architektur, Konfiguration und Paket.

Entität: Entität definiert externe Ansichten eines Modells, das ein Symbol ist.

Die Architektur: Architektur definiert die Funktionalität eines Modells, das schematisch ist.

Konfiguration: Die Konfiguration wird zum Zuordnen der Architektur zu einer Entität verwendet.

Paket: Paket ist die Sammlung von Informationen, auf die VHDL-Module verweisen können. Ein VHDL-Paket besteht aus zwei Teilen. Sie sind - Paketdeklaration und Paketkörper.

1200px Vhdl signierter Addierer source.svg
Ein grundlegender Code, der in VHDL Tutorial, Image Credit - entwickelt wurde. Vhdl_signed_adder.pngRev Ragnarok abgeleitete Arbeit: Bernhard LadenthinVhdl signierte AddiererquelleCC BY-SA 3.0

Entitätserklärung

Die allgemeine Struktur der Entitätsdeklaration ist unten angegeben -

ENTITÄT < Entitätsname > IS

          Allgemeine Erklärungen

          Hafenerklärungen

ENDE ENTITÄT <Entitätsname>;

  • kann alphabetisch / numerisch oder alphanumerisch sein.
  • Generische Deklarationen dienen zur Übergabe von Informationen an ein Modell.
  • Port Declarations dient zur Beschreibung der Eingangs- und Ausgangspins.
  • Eine Entität kann auf verschiedene Arten geschlossen werden.
    • ENDE ENTITÄT <Entitätsname>;
    • ENDE ENTITÄT;
    • ENDE;

Hafenerklärungen

Eine allgemeine Struktur für Hafendeklarationen ist unten angegeben -

ENTITÄT < Entitätsname > IS

          Allgemeine Erklärungen

          - Hafenerklärungen:

PORT (

          SIGNAL CLK, CLR: IM BIT;

          q: AUS BIT

          - Beachten Sie, dass die letzte Zeile der Deklarationen kein Semikolon enthält.

          );

ENDE ENTITÄT <Entitätsname>;

Die Struktur der Hafendeklaration: Objekt_Name :: ;;

  • Klasse: Klasse ist das, was mit einem Objekt gemacht werden kann. Hier ist Klasse Signal. Ein Punkt, an den man sich erinnern sollte, dass das SIGNAL beim Schreiben des Programms nicht geschrieben wird. Vielmehr wird davon ausgegangen, dass dies nicht erforderlich ist.
  • Objektname: Es ist die Kennung.
  • Modus: Es gibt die Richtung an.

IM - zufuhr

AUS - Output

EINGANG - bidirektionale

PUFFER - Ausgabe mit internem Feedback

  • Typ: Typ gibt an, was in einem Objekt enthalten sein kann.

Allgemeine Erklärungen

Eine allgemeine Struktur allgemeiner Deklarationen ist unten angegeben -

ENTITÄTEntitätsname> IS

          GENERISCH (

                    KONSTANTE tplh, tphl: Zeit := 5 ns;

                    tphz, tplz: ZEIT := 3ns;

                    default_value: INTEGER: = 1;

                    cnt_dir: STRING := "OBEN"

                    - Beachten Sie, dass die letzte Zeile der Deklarationen kein Semikolon enthält.

                    );

          Hafenerklärungen

          ENDE ENTITÄTEntitätsname>;

  • Generische Werte können beim Kompilieren überschrieben werden.
  • Generic muss während der Kompilierung eines Programms die Konstanz einer Konstanten besitzen.  

Beachten Sie, dass das Schlüsselwort CONSTANT angenommen wird und nicht zum Schreiben erforderlich ist.

Architektur

  • Analogie-Schema: Das Analogie-Schema beschreibt die Funktionalität eines Modells und das damit verbundene Timing.  
  • Die Architektur eines Modells sollte mit einer ENTITY verknüpft sein.
  • Einer Entität können viele Architekturen zugeordnet sein.
  • Architekturanweisungen werden gleichzeitig ausgeführt.
  • Einige Architekturstile -
  • Verhalten: Das Verhaltensmodell beschreibt die Funktionsweise von Designs.

RTL: RTL beschreibt, wie Designs mithilfe von Registern implementiert werden können.

Funktional: Es enthält kein Timing.

  • Strukturell: Implementierung der Gate-Level-Struktur.
  • Datenfluss: Implementierung der Wahrheitstabelle.
  • Architektur endet mit -
    • END ARCHITEKTUR ;;
    • ENDARCHITEKTUR
    • ENDE;

Eine allgemeine Struktur zum Schreiben einer Architektur:

ARCHITEKTUR <Kennzeichnung> OF <Entity_Identifier> IS

          SIGNAL signal_1: INTEGER: = 1;

          KONSTANTE cnst: = BOOLEAN: = true;

          TYPE-Prozess IST (W, X, Y, Z);

          - Attributdeklarationen

          - Attributspezifikationen

          - Unterprogrammdeklarationen

          - Unterprogrammkörper

START

          Prozessanweisungen

          Gleichzeitige Verfahrensaufrufe

          Signalzuordnung

          Anweisungen generieren

ENDARCHITEKTUR <Kennzeichnung>;

IMG18 1024x576 1
RTL-Schema eines UND-Gatters aus dem VHDL-Tutorial

Konfiguration     

Wie bereits erwähnt, ein früherer cDie Konfiguration wird zum Zuordnen der Architektur zu einer Entität verwendet. Das Zuordnen oder Kombinieren ist erforderlich, da eine ENTITY erst funktionieren kann, wenn die Architektur mit ihr verknüpft ist. Eine allgemeine Struktur der Konfiguration ist unten angegeben.

CONFIGURATION  < Kennzeichnung > OF < Entitätsname > IS

          FÜR < Architekturname >

                    FÜR < Instanzname >: Komponentenname > VERWENDUNG < Einheit > (( Architektur >)

                    ENDE FÜR;

                    FÜR < Instanzname >: Komponentenname > VERWENDUNG < Konfigurationsname >

                    ENDE FÜR;

          ENDE FÜR;

ENDKONFIGURATION < Kennzeichnung >;

Angebote

VHDL-Pakete sind eine ganze Einheit eines gesamten Systems. Es ist das Hauptziel der Implementierung von VHDL. Ein Paket besteht aus zwei Teilen. Wie bereits erwähnt, bilden Paketdeklarationen und Paketkörper ein vollständiges Paket.

VHDL liefert zwei integrierte Pakete.

Einige Regeln und grundlegende Informationen zum VHDL-Lernprogramm

Lassen Sie uns einen Blick auf einige grundlegende Informationen werfen, bevor wir uns mit dem VHDL-Tutorial befassen.

1. Reservierte Schlüsselwörter: VHDL hat einige Schlüsselwörter als reserviert (die nicht zum Deklarieren einer Variablen verwendet werden können).

2. Teile: VHDL besteht aus zwei Schritten oder Teilen für die Erstellung eines Modells. Eines ist Simulation und das andere ist Synthese und Simulation.

3. Groß- und Kleinschreibung beachten: VHDL ist keine Sprache, bei der zwischen Groß- und Kleinschreibung unterschieden wird (größtenteils).

4. Kommentar: Um eine Anweisung im VHDL-Code-Editor zu kommentieren, beginnen Sie den Satz mit -, zum Beispiel:

- Dies ist ein Kommentar in VHDL.

5. Beendigung: VHDL-Codes und jede einzelne Codezeile werden mit einem Semikolon abgeschlossen (wann immer dies erforderlich ist). 

6. Raumempfindlichkeit: VHDL ist nicht weißraumempfindlich.

Syntaxen und einige wichtige VHDL-Lernkonzepte zum Schreiben von VHDL-Codes

  1. Array mit Beispielen
  2. Prozess mit Beispielen
  3. IF-THEN-ELSIF-Implementierung mit Beispielen.
  4. CASE-Anweisung
  5. FÜR LOOP

A. Anordnung

Array speichert Wert. Es ist ein benutzerdefinierter Datentyp zum Speichern von Werten. Ein Array kann Signalvariablen vom Typ Konstanten enthalten.

Eine allgemeine Struktur zum Deklarieren eines Arrays ist unten angegeben:

TYP Array-Name IS ARRAY (Angebot) OF Datentyp;

Zum Beispiel,

TYP lambdageeks IST ARRAY (0 bis 9) VON std_logic_vector (0 bis 9);

B. Prozessanweisung

Prozess ist eine simultane und synchronisierte Anweisung. Es werden die chronologischen Aussagen vorgestellt. Bei Bedarf werden mehrere Prozesse parallel ausgeführt.

Ein Prozess besteht aus zwei Teilen. Sie sind die Ausführung des Prozesses und warten dann auf die nächste Bedingung.

SYNTAX:

Prozessdefinierung sensitivitätsliste

          Erklärungen

beginnen

          chronologische_Anweisungen;

Prozess beenden;

C. IF - THEN - ELSIF-Implementierung

Diese Anweisungen werden zur Implementierung einer Bedingung und für deren Ergebnis verwendet.

Eine if-Bedingung kann gemäß der Anforderung eine unendliche Anzahl von Zweigen haben. Eine beträchtliche Anzahl anderer Bedingungen ist ebenfalls möglich. In einer if-Schleife kann es jedoch nur eine andere Bedingung geben. Eine if-Schleife wird durch die end if-Anweisung beendet. Wenn die Bedingung erfüllt ist, tritt sie in die Schleife ein und führt die Anweisung aus. Wenn dies fehlschlägt, wählen Sie die Anweisung else oder elsif.

Die Syntax der Anweisungen ist unten angegeben.

SYNTAX

          if bedingter_boolescher_Ausdruck dann

                    Aussage1

          sonst bedingter_boolescher_Ausdruck dann

                    Aussage2

          . . .

          sonst

                    Aussage3

          Ende if;

D. CASE-Erklärung

Die case-Anweisung findet heraus, welche Anweisung ausgeführt wird. Eine case-Anweisung kann auch als IF-ELSE-Schleife verzweigt werden.

SYNTAX

[Etikette]: Häuser < bedingter Ausdruck > is

          wann < Wahl> =>

                    Aussage1

          wann <Wahl> =>

                    Aussage2

          ...

          wann <Wahl> =>

                    Aussage

Ende Häuser [Etikette];

E. FOR-Schleife

Eine for-Schleife ist eine kontinuierliche Ausführung von Anweisungen gemäß den Randbedingungen.

Für jede FOR-Schleife benötigen wir einen Iterator, der die Operationen in der for-Schleife ausführt. Es wird auch als Kennung bezeichnet. Es ist standardmäßig eine Ganzzahl und es ist nicht erforderlich, den Iterator zu deklarieren. Es ist eine der am häufigsten verwendeten Schleifen zur Erstellung komplexer Modelle. Es ist vertrauter als while-Schleifen.

SYNTAX

[Etikette]: für Iterator in Angebot Schleife

          Aussage1

          Aussage2

          ...

          Aussage n

Endschleife [Etikette];

VHDL-Simulatoren für VHDL-Lernprogramm

Einige der berühmten VHDL-Simulatoren, die für die Implementierung von VHDL verwendet werden, sind unten aufgeführt.

  1. Xilinx-Vivado: Der bekannteste Simulator für VHDL ist Xilinx Vivado. Xilinx bietet programmierbare Logikbausteine. Wir werden diesen Simulator für den nächsten Teil des VHDL-Tutorials verwenden. 
  2. Trittfrequenz einschneidend: Die vorherige Version war als NC-VHDL bekannt.
  3. VHDL-Simili: Symphony EDA entwickelt es. Es ist kostenlos für Verbraucher. 
  4. GHDL: Einer der bekanntesten kostenlosen VHDL-Simulatoren. 
  5. Boot: Freerangefactory Organisation entwickelte den Simulator. 
  6. NVC: Nick Gasson hat den OpenSource-VHDL-Compiler entwickelt. 
  7. EDA-Spielplatz: Eine weitere kostenlose Version, die auf einem Webbrowser basiert. 
  8. Inhaltsangabe VCS-MX.
Simulatoren für VHDL, Wir werden XILINX für unser VHDL-Tutorial verwenden. Image Credit - ™ / ®Xilinx, Inc., Xilinx-Logo, als gemeinfrei gekennzeichnet, weitere Details zu Wikimedia Commons

Machen Sie Ihr erstes Projekt mit VHDL. Lesen Sie den nächsten Teil des VHDL-Tutorials.

Weitere Artikel zum Thema Elektronik finden Sie unter hier!

Hinterlasse einen Kommentar