赛灵思
直播中

乔占宽

7年用户 186经验值
私信 关注
[问答]

Virtex 5 FX70T BUFGCTRL组件切换限制失败约束的原因?

设计工具:ISE 11.4
FPGA:xc5vfx70t-2ff1136
查看Virtex 5 FPGA(ds202)的数据手册,我看到BUFG(包括BUFGCTRL)的FMAX为667 MHz。
当我为600 MHz的BUFGMUX_CTRL的输入时钟指定时间约束时,我得到组件切换限制的失败约束,这似乎告诉我通过BUFGCTRL可以发送的最大频率是400 MHz。
Virtex 5用户指南(UG190(v5.4))似乎表明BUFGMUX_CTRL基于BUFGCTRL,这是有道理的。
该设计使用600 MHz时钟,但定时误差有关。
我有几个想法,但没有办法证明或反驳他们:
1. ISE 11.4可能有一个错误,它报告了BUFGCTRL错误的MINPERIOD限制,失败的约束不是真的吗?
2.由于某些原因,BUFGMUX_CTRL实际上与BUFGCTRL没有相同的FMAX,最大值为400 MHz?
我做错了什么?
我尝试用BUFG替换BUFGMUX_CTRL以查看错误是否消失,它确实(组件切换限制失败约束),但后来我在其他地方得到了一些SETUP错误。
我错过了什么?
ISE可能有错误吗?
提前感谢您的意见。
时序报告输出如下:
组件切换限制检查:NET“EM1_Dds1ClkOut_nobuf”PERIOD = 1.66666667 ns HIGH 50%; ---------------------------------
----------------------------------------------- Slack: -
0.834ns(周期 - 最小周期限制)周期:1.666ns最小周期限制:2.500ns(400.000MHz)(Tbcper_I)物理资源:HR_MODULE1_C / TX_CLK_OUT_BUFG / I0逻辑资源:HR_MODULE1_C / TX_CLK_OUT_BUFG / I0定位引脚:BUFGCTRL_X0Y27.I0时钟网络
:HR_MODULE1_C / TxInternalClk ----------------------------------------------
----------------------------------松弛:-0.834ns(期间 - 最小期限)期间:1.666ns
最小周期限制:2.500ns(400.000MHz)(Tbcper_I)物理资源:HR_MODULE1_C / TX_CLK_OUT_BUFG / I1逻辑资源:HR_MODULE1_C / TX_CLK_OUT_BUFG / I1定位引脚:BUFGCTRL_X0Y27.I1时钟网络:EM1_Dds1ClkOut_nobuf -----------
--------------------------------------------------
-------------------松弛:0.848ns(周期 - (最小脉冲下限/(低脉冲/周期)))周期:1.666ns低脉冲:0.833ns
低脉冲限制:0.409ns(Tcl)物理资源:HR_MODULE1_C / SERDES_C / GEN_TX_DDS_1.TX_DDS_CONTROL / DdsClkVect / CLK逻辑资源:HR_MODULE1_C / SERDES_C / GEN_TX_DDS_1.TX_DDS_CONTROL / DdsClkVect_1 / CK定位引脚:SLICE_X33Y105.CLK时钟网络:EM1_Dds1ClkOut_nobuf

回帖(5)

张晶晶

2020-6-19 13:33:41
嗨,
数据表值非常完美,违规也是如此。
请参阅DS202表71。
我希望你从你提到的快照中使用-1速度等级。
对于FX70T,BUFGCTRL被称为0.25ns,它只是400MHz,但BUFG FMAX直接指定为600MHz。
由于过度约束,预计脉冲宽度超过1.666ns。
脉冲宽度违规表明不满足硅水平要求。
正如你自己所说,在使用BUFG脉冲宽度违规解决后更换,这也是预期的,因为它具有不同的原始级别要求。
关于你的观点:该设计适用于600 MHz时钟,但定时误差很重要。
& I我尝试用BUFG替换BUFGMUX_CTRL以查看错误是否消失,并且确实(组件切换限制失败约束),但在其他地方我得到了许多SETUP错误。
没有BUG也没有违规行为,他们在他们的地方是正确的。
设置违规是存在的,因为那些数据路径(或者可能只是累积的原始级别延迟)它自己超过了1.6ns的周期要求,即你的时钟周期的1个时钟周期。
如果它仅超过累积的原始级别延迟,那么就不可能通过工具来满足,并且需要进行RTL修改。
如果是数据路径延迟(即原始延迟+路由),那么您可以为它做一些事情。
谢谢,佳日
在原帖中查看解决方案
举报

张晶晶

2020-6-19 13:53:07
嗨,
数据表值非常完美,违规也是如此。
请参阅DS202表71。
我希望你从你提到的快照中使用-1速度等级。
对于FX70T,BUFGCTRL被称为0.25ns,它只是400MHz,但BUFG FMAX直接指定为600MHz。
由于过度约束,预计脉冲宽度超过1.666ns。
脉冲宽度违规表明不满足硅水平要求。
正如你自己所说,在使用BUFG脉冲宽度违规解决后更换,这也是预期的,因为它具有不同的原始级别要求。
关于你的观点:该设计适用于600 MHz时钟,但定时误差很重要。
& I我尝试用BUFG替换BUFGMUX_CTRL以查看错误是否消失,并且确实(组件切换限制失败约束),但在其他地方我得到了许多SETUP错误。
没有BUG也没有违规行为,他们在他们的地方是正确的。
设置违规是存在的,因为那些数据路径(或者可能只是累积的原始级别延迟)它自己超过了1.6ns的周期要求,即你的时钟周期的1个时钟周期。
如果它仅超过累积的原始级别延迟,那么就不可能通过工具来满足,并且需要进行RTL修改。
如果是数据路径延迟(即原始延迟+路由),那么您可以为它做一些事情。
谢谢,佳日
举报

徐昕

2020-6-19 14:12:11
谢谢Yash!
所以我误解了DS202表71,假设BUFGCTRL应该具有与BUFG相同的FMAX。
在用BUFG替换BUFGCTRL时,您的反应是有道理的。
我想我之前看到的是你所指的并且错过了。
-1的0.25 ns是BUFGCTRL从输入到输出的延迟。
这基本上是400 MHz限制的来源。
然而,我正在使用-2速度等级部件,并且具有ISE项目导航器中指定的速度等级。
这应该给我一个0.22 ns的延迟,这将略高于400 MHz,但对于我的600 MHz时钟仍然不够。
不知道为什么工具说明400 MHz是极限,但我认为这对我来说不重要。
切换到BUFG可能是我需要解决的问题,而不是使用BUFGCTRL。
我将研究如何纠正采用这种方法时出现的时序问题。
举报

张晶晶

2020-6-19 14:30:09
很高兴知道,提供的信息很有帮助。如果你得到了你想要的东西,请通过将接受标记为解决方案来关闭线程。关于设置的时间违规,如果你需要任何帮助,请分享报告以便我可以分析路径
并为您提供进一步的建议。
最好在Timing forum中为它创建新的线程。谢谢,Yash
举报

更多回帖

发帖
×
20
完善资料,
赚取积分