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

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

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

設計のポイント

verilog記述のポイント:case文にはdefaultを必ず記述する

設計内容分類FPGA

実現したい仕様・課題

case文で列挙した分岐に漏れがあると、該当しない入力値のときに出力が更新されず、組み合わせ回路では意図しないラッチが生成されます。ラッチはタイミング解析を困難にし、動作不安定の原因になります。すべての入力条件で出力を確定させ、合成結果を意図どおりに制御したいというのが課題です。

設計のポイント

case文には必ずdefault句を記述し、列挙した分岐に該当しない場合の出力値を明示します。組み合わせ回路のalways内でcase分岐に漏れがあると、「値を保持する」動作、すなわちラッチとして合成されてしまいます。ラッチはクロック同期設計のタイミング解析を乱し、グリッチによる誤動作の温床となるため、意図しない生成は避けるべきです。defaultには安全側の値(全ビット0、非活性値、エラーコードなど)を割り当てておくと、想定外の入力に対してもシステムを安全な状態に保てます。また、状態変数のcase分岐では、defaultで初期状態へ戻す記述にしておくと、ノイズ等で不正な状態コードに陥った場合の復帰経路として機能します。すべてのcase項目を列挙済みの場合でもdefaultを書いておく習慣にすると、将来のビット幅変更や項目追加の際の抜けを防げます。同様に、if-else連鎖でも最後のelseを省略しないことが、ラッチ防止の基本です。

【コード例】
always @(*) begin
case (sel)
2’b00: y = a;
2’b01: y = b;
2’b10: y = c;
default: y = 8’d0; // 必ずdefaultで出力を確定させる
endcase
end

verilog記述のポイント:case文にはdefaultを必ず記述する | 組み込み機器・ハードウェア設計製作.com

補足情報

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

FPGA設計のポイント

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

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

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

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