跳转到内容

时钟和数据恢复/缓冲内存(弹性缓冲器)

来自维基教科书,开放的书籍,开放的世界

CDR 功能主要是一个第 1 层功能,从OSI 参考模型的角度来看。

电信缓冲器 是一种专门用于电信应用的数据缓冲器

在 CDR 应用的范围内,电信缓冲器进一步专门化,仅仅是在串行数据流中添加一个方便的延迟。

原则上,这种缓冲器由一个具有循环顺序地址的读/写内存和两个计数器组成。

添加延迟的电信缓冲器的示例。
(对于大约 32 位的内存大小,内存结构可以像移位寄存器一样简单。如果更大,则实现为内存库)

写入计数器对传入的串行信息流的写入到内存进行计时,读取计数器依次设置读取操作的计时。

弹性缓冲器

[编辑 | 编辑源代码]

通常,缓冲内存可用于吸收延迟或仅延迟变化(漂移和/或抖动),这些变化由通过物理介质传输、软件精细化或其他类型的延迟产生。

如果缓冲器旨在吸收由于沿传输路径传输而产生的延迟变化(即:设计为吸收漂移和/或抖动),

那么它的大小以字节(或位)计较小,

写入和读取时钟之间相位关系的控制更加精确,

并且它的名称专门称为“弹性缓冲器”。

一个加法器比较两个计数器的内容,计算两者之间的差异。

它的输出指示两个时钟信号的相对相位,与PLL 的相位比较器的输出非常相似。

在系统启动时,写入计数器设置为 0,读取计数器设置为内存深度的一半。
如果读取计数器的初始值设置为小于内存深度的一半,那么可能不会使用整个内存,并且通过弹性缓冲器的传输延迟可能更短。
当缓冲器深度较小时(几个位或几个字节),弹性缓冲器可以只是一个移位寄存器,它
- (使用写入时钟)写入第一个触发器;
- (使用读取时钟)从对应于读取到写入时钟之间的延迟(以周期数计)的寄存器中读取。

弹性缓冲器随时间运行的操作在下图中进行了草图描绘

弹性缓冲器运行的时间图。

传入脉冲流中转换的延迟(=相位)相对于平均传输延迟是抖动的。

缓冲器添加一个互补延迟,以便抖动延迟加上缓冲器延迟在任何时候都是一个恒定量。

缓冲器深度(=寄存器长度)等于预期的最大峰峰值抖动(再加上一些裕度)。

在时间图中,弹性缓冲器添加的延迟是一条曲线,垂直镜像了传入脉冲流转换的抖动(=延迟)。

镜像位于等于平均传输延迟(再加上一些小的裕度)的延迟处。

相位对准器

[编辑 | 编辑源代码]

弹性缓冲器的一种特殊情况是“相位对准器”。

相位对准器是在单个时钟域内使用的弹性缓冲器。恢复写入时钟的 CDR 通常实现为1 阶 PLL
一个更正式的定义,不提在单个时钟域内运行,可以是
相位对准器是一个缓冲内存,它移动接收信号的相位,使其与参考时钟的相位匹配。.
在某些应用中,相位对准器可以定义为包含恢复写入时钟的 CDR(更宽泛的定义),也可以不包含(更严格的定义),这将在下一页中看到。
在一些特殊情况下,它可以被定义为在级联到恢复写入时钟的 CDR 的情况下实现 CDR 功能本身(去抖动器)
华夏公益教科书