进入IP Core的时钟,都不需要再手动添加约束吗

电子说

1.3w人已加入

描述

 在FPGA的时序约束中,主时钟约束是第一步就要做的,主时钟通常有两种情形:一种是时钟由外部时钟源提供,通过时钟引脚进入FPGA,该时钟引脚绑定的时钟为主时钟:另一种是高速收发器(GT)的时钟RXOUTCLK或TXOUTCLK。对于7系列FPGA,需要对GT的这两个时钟手工约束:对于UltraScale FPGA,只需对GT的输入时钟约束即可,Vivado会自动对这两个时钟约束。

  对于进入到IP Core(比如MMCM)的主时钟,只有我们在IP Core中指定了时钟频率,那么Vivado会自动产生一个约束文件来约束该输入的主时钟。

  我们以Vivado自带的wave_gen工程为例,该工程中输入一对差分的时钟信号,进入到MMCM中,我们无需再对这个主时钟添加约束。

Vivado

可以看到,综合后这个时钟已经被约束了:

Vivado

这是因为该ip生成的xdc文件中,已经包含了对这个主时钟的约束,如下图:

Vivado

所以很多同学可能误以为只要是进了IP Core的主时钟,都不需要再手动添加约束了。

  但如果收入的差分时钟先经过了IBUFDS,然后再以单独的形式进入了MMCM:

Vivado

综合后,可以看到该时钟是没有被约束的:

Vivado

此时由于输入时钟并非来自管脚,所以Source选择为Global Buffer

Vivado

再看刚刚的clk_core.xdc文件,已经没有产生主时钟的约束了:

Vivado

为什么会没有这个约束了呢?因为输入的时钟并非来自管脚,IP Core并不知道从哪个pin输入的,所以就无法添加主时钟的约束,此时就需要我们再手动添加约束。

审核编辑:符乾江

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分