リセットについての考察 のバックアップ(No.1)

更新


公開メモ

リセット信号の扱い

FPGA 開発を始めた当初(半年前くらい?)、 リセット信号の取り扱いについてあまり深く考えておらず、 「何となくリセットが掛かりそうな回路」を書いて満足していました。

しかし、レーシングなどについて勉強してからよく考えてみると、 リセットには慎重な扱いが必要であることが分かってきて、 ここらで一度考え直そうと思い立ちました。

参考にした内容

同期リセットと非同期リセット

良く知られるように、リセット信号を持つ回路の構成方法には、 非同期リセットと同期リセットがあって、 たとえば ISE の Language Template にも両方の形が収録されています。

同期リセットと非同期リセットのどちらが回路規模的にお得かは、 ASIC に実装するか、どのメーカの FPGA に実装するか、などにより、 かわってくるそうです。

ASIC などではリセットを使う回路と使わない回路とでは実際にゲート1つ分の 回路規模と遅延が差として現れるため、どのラッチにリセットを付けて、 どこに付けないかは、回路規模およびパフォーマンスに直に効いてきます。

これに対して Xilinx の FPGA では全てのラッチに同期リセットあるいは 非同期リセット用に使える SET/RESET (FDRSE: 同期) および PRE/CLR (FDCPE: 非同期) 入力が備わってますので、ここに直接リセット信号を繋ぐ限り、 演算器の回路規模や回路遅延への悪影響はありません。 (もちろんリセットネットの配線リソースは消費します)

[添付]


Counter: 57332 (from 2010/06/03), today: 2, yesterday: 0