Sequenzielle Signalzuweisung (< =), im Gegensatz zur sequenziellen Variablenzuweisung (: =), plant sequenziell ein Ereignis eine Deltaverzögerung später für den Wert des zu aktualisierenden Signals. Sie können das geplante Ereignis ändern, indem Sie eine sequenzielle Signalzuweisung für dasselbe Signal im selben Prozess verwenden. Nur das letzte Update, das für ein bestimmtes Signal geplant ist, wird auftreten. Zum Beispiel:
signal a : std_logic := '1'; --initial value is 1
process(clk)
variable b : std_logic;
begin
--note that the variable assignment operator, :=, can only be used to assign the value of variables, never signals
--Likewise, the signal assignment operator, <=, can only be used to assign the value of signals.
if (clk'event and clk='1') then
b := '0' --b is made '0' right now.
a <= b; --a will be made the current value of b ('0') at time t+delta
a <= '0'; --a will be made '0' at time t+delta (overwrites previous event scheduling for a)
b := '1' --b will be made '1' right now. Any future uses of b will be equivalent to replacing b with '1'
a <= b; --a will be made the current value of b ('1') at time t+delta
a <= not(a); --at time t+delta, a will be inverted. None of the previous assignments to a matter, their scheduled event have been overwritten
--after the end of the process, b does not matter because it cannot be used outside of the process, and gets reset at the start of the process
end if;
end process;
Es ist auch wichtig zu beachten, dass, während sequentielle Prozesse sequentiell von einer logischen Perspektive in der VHDL arbeiten, wenn synthetisiert, sie sind wirklich in komplexe gleichzeitige Aussagen gedreht Verbindungs Flip-Flops. Der gesamte Prozess läuft gleichzeitig als eine Einheit zwischen jedem Taktzyklus (Prozesse, die nicht auf einer Uhr arbeiten, werden zur reinen Kombinationslogik). Signale sind die Werte, die tatsächlich in den Flip-Flops gespeichert werden. Variablen sind nur Aliasing, um Prozesse leichter lesbar zu machen. Sie werden nach der Synthese in kombinatorische Logik absorbiert.