組み込み機器・ハードウェアの設計開発から装置製作まで社内一貫対応!

組み込み機器・ハードウェア設計製作.com
組み込み機器・ハードウェア設計製作.com

produced by株式会社アイディアイ

設計のポイント

VHDL記述のポイント:直接インスタンス化とcomponent宣言の使い分け

設計内容分類FPGA

実現したい仕様・課題

下位モジュールの接続には、component宣言を経由する従来の方法と、entityを直接指定する直接インスタンス化があります。component宣言はentityのポート定義と二重管理になるため、ポート変更時に両方の修正が必要で、食い違いによるエラーの原因になります。インスタンス化の方法を整理し、修正箇所を減らしたいというのが課題です。

設計のポイント

自プロジェクト内のVHDLモジュール同士の接続には、直接インスタンス化(entity work.モジュール名 を直接指定する記法)を基本とします。この記法ではcomponent宣言が不要で、ポート定義はentity側の1か所だけになるため、ポートの追加・変更時の二重修正と、宣言の食い違いによるエラーレポートが構造的になくなります。architectureを複数持つモジュールでは entity work.foo(rtl) のように使用するarchitectureも指定できます。一方、component宣言が必要となるのは、(1) ネットリストやEDIF等で提供されVHDLソースのないマクロ・IPコアを接続する場合、(2) 実体の差し替えをconfiguration文で制御したい場合、(3) 混在言語環境でツールがcomponent経由の接続を要求する場合などです。つまり「実体がVHDLソースとして手元にあるものは直接インスタンス化、外部提供のブラックボックスはcomponent宣言」という基準で整理できます。いずれの場合も、port mapは名前による結合(次項参照)で記述します。componentを使う場合は、ベンダ提供の宣言をコピーして使い、手打ちによる写し間違いを避けることも実務上のポイントです。

【コード例】
— 直接インスタンス化(component宣言不要)
u_fifo : entity work.fifo
generic map (WIDTH => 16, DEPTH => 512)
port map (
clk => clk,
din => data_in,
dout => data_out
);

— architecture指定も可能
u_core : entity work.core(rtl) port map ( … );

VHDL記述のポイント:直接インスタンス化とcomponent宣言の使い分け | 組み込み機器・ハードウェア設計製作.com

補足情報

当事例のような、FPGA設計に関するポイントをまとめた冊子の無料DLが可能です。
是非以下よりご確認ください。

FPGA設計のポイント

>>ダウンロードはこちら!

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

組み込み機器・ハードウェア 設計製作.comを運営する株式会社アイディアイは、組み込み機器・ハードウェアの設計開発代行サービスを提供しています。
試験装置や制御機器、組み込みボードなど、設計・開発委託先をお探しの皆様、お気軽に当社に御相談ください。

技術資料のダウンロードはこちらから 技術資料ダウンロ―ド メールフォームでのお問い合わせはこちらから ご相談お問合せ