
こんにちは、トットです。
前回の比較編では、非期式カウンタは、全ビット同じタイミングで変化していませんでした。
なぜ全ビット同じタイミングで変化しないのでしょうか?
全ビット同じタイミングで変化しない原因
原因は、各レジスタの入力クロック・エッジが異なるためです。
レジスタのクロック入力に到達するまでの時間がそれぞれ異なります。
-
レジスタ 1 へのクロック遅延=入力クロック・ピンからの配線遅延
-
レジスタ 2 へのクロック遅延=レジスタ 1 の tco+配線遅延
-
レジスタ 3 へのクロック遅延=レジスタ 2 の tco+配線遅延
*tco は、レジスタにクロックが入ってからデータを出すまでの時間

各レジスタの tco は、デバイスによって固定値となっています。
配線による遅延
下記図2 は、FPGA デバイスの内部構造のイメージ図です。

非同期式カウンタ(図1) の回路がFPGAデバイス上において、どこに配置されるか、どの配線が使われるかはコンパイルに依存します。
非同期式カウンタはレジスタの出力が、次のレジスタのクロックとなっているので、配線の状態により、クロック遅延が異なります。
以上が、非期式カウンタのデータ変化点が各ビット異なるタイミングとなった理由です。