AR# 6905

12.1 约束 -如何在 DLL/DCM/PLL/MMCM上 应用 PERIOD 约束?

描述


如何使用 DLL, PLL, DCM, 或 MMCM 应用 PERIOD 时序规范?
如需了解更多信息,敬请查看 (Xilinx 答复 2586)

解决方案


当 TNM_NET 属性可跟踪至 DLL、PLL、DCM 或 MMCM 组件的 CLKIN 引脚时,就需要检查 TNM 组及其用法。只有在满足下列条件的情况下,TNM 才会被穿越 CLKDLL:
- TNM 组名只在一个 PERIOD 规范中正确使用。
-任何 FROM:TO 或 OFFSET 规范中都没有使用 TNM 组名。
-任何用户组定义中都没有引用 TNM 组名。
如果任何一个上述条件未满足,TNM 就不会穿越 DCM/PLL/DLL,则会显示下列错误消息:
“ERROR:NgdHelpers:702 – TNM “PAD_CLK”驱动 CLKDLL 的 CLKIN 引脚“$I1”。该 TNM 不能贯穿 CLKDLL/DCM/PLL 跟踪,因为它不是只由一个 PERIOD 规范使用的。该 TNM 可用于下列用户组和/或规范:
TS_PAD_CLK=PERIOD PAD_CLK 20000.000000 pS HIGH 50.000000%
TS_01=FROM PAD_CLK TO PADS 20000.000000 pS"
如果满足上述条件,会检查 DCM/PLL/DLL/MMCM 上的每个时钟输出引脚,查看是否连接到至少有一个其它连接的网络(即不是悬空网络)。如果输出引脚有一个网络,就会在这个网络上创建一个新的 TNM 组,然后会为这个组创建新的 PERIOD 规范。新规范从原始 PERIOD 规范复制,然后进行下列修改。
针对下列输出引脚修改 PERIOD 规范
CLK0:参见以下说明。
CLK90: 查看以下说明。
CLK180: 查看以下说明。
CLK270: 查看以下说明。
CLK2X:PERIOD 值翻倍(如果原本表达为频率)或减半(如果原本表达为延迟)。此外,占空比也将调整到 50%。
CLKDV:用 CLKDV_DIVIDE 属性中的值除以(如果是频率)或乘以(如果是延迟)PERIOD 值。如果在 CLKDLL 上没有发现该属性,可使用默认值 2.0。此外,占空比也调整到 50%。
注:如果在 CLKDLL 上发现 DUTY_CYCLE_CORRECTION=TRUE 属性,占空比调整到 50%。如果发现 DUTY_CYCLE_CORRECTION=FALSE,占空比保持原始 PERIOD 规范中的值。如果没有发现 DUTY_CYCLE_CORRECTION 属性,使用 TRUE 的默认值。
如果原始的 TNM_NET 属性只用在 CLKDLL CLKIN 引脚(即它不通过 CLKDLL 就不会跟踪到任何合适的元),应从设计中删除原始的 TNM 组和原始的 PERIOD 规范。
如果新创建的 TNM 组从一个 CLKDLL 的输出推出,进入第二个 CLKDLL 的 CLKIN 输入(比如 4 倍配置的情况),需要重复上述过程,从而进一步根据第二个 CLKDLL 的行为调整 PERIOD 规范。如果为第一个 CLKDLL 创建的组只跟踪到第二个 CLKDLL,该组及其 PERIOD 规范将不再需要,应该删除。
如欲了解有关通过 CLKDLL 跟踪属性的更多详情,敬请参考“约束指南”:
http://china.xilinx.com/support/software_manuals.htm
如欲了解有关时序约束的更多详情,敬请阅读“时序约束用户指南”:http://china.xilinx.com/support/documentation/sw_manuals/xilinx12_1/ug612.pdf
AR# 6905
日期 04/10/2014
状态 Active
Type 综合文章
Tools More Less