FPGA I/O 口 时钟约束

FPGA时钟约束在高速信号的传输设计中是非常重要的,主要是考虑到了建立裕量和保持裕量,如果上述两个量有其中一个为负,则会导致锁存的数据处于亚稳态的状态。

一.当clock由外部时钟提供,分析如下:

FPGA I/O 口 时钟约束_第1张图片

上图是在外部数据传到FPGA的一个示意图,对各个延时的解释如下:

clk1:时钟信号从PLL或者I/O口到源寄存器的延时;

clk2:时钟信号从PLL或者I/O口到目标寄存器的延时:

Tco: 在源寄存器接受到时钟信号之后到寄存器最后输出数据的延时。

Tpcb: 走线延时

建立时间Ftus:在时钟有效沿之前,数据必须保持的最短时间

保持时间FTh:   在时钟有效沿之后,数据必须保持的最短时间

时序图如下图所示:

FPGA I/O 口 时钟约束_第2张图片

数据到达时间:Tclk1+Tco+Tpcb

数据保持时间:Tclk1+Tco+Tpcb+Ts(数据保持周期)

       建立时间:Tclk2+Tclk-Ftus

       保持时间:Tclk2+Tclk+Fth

建立裕量:建立时间-数据到达时间

                  即(Tclk2+Tclk-Ftus)-(Tclk1+Tco+Tpcb)>0

如果建立裕量为正,说明可以在规定的时间内到达目标,反之,则说明数据有可能会处于亚稳态状态。

保持裕量:数据保持时间-保护时间

即(Tclk1+Tco+Tpcb+Ts)-(Tclk2+Tclk+Fth)>0

如果保持裕量为正,说明数据在锁存的时候有足够多的稳定时间,反之,则说明数据有误或亚稳态状态。

二.当clk由FPGA时钟提供的时候,分析如下:

FPGA I/O 口 时钟约束_第3张图片

Tskew:时钟信号从时钟源传输到源寄存器的延时定义为CLK1,传输到目的寄存器的延时定义为CLK2;将Clk2-Clk1定义为时钟偏移Tskew

FPGA I/O 口 时钟约束_第4张图片

数据到达时间:Tclk1+FTco+Tpcb

数据保持时间:Tclk1+FTco+Tpcb+Ts(数据保持时间)

       建立时间:Tclk2+Tclk-Tsu

       保持时间:Tclk2+Tclk+Th

建立裕量:建立时间-数据到达时间

           即:(Tclk2+Tclk-Tsu)-(Tclk1+FTco+Tpcb)>0

                   Tclk+Tskew-Tsu-FTco-Tpcb>0

如果建立裕量为正,说明可以在规定的时间内到达目标,反之,则说明数据有可能会处于亚稳态状态。

保持裕量:数据保持时间-保持时间

    即:(Tclk2+Tclk+Th)-(Tclk1+FTco+Tpcb+Ts)>0

  Tclk+Tskew+Th-Tpcb-FTco-Ts>0

如果保持裕量为正,说明数据在锁存的时候,可以有足够的时间,反之数据有误或处于亚稳态状态。

你可能感兴趣的:(FPGA I/O 口 时钟约束)