在 FPGA 中使用 PLL

电器工程 FPGA pll
2022-01-29 20:00:48

一份文件指出:

锁相环 (PLL) 为器件时钟管理、外部系统时钟管理和 I/O 接口时钟提供强大的时钟管理和综合。

您可以按如下方式使用 PLL:

  • 零延迟缓冲器
  • 抖动衰减器
  • 低偏移扇出缓冲器
  • 频率合成器*
  • 减少板上所需的振荡器数量*
  • 通过从单个参考时钟源合成多个时钟频率来减少器件中使用的时钟引脚*
  • 片上时钟校正
  • 动态相移
  • 计数器重新配置
  • 带宽重新配置
  • 可编程输出占空比
  • 锁相环级联*
  • 参考时钟切换
  • 驱动模数转换器 (ADC) 时钟*

我只使用 PLL 来生成更多时钟。出于这个原因,我确实理解标有的用途。然而,其余的我完全不知道。它们是什么意思,为什么我需要使用它们中的任何一个?

1个回答

其他用例/模式的一些额外描述可能会有所帮助。

• 零延迟缓冲器

零延迟缓冲器是输出时钟的相位和输入时钟的相位相同的地方。通过使用反馈网络,可以使合成输出时钟(例如到 IO 引脚)与输入时钟引脚的相位完全匹配。例如,这对于创建用于反序列化的高速时钟很有用。

• 抖动衰减器

抖动基本上是时钟边沿转换时间的不准确。例如,由于阈值电压或温度变化,您的时钟有时可能有 100ns 的周期,但在其他周期中可能是 99.99ns 或 100.01ns。

对于模拟/数字转换,抖动特别糟糕,因为它会减少有效位数。

可以使用 PLL 通过有效地充当窄带宽滤波器来减少时钟信号中的抖动量。尽管在其他情况下,PLL 引入的抖动比它们减少的抖动多。

• 低偏移扇出缓冲器

您可能需要创建多个时钟信号,例如,馈送到多个转换器设备,或驱动多个收发器。理想情况下,这些应该彼此同相 - 即具有低偏斜。您可以单独对多个输出时钟进行相移,以消除由传播延迟引起的偏移。

• 片上时钟校正

与上述相同,但为了补偿芯片内的布线延迟 - 逻辑的某些部分可能比其他部分更远,或者具有较长的延迟路径,因此制作具有轻微相移的多个同步时钟信号以补偿偏移是有用的.

• 动态相移

例如,为了对齐传入的串行数据流,您可能需要在运行中调整时钟信号的相移,作为链路训练过程的一部分。

• 计数器重新配置

PLL 计数器用于生成输出时钟 - 您可能有乘法和除法计数器以允许生成小数时钟频率。

能够重新配置这些计数器允许您动态更改频率。

• 带宽重新配置

有时您可能需要一个频率的参考时钟,例如 100MHz。其他时候你可能想要别的东西,比如 125MHz。您可以调整 VCO 滤波器的带宽以应对不同的频率范围。

• 可编程输出占空比

有时 50% 占空比时钟没有帮助 - 例如在 SERDES 硬件中,您可能需要一个仅在一个位周期内为高电平的锁存时钟(例如,对于 8 位 serdes,12.5% 占空比可能会有所帮助)。

• 参考时钟切换

您可能有来自某个外部源(例如 PCIe 参考时钟)的主时钟信号。如果失败或断开连接,有时有一个备用参考时钟很有用,您可以切换它以允许您继续运行。

或者,特别是对于测试设备,您可能有一个内部 10MHz 参考时钟,但要与其他设备同步,希望能够动态切换到外部参考。