Matthias Bernauer - Freiburg im Breisgau
      Start > Skript-Sammlung > Rechnerarchitektur > Hardwarebeschreibungssprachen HDL >>







Hardwarebeschreibungssprachen HDL

      1. Hardwarebeschreibungssprachen (HDL: hardware description language)

        • präzise Spezifikation

        • Spezifikation ausführbar --> Simulation möglich

        • Automatisierung

        • Austauschformat

        • Dokumentation

        • Beschleunigung

        Was benötigt man zur Schaltkreisbeschreibung?
        Was unterscheidet HDLs von Software-Sprachen?

        • Schaltungsbeschreibung
          Schaltungen bestehen aus Komponenten und Verbindungen
          -> strukturelle Beschreibungsmögl. notwendig
          Grafiken auf Transistor- oder Gatterebene werden zu komplex für große Schaltungen/Entwürfe
          -> Hirarchiebildung: Zusammenfassung von Teilen zu neuen Komponenten, z.B. Gatter, ALU, ...
          -> Hierarchische Beschreibung von Systemen mit entities und architectures
          z.B. Entity-Deklaration des Volladdierers
          entity full_adder is
          port
          (a, b, carry_in: in Bit; --input ports
          sum,carry_out: out Bit); --output ports
          end full_adder;
          Entities definieren Interface einer Teilschaltung
          Ports können sein: in (input), out (output), inout (bidirectional)
          Outputs können nicht gelesen werden, Inputs nicht beschrieben.

          architecture structure of full_adder
          is component half_adder
          port
          (in1,in2:in Bit; carry:out Bit; sum:out Bit);
          end component;
          component or_gate
          port (in1, in2:in Bit; o:out Bit);
          end component;
          signal x, y, z: Bit; -- local signals
          begin -- port map section
          i1: half_adder port map (a, b, x, y);
          i2: half_adder port map (y, carry_in, z, sum);
          i3: or_gate port map (x, z, carry_out);
          end structure;

          Architectures beschreiben Implementierungen von Entities.
          Für component half_adder brauchen wir
          - eine entity, z.B. entity half_adder
          port (in1,in2:in Bit; carry:out Bit; sum:out Bit); end half_adder;
          - Mindestens eine architecture, die ihrerseits components enthalten kann
          Architectures und ihre components können eine Hierarchie beliebiger Tiefe definieren.
          Pro Entity kann es mehrere architectures geben. Standardmäßig wird die zuletzt analysierte Architecture benutzt. Die Benutzung einer anderen Architecture kann in einer configuration vorgeschrieben werden. Architecture-Beschreibungen können Strukturbeschreibungen (wie oben angegeben) oder Verhaltensbeschreibungen sein.
          Beispiel einer Architecture mit Verhaltensbeschreibung am Volladdierer:
          architecture behavior of full_adder is
          begin
          sum <= (a xor b) xor carry_in after 10 Ns;
          carry_out <= (a and b) or (a and carry_in) or (b and carry_in) after 10 Ns;
          end behavior;
          Paralelle Signalzuweisung mittels <= , Spezifikation von Verzögerungszeiten, vorhandene Operatoren

        • Struktur- und Verhaltensbeschreibungen
          - Strukturbeschreibungen benutzen Komponenteninstantiierungen.
          - Verhaltensbeschreibungen spezifizieren das Verhalten ohne die Systemstruktur vorzuschreiben.
          - Mischformen sind möglich.
          - Mischformen sind nötig zur Verhaltensbeschreibung für die Blätter einer strukturellen Hierarchie.
          - Strukturelle Hierarchie essentiell für eine kompakte und klare Modellierung großer Hardwaresysteme.

        • Algor. Beschreibung notwendig, da strukturelle Beschreibungen (20Mio. Gatter) zu komplex
          Das Verhalten der Module wird durch imperative Programmiersprachen (Teil der HDL) definiert.


    • Besonderheiten von Hardware(-sprachen)
      Zeitbegriff: Funktionen verbrauchen Zeit
      parallele Tasks: Funktionen können parallel arbeiten
      Signale und Ereignisse (events): Kommunikation zwischen Modulen
      mehrwertige Logik (0,1,x,z,...): zweiwertige Logik nicht ausreichend

    • VHSIC = very high speed integrated circuit
      VHDL = VHSIC hardware description language
      Erweiterung: VHDL-AMS, enthält auch Modellierung analoger Schaltungen

    • Ziele von VHDL

      • Modellierung digitaler Schaltungen

      • Modellierung auf verschiedenen Abstraktionsebenen

      • Technologieunabhängig⇒ Wiederverwendbarkeit (abstrakter) Spezifikationen

      • Standard ⇒ Portabilität (verschiedene Synthese- und Analysetools möglich)

      • Validierung von Designs für verschiedene Abstraktionsebenen

      • Enthält viele Aspekte imperativer Programmiersprachen
        (⇒ wäre prinzipiell auch in der Lage, Software zu beschreiben.)

      1. HW-Simulation und Verifikation

  • Spezifikation -> Entwurf -> unvollst. Simulation -> Auswertung und ggf. Neuer Entwurf

Google MSN Suche
<< Start | Studium | Poolmgr | Tanzen | GPG | Impressum >>
Matthias Bernauer