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

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

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

設計のポイント

verilog記述のポイント:非同期リセットと同期リセットの使い分け

設計内容分類FPGA

実現したい仕様・課題

リセットの掛け方には非同期リセットと同期リセットがあり、それぞれ利点と注意点が異なります。方式を意識せず混在させると、リセット解除タイミングに起因するメタステーブルや、回路ごとの初期化タイミングのばらつきによる不具合が生じます。システムに適したリセット方式を選び、一貫して適用したいというのが課題です。

設計のポイント

非同期リセットは always @(posedge clk or negedge rst_n) の形式で記述し、クロックが停止していてもただちに回路を初期化できるのが利点です。電源投入直後などクロック未確定の状態でも確実にリセットできる一方、リセット解除のタイミングがクロックエッジと重なるとメタステーブルや回路間の解除タイミング差(リセットリカバリ)の問題が生じるため、解除側だけをクロックに同期させる「非同期アサート・同期デアサート」の同期化回路を通すのが定石です。同期リセットは always @(posedge clk) 内でリセット条件を判定する形式で、リセット信号がクロックに同期して扱われるためタイミング解析が容易になり、リセット信号上のグリッチにも強くなりますが、クロックが動作していないとリセットできません。FPGA設計では、デバイスやツールの推奨に従いつつ、モジュール全体でどちらかの方式に統一すること、リセット信号の極性(正論理/負論理)を混在させないことが重要です。方式が混在すると、初期化順序の不整合やタイミング制約の複雑化を招き、検証工数が増大します。

【コード例】
// 非同期リセット
always @(posedge clk or negedge rst_n)
if (!rst_n) q <= 8’d0;
else q <= d;

// 同期リセット
always @(posedge clk)
if (!rst_n) q <= 8’d0;
else q <= d;

verilog記述のポイント:非同期リセットと同期リセットの使い分け | 組み込み機器・ハードウェア設計製作.com

補足情報

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

FPGA設計のポイント

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

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

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

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