[FPGA]-时序传输模型分析

时序传输模型分析

FPGA内部时钟树

clk到达每个寄存器的时间不一致。

内部时钟树内部示意图如下所示:

在这里插入图片描述

在实际FPGA芯片内部,时钟到达每个寄存器的时钟偏差很小,但仍然存在;比如clk到达REG1花费时间0.2ns,到达REG6花费时间0.4ns。

考虑时钟偏斜

时钟偏斜(Skew):时钟从源端口出发,到达目的寄存器和源寄存器之间的时间差值。

  • RTL示意图如下所示;

在这里插入图片描述

  • 时序图如下所示:

定义Tskew=Tclk2-Tclk1;

  1. clk2迟于clk1;Tskew>0;

在这里插入图片描述

2.clk2早于clk1;Tskew<0;

  • 时序分析基本公式:

目的寄存器能够正确接收元数据发射过来的数据:

Tclk1(到达REG1时钟延迟) + Tco + Tdata <= Tclk(时钟周期) + Tclk2(到达REG2时钟延迟) -Tsu

不考虑时钟偏斜即Tclk1 = Tclk2;

Tclk(时钟周期) + Tclk2(到达REG2时钟延迟) -Tsu:数据需求时间

Tclk1(到达REG1时钟延迟) + Tco + Tdata:数据到达时间(TimeQuest)

移项: Tclk + Tclk2 -Tsu - Tclk1 - Tco - Tdata >= 0

结合: Tclk + (Tclk2 - Tclk1)- Tsu - Tco - Tdata >= 0

令Tclk2 - Tclk1 = Tskew: Tclk + Tskew- Tsu - Tco - Tdata >= 0

设Tslack = Tclk + Tskew- Tsu - Tco - Tdata

可得最终条件为:Tslack(建立时间余量) >= 0

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 09:42:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 09:42:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 09:42:02       62 阅读
  4. Python语言-面向对象

    2024-07-15 09:42:02       72 阅读

热门阅读

  1. 【Karapathy大神build-nanogpt】Take Away Notes

    2024-07-15 09:42:02       28 阅读
  2. C的分文件编写与动态库

    2024-07-15 09:42:02       28 阅读
  3. Spring Boot中的安全配置与实现

    2024-07-15 09:42:02       24 阅读
  4. 设计模式--抽象工厂模式

    2024-07-15 09:42:02       26 阅读
  5. 【C++ 】类与对象 -- 纯虚函数与抽象类

    2024-07-15 09:42:02       24 阅读
  6. 设计模式--简单(抽象)工厂模式

    2024-07-15 09:42:02       28 阅读
  7. python中停止线程的方法

    2024-07-15 09:42:02       21 阅读
  8. 【前端】fis框架学习

    2024-07-15 09:42:02       20 阅读