☆信号&変数&定数

VHDLには値が代入されたのに対して実際に値が書き込まれる
タイミングが違う”信号”と”変数”が存在します
信号(signal)
signalは信号を代入するという式が書かれていても、
その場では値が代入されません。
process文の最後で代入されます

以下の例では初期値としてAAAに"0000"、BBBに"1111"が代入されます
プロセス文の最初でAAAに"0101"を代入していますが、AAAの値が
実際に変更されるタイミングはプロセス文を抜けるときです
つまり、BBBにAAAを代入している時点ではAAAの内容は"0101"ではなく
初期値の"0000"のままですので、BBBの値は"0000"となります
	signal AAA : std_logic_vector(3 downto 0) := "0000";
	signal BBB : std_logic_vector(3 downot 0);
	
		process
		begin
		AAA <= "0101";
		BBB <= AAA;
		end process;


変数(variable)
variableは信号を代入するという式が在れば、
その場で値が代入されます
注意:代入式が"<="で無くて":="です

以下の例では初期値としてAAAに"0000"、BBBに"1111"が代入されます
プロセス文の最初でAAAに"0101"を代入しています。
変数では代入した瞬間に値が変化するのでBBBへ代入する時点では
AAAの内容は"0101"に変化しています
つまり、BBBの値は"0101"となります
	signal BBB : std_logic_vector(3 downot 0);
	
		process
		variable AAA : std_logic_vector(3 downto 0) := "0000";
		begin
		AAA := "0101";
		BBB <= AAA;
		end process;

ballVHDLへ戻る
ballトップへ戻る