FPGA基础知识25(xilinx 高速收发器系列:Xilinx 7 系列的时钟资源(2))
来自:http://xilinx.eetrend.com/blog/9753
面对bufg,bufr,bufio等众多类型的时钟资源,很多工程师会有些困惑,为什么不统一使用呢?原因主要是FPGA是可编程器件,内部的布线资源是很宝贵的。所以根据时钟的驱动能力需求,工程师可以独立选择不同的时钟buffer。
不同的时钟资源,相关的性能指标也是不同的,如图1,在region中如果使用BUFR,输入输出的时钟频率都有限制,需要根据应用来选择。
Case1 : S6 时钟引起的布局布线问题;
应用背景:使用S6的两路dcm作为GTP tile的参考时钟,布局布线报错;
使用两路gtp,Rx各自使用对应的Rxrecclk,然后经过bufio2 再经过DCM生成对应的rxusrclk0和rxusrclk20.
出现这类问题首先查看ISE的报错原因,里面有很多详细信息;大概能够发现是时钟因素导致的布线失败。另外也可以在xilinx网站找到place:1271这个错误号码对应的错误信息。
结论:
S6 分为TOP和Bottom 区域(详细请看S6的时钟手册),bufio2 只能驱动本区域的dcm,所以当本区域的DCM用完时则布局布线出错,这里可以选择更大的器件验证,或者用本区域的PLL替换DCM。如图3
从这个case可以看到,很多器件对时钟的选择是有很多限制的,包括前面提到的区域时钟的3个bank。每个bank的bufr 和bufio数量也是有限制的,当集中在一个bank使用多路应用时,则需要提前验证管脚,避免出现硬件错误。
类似的时钟问题在xilinx网站AR上有很多,如图4,如果提前了解时钟使用要求,则都可以避免。