VHDLの文法関係 - Shinichi0713/hard-ware GitHub Wiki
VHDLにおける <=
と =>
の意味は以下の通りです。
- 「シグナル(信号)への代入」を表す演算子です。
- 英語では「signal assignment operator」。
- 例:
これは「信号 a に b の値を代入する」という意味です。
a <= b;
- プロセス内やアーキテクチャ本体などで使われます。
- 論理回路的には、ワイヤでつなぐイメージです。
- 「ポートマッピング」や「集合(配列)への値割り当て」に使う演算子です。
- 英語では「association operator」。
- 主に2つの場面で使われます。
- コンポーネントやエンティティのポートに信号を割り当てるときに使います。
- 例:
これは「and_gateのaポートにx信号、bポートにy信号、cポートにz信号を接続する」という意味です。
U1: entity work.and_gate port map ( a => x, b => y, c => z );
- 複数ビットの値をまとめて指定するときにも使います。
- 例:
または
std_logic_vector'( "1010" )
これは「7ビット目に'1'、6ビット目に'0'…」という意味です。(7 => '1', 6 => '0', 5 => '1', 4 => '0')
記号 | 主な用途 | 例 | 意味 |
---|---|---|---|
<= | シグナル(信号)への代入 | a <= b; | aにbを代入する |
=> | ポートマッピング、集合代入 | a => x, (3 => '1', ...) | aにxを接続、3番目に'1'を割り当てる |
-
<=
は「データの流れの向き」を表す(右から左へ値が流れる)。 -
=>
は「名前(ラベル)と値の対応付け」を表す。
まとめ:
-
<=
は信号への代入 -
=>
はポートマッピングや配列の値割り当て