因硬件改动,程序中需要时钟更多时钟资源,去除了部分BUFG,修改后编译报错。经过分析,发现在一个时钟区域内,
输入了两对差分时钟,经过IBUFGDS后,均需要输入到MMCME,由于一个时钟区域内只有一个MMCME,所以软件编译时,
自动分配了另外一个时钟区域的MMCME,但是该MMCME位于芯片的另外半边,导致报错。于是在报错的IBFGDS与MMCME
之间增加了一个BUFG进行缓冲,编译正常通过。
以xilinx 7系列芯片为例,补充芯片的时钟资源说明如下:
1、从V7芯片布局布线图可以看到,V7分为X0Y0~X0Y9和X1Y0~X1Y9共20个时钟区域,每个区域中有一个MMCME;
2、V7芯片的时钟资源由Horizontal Center分为上下两部分,在芯片中心,水平线上下各有16个BUFG,共32个BUFG;
参考: