signalで宣言された信号に対する値の代入は信号代入文で行います.信号代入文の基本系は 以下のようになります.
ターゲット < = 波形 ;
また,出力したい信号をある条件に従って切替えて代入する方法として,条件 付き信号代入文と選択信号代入文があります.以下は,7セグメントデコーダ の例です.
tmp <= "11111100" when din = "0000" else
"01100000" when din = "0001" else
"11011010" when din = "0010" else
...
"10011110" when din = "1110" else
"10001110" when din = "1111" else
"00000000"; -- 残り全部
with din select
tmp <= "11111100" when "0000",
"01100000" when "0001",
"11011010" when "0010",
...
"10011110" when "1110",
"10001110" when "1111",
"00000000" when others; -- 残り全部
std_logicタイプでは '0' や '1'
の他に'X','U','Z'等が存在するので,これらのパターンに対して全て記述
する必要があります.さもないと,不必要なラッチが合成される可能性があり
ます.CADによっては'-'(don't care)や' X'(不定)を使用して回路を小さくす
ることが可能です.
ターゲット < = 波形 after 時間を表す式; -- 慣性遅延 ターゲット < = transport 波形 after 時間を表す式; -- 伝播遅延
B <= '0' after 100ns,
'1' after 200ns,
'0' after 300ns,
'1' after 400ns;
C <= A and B after 20ns;

つぎは構造化記述について
ホーム
もどる
辞書