Vivado 时序约束的完整作战地图(二)

Vivado 时序约束的完整作战地图(二)


文章目录

  • [Vivado 时序约束的完整作战地图(二)](#Vivado 时序约束的完整作战地图(二))
  • [从"四条路"到"四步曲":Vivado 时序约束的完整作战地图](#从“四条路”到“四步曲”:Vivado 时序约束的完整作战地图)
    • [一、4 种时序路径------告诉工具"我要看哪里"](#一、4 种时序路径——告诉工具“我要看哪里”)
    • [二、4 个步骤完成时序约束](#二、4 个步骤完成时序约束)

从"四条路"到"四步曲":Vivado 时序约束的完整作战地图


一、4 种时序路径------告诉工具"我要看哪里"

当你学会四种时序约束,再看这张图的大概和细节,如果看懂了没有个线和箭头,时序约束你就学会了!!!

  • 帮助理解的关键1 :必须理解三个关键字:时序路径都有起点终点约束命令
  • 帮助理解的关键2 :时序路径的起点大多为时钟端口 而不是输出端口,也就是时序路径是从上一个触发器的C端开头,再到下一个触发器的D端,这是一条路径。在vivado软件分析时序时,也是如此设定的,看vivado时序报告中的路径尾部(起点和终点),是C->D 或者是C->R,具体路径具体分析。主要搞清楚这个起点一般是时钟C
  • 后面的时序路径分析都是基于上面两个关键,后面的分析都要带入
路径名称 真实物理轨迹 工具视角起点→终点 必须回答的时序问题 对应 XDC 命令
① 输入→内部 板级芯片→PCB 走线→FPGA 引脚→第一级寄存器 clk port(external) → reg/D "数据比时钟晚到多久?" set_input_delay
② 内部→内部 寄存器→组合逻辑→寄存器 reg/CLK → reg/D "一个时钟周期内能不能算完?" create_clock 周期约束
③ 内部→输出 末级寄存器→引脚→PCB→下游芯片 reg/CLK → output port "数据离开 FPGA 多久后有效?" set_output_delay
④ 输入→输出 纯组合:引脚→组合逻辑→引脚 input port → output port "横穿 FPGA 的组合延迟上限?" set_max_delay

记忆口诀:"进-游-出-穿"

数据从板级"进"来→芯片内部"游"走→"出"口离开→也可能直接"穿"堂过。


二、4 个步骤完成时序约束

  • 第1步针对片内时序路径。时钟周期约束即可覆盖这些路径。这些时钟包括从全局时钟引脚进入的时钟、MMCM/PLL生成的时钟、高速收发器提供的时钟,以 及用户逻辑生成的时钟。
  • 第2步针对输入/输出延迟约束,可能会涉及虚拟时钟。
  • 第3步针对跨时钟域路径约束。
  • 第4步针对多周期路径/伪路径约束。
  • Xilinx建议采用Constraints Wizard创建约束
  • 通 过report_clock_networks或check_timing等命令验证约束是否已经生效

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