今天综合的时候遇到一个问题:Sub-optimal placement for a clock-capable IO pin and MMCM pair. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. 这个问题我之前遇到过,是因为开发板上GC的IO和MMCM不在同一时钟域上导致的,适用vivado给出的方法临时implement完成,之后open implement看到MMCM和GC之间相差很远,而且插入的BUFG和MMCM也不在同一时钟域(这感觉很混乱,所以vivado给出的建议确实如建议所说可不建议按照建议那样去做)。以前的解决办法是DDR4手册上给出的直接使用
set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_pins -hier -filter {NAME =~ */
u_ddr4_infrastructure/gen_mmcme*.u_mmcme_adv_inst/CLKIN1}]
现在这个问题和DDR4没有关系。但是方法应该是类似,通过阅读DDR4手册知道使用使用BACKBONE的前提是在GC和MMCM之间插入BUFG,根据DDR4的经验,约束好MMCM的输入端就可以解决了,但是结果还是会这个错误。
在看DDR4手册,发现在介绍时提到了UG912文档,下载看了一下发现有专门讲解BACKBONE的部分,根据介绍发现BACKBONE只适用约束BUFG的输入端,经过修改可以正确编译完成了。
之后open implement之后发现GC、BUFG和MMCM之间相距很近并且位于同一时钟域下。
没有回复内容