FPGA时序分析与时序约束(一)——基础知识

这篇具有很好参考价值的文章主要介绍了FPGA时序分析与时序约束(一)——基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、为什么要进行时序分析和时序约束

二、什么是时序分析和时序约束

三、时序约束的基本路径

四、时序分析与约束的基本概念

4.1 Clock Uncertainty

4.2 建立时间和保持时间

4.3 发起沿和采样沿

4.4 数据到达时间和时钟达到时间

4.5 建立时间下的数据需求时间

4.6 保持时间下的数据需求时间

4.7 建议时间裕量

4.8 保持时间裕量


一、为什么要进行时序分析和时序约束

        PCB通过导线将具有相关电气特性的信号相连接,这些电气信号在PCB上进行走线传输时会产生一定的传播延时。

        而FPGA内部也有着非常丰富的可配置的布线资源,能够让位于不同位置的逻辑资源块、时钟处理单元、BLOCK RAM、DSP和接口模块等资源能够相互通信,完成所需功能。

        FPGA的布线同PCB的走线一样,也会由于走线的长短不同而产生或大或小的传输延时(走线延时)。FPGA信号经过逻辑门电路进行各种运算也会产生延时(逻辑延时)。那么多个信号从FPGA的一端输入,经过一定的逻辑门电路处理后从FPGA的另一端输出,如何保证各个信号的延时一致呢?这个时候就需要进行时序分析,从而进行时序约束,从而保证FPGA的信号能够相互协同正常工作

        假设有一个信号输入FPGA中,在FPGA内部经过一些逻辑处理,最后进行输出,那么这些走线和处理都需要时间(走线延时和逻辑延时)。例如下图,输入信号到达逻辑处理A需要5ns,进行处理需要1ns,然后到逻辑处理C需要7ns,进行处理需要2ns,最后达到输出需要3ns,这条路径是所有路径中耗时最短的。但是FPGA不知道这条路径耗时最短,如果不对其进行时序约束,很可能会随便选一条路径进行布线,此时如果对系统的延时有要求,就可能出现信号错乱的情况

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

        

二、什么是时序分析和时序约束

        FPGA的时序分析与约束需要设计者根据实际的系统功能,通过时序约束的方式提出时序要求;FPGA编译工具根据设计者的时序要求,进行布局布线;编译完成后,FPGA编译工具还需要针对布局布线的结果,套用特定的时序模型,给出最终的时序分析和报告;设计者通过查看时序报告,确认布局布线后的时序结果是否满足设计要求。

        因此时序分析就是遍历电路存在的所有时序路径,计算信号在这些路径上的传播延时,使用特定的时序模型,针对特定的电路进行分析系统时序是否满足要求。

        时序约束就是对设计的电路提出时序上的要求,一般来说其可以细分为内部时钟约束 、IO口时序约束、偏移约束、静态路径约束和例外路径约束等。

三、时序约束的基本路径

从前面知道了时序分析是遍历电路存在的所有时序路径,那么就需要知道都有哪些路径

FPGA 时序约束所覆盖的时序路径主要有4种:

1.FPGA内部寄存器之间的时序路径,即reg2reg
2.输人引脚到FPGA内部寄存器的时序路径,即pin2reg
3.FPGA内部寄存器到输出引脚的时序路径,即reg2pin
4.输入引脚到输出引脚之间的时序路径(不通过寄存器),即pin2pin

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

        其中reg2reg、pin2reg、reg2pin都和寄存器有关,需要进行时序约束,因为要确保数据信号在时钟锁存沿的建立时间保持时间内稳定;但pin2pin本质就是纯组合逻辑电路,一般直接约束延时范围,因为pin2pin路径的信号传输通常不通过时钟。

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

在4种时序路径中,

pin2reg需要经过3个延迟,例如Device A到rega需要经过Tco(寄存器输出延时,即寄存器内部的传输时间)、Input Delay(输入走线延迟)、Internal Delay(FPGA内部走线延迟);

reg2reg需要经过2个延迟,例如rega到regb需要经过Tco、Data Path Delay(数据路径延时);

reg2pin需要经过3个延迟,例如regb到Device B需要经过Tco、Internal Delay、Output Delay(输出走线延迟);

pin2pin需要经过1个延迟,例如dinb到doutb需要经过Data Path Delay。

四、时序分析与约束的基本概念

知道有哪些路径之后, 就要明白时序分析、约束具体在分析约束什么数据或者参数,因此就需要从一些基本概念入手,理清楚要根据什么去进行分析和约束

