VHDLにおけるコンポーネントの用途は?
VHDLでは、コンポーネントはモジュール(エンティティ)のインタフェースと機能を記述するために使用される宣言です。C言語の関数宣言に類似しており、コンパイラ(または総合ツール)にモジュールが存在し、その入力、出力ポート、内部信号が定義されていることを伝えます。
コンポーネントを利用すると、モジュールの定義と実装を分離でき、コードのモジュール化・再利用性が高まります。コンポーネントの宣言により、単一のファイル内で複数のモジュールをインスタンス化し、それらのポートを接続することで、より複雑な回路を構築できます。
componentの構文は次のとおりです。
component <component_name> is
port (
<port_name> : <port_type>;
...
);
end component;
コンポーネント(モジュール)の名前は、ポートの名前は、ポートの種類は(スカラー、ベクトル、ユーザー定義型)です。ポートは入力(in)、出力(out)、または双方向(inout)のタイプです。
コンポーネントを使用する場合は、コンポーネントをインスタンス化し、<ポート名> で入出力と内部信号をつなげる必要があります。インスタンス化の文法は次のとおりです:
<instance_name> : <component_name> port map (
<port_name> => <signal_name>,
...
);
インスタンス名は、インスタンス化したいモジュール名は、モジュールポート名は、ポートに接続しているシグナル名はです。
コンポーネントを使用することでコードの読みやすさや保守性を上げ、モジュールレベルでのテストやモック化が容易になる。