同期なクロックと非同期なクロック

[] [] []


「クロックが同時である」を2つのクロックのFF間転送に拡張して、2つのクロックの時間差が管理されているとき「同期している」と言い、管理されていないとき「非同期である」と言う

2つのオシレータから作られたクロックはもともと時間差があり、また周期が異なるので時間差自体もだんだん変化していくので、非同期である。

では1つのオシレータ(発振源)から作られたクロックは同期しているかというと、そうとは限らない

例1)clk2分周してclk_halfを作ると、clk_halfclkより少し遅れるので、clk_halfFFからclkFFへの転送は同期と見なせるが、逆の転送はホールドタイムを確保するのが厳しく、同期しているとは見なせない。

FPGAではPLLで分周・逓倍できるようになっており、PLLの出力クロック同士は同期しているとして扱える。

例2)clkの反転~clkを作ると、clkFFから~clkFFへの転送も、逆の転送もduty50%に管理されていれば2つのクロックは同期していると見なしてよいが、立ち上がりと立ち下がりとで遅延が異なるバッファを通したりしてduty50%から大きく外れるようだと、同期しているとは見なせない。

例3)別々のデバイス、基板、装置間の転送では、何も考えずにクロックを分配していると同期とは見なせない。FPGA1FPGA2FFクロック端子での時間差がいくら、と管理されていれば同期と見なせる。


[] [] []