zcu102开发板采用时钟芯片SI5341B来产生10路独立的时钟信号,分别给PS和PL部分用
我参考的手册是ug1182,电路图如下:
可以看到这是个任意时钟发生器,可以看到它左侧接的是49MHz的晶振,以下是时钟引脚:
PL部分可以使用125MHz的和75.25MHz的差分时钟信号。
使用该时钟的时候,需要注意的是,它是一个差分时钟,因此需要进行转化。此时,需要用到一些原语:
1. IBUFG 即输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUFG单元,否则在布局布线时会报错。IBUFG支持AGP,CTT,GTL,GTLP,HSTL,LVCMOS,LVDCI,LVPECL,LVTTL,PCI,PCIX,,SSTL等多种格式的IO标准。
2. IBUFGDS 是IBUFG的差分形式,当信号从一对差分全局时钟管脚输入时,必须使用IBUFGDS支持BLVDS、LDT、LVDSEXT、LVDS、LVPECL、ULVDS等多种格式的IO标准。
3.BUFG 即全局缓冲,它的输入是IBUFG的输出,BUFG的输出到达FPGA内部的IOB、CLB、Block Select RAM的时钟延迟和抖动最小
这里我采用IBUFGDS+BUFG的方式,IBUFGDS是将两个差分信号转变为单端信号,BUFG是将该时钟变得更加的稳定。
以下是我对clk_74_25差分时钟的使用:
IBUFGDS i_ibufgds_adc_0
(.I (clk_74_25_P),
.IB (clk_74_25_N),
.O (sys_clk_bufg) //单端信号时钟
);
BUFG BUFG_inst (
.O(sys_clk), // 1-bit output: Clock output
.I(sys_clk_bufg) // 1-bit input: Clock input
);