« FPGAで作るMath Function | Main | 今日の日記 »

2008.03.22

FPGAのリセット回路

Advanced FPGA Design: Architecture, Implementation, and Optimizationのリセットの章から。

同期リセットと、非同期リセットの違いについて。

非同期リセットにはメタステーブルの問題があり、同期リセットには複数クロックの時にリセット解除のタイミングがコントロールできないことと、パルスのリセットを見逃す可能性がある。

この本で紹介されているのは、リセットをかけるのは非同期で、解除するのは同期型のハイブリッド仕様。

Afd_reset_4

この構成にすると、パルスを逃すこともなく、リセットが入ると非同期ですべての回路にリセットが入り、解除はある程度シーケンスを組んで解除できる。ユーザー回路に入るリセット信号は、CLKで叩いているためメタステーブルの問題も無くなる。

これは知らなかった。今まで外部のリセット信号を、そのまま内部の非同期リセットに突っ込んでいたが、次からこの回路を使おう。

Advanced FPGA Design: Architecture, Implementation, and Optimization絶賛おすすめ中。

|

« FPGAで作るMath Function | Main | 今日の日記 »

Comments

こんにちは

1つ質問です。
VCCに繋がっている非同期リセットのFFは必要なのでしょうか?

Posted by: mayarero | 2008.03.23 03:02 AM

mayareroさん。

筆者の意図としては、CLKとRESET_Xが非同期なのでメタステを避けています。
RESET_Xの変化と、CLKの立ち上がりが同時だった時の為の保険ですね。

Posted by: なつたん | 2008.03.23 11:39 PM

ありがとうございます。

D側がHIGH固定とはいえ、RESET_Xの値でQが決定するため、
メタステーブルに関して、通常のデータを受けるのと変わらないということですね。

Posted by: mayarero | 2008.03.24 01:23 AM

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference FPGAのリセット回路:

« FPGAで作るMath Function | Main | 今日の日記 »