[[dt-code-varsig]]

VHDL Signale und Variablen

Bei VHDL gibt es Signale und Variablen. Signale entsprechen den Netzen bei einer Schaltung. Variablen sind zur Speicherung von Zwischenergebnissen in einem Konstrukt mit sequentiellen Anweisungen notwendig. Sie entsprechen dem Verhalten von Variablen bei klassischen Programmiersprachen wie z.B. C.

Eigenschaften von Signalen

  • Zuweisung mit “⇐”, Beispiel: y ⇐ a or b;
  • In einem Prozess ändert sich der Wert des Signals erst am Ende des Prozesses!
  • Die jeweils letzte Zuweisung zählt.

Eigenschaften von Variablen

  • Zuweisung mit :=, Beispiel: y := a or b;
  • In einem Prozess ändert sich der Wert einer Variable mit jeder Zuweisung.

Beispiel für ein großes UND Gatter. In diesem Beispiel soll der Ausgang y_o die “Verundung” von allen Einzelsignalen von a_i sein. Also

y_o ⇐ a_i(0) and a_i(1) and a_i(2) and a_i(3)

In diesem Beispiel wird die Variable “v” zusammen mit der FOR LOOP benutzt um die Beschreibung zu vereinfachen.

entity bigand is
port(
  a_i : in std_ulogic_vector(3 downto 0); 
  y_o : out std_ulogic);
end bigand;
 
architecture rtl of bigand is
  signal s : std_ulogic;
begin
 
and_p : process(a_i)
  variable v : std_ulogic; 
begin
  v := '1'; 
  for i in 0 to 3 loop
    v := v and a_i(i);
  end loop;   
  y_o <= v; 
end process and_p; 
 
end architecture; 
  • dt-code-varsig.txt
  • Last modified: 2011/04/07 17:01
  • by beckmanf