系统同步输出延迟分析
文章目录
- 系统同步输出延迟分析
- 前言
-
- [1. 什么是系统同步接口?](#1. 什么是系统同步接口?)
- 2.时序分析
- [3. 系统同步的局限性](#3. 系统同步的局限性)
-
- [3.1 时钟偏移(Clock Skew)](#3.1 时钟偏移(Clock Skew))
- [3.2 难以支持更高频率](#3.2 难以支持更高频率)
- [4. 设计建议与演进方向](#4. 设计建议与演进方向)
前言
- 后面一系列分析,均可将外部设备和FPGA想象为在一个设备内种的分析方式。即,片内两个寄存器之间的时序计算 ,时刻0点是在源时钟为起点(源同步两个时钟之间是有相位差偏斜的,而系统同步可当做没有偏斜,即clk1和clk2相减为0)
- 通过输入input_delay最大最小值,让软件知晓 如何计算建立时间裕量和保持时间裕量,才能正确分析是否违例,免得看着没时序问题,实际上隐藏时序问题不知道
- 建立时间裕量是再下一个时钟周期进行计算,时刻以源时钟开始为标准。
- input_delay和output_delay min和max,均是对外部走线源和目的相对延迟 来说(延迟分两个,内部延迟和外部延迟,input的外部是指源到FPGA端口的一段,out的外部是FPGA端口到外部设备端口这一段)。在分析时均以如何试探建立时间和保持时间的极限值来进行计算,以这个思路就好分析公式的用意。总体来说,求的是源到目的到达时间的相对值。
- 再次强调,input_delay和output_delay min和max是计算相对FPGA的外部,是外部,是外部,不管是系统同步还是源同步,要分清楚什么是外部
- 公式中时序分析中是源减目的还是目的减源,都可以,求出相对值即可,正负的问题,一般是在建立时间分析时是目的减去源,得到一个正值,如果为负值则违例。对于保持时间来说,源减去目的得到一个正值,说明数据来的慢,不会冲坏保持时间裕量中的数据,负值表示违例。因此建立时间和保持时间均以负表示违例,这样就统一了
- 公式求IO延迟中,求的是外部数据走向相对于时钟的偏差(数据和时钟的关系),因此以原数据路径到FPGA端口或者端口到外部设备的相对于时钟的延迟来计算,即外部原延迟减去时钟之间的偏差。即,数据延迟多少个外部相对时间到达目标设备的外部接口(不包括设备内部延迟)
- 为什么再分析输出延迟的时候,不计算FPGA内部的时延,之所以计算外部,就是因为内部的,FPGA自己知道,不用再计算,只计算外部时钟和数据之间相对的偏差即可
1. 什么是系统同步接口?
系统同步接口 指的是FPGA 与外部器件共享同源时钟信号的通信方式。即:
- 时钟信号由同一时钟源产生;
- 该时钟同时供给 FPGA 和外部器件;
- 数据在时钟的驱动下进行采样和传输。
尽管时钟同源,但由于时钟与数据经由不同物理路径传输 ,它们到达 FPGA 输入端的时间存在差异,这种差异称为时钟偏移(Clock Skew)。
2.时序分析
注意:这里的建立和保持时间是针对外部器件而

用于外部器件建立时间的分析,用output_delay max
3. 系统同步的局限性
尽管系统同步接口结构简单、易于实现,但在高速设计中存在以下显著问题:
3.1 时钟偏移(Clock Skew)
- 时钟与数据路径不一致,导致时钟偏移;
- 偏移过大将压缩建立时间余量(Setup Slack);
- 在高速场景下,Setup Slack 可能为负,导致时序违例。
3.2 难以支持更高频率
- 随着频率提升,时钟周期缩短,偏移占比增大;
- 系统同步接口难以满足高频率下的时序收敛要求;
- 已逐渐被淘汰,取而代之的是**源同步(Source Synchronous)**接口。
4. 设计建议与演进方向
场景 | 建议 |
---|---|
低速接口(<100MHz) | 系统同步仍可使用,但需严格控制 PCB 走线长度匹配 |
高速接口(>100MHz) | 强烈推荐使用源同步接口(如 DDR、SPI、LVDS) |
时序收敛困难 | 使用时序约束(SDC)+ 静态时序分析(STA)工具辅助优化 |