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

系统同步接口


文章目录

  • 系统同步接口
  • [📘 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约束

  • 后面所有的时序约束都类似,学会一个,后面源同步,系统同步基本上分析套路都类似,只是一些小细节上不一样
相关推荐
cmc10286 小时前
131.如何区分FPGA芯片型号是-2l还是-2方法
fpga开发
sz66cm17 小时前
FPGA基础 -- 无毛刺时钟切换(glitch-free clock switching)
fpga开发
Blossom.11817 小时前
把AI“绣”进丝绸:生成式刺绣神经网络让古装自带摄像头
人工智能·pytorch·python·深度学习·神经网络·机器学习·fpga开发
电子凉冰17 小时前
FPGA强化-VGA显示设计与验证
fpga开发
XINVRY-FPGA18 小时前
XC7A100T-2FGG484I Xilinx Artix-7 FPGA
arm开发·嵌入式硬件·fpga开发·硬件工程·信息与通信·信号处理·fpga
cmc102819 小时前
129.FPGA绑定管脚时差分管脚只绑_p是不行的,tx与rx只绑一个也不行
fpga开发
望获linux19 小时前
【实时Linux实战系列】FPGA 与实时 Linux 的协同设计
大数据·linux·服务器·网络·数据库·fpga开发·操作系统
cycf19 小时前
系统同步输出延迟分析(七)
fpga开发
国科安芯19 小时前
高辐射环境下AS32S601ZIT2型MCU的抗辐照性能与应用潜力分析
网络·人工智能·单片机·嵌入式硬件·fpga开发