版主: 51FPGA |
091217272
最后登陆时间:2015-01-13 22:12:51 |
作者:Sharad Sinha 把握DCM、PLL、PMCD 和MMCM 知识是稳健可靠的时钟设计策略的基础。 赛灵思在其FPGA 中提供了丰富的时钟资源,大多数设计人员在他们的FPGA 设计中或多或少都会用到。不过对FPGA设计新手来说, 什么时候用DCM、PLL、PMCD 和MMCM 四大类型中的哪一种,让他们颇为困惑。赛灵思现有的FPGA 中没有一款同时包含这四种资源(见表1)。
这四大类中的每一种都针对特定的应用。例如,数字时钟管理器(DCM)适用于实现延迟锁相环(DLL)、数字频率综合器、数字移相器或数字频谱扩展器。DCM 还是镜像、发送或再缓冲时钟信号的理想选择。另一种时钟资源相位匹配时钟分频器(PMCD) 可用于实现相位匹配分配时钟或相位匹配延迟时钟。 锁相环(PLL)和混合模式时钟管理器(MMCM)处理的工作有许多是相同的,比如频率综合、内外部时钟抖动滤波、时钟去歪斜等。这两种资源也可用于镜像、发送或再缓冲时钟信号。 在深思设计实现细节时,把这些通常用法记在心里,有助于理清时钟选择的思路。对于长期产品发展规划而言,在制定合适的时钟策略时,应考虑各个器件系列之间的兼容性。下面让我们深入了解一下这些时钟资源。 您可以使用DCM 将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。
数字时钟管理器 DLL 内含一个延迟元件和控制逻辑链路。延迟元件的输出是输入时钟延迟所得。延迟时间取决于延迟元件在延迟链路中的位置。这种延迟体现为针对原始时钟的相位改变或相移,这就是所谓的 “数字相移”。图1 所示的即为Virtex-4 器件中的典型DCM 模块。根据Virtex-4 FPGA 用户指南(UG070,2.6版本)的介绍,Virtex-4 中有三种不同的DCM 原语。
一般来说,DLL 与PLL 类似。但与PLL 不同的是DLL 不含压控振荡器(VCO)。PLL 会一直存储相位和频率信息,而DLL 只存储相位信息。因此,DLL 略比PLL 稳定。DLL 和PLL 这两种类型都可以使用模拟和数字技术设计,或者混合两种技术设计。但赛灵思器件中的DCM 采用全数字化设计。 由于DCM 可以在时钟路径上引入延迟,比如您就可使用DCM 可以精确地为DRAM 生成行和列访问选通信号的时序。与此类似,数据总线上的各个数据位可以在不同的时间到达。为了正确对数据位采样,接收端的时钟信号必须适当地与所有数据位的到达保持同步。如果接收器使用发射时钟,可能会要求延迟从发送端到接收端的时钟信号。 有时设计可能需要一个更高的时钟频率来运行FPGA 上的逻辑。但是,只有低频率输出的时钟源可以用。此时可以使用DCM 将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。这种技术称为“数字频率综合”。 设计人员使用扩频时钟并通过调制时钟信号来降低时钟信号的峰值电磁辐射。未经调制的时钟信号的峰值会产生高电磁辐射。但经调制后,电磁辐射被扩展到一系列时钟频率上,从而降低了所有频点的辐射。一般来说,如果需要满足一定的最大电磁辐射要求和在FPGA 上执行高速处理的时候(比如说通信系统中接收器使用的解串器),就需要使用扩频时钟。因此,FPGA 中的DCM 将乘以输入扩频时钟信号,在内部生成高频时钟信号。DCM 的输出必须准确地跟随扩频时钟,以保持相位和频率对齐并更新去歪斜和相移。DCM 相位和频率对齐的恶化会降低接收器的歪斜裕量。 建立时钟的镜像需要将时钟信号送出FPGA 器件,然后又将它接收回来。可以使用这种方法为多种器件的板级时钟信号去歪斜。DCM 能够把时钟信号从FPGA 发送到另一个器件。这是因为FPGA 的输入时钟信号不能直接路由到输出引脚,没有这样的路由路径可用。如果仅需要发送时钟信号,那么使用DCM 将时钟信号发送到输出引脚,可以确保信号的保真度。另外也可选择在时钟信号发送之前,将DCM 输出连接到ODDR 触发器。当然也可以选择不使用DCM,仅使用ODDR 来发送时钟信号。往往时钟驱动器需要将时钟信号驱动到设计的多个组件。这会增大时钟驱动器的负荷,导致出现时钟歪斜及其它问题。在这种情况下,需要采用时钟缓冲来平衡负载。 时钟可以连接到FPGA 上的一系列逻辑块上。为确保时钟信号在远离时钟源的寄存器上有合适的上升和下降时间(从而将输入输出时延控制在允许的范围内),需要在时钟驱动器和负载之间插入时钟缓冲器。DCM 可用作时钟输入引脚和逻辑块之间的时钟缓冲器。 最后,还可以使用DCM 将输入时钟信号转换为差分I/O 标准信号。例如,DCM 可以将输入的LVTTL 时钟信号转换为LVDS 时钟信号发送出去。
相位匹配时钟分频器 由于DCM 还负责处理去歪斜,因此只要不需要去歪斜时钟,设计人员就可以使用不带DCM 的PMCD。通过专用引脚,还可以把一列中的两个PMCD连接起来。图2 是Virtex-4 器件中的PMCD 原语。详细内容请参阅Virtex-4FPGA 用户指南(UG070,2.6 版本)。
混合模式时钟管理器 Virtex-6 FPGA 中的MMCM 要求插入一个校准电路,以便在用户复位或用户断电后确保MMCM 正确运行。赛灵思ISE 设计套件11.5 版本及更高版本能够在设计的MAP 阶段自动插入必要的校准电路。若使用赛灵思ISE 的更早版本,则需要使用赛灵思技术支持部提供的设计文件手动插入校准电路。最后需要注意的是,在本移植该设计,以便用ISE11.5 版本或更高版本实现时,必须手动移除校准电路,或通过适当设置每个MMCM 上的综合属性,禁用自动插入功能。详细介绍请参阅赛灵思答复记录AR#33849。 对7 系列器件中的MMCM 就不存在这样的问题,因为这些FPGA 只得到ISE 13.1 版本和更高版本以及新型Vivado 设计套件的支持。Virtex-6 系列中提供的MMCM 间专用走线可便于用户将全局时钟资源用于设计的其余部分。 图3 显示了Virtex-6 FPGA 中的MMCM 原语。各个端口的详细介绍请参阅Virtex-6 FPGA 时钟资源用户指南(UG362,2.1 版本)。图4 显示了赛灵思7 系列FPGA 中的MMCM 原语,有关详细介绍请参阅7 系列FPGA 时钟资源用户指南(UG472,1.5 版本)。
锁相环 同时,7 系列器件中的PLL 所实现的功能没有MMCM 所实现的多。因此虽然MMCM 是建立在PLL 架构之上,但7 系列器件中也有独立的PLL。图5显示了Virtex-5 FPGA 中的PLL 原语。各个端口的详细介绍请参阅Virtex-5 用户指南(UG190,5.4 版本)。
设计移植 在规划未来设计向更高端系列移植时,除了确保功能,为给定设计选择正确的时钟资源也很重要。如表1 所示,Virtex-6 和7 系列中的MMCM 能够与之前系列中的DCM 向后兼容。但需要判断在多大程度上支持向后兼容性,因为所有这些时钟资源都具有多功能性,提供与时钟相关的多种不同功能。在制定产品长期发展规划时,必须对兼容性了如指掌。
如需了解Sharad Sinha 的更多情况,敬请访问他的博客: http://sharadsinha. |
共1条 1/1 1 |