FPGA时序约束分析4——Reg2Reg路径的建立时间与保持时间分析

目录

1.Reg2Reg路径时序模型

[2.Reg2Reg路径建立时间裕量(Setup Slack)公式](#2.Reg2Reg路径建立时间裕量(Setup Slack)公式)

建立时间约束公式:

[建立时间裕量(Setup Slack)公式:](#建立时间裕量(Setup Slack)公式:)

[3.Reg2Reg路径保持时间裕量(Hold Slack)公式](#3.Reg2Reg路径保持时间裕量(Hold Slack)公式)

保持时间约束公式:

[保持时间裕量(Hold Slack)公式:](#保持时间裕量(Hold Slack)公式:)


1.Reg2Reg路径时序模型

在数字集成电路设计中,寄存器到寄存器(Reg2Reg)路径是最基础且最重要的时序路径之一,指的是数据从一个寄存器的输出端传输到另一个寄存器的输入端所经过的路径。时序分析的核心目标是确保数据能够在时钟约束下正确传输,避免建立时间(Setup Time)和保持时间(Hold Time)违例。其Reg2Reg路径时序模型如下图所示:

Reg2Reg路径的基本模型包含以下关键组件和时序参数:

1.源寄存器 (Launch Register):数据的发送端寄存器,在时钟边沿触发数据输出。

2.目的寄存器 (Capture Register):数据的接收端寄存器,在时钟边沿锁存输入数据。

3.组合逻辑 (Combinational Logic):源寄存器输出到目的寄存器输入之间的逻辑电路(如逻辑门、多路选择器等),数据在其中传输会产生延迟。

4.时钟信号:驱动源寄存器和目的寄存器的时钟(可能存在时钟偏移,即skew)。

2.Reg2Reg路径建立时间裕量(Setup Slack)公式

建立时间裕量用于衡量数据是否能在目的寄存器时钟边沿到来前稳定,确保正确锁存。其核心约束是:数据到达目的寄存器输入端的时间必须早于目的寄存器时钟边沿减去建立时间。

建立时间约束公式:

数据到达目的寄存器输入端的总时间(源寄存器输出到目的寄存器输入的延迟)必须满足:

T_co + T_logic + T_skew ≤ T_clk_period - T_setup

其中:

左侧:数据到达目的寄存器输入端的总延迟(T_co为源寄存器输出延迟,T_logic为组合逻辑延迟,T_skew为时钟偏移带来的额外时间)。

右侧:目的寄存器允许的数据最晚到达时间(时钟周期减去建立时间)。

建立时间裕量(Setup Slack)公式:

裕量为 "允许的最晚到达时间" 与 "实际到达时间" 的差值:

Setup Slack = (T_clk_period - T_setup) - (T_co + T_logic + T_skew)

Setup Slack≥0:满足建立时间约束,数据能正确锁存。

Setup Slack<0 :存在建立时间违例,可能导致数据锁存错误。

3.Reg2Reg路径保持时间裕量(Hold Slack)公式

保持时间裕量用于衡量数据在目的寄存器时钟边沿到来后是否能保持稳定,确保锁存的是正确数据。核心约束是数据到达目的寄存器输入端的时间必须晚于目的寄存器时钟边沿加上保持时间。

保持时间约束公式:

数据到达目的寄存器输入端的总时间必须满足:

T_co + T_logic + T_skew ≥ T_hold

其中:

左侧:数据到达目的寄存器输入端的总延迟(同建立时间分析)。

右侧:目的寄存器要求的数据最早到达时间(时钟边沿加上保持时间)。

保持时间裕量(Hold Slack)公式:

裕量为 "实际到达时间" 与 "要求的最早到达时间" 的差值:

Hold Slack = (T_co + T_logic + T_skew) - T_hold

Hold Slack ≥ 0:满足保持时间约束,数据能稳定保持。

Hold Slack < 0:存在保持时间违例,可能导致锁存错误数据。

在实际设计中,时钟偏移(T_skew)、组合逻辑延迟(T_logic)和寄存器固有延迟(T_coT_setupT_hold)都会影响裕量,需通过时序优化(如调整逻辑结构、插入缓冲器、优化时钟树等)确保裕量非负。

相关推荐
坏孩子的诺亚方舟6 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
FPGA小徐7 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
FPGA小徐7 天前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现
fpga开发
Saniffer_SH8 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
zlinear数据采集卡8 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?
arm开发·fpga开发·架构
9527华安8 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
fpga开发·gth·aurora 8b10b·transceivers
FPGA小徐9 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现
fpga开发
国科安芯9 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
ALINX技术博客9 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术
fpga开发·i2c
Hello-FPGA9 天前
Xilinx KU040 FPGA Camera Link 图像采集
c++·fpga开发