4

フリップフロップには既に 1 つあるが、もう 1 つは追加のロジックが必要になるため、非同期リセットまたは同期リセットのいずれかがより効率的に FPGA に実装されることを少し前に読んだことを覚えています。

これがどちらの方向か知っている人はいますか?これは、Xilinx、Altera、その他でも同じですか..

学習するときは、念のため、すべての FSM に非同期クリアと同期リセットを追加していました。これには何かメリットがありますか?

フィードバックをお寄せいただきありがとうございます。

4

3 に答える 3

6

質問に直接答えるために-ほとんどのFPGAは、最近、フリップフロップで同期または非同期リセットを実行できます。非同期クリアと同期レストを追加するという点では、これによって何が達成されたかはわかりません-デザインの機能に必要な信号を追加してください(一部のフロップではリセットをまったく含まない可能性があります...)

さらにアドバイス...非同期リセットを使用する場合は、アサートを解除するときに十分注意してください。デバイス全体でこの「遅い」ネットに大きな偏りがある場合は、一部のフロップが他のフロップとは異なるクロックサイクルでリセットされることがあります。カオスが続く!

これを回避するために、外部(およびおそらく非常に非同期)のリセット信号を受け取り、それをクロックに同期させ、リセットしたいすべてのフロップに同期リセットとしてフィードするトップレベルブロックを作成することをお勧めします(そのクロックドメインで-あなた複数必要になる場合があります)。次に、タイミングアナライザは、スキューがデバイスに大きすぎるかどうかを通知し、すべてが一度にリセットから解除されることを確認します。

ザイリンクスにはこのテーマに関するホワイトペーパーがありますが、他のFPGAにも同様に適用されます。

一部のアプリケーションでは、特定の外部デバイスが必要な方法で動作することを保証するために、IOで非同期的にアサートされたリセットが必要になる場合がありますが、それでも同期的にアサート解除されます。

(PS。FPGAについて言及しているように、気付いていない場合は、プログラマブルロジックに関連するスタック交換の提案があります。http://area51.stackexchange.com/proposals/20632/

于 2010-12-14T11:44:18.233 に答える
2

ザイリンクスの公式の立場は、同期リセットを使用することです。これは、上記の投稿でも言及されているこのホワイトペーパーで説明されています。メモリコントローラなど、ソースコードに付属するすべてのザイリンクスIPコアは、同期リセットを使用します。

私のチームはさまざまな設計を試しましたが、ロジック使用率の向上という観点から同期リセットを使用する利点はごくわずかであることがわかりました。

非同期リセットを使用する最大の利点は、ビルドランタイムが高速になることです。これは、大規模な設計にとって重要です。その理由は、非同期リセットパスが同期タイミング制約によってカバーされていないためです(必要に応じて、個別の制約を追加することでそれらをカバーできます)。

于 2010-12-22T00:13:24.057 に答える
2

最善の策は、特定の FPGA ベンダーのドキュメントとホワイト ペーパーを参照することです。私が関わったプロの設計チームのほとんどでは、最大限の制御を維持するために非同期リセットを使用していました。ただし、同期リセットと非同期リセットのどちらを選択するかは、設計とアプリケーションによって異なります。

ところで、Sunburst Design からのリセットのトピックに関するこの論文が興味深いと思われるかもしれません。主に ASIC 設計と Verilog を扱いますが、一般的なリセットの決定を理解するのに役立ちます。

于 2010-12-14T10:09:29.677 に答える