FC2カウンター FPGAの部屋 FPGAのリセット
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

FPGAのリセット

hypermacさんからFPGAのリセットの方法についてコメントがあったが、私はリセットについては余り考えていなかった。うちのボードのリセット方法については、”うちのボードのリセット回路とFPGAのコンフィギュレーション”を見てください。
ModelSimでリセットしないと不定になるので、非同期リセットを必ずつけて、シミュレーションしていたし、そのリセットを外部から制御して非同期リセットにしていた。
同期リセットにしない理由のひとつは、水晶発信器も発振開始時間があって、電源ONからすぐに安定して動かないことだ。例えば、使用しているEG-2121CAは10ms だ。この時間は発振が安定する保証はないから、同期リセットをアサートしていても安定するとは限らない。ステートマシンも不正ステートに行っているも知れないので、同期リセットをつけるとすると回路規模が大きくなってしまう。
うちでは、製品じゃないので、リセットしてだめだったら再立ち上げすれば良い。頻繁にだめにならないのだったら、それでOKということで非同期リセットにしている。
一応、リセットの外れるタイミングの違いは気にはしていて、非同期リセットラインの遅延の差をFPGA Editorで確認はしていた。その結果は、V2pro(xc2vp30-6ff896)では大体2.?ns~3.9ns 位の間に収まっているようだ。一度も非同期リセットの関連ではおかしくなったことはない。(気がついてないだけかもしれないけども。。。)おかしくなったら考えようと思っている。
とりあえず、うちはこれで良いと思っている。下はリセットラインのFPGA EditorのWorldの図。
logic_reset_071207.png


もしやるとしたら、こうするかも? DFFを2段くらいにしておいて、そのDFFの非同期リセット端子または非同期セット端子に外部からの非同期リセットを入れておく。そのDFFのD入力に外部からの非同期リセットを入れて、2段目のDFFの出力でその他の回路を非同期リセット。非同期リセットのネットには遅延の制約をかけておく。 果たしてうまくいくでしょうか?
  1. 2007年12月07日 19:23 |
  2. FPGAのリセットについて
  3. | トラックバック:0
  4. | コメント:2

コメント

marseeさん、こんばんは
なんか記事を書いて下さいましてお手数掛けてしまいました。
恐縮しています。リセットは以前にXcelljournal日本語版55号(2005年版)の14ページ「デザインパフォーマンス向上のためのHDLコーディング法」という記事に「パフォーマンスやエリア、消費電力に大きな影響を及ぼすのはリセット」と書かれていたことがありました。それを読んだときも「やはり非同期はNGなんだな」と改めて認識したのです。理由はLUTがSRLレジスタとして使用されれば高速レジスタとして使えるが、リセットを入れるとSRLレジスタが使われないからとありました。しかし非同期リセットの扱い方を間違えなければ同期にしてやたら配線を増やすよりは良いかもしれませんね。

今度、挑戦してみます。
いろいろありがとうございました。
  1. 2007/12/08(土) 20:39:32 |
  2. URL |
  3. hypermac #-
  4. [ 編集 ]

hypermacさん、こんばんは。
Xcelljournal日本語版55号(2005年版)の14ページ「デザインパフォーマンス向上のためのHDLコーディング法」の最初の話は、HDLでRAMやシフトレジスタを書いたときの論理合成ツールの推論の話ですね。
これは私は論理合成ツールに推論させることはないので、大丈夫そうです。直接、SRL16とかBRAMをインスタンシエーションしています。
次のSLICE内のFFの同期リセットを使う方法は良さそうですね。このFFが同期リセットになるとすると、回路規模を増やさずに同期リセットが出来そうですね。もう少し、検証してみようと思います。
教えていただいてありがとうございました。
  1. 2007/12/08(土) 21:25:06 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/675-cec3ab79
この記事にトラックバックする(FC2ブログユーザー)