感谢 anothertwo 整理 在 Spartan-3 FPGA 中使用 DCM 在 Spartan-3 FPGA 中使用 DCM(Using Digital Clock Managers (DCMs) in Spartan-3 FPGAs) DCM 主要功能 1. 分频倍频:DCM 可以将输入时钟进行 multiply或者 divide,从而得到新的输出时钟。 2. 去 skew:DCM 还可以消除 clock 的 skew,所谓 skew 就是由于传输引起的同一时钟到达不同地点的延迟差。 3. 相移:DCM 还可以实现对输入时钟的相移输出,这个相移一般是时钟周期的一个分数。 4. 全局时钟:DCM 和 FPGA 内部的全局时钟分配网络紧密结合,因此性能优异。 5. 电平转换:通过 DCM,可以输出不同电平标准的时钟。 DCM 的特点与能力(Spartan-3 系列为例) 数量:4 DCM / FPGA(也有例外) -- 应该够用了 数字频率综合器输入(CLKIN):1-280MHz 延迟锁相环输入(CLKIN):18-280MHz 时钟输入源(CLKIN): Global buffer input pad Global buffer output General-purpose I/O (no deskew) Internal logic (no deskew) -- 上面最后两个分别是外部的普通 IO 口和内部的逻辑,没有 deskew,所以时钟质量不会很好。 频率综合器输出(CLKFX、CLKFX180):是 CLKIN 的 M/D 倍,其中 M=2..32 D=1..32 -- 这样看来最大能倍频 32 倍,最小能 16 分频。 时钟 dividor 输出(CLKDV):是 CLKIN 的下列分频 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15, or 16 -- 发现没有,最大的分频也是 16。不过能支持半分频,比用频率综合器方便。 倍频输出(CLK2X、CLK2X180):CLKIN 的 2 倍频 时钟 conditioning、占空比调整:这个对所有时钟输出都施加,占空比为 50%。 1/4 周期相移输出(CLK0/90/180/270):是 CLKIN 的 1/4 周期相移输出。 半周期相移输出(CLK0/180、CLK2X/180、CLKFX/180):相差为 180 度的成对时钟输出。 相移精度:最高精度为时钟周期的 1/256。 时钟输出:9 个 到全局时钟网的时钟输出:最多 9 个中的 4 个 到 General purpose 互联:最多 9 个 到输出脚:最多 9 个 -- 可见 9 个时钟输出可以随意链接内部信号或者外部输出,但是进入全局时钟网的路径最多只有 4 个。 DCM 的位置在哪? 我们以Spartan3 系列为例...