Von überall kommt ihr über dieses Logo auf diese Seite zurück!

VHDL Referenz


Eine kleine VHDL Befehlsreferenz für die Vorlesung Entwicklung Digitaler Systeme.

Grundgerüst
    library ieee;
    use ieee.std_logic_1164.all;

    entity beschreibung is
      port(eingang: in     std_logic;
           ausgang: out    std_logic
      );
    end beschreibung;

    architecture arch of beschreibung is
      -- Hier kommen die internen Signale rein
    begin
      -- Beschreibung
    end arch;
  


Befehlsliste (Concurrent Statements)
label : process (sensitivity list)
-- Deklarationsteil
begin
--Implementierung des Processes hier
end process label;
Ein Prozess wird benötigt für sequentielle Anweisungen.
a <= c or bEs erfolgt eine Zuweisung von c ODER b nach a.
a <= c when b = c else '0';Bedingte Zuweisung. A ist nur dann gleich c, wenn b und c gleich sind, sonst ist a immer '0'.
with status_var select
a <= c when '0',
  b when '1';
Die Bitvariable status_var wird auf 0 oder 1 überprüft. Ist diese 0, wird a=c gesetzt, ist diese 1, so wird a=b gesetzt.


Befehlsliste (Sequentiell Statements)
Diese Anweisungen benötigen einen Process-Rahmen.
if a=b then
--statement
elsif a=c
--statement
else
--statement
end if;
if - then - else Anweisung
Die klassische If-Else Anweisung. Wenn das erste hinkommt, dann wird der erste Block ausgeführt, beim zweiten das zweite, etc. oder am Ende der else Bereich.
case status_var is
when a => ausgang <= x;
when b => ausgang <= y;
when others => ausgang <= z;
end case
case - when - Anweisung
Diese Anweisung eignet sich besonders gut für Lookup-Tables, da die Variable status_var Überprüft wird. Wenn diese gleich a ist, ist der Ausgang = x, wenn status_var=b ist, wird der Ausgang auf y gesetzt und in den letzten Fällen wird der Ausgang=z gesetzt.
for - loop - Anweisung
while - loop -Anweisung


Eine Compilersuite für VHDL wird von XILINX angeboten. Man muss sich dort registrieren und dann kann man das Webpack der ISE runterladen.




Zurück auf die Studium-Seite <> Homepage