时序分析

Vivado入门与提高学习记录之时序分析基础

一、发起沿和捕获沿

捕获沿通常也是下一个发起沿,捕获沿与发起沿通常相差一个时钟周期

二、四种时序路径

三、时序路径段

四、数据到达时间

如何利用FPGA进行时序分析设计

 FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。对于时序如何用FPGA来分析与设计,本文将详细介绍。

  基本的电子系统如图 1所示,一般自己的设计都需要时序分析,如图 1所示的Design,上部分为时序组合逻辑,下部分只有组合逻辑。而对其进行时序分析时,一般都以时钟为参考的,因此一般主要分析上半部分。在进行时序分析之前,需要了解时序分析的一些基本概念,如时钟抖动、时钟偏斜(Tskew)、建立时间(Tsu)、保持时间(Th)等。时序分析也就是分析每一个触发器(寄存器)是否满足建立时间/保持时间,而时序的设计的实质就是满足每一个触发器的建立时间/保持时间的要求。

图 1  基本的电子系统

图 1 基本的电子系统

《XDC约束技巧》系列中讨论了XDC约束的设置方法、约束思路和一些容易混淆的地方。我们提到过 约束是为了设计服务,写入Vivado中的XDC实际上就是用户设定的目标 ,Vivado对FPGA设计的实现过程必须以满足XDC中的约束为目标来进行。那么:

  • 如何验证实现后的设计有没有满足时序要求?
  • 如何在开始布局布线前判断某些约束有没有成功设置?
  • 如何验证约束的优先级?
  • 这些都需要用到Vivado中的静态时序分析工具。所以让我们来从如何读懂和用好Timing Report开始吧。

    静态时序分析

    静态时序分析( Static Timing Analysis)简称STA,采用穷尽的分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误并报告。

    1. Xilinx 时钟资源
    xilinx 时钟资源分为两种:全局时钟和第二全局时钟。

    1. 全局时钟资源
    Xilinx 全局时钟采用全铜工艺实现,并设计了专用时钟缓冲与驱动结构,可以到达芯片内部任何一个逻辑单元,包括CLB、I/O引脚、内嵌RAM、硬核乘法器等,而且时延和抖动都很小。对FPGA设计而言,全局时钟是最简单最可预测的时钟,最好的时钟方案是:由专用的全局时钟输入引脚驱动单个全局时钟,并用后者去控制设计中的每个触发器。全局时钟资源是专用布线资源,存在与全铜布线层上,使用全局时钟资源不影响芯片的其他布线资源,因此在可以使用全局时钟的时候尽可能使用。

    时序分析/约束(一):相关概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念。

    1. 时钟相关
    时钟的时序特性主要分为抖动(Jitter)、偏移(Skew)、占空比失真(Duty Cycle Distortion)3点。对于低速设计,基本不用考虑这些特征;对于高速设计,由于时钟本身的原因造成的时序问题很普遍,因此必须关注。

    基于FPGA 的SDRAM控制器的设计与实现

    摘 要: 由于同步动态随机存储器SDRAM 内部结构原因导致其控制逻辑比较复杂。现场可编程逻辑门阵列FPGA作为一种半定制电路具有速度快、内部资源丰富、可重构等优点。本文设计了一种基于FPGA 的SDRAM 控制器, 在介绍控制器的逻辑结构的基础上, 对FPGA 与SDRAM 间数据通信进行了时序分析, 实现SDRAM 带有自动预充电突发读写和非自动预充电整页读写。

    0 引 言
    SDRAM( Synchronous Dy namic Random Access Memory) 具有价格低廉、容量大、速度快等优点, 但是SDRAM 的控制逻辑相对复杂, 对时序要求也比较严格, 这就需要有一个专门的控制器。而FPGA( Field Programmable Gate Array) 具有高速率、多接口、可重构等特点, 基于FPGA 的SDRAM 控制器设计能够大大缩短开发周期, 简化设计方法。以往有很多关于SDRAM 控制器设计的文章, 但很少从FPGA 时序分析的角度考虑读写数据的准确性, 本文应用FPGA 构建SDRAM 控制器, 并对FPGA 与SDRAM 构建模型进行时序分析, 完成功能仿真和时序仿真, 最终通过板级调试实现SDRAM 的正常读写。

    Xilinx FPGA上电时序分析与设计

    摘要:提出了由于FPGA容量的攀升和配置时间的加长,采用常规设计会导致系统功能失效的观点。通过详细描述Xilinx FPGA各种配置方式及其在电路设计中的优缺点,深入分析了FPGA上电时的配置步骤和工作时序以及各阶段I/O 管脚状态,说明了FPGA上电配置对电路功能的严重影响,最后针对不同功能需求的FPGA外围电路提出了有效的设计建议。

    1 引言
    随着半导体和芯片技术的飞速发展,现在的FPGA集成了越来越多的可配置逻辑资源、各种各样的外部总线接口以及丰富的内部RAM资源,使其在国防、医疗、消费电子等领域得到了越来越广泛的应用。但是FPGA 大多数是基于SRAM工艺的,具有易失性,因此FPGA 通常使用外部存储器件(如PROM)存储必需的配置信息,防止设备掉电后FPGA丢失自我配置能力。但FPGA配置在一定的条件和时间下才能成功完成,随着FPGA容量的不断攀升,配置时间也被大大加长,上电时如不充分考虑FPGA的配置时序以及对其他器件的影响,根据常规经验设计电路,往往会影响系统其他外围器件的正常工作,严重时会导致整个系统的失效。因此,FPGA的配置方式和上电时序已成为系统设计的重要一环。

    视频:Vivado中的时序分析控制

    了解Vivado中更多的高阶时序分析控制功能,包括config_timing_corners命令(可帮助您配置和保留分析所使用的corner),以及config_timing_analysis命令(允许一些控制可覆盖掉时序分析的默认行为)。

    Xilinx FPGA的约束设计和时序分析总结

    在进行FPGA的设计时,经常会需要在综合、实现的阶段添加约束,以便能够控制综合、实现过程,使设计满足我们需要的运行速度、引脚位置等要求。通常的做法是设计编写约束文件并导入到综合实现工具,在进行FPGA/CPLD的综合、实现过程中指导逻辑的映射和布局布线。下面主要总结一下Xilinx FPGA时序约束设计和分析。

    时序的几个概念

    很多人询问关于约束、时序分析的问题,比如:如何设置setup,hold时间?如何使用全局时钟和第二全局时钟(长线资源)?如何进行分组约束?如何约束某部分组合逻辑?如何通过约束保证异步时钟域之间的数据交换可靠?如何使用I/O逻辑单元内部的寄存器资源?如何进行物理区域约束,完成物理综合和物理实现?为了解决大家的疑难,我们将逐一讨论这些问题。(注:以下主要设计时序约束)

    同步内容