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

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

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

設計のポイント

VHDL記述のポイント:record型で関連信号をまとめる

設計内容分類FPGA

実現したい仕様・課題

バスインターフェースのように、アドレス・データ・制御信号がひとまとまりで意味を持つ信号群を個別に宣言・接続すると、ポートリストやport mapが長大になり、信号の追加時には関係するすべてのモジュールの宣言と接続を修正する必要が生じます。関連する信号を一括して扱い、接続の記述量と修正箇所を減らしたいというのが課題です。

設計のポイント

意味的にひとまとまりの信号群は、record型(レコード型)で1つの複合型として定義します。type bus_req_t is record … end record; のようにフィールド(アドレス、データ、各制御信号)をまとめて型宣言し、信号・ポートをその型で持てば、モジュール間の接続はrecord信号1本のport mapで済み、フィールドの追加はrecord定義の1か所の修正で関係モジュールへ波及します。フィールドへのアクセスは req.addr のようにドット記法で行い、コード上でも信号の所属が明確になります。record型はpackageで定義して設計全体から参照する形にすると、インターフェース仕様の定義がコード上の1か所に集約され、仕様変更の管理が容易になります。リクエスト方向とレスポンス方向でrecordを分ける(req/resp)構成にすると、ポートのin/outも素直に割り当てられます。注意点として、合成ツールによっては最上位ポートのrecord使用に制約がある場合があるため、トップレベルは従来型の信号に展開し、内部階層でrecordを活用する構成が実務的です。信号本数の多いパイプラインのステージ間受け渡しや、複数チャネルの配列化(recordの配列)にも有効で、大規模設計の見通しを大きく改善します。

【コード例】
type bus_req_t is record
addr : std_logic_vector(15 downto 0);
data : std_logic_vector(31 downto 0);
we : std_logic;
en : std_logic;
end record;

signal req : bus_req_t;

req.addr <= x”0010″;
req.we <= ‘1’;
u_slave : entity work.slave port map (clk => clk, req => req);

VHDL記述のポイント:record型で関連信号をまとめる | 組み込み機器・ハードウェア設計製作.com

補足情報

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

FPGA設計のポイント

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

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

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

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