ultrascale系列FPGA的时钟分配
JESD204需要5种时钟,分别为:
1、收发器的时钟refclk,
2、内核时钟core_clk,内核时钟速率为单条lane传输速率的1/40,
3、AXI总线时钟s_axi_aclk,
4、动态配置时钟drpclk,
5、确定性延时sysref,该时钟与core_clk必须同源。sysref速率为: Lane_rate/(10*F*K)/2^N;N为正整数。
时钟网络可由下方时钟网络图进行分配,refclk经过IBUFDS_GT后分成两路,一路送给收发器,一路经过BUFG_GT送给核时钟。经过BUFG_GT后的时钟可以当作用户时钟。可以用该时钟分频得到sysref。
s_axi_aclk与drpclk没有具体的要求,可以用FPGA的时钟时钟分频得到,也可以用核时钟分频。
具体的实现由原语实现。
//时钟分配
IBUFDS_GTE3 CPLL_CLK (
.I (refclk_p ) ,
.IB (refclk_n ) ,
.CEB (1'b0 ) ,
.O (refclk ) , //作为收发器的时钟
.ODIV2 (refclk_1 ) //经过BUFG_GT后作为/core_clk
);
BUFG_GT refclk_bufg_gt_i (
.I (refclk_1 ) ,
.CE (1'b1 ) ,
.CEMASK (1'b0 ) ,
.CLR (1'b0 ) ,
.CLRMASK (1'b0 ) ,
.DIV (3'b000 ) ,
.O (refclk_2 ) //core_clk
);
refclk_wiz u_refclk_wiz(
.clk_160 (core_clk ) , // output clk_160
.clk_100 (clk_100_ref ) , // output clk_100
.reset (reset ) , // input reset
.locked (locked_ref ) , // output locked
.clk_in1 (refclk_2 ) //input 160MHz
); // input clk_in1
经过 BUFG_GT后时钟就可以用 IP核进行分频得到我们需要的时钟。
ultrascale系列FPGA : GTH的位置选择
对于ultrascale系列配置JESD204 PHY 需要选择收发器的位置,可以通过UltraScale FPGAs Transceivers Wizard这个IP核进行查看,看physical resources的channel,查看收发器所对应的BANK,通过原理图的BANK选择收发器的位置。
对于GTH,四个收发器构成一个Qaud,一个Qaud内有四个CPLL、一个QPLL1、一个QPLL0。