4.1 Clock Uncertainty

        时钟不确定性(Clock Uncertainty)主要由时钟抖动(Clock Jitter)和时钟偏差(Clock Skew)构成。

       一个理想的时钟是占空比为50%且周期固定的方波,但实际上这样的时钟是不存在的,因为晶振源固有的噪声和干扰会造成时钟信号的周期性偏差,一定会有超前或者滞后的偏移,即时钟抖动

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

        时钟偏差是指同一个时钟域内的时钟信号到达数字电路各个部分(一般指寄存器)所用时间的差异。 

        

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

        所以要对Clock Uncertainty进行约束,使时钟更加贴合实际。

4.2 建立时间和保持时间

        建立时间( Setup Time,Tsu),在时钟上升沿之前数据必须稳定的最短时间。若不满足 setup time,数据无法进入寄存器,数据采样失败。

        保持时间(Hold Time,Th),即在时钟上升沿之后数据必须稳定的最短时间。若不满足 hold time,数据也无法进入寄存器,数据采样失败。

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

        一个数据需要在时钟的上升沿被锁存,那么这个数据就必须在这个时钟上升沿的建立时间和保持时间内保持稳定,即这段时间内传输的数据不能发生任何变化,因此也要对建立时间和保持时间进行约束。

4.3 发起沿和采样沿

        寄存器发送数据和接收数据需要在时钟边沿进行,因此都有一个发起沿和一个锁存沿。通常情况下这两个边沿会有一个时钟周期的差别
        发起沿(Launch edge)是发送数据的时钟边沿,通常选择上升沿。发起沿是源寄存器采样的时间点,也是时序分析路径的起点。
        锁存沿(Latch edge)是采样到该数据的时钟边沿,通常也是上升沿。采样沿是目的寄存器采样的时间点,也是时序分析路径的终点。

        有的文章也会把发起沿和采样沿称为启动沿和采样沿(Capture Edge)。为什么两个边沿会有一个时钟周期的差别?如图所示,REG1和REG2是两个相邻的寄存器,后一级寄存器(目的寄存器,REG2)每次锁存数据都是前一级寄存器(源寄存器,REG1)上一个时钟周期锁存过的数据。因此传输到源寄存器的时钟为启动时钟,传输到目的寄存器的时钟为锁存时钟,对应的启动沿从时间上看比锁存沿早一个时钟周期。

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

4.4 数据到达时间和时钟达到时间

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

        源寄存器rega在clk的上升沿发送数据,要经过一个时间才能到达目的寄存器regb(原因就是有走线、寄存器输出、逻辑处理延时),而这个时间则被称为数据到达时间(Data Arrival Time)。    

        通常选择发送沿Launch edge作为零时刻基准,数据经过Tclka(时钟信号从起点到寄存器时钟端口的时钟延时)、Tco时间(寄存器内部传输时间),到达Q端口点,再从rega的Q端口经过组合逻辑以及布线的线延时(Tdata)到达接收端的D端口。


因此有公式:

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

        目的寄存器对数据进行采样,4.3中提到通常情况下发送沿和采样沿会有一个时钟周期的差别,因此采样沿时间Capture Edge就是发送沿Launch edge+一个时钟周期clkb。 

        所以时钟到达时间(Clock Arrival Time)为

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

4.5 建立时间下的数据需求时间

        前面我们知道在时钟上升沿之前数据必须稳定的最短时间为建立时间,那么对于reg2来说,要想满足建立时间,就必须要在建立时间之前接收到reg1的数据,这个时间就是建立时间下的数据需求时间(Data Required Time - Setup)

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

因此

         

4.6 保持时间下的数据需求时间

        同理,时钟上升沿之后数据必须稳定的最短时间为保持时间,那么当regb采样到数据之后要满足保持时间,那么这个时间就是保持时间下的数据需求时间(Data Required Time - Hold)

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

因此 

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

4.7 建议时间裕量

        在4.5中得到了寄存器满足建立时间下数据接收时间,例如时钟到达时间为5ns,建立时间Tsu为2ns,暂且将时钟不确定忽略,那么上一级数据到达最晚为5-2=3ns,因此上一级数据可以在1ns、2ns的时候到达。

        如果数据在1ns到达目标寄存器,那么建立时间裕量(Setup slack)就是3-1=2ns。

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

4.8 保持时间裕量

        保持时间裕量(Hold slack)同理。

FPGA时序分析与时序约束(一)——基础知识,# FPGA时序分析与约束,fpga开发,Verilog,时序分析,时序约束

参考文献:

《FPGA时序约束与分析》
《正点原子FPGA静态时序分析与时序约束》 
《Intel Quartus Prime Standard Edition用户指南: Timing Analyzer》
《Vivado Design Suite User Guide: Using Constraints(UG903)》
《Vivado Design Suite 用户指南: 设计分析与收敛技巧 (UG906)》
 文章来源地址https://www.toymoban.com/news/detail-772873.html

到了这里,关于FPGA时序分析与时序约束(一)——基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA时序约束与分析(1) --- 时序约束概述

    本系列参考文献 — FPGA时序与约束分析-吴厚航 FPGA从综合到实现需要的过程如下:synth_design - opt_design - place-design - phys_opt_design - route_design 1、时序约束的理解 2、时序约束的基本路径 3、时序约束的步骤 4、时序约束的主要方法 5、查看相关时序信息 FPGA的设计约束分为物理约束

    2024年02月16日
    浏览(24)
  • FPGA时序分析与约束(2)——时序电路时序

            在之前的内容中,我们介绍了组合电路的时序问题和可能导致的毛刺,强烈推荐在阅读前文的基础上再继续阅读本文, 前文链接:FPGA时序分析与约束(1)——组合电路时序         这篇文章中,我们将继续介绍FPGA时序分析相关内容,本文介绍的是时序电路的时序

    2024年02月10日
    浏览(30)
  • FPGA时序分析与时序约束(Vivado)

    后缀L的这个单元中,会生成锁存器 查看布线 定位线路 时间分析,还要考虑数据变化的建立时间与保持时间 经过图上计算可得公式 : Tsu裕量 = (Tskew + 时钟周期 - Tsu) - (Tco + Tdelay) Thd裕量 = Tco + Tdelay - Thd 两个时间都大于0,才能保证系统不产生亚稳态。 建立时间裕量、组

    2024年01月19日
    浏览(30)
  • FPGA时序分析与约束(5)——时序路径

            在之前的文章中我们分别介绍了组合电路的时序,时序电路的时序和时钟的时序问题,我们也对于时序分析,时序约束和时序收敛几个基本概念进行了区分,在这篇文章中,我们将介绍时序约束相关的最后一部分基本概念,带领大家了解什么是时序路径。       

    2024年02月09日
    浏览(30)
  • FPGA时序分析与约束(8)——时序引擎

            要想进行时序分析和约束,我们需要理解时序引擎究竟是如何进行时序分析的,包括时序引擎如何进行建立分析(setup),保持分析(hold),恢复时间分析(recovery)和移除时间分析(removal)。         发起沿(launch edge,源时钟产生数据的有效时钟沿),捕获沿(capture

    2024年02月07日
    浏览(29)
  • FPGA时序分析与约束(1)——组合电路时序

            关于时序分析和约束的学习似乎是学习FPGA的一道分水岭,似乎只有理解了时序约束才能算是真正入门了FPGA,对于FPGA从业者或者未来想要从事FPGA开发的工程师来说,时序约束可以说是一道躲不过去的坎,所以从这篇文章开始,我们来正式进行FPGA时序分析与约束的学

    2024年02月10日
    浏览(30)
  • FPGA的时序分析、约束和收敛(1)----什么是时序分析?什么是时序约束?什么又是时序收敛?

    文章目录         写在前面         磨刀不误砍柴工         什么是时序分析?         什么是时序约束?         什么是时序收敛?         时序约束与分析是FGPA开发过程中一项必备的技能,同时也是设计开发中相对较难的部分。很多人一谈起FPGA开

    2024年02月12日
    浏览(26)
  • FPGA时序分析与约束(10)——生成时钟

            最复杂的设计往往需要多个时钟来完成相应的功能。当设计中存在多个时钟的时候,它们需要相互协作或各司其职。异步时钟是不能共享确定相位关系的时钟信号,当多个时钟域交互时,设计中只有异步时钟很难满足建立和保持要求。我们将在后面的内容中介绍这部

    2024年02月21日
    浏览(28)
  • FPGA时序分析与约束(13)——I/O接口约束

            在应用了时钟约束后,所有寄存器到寄存器的路径都能定时。为了获得更加精准的FPGA外部时序信息,设计者需要为FPGA的I/O接口指定时序信息,一般时序工具只能获取FPGA器件内部的时序信息,对于FPGA器件引脚之外的时序信息,必须由设计者约束定义。如果没有指定的

    2024年02月05日
    浏览(33)
  • FPGA时序约束--基础理论篇

    FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入到输出所需要的时间,这个时间必须在设定的时钟周期内完成,更详细一点,即需要满足建立和保持时间。 时序约束可以让VIvado和Quartus等FPGA开发软件,在布线时检测综合出来

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包