FPGA 时序相关基础知识整理

FPGA 时序相关基础知识整理

建立时间,保持时间,输出延迟

在这里插入图片描述
对于实际的 D 触发器来说,为了保证在时钟的上升沿能够正确的将 D 端的数据寄存并输出到 Q 端,需要满足以下两点:

  1. D 端的数据必须在时钟上升沿到来之前的一定时间内就已经保持稳定,该时间被称为 D 触发器的建立时间(Tsu,set up time)
  2. D 端的数据必须在时钟上升沿到来之后的一定时间内继续保持稳定,该时间被称为D 触发器的保持时间(Th, hold up time)
    如果不能同时满足上述两个条件,那么 D 端的数据就可能无法正确的被寄存并输出至Q 端。同时,对于 D 触发器来说,D 端的数据也不可能会在时钟上升沿出现的那一刻就立即更新到 Q 端,从时钟的上升沿到 D 端的数据稳定出现在 Q 端,也有一个时间,该时间称为寄存器的时钟到输出延迟(Tco,Clock-to-Output Delay)

在这里插入图片描述
1、看数据传输路径,一开始,数据存在于 REG1 的 D 端口上,当时钟上升沿到达 REG1时,经过 Tco 时间,D 端数据才会到达 REG1 的 Q 端。最后,REG1 的 Q 端的数据还需要经过 FPGA 内部的可编程连线,还有可能需要参与各种逻辑运算,才能到达目标寄存器,也就是 REG2 的 D 端,在从 REG1 的 Q 端传到 REG2 的
D 端过程中经过的各种连线和组合逻辑功能,也都是需要耗费时间的,这些时间在分析时统称为组合逻辑延迟,标记为 Tdata。REG2 能够在时钟上升沿时寄存 D 端口上的数据,需要数据在时钟上升沿到来之前最少 Tsu 时间就稳定下来。
2、看时钟传输路径,从外部 pin到寄存器 1(REG1)的时间被标记为了 Tclk1,同样的,从外部 pin 到寄存器 2(REG2)的时间被标记为了 Tclk2,这两个时间都是真实存在的,且并不一定相等。

详细图形描述如下:
在这里插入图片描述

数据到达时间(data arrival time)指数据到达目的寄存器 D 端口的时间(长度)。
Data Arrival Time = launch edge + Tclk1 + Tco +Tdata
起始点一般以时钟上升沿从 CLK 的输入 Pin 输入开始算起,具体到上面的波形图上,就是CLK 的第一个上升沿,在时序分析概念中,一般将其称为发射沿(launch edge)。而结束时间,就是数据到达目的寄存器 D 端口的时间。

数据需求时间(data require time)指数据被存入目的寄存器所需要的最短时间(长度)
Clock Arrival Time = latch edge + Tclk2
Data Required Time = Clock Arrival Time - Tsu = latch edge + Tclk2 - Tsu

建立时间余量(setup slack)表达式
setup slack = Data Required Time - Data Arrival Time > 0
在时序分析的定义中,将这个差值称为建立时间时序余量(setup slack)。所以可知,如果这个时序余量值为正值,则表明目标寄存器能够正确的接收数据;如果时序余量值为负值则说明目标寄存器无法正确接收数据,设计失败。

能够运行的最高时钟频率 Fmax 计算
设数据实际到达时间比需要到达的时间早(迟)了 Tslack(可正可负),则:
Fmax = 1/(Tclk - Tslack)

保持时间余量
保持时间余量 = 数据到达时间 – 数据需求时间
Hold time slack = Data Arrival Time– Data Required Time
为了保证 D 触发器能够准确的将 D 端数据寄存,必须在时钟上升沿之后的一段时间内,D 触发器的 D 端继续保持稳定,否则就可能导致数据寄存失败。这个数据需要保持稳定的时间长度,称为 D 触发器的保持时间(Th),而保持时间余量,说的正是 D 端的数据在时钟上升沿之后继续保持稳定的时间长度和 D 触发器的保持时间参数的差值。

保持时间很重要的原因就在于,为了保证源寄存器发出的数据不能变化太快,不能目的寄存器还没来得及将上一个周期的数据稳稳的寄存,新的数据又已经传递到目的寄存器的 D端了。这种情况在 FPGA 内部一般很少出现,但是在 FPGA 和外部器件连接,给外部器件输出数据和时钟的情况下极易出现。

看报告的时候,一般 Slow 1200mV 85C Model 和 Slow 1200mV 0C Model 情况
下重点关注寄存器建立时间余量,而 Fast 1200mV 0C Model 情况下重点关注寄存器保持时间余量。
如果由于温度变化导致传输速度变慢,这个时候就要考虑——建立时间余量
如果由于温度变化导致传输速度变快,这个时候就要考虑——保持时间余量

时钟偏斜
Tskew,中文一般称之为时钟偏斜。通过图示相信大家马上就能知道该参数的物理意义了,所谓时钟偏斜,就是时钟到达目的寄存器和源寄存器的时间差值,这个值有可能为正,也有可能为负。为正就表示时钟先到达源寄存器,为负就表示时钟先到达目的寄存器。Tskew的计算方法为:
Tskew = Tclk2 – Tclk1。
我们在最终进行时序分析的时候,一般都是使用 Tskew这个值,而不再是使用 Tclk2 和 Tclk1 分别计算。

时钟约束方式

Intel FPGA:

  1. 高手可以直接自己写 SDC 文件。
  2. 可以用 TimeQuest Timing Analyzer Wizard 软件按照向导的指引一步一步操作
  3. 可以使用 TimeQuest Timing Analyzer 工具以图形化界面添加约束。
    XILINX FPGA (VIVADO):
  4. 高手可以直接自己写 XDC 文件。
  5. 可以用软件按照向导的指引一步一步操作
    在这里插入图片描述
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值