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

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

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

設計のポイント

VHDL記述のポイント:processの感度リスト漏れに注意する

設計内容分類FPGA

実現したい仕様・課題

組み合わせ回路をprocess文で記述する際、感度リスト(プロセスの起動条件となる信号リスト)に参照信号の列挙漏れがあると、シミュレーションでは信号変化に反応しない一方、合成ツールはリストを無視して組み合わせ回路を生成するため、シミュレーションと実機で動作が食い違います。この食い違いは原因究明が難しく、確実に防ぎたいというのが課題です。

設計のポイント

組み合わせ回路のprocessでは、プロセス内で参照するすべての信号を感度リストに漏れなく列挙することが大原則です。列挙漏れがあると、シミュレータは漏れた信号の変化でプロセスを再評価しないため、「シミュレーションは通るのに実機で動かない」(またはその逆の)不整合が発生します。この種の不具合は波形を眺めても気付きにくく、多くの合成ツールが警告を出すため、感度リスト関連の警告は必ず確認して解消する運用にします。VHDL-2008が使用できる環境であれば、process(all)と記述することで参照信号が自動的にすべて感度リストに含まれ、列挙漏れという人為ミスを構造的に排除できます。クロック同期プロセスの場合、感度リストにはクロック(および非同期リセット)のみを記載し、データ信号は含めないのが正しい形です。ここに不要な信号を加えてもシミュレーション速度が落ちるだけでなく、記述意図が曖昧になります。組み合わせプロセスと同期プロセスを明確に分け、それぞれの感度リストの規則を守ることが、シミュレーションと合成の一致を保証する基本です。

【コード例】
— 組み合わせ回路:参照信号をすべて列挙
process(a, b, sel)
begin
if sel = ‘1’ then y <= a; else y <= b; end if;
end process;

— VHDL-2008なら process(all) で漏れを防止
process(all)
begin
y <= a when sel = ‘1’ else b;
end process;

VHDL記述のポイント:processの感度リスト漏れに注意する | 組み込み機器・ハードウェア設計製作.com

補足情報

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

FPGA設計のポイント

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

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

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

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