|
・同時処理文
architecture-begin , endの間に直接記述されたものを同時処理文と言います。
同時処理文は、それぞれが他の同時処理文と関係なく動作します。
以下に示すとおり、コンポーネント・インスタンス文、信号代入文、そしてこれから紹介するプロセス文の一つ一つが実態として存在し、ロジック回路の一つ一つの部品のようなイメージで、並列に動作します。
architecture RTL of CON is
signal F:std_logic;
signal G:std_logic;
signal Z:std_logic;
begin
U1 : AND port map(AIN,BIN,Z); 同時に処理される
F <= CIN + DIN; 同時に処理される
G <= F(4) and EIN; 同時に処理される
process(Z,F,G)begin 同時に処理される
if(F='0' and G='1')then
HOUT <= F;
else
HOUT <= "0000";
end if;
end process;
end RTL;
・プロセス文
プロセス文は、以下の@"process()"の中の信号'X','Y','Z','C'のうちいずれかの値が変化したとき活性化され、記述の上から順に処理されます。
この( )内をセンシティビティ・リストと呼びます。最終行まで実行するとまた上に戻り、次にこれらの信号の値が変化するまで動作を停止します。
if文、case文、for−loop文などの順次処理文は、このプロセス文の中で記述することになります。
process(X,Y,Z,C) @センシティビティ・リスト
begin 値が変化すると実行開始
C <= Z; |
A <= X + C; |順次処理(上から順に処理を行う)
C <= Y; |
B <= X + C; |
end process; 最後まで実行すると最初に戻る。
|