控制时钟的相位、频率、占空比和抖动

控制时钟的相位、频率、占空比和抖动
本节提供了微调时钟特性的技术。
使用时钟修改块 ( MMCM PLL
用户可使用 MMCM PLL 修改输入时钟的总体特性。 MMCM 最常用于消除时钟的插入延迟(将时钟与输入系统同步
数据在相位上对齐),例如:
创建更加严格的相位控制。
滤除时钟中的抖动。
修改时钟频率。
纠正或更改时钟占空比
为正确使用 MMCM PLL ,必须协调多项属性,以确保 MMCM 在规范范围内工作,能够在输出端提供所需的时钟特
性。为此,赛灵思强烈建议使用 Clocking Wizard 来正确设置这一资源。
您还可以直接示例化 MMCM PLL ,这将提供妥善的控制。但是,请务必使用正确的设置,以避免出现下问题:
造成抖动增大,进而降低时钟可靠性。
建立不正确的相位关系。
提高时序收敛难度。
重要提示: 在使用 Clocking Wizard 设置 MMCM PLL 时,在默认条件下 Clocking Wizard 会出于低输出抖动目的,
使用合理的功耗特性设置 MMCM
根据您的目标,您可以更改时钟向导中的设置,以进一步最小化抖动,从而以更高功耗为代价改进时序。或者,您可
以降低功耗,但会增加输出抖动。
使用 MMCM PLL 时,请务必执行以下操作:
切勿让任何输入浮动。不建议靠综合工具或其它优化工具来锁定浮动值,因为它们锁定的值可能与所需的值有偏
差。
RST 连接到用户逻辑,以便可以由可靠的时钟源控制的逻辑来断言。如果时钟被中断,就会对 RST 接地造成问
题。
在执行复位时使用 LOCKED 输出。例如,保持从 PLL 复位的同步逻辑时钟,直到 LOCKED 置位。 LOCKED 信号在
用于设计同步部分之前需要同步。赛灵思建议将 LOCKED 添加到处理器映射,以便在调试时可见。
确认 CLKFBIN CLKBOUT 之间的连接。如果 PLL/MMCM 输出时钟需要与输入参考时钟进行相位对齐,例如使用
ZHOL 补偿模式时, BUFG 只需包含在反馈路径中。
要避免 UltraScale 器件中同步时钟域交汇路径上的 MMCM PLL 相位错误时序损失,请使用 BUFGCE_DIV 而不是
BUFGCE 。详情,请参阅 同步 CDC”
建议: 探索 Clocking Wizard 内的各种不同设置,可确保根据总体设计目标创建最合适的配置。
在时钟上使用 IDELAY 控制相位
对于 7 系列器件来说,如果只需要稍许调整相位,可以使用 IDELAY ODELAY (而非 MMCM PLL )添加额外的延
迟。这样可以增大时钟相对于任何相关数据的相位偏移。在使用 UltraScale 器件时,在输入时钟源上您不可使用
IDELAY 。因此,除非需要相位操纵器,赛灵思建议使用 MMCM
### DC-DC转换器中的抖动时间相位关系 在DC-DC转换器的设计中,抖动(jitter)是一个重要的性能指标。它通常指的是开关信号的时间不确定性或波动,这种不确定性电路的时钟源、反馈环路以及负载条件密切相关[^1]。 #### 抖动时间定义 抖动可以被分为随机抖动确定性抖动两种类型。随机抖动是由噪声引起的不可预测的变化,而确定性抖动则可能由电源纹波或其他周期性干扰引起。对于大多数应用而言,抖动的主要影响在于其可能导致输出电压不稳定或者效率降低。 #### 抖动相位的关系 抖动直接影响到PWM控制信号的占空比精度,进而改变实际工作频率相对于理想设定值的位置偏移情况。如果存在较大的抖动,则意味着每次切换操作发生的具体时刻会有差异,这会引入额外的谐波成分并增加EMI辐射水平。此外,在多相位配置下运行的大功率DC-DC变换器里,不同通道间同步不佳也会加剧总线电流脉冲串内的不规则现象。 #### 计算方法概述 为了量化这些效应,工程师们常采用统计学手段来评估均方根(RMS)抖动大小及其频谱分布特性。具体来说: - **RMS Jitter Calculation**: RMS jitter is calculated as the standard deviation of a series of measured edge positions over multiple cycles. \[ J_{\text{rms}} = \sqrt{\frac{1}{N}\sum_{i=1}^{N}(t_i-\bar{t})^2} \] - **Phase Noise Measurement**: Phase noise can be expressed in dBc/Hz at an offset frequency from carrier, which relates directly to timing jitter through Fourier transform properties. 以下是用于测量抖动的一个简单Python脚本示例: ```python import numpy as np def calculate_rms_jitter(edge_positions): mean_position = np.mean(edge_positions) squared_diffs = [(pos - mean_position)**2 for pos in edge_positions] rms_jitter = np.sqrt(np.mean(squared_diffs)) return rms_jitter edge_measurements = [0.1e-9, 0.15e-9, 0.08e-9, ... ] # Example data points (in seconds) print(f'RMS Jitter: {calculate_rms_jitter(edge_measurements)} s') ``` 此函数接收一系列边沿位置读数作为输入参数,并返回它们对应的均方根抖动数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值