系统同步接口输入延迟(五)

系统同步接口


文章目录

  • 系统同步接口
  • [📘 FPGA 输入延迟时序分析笔记](#📘 FPGA 输入延迟时序分析笔记)
    • [1 系统同步接口:为什么"同源"还这么难?](#1 系统同步接口:为什么“同源”还这么难?)
    • [2 建立时间裕量(Setup Slack)拆解](#2 建立时间裕量(Setup Slack)拆解)
    • [3 保持时间裕量(Hold Slack)拆解](#3 保持时间裕量(Hold Slack)拆解)

  • 后面一系列分析,均可将外部设备和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自己知道,不用再计算,只计算外部时钟和数据之间相对的偏差即可

📘 FPGA 输入延迟时序分析笔记


1 系统同步接口:为什么"同源"还这么难?

  • 定义:FPGA 与外部器件共用同一颗晶振 ,但数据/时钟走线长度不同 → 产生板级 skew
  • 现状:高速场景(>200 MHz)几乎被淘汰,源同步 上位;但成本敏感板卡(MCU+FPGA、工业控制)仍在用。
  • 痛点:PCB 走线 1 cm ≈ 60 ps,正反各跑 5 cm 就吃掉 300 ps ------28 nm FPGA 的 400 MHz 周期才 2.5 ns,12% 就这么没了

2 建立时间裕量(Setup Slack)拆解

直接贴图

  • 需要保持清醒的时,所有路径的计算延迟都是从约定好的0时刻开始(也就是主时钟约束的开始)

公式分析和记忆要点:

  • 建立时间:需求时间减去到达时间。因为需要时间是在下个时钟周期采样,所以要加上一个时钟周期。
  • 保持时间:源减去目的。注意这里是在同一周期的计算,所以不需要T
  • Tclk1和Tclk2,因为是系统同步,一般这两个时钟到达端口可以认为是相等或者近似的(源同步则不一定)



    这里整理的公式比较重要,为了后续做IO约束有帮助(IO延迟约束,计算的时板外的PCB走线的时间)
  • 其中注意是Tclk1减去Tclk2或者是Tclk2-Tclk1,就是要理解这个偏移量对求Max时是最差好事最好来计算,当然是求最差,要加上一个值来算(因为偏差时都有可能得,尽可能让这个值变大就行,下面保持时间就是经可能变小即可,不要死记硬背)

3 保持时间裕量(Hold Slack)拆解



  • 这里是求input_delay最小

由上面公式即可算出IO约束

  • 后面所有的时序约束都类似,学会一个,后面源同步,系统同步基本上分析套路都类似,只是一些小细节上不一样
相关推荐
zlinear数据采集卡1 小时前
基准电压电路深度解析:从理论参数到ZLinear采集卡的精准参考实战
c语言·单片机·嵌入式硬件·fpga开发·自动化
ALINX技术博客9 小时前
【黑金云课堂】FPGA技术教程Vitis开发:PS端SD读写
fpga开发·vitis·sd读写
尤老师FPGA10 小时前
LVDS系列50:Xilinx Ultrascale系 ADC LVDS接口参考方法(十二)
fpga开发
zlinear数据采集卡11 小时前
模拟输入限流保护电路深度解析:从理论原理到ZLinear采集卡的实战设计
c语言·单片机·嵌入式硬件·fpga开发·自动化
Dillon Dong1 天前
【风电控制】FPGA采集Vdc的ADC增益系数解析——从数字码到实际电压的桥梁
算法·fpga开发·变流器·风电控制
ALINX技术博客1 天前
【黑金云课堂】FPGA技术教程FPGA基础:FIFO与Uart通信
fpga开发·uart·fpga·fifo
zlinear数据采集卡1 天前
定时器电路深度解析:从经典555到STM32定时器,从ZLinear采集卡的工程化设计实战
stm32·单片机·嵌入式硬件·fpga开发·自动化
逻辑诗篇1 天前
FT-M6678+JFM7VX690T互联调试
fpga开发
szxinmai主板定制专家1 天前
基于 ARM+FPGA精密多轴实时运动控制卡设计方案,适用于半导体设备等高精度领域(一)
arm开发·人工智能·嵌入式硬件·fpga开发·架构·语音识别
2301_809049421 天前
blog_vitis_platform_system_application
fpga开发