IBUFGというコンポーネントがあるが、IBUFGとBUFGは全く別物で、IBUFGの出力はBUFGの出力(グローバルクロック)にはならないようだ。 つまり、 IBUFG≠IBUF+BUFG である。 少なくとも、Spartan2とSpartan3とVirtex2Proではそうなった。 なぜこんなことが気になったかというと、CoregenでDCMを合成すると、CLKIN_IBUFG_OUTとCLK0_OUTという同じ周波数の2つの出力が作られる。 ここで、CLK0_OUTを使っていればよかったのだが、CLKIN_IBUFG_OUTを使ってしまった。 そして次の図のような回路を組んだときに、下側の青いクロックで組んだ回路のスキューが非常に大きく、ハマったからである。(ハマりの詳細については前回と前々回を参照) このとき、FPGA内で使用されるグローバルクロックは、上の図の赤い線の部分の2つの
