====== 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;