PROCESS

Nebenläufige Anweisungen – PROCESS

ENTITY latch IS

PORT (d, clk : IN bit; q : BUFFER bit) ;

END latch ;

-------------------------------------------------------


-------------------------------------------------------
--
-- Prozess mit sensitivity-list
--
-------------------------------------------------------

ARCHITECTURE sequential_1 OF latch IS

BEGIN

q_assignment : PROCESS (d, clk)

BEGIN


IF clk = '1' THEN
q <= d ;
END IF ;

END PROCESS q_assignment ;


END sequential_1 ;
Prozesse dienen als Umgebung für sequentielle Anweisungen. Prozesse selbst sind nebenläufig und werden durch zwei verschiedene Möglichkeiten aktiviert und gestoppt.

Anhand nebenstehender Beispiele werden die zwei Verfahren demonstiert. Beide beschreiben ein Dlatch.
Das erste Beispiel zeigt die erste Möglichkeit mit einer Sensitivity List in Klammern hinter der PROCESS-Anweisung. Prozesse dieser Art werden bei der erstmaligen Initialisierung komplett durchlaufen. Bei einem Ereignis auf den Sensitivity Signals, im Beispiel den Signalen 'd' oder 'clk', wird der Prozeß aktiviert, und die sequentiellen Anweisungen darin werden ausgeführt.

--------------------------------------------------------
--
-- Prozess mit WAIT-Anweisung
--
--------------------------------------------------------

ARCHITECTURE sequential_2 OF latch IS

BEGIN

q_assignment : PROCESS

BEGIN


IF clk = '1' THEN
q <= d ;
END IF ;

WAIT ON d, clk ;
-- entspricht "sensitivity-list"

END PROCESS q_assignment ;


END sequential_2 ;
Dieses Beispiel ist mit der zweiten Möglichkeit realisiert, mit einer WAIT-Anweisung. Bei der Modell-Initialisierung wird der Prozeß bis zur WAIT-Anweisung abgearbeitet und erst wieder aktiviert, wenn auf 'd' oder 'clk' ein Ereignis auftritt.