全局时钟资源
Xilinx 芯片全局时钟资源的使用方法主要有 5 种:
- IBUFG + BUFG
最基本的全局时钟资源使用方法,也称为 “ BUFGP 法 ”
- IBUFGDS + BUFG
当时钟信号为差分形式时,需要用 IBUFGDS 代替 IBUFG
- IBUFG + DCM + BUFG
最灵活的使用方法(一般外部提供的时钟都需要倍频、分频、移相等操作以后才可以使用,所以中间需要 DCM)
- Logic + BUFG
BUFG 的输入可以是普通信号,当某个信号(时钟、使能、快速路径)的扇出非常大、要求抖动延迟最小时,可以使用 BUFG 来驱动这个信号,使这个信号利用全局时钟资源。
- Logic + DCM + BUFG
DCM 的输入也可以是普通信号,所以上面的例子中的信号需要倍频、分频等操作时,需要在中间添加 DCM 。
需要注意的是,IBUFG和IBUFGDS的输入必须为全局时钟输入管脚,该管脚在UserGuid上可以找到。
区域时钟资源
区域时钟资源是完全独立于全局时钟资源。一般来说,FPGA芯片内部可分为若干个时钟区域,每个时钟区域高度为40个CLk,宽度为半个晶片。因此,FPGA晶片被分成了两列若干行的时钟区域块。两列时钟区域块之间为时钟管理单元CMT。
- BUFIO
IO时钟缓冲器,其输出时钟只能作用在一个时钟区域的IO寄存器处,无法在FPGA内部逻辑使用。
- BUFR
区域时钟缓冲器,其输出只能作用在一个时钟区域,相当于BUFH的阉割版。