FPGA时序分析和时序约束
1.时序分析与时序约束
时序分析:时序分析的目的是通过分析FPGA设计中各个寄存器之间的数据和时钟传输路径,来分析数据延迟和时钟延迟之间的关系,一个设计OK的系统,必然能够保证整个系统中所有寄存器都能够正确的寄存数据。
数据和时钟传输路径是由EDA软件,通过针对特定器件布局布线得到的。
时序约束:两个作用
- 告知EDA软件,该设计需要达到怎样的时序指标,然后EDA软件会根据时 序约束的各个参数,尽力优化布局布线,以达到该约束的指标。
- 协助EDA软件进行分析设计的时序路径,以产生相应的时序报告。
2. FPGA内部数据传输模型
- Tco : **时钟上升沿到达D触发器 ** 到 数据输出端到Q端的延迟
- Tsu: 建立时间,目的寄存器自身的特性决定,在时钟上升沿达到其时钟接口时,其数据输入 端(D)的数据必须提前Nns稳定下来,否则无法确保数据正常存储。
- Tdata也就是说数据从源触发器数据输入端到目的触发器数据输入端所花费的时间,必须在一个时钟周期内实现(对于两个触发器而言)。假设时钟周期为Tclk=20ns,Tsu=1ns,则此传输时间必须小于20ns-1ns=19ns
3.FPGA时序传输模型分析
**时钟偏斜(Skew):**时钟从源端口出发,到达目的寄存器和源寄存器的时间差值。
-
Tclk1: 时钟信号从时钟源端口出发,到达源寄存器时钟端的时钟(时钟传输时间)。
-
Tclk2: 时钟信号从时钟源端口出发,到达目的寄存器时钟端的时钟(时钟传输时间)。
-
Tclk: 时钟周期
-
Tskew: Tclk2 - Tclk1 (可能大于零也可能小于零)
-
**数据到达时间(实际走的时间):**Tclk1 + Tco + Tdata
-
数据需求时间(在这个时间之内,数据必须得到达): Tclk + Tclk2 - Tsu
-
Slack(时间余量):数据需求时间减去数据达到时间
目的寄存器能够正确的接收源寄存器发射过来的数据:Tclk1 + Tco + Tdata <= Tclk + Tclk2 - Tsu。即时间余量Slack大于等于零 ==> Slack = Tclk + Tskew - Tsu - Tco - Tdata >= 0