xilinx 时钟资源分为两种:全局时钟和第二全局时钟。
一、全局时钟资源
Xilinx 全局时钟采用全铜工艺实现,并设计了专用时钟缓冲与驱动结构,可以到达芯片内部任何一个逻辑单元,包括CLB、I/O引脚、内嵌RAM、硬核乘法器等,而且时延和抖动都很小。对FPGA设计而言,全局时钟是最简单最可预测的时钟,最好的时钟方案是:由专用的全局时钟输入引脚驱动单个全局时钟,并用后者去控制设计中的每个触发器。全局时钟资源是专用布线资源,存在与全铜布线层上,使用全局时钟资源不影响芯片的其他布线资源,因此在可以使用全局时钟的时候尽可能使用。
目前,主流芯片都集成了专用时钟资源、时钟管理模块(DCM)。以Virtex 5 为例,含有6个CMTs(Clock Management Tiles),每个CMTs包含2个DCM和一个PLL,1个DCM内包含2个DLL和一个PLL。
全局时钟资源需要通过原语(Primitives)调用,常见的时钟原语有:
IBUFG: Single-ended Input Global Clock Buffer
IBUFGDS: Differential Input Global Clock Buffer
BUFG: Global Clock Buffer
BUFGCE: Global Clock Buffer w/ Enable
DCM: DCM_ADV DCM_BASE
这些原语的使用在Language Templates都有示例,在user guide(v5对应为UG190)里也有详细说明。常用组合:
IBUFG / IBUF