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编译工具还需要针对布局布线的结果,套用特定的时序模型,给出最终的时序分析和报告;设计者通过查看时序报告,确认布局布线后的时序结果是否满足设计要求。

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

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

三、时序约束的基本路径

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

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

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

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

在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%且周期固定的方波,但实际上这样的时钟是不存在的,因为晶振源固有的噪声和干扰会造成时钟信号的周期性偏差,一定会有超前或者滞后的偏移,即时钟抖动

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

        

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

4.2 建立时间和保持时间

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

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

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

4.3 发起沿和采样沿

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

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

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

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

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


因此有公式:

Data Arrival Time = Launch Edge + Tclka + Tco + Tdata

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

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

Clock Arrival Time=Capture time + Tclkb

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

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

因此

        Data Required Time= Clock Arrival Time- T_{su}-Setup Uncertainty 

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

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

因此 

Data Required Time= Clock Arrival Time+ T_{su}+Setup Uncertainty

4.7 建议时间裕量

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

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

4.8 保持时间裕量

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

参考文献:

《FPGA时序约束与分析》
《正点原子FPGA静态时序分析与时序约束》 
《Intel Quartus Prime Standard Edition用户指南: Timing Analyzer》
《Vivado Design Suite User Guide: Using Constraints(UG903)》
《Vivado Design Suite 用户指南: 设计分析与收敛技巧 (UG906)》
 

  • 25
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: FPGA时序分析与约束是针对现场可编程门阵列(FPGA)设计的重要概念。这些概念涉及到设计者需要了解和控制信号在FPGA器件中传播的时间和时序关系。而"吴厚航PDF"可能是与该主题相关的一本参考书籍。 FPGA时序分析指的是对设计中的信号和时钟进行分析,以确保在FPGA中的电路功能正确工作。在FPGA设计中,信号需要遵循特定的时钟信号来进行同步。时序分析可以帮助设计者确定信号在时钟周期内是否能够到达正确的位置,以及是否存在时序冲突或延迟问题。 约束是指设计者在FPGA设计中对信号传输时间和延迟进行设置的规定和要求。约束通常根据设计的需求和时钟信号的特性来确定。约束可以包括时钟频率、信号延迟、时序路径等。 FPGA时序分析与约束的目标是保证电路在特定的工作频率下能够正确工作,避免由于时序问题而导致的不稳定性和错误。通过合理的时序分析和设置约束,设计者可以优化FPGA电路的性能和可靠性。 《FPGA时序分析与约束》吴厚航PDF可能是一本专门讲解FPGA时序分析和约束的参考资料。在这本书中,可能会详细解释FPGA时序分析的基本原理、技术和工具,以及如何针对具体的应用场景设置约束。 总之,FPGA时序分析与约束是FPGA设计中的关键概念,它们可以帮助设计者确保电路的稳定性和正确性。《FPGA时序分析与约束》吴厚航PDF可能是一本与该主题相关的参考资料,提供了更深入的理论和实践知识。 ### 回答2: FPGA时序分析与约束是针对FPGA设计的一项重要工作。FPGA是可编程逻辑门阵列的缩写,是一种硬件实现的芯片。在FPGA设计中,时序是指设计中各个逻辑块之间的信号传输的时间关系。时序分析是对这些时间关系进行评估和优化的过程。 FPGA时序分析的主要目标是确保设计在FPGA芯片上能够正常工作,并满足预期的时序要求。为了实现这一目标,我们需要进行时序约束的设置。时序约束是一种指导工具,向综合工具和布局布线工具提供设计时序要求的信息。 时序约束的设置需要考虑以下几个方面。首先是时钟约束,包括时钟的频率、时钟的起始边沿和时钟的延迟等。时钟是FPGA设计中的核心部分,时序约束需要确保时钟信号在设计中的传输和同步是稳定的,以保证正确的计时。 其次是数据通路约束。数据通路约束包括数据信号的延迟和传输路径的限制等。为了避免数据的丢失和错误,时序约束需要确保数据在各个逻辑块之间的传输是准确和可靠的。 此外,时序约束还需要考虑时序缓存和时序精确性等因素。时序缓存是一种关键的设计工具,用于在不同时钟域之间进行数据的传输和同步,以确保数据的准确性和可靠性。时序精确性则是指设计需要满足的精确的时序要求,以保证设计的稳定性和可靠性。 总而言之,FPGA时序分析与约束对于FPGA设计来说至关重要。通过合理设置时序约束,我们可以保证设计在FPGA芯片上能够正常工作,并满足预期的时序要求。这对于提高设计的性能和可靠性非常重要。 ### 回答3: FPGA时序分析与约束是指在设计FPGA时,对时序特性进行分析和约束的过程。FPGA时序分析主要涉及到时钟信号的传输延迟、时钟频率和数据路径的延迟等方面,而FPGA时序约束则是为了保证设计的正确性和可靠性。 在FPGA时序分析中,我们需要考虑时钟信号的传输延迟。FPGA中的时钟信号需要在各个逻辑元件中进行传输,传输过程中会产生延迟,这会影响到时钟信号的稳定性和准确性。因此,我们需要分析时钟信号的传输路径,确定时钟延迟,避免时钟信号的过早到达或延迟到达的情况。 时钟频率也是FPGA时序分析的重要考虑因素。时钟频率决定了系统的运行速度和性能。在分析时序时,我们需要确保时钟信号的频率与设计要求相匹配,以避免时序不稳定或不可靠的情况。对于高时钟频率的设计,需要更加严格的时序约束和设计考虑,以保证数据的准确传输和处理。 此外,FPGA时序分析还需要考虑数据路径的延迟。FPGA中的数据路径是指数据在逻辑元件之间的传输路径,包括组合逻辑电路和时序逻辑电路等。在分析数据路径时,我们需要确定数据传输的延迟,避免数据信号在逻辑元件之间发生冲突或竞争的情况。 FPGA时序约束是为了保证FPGA设计的正确性和可靠性。通过设置时序约束,我们可以限制时钟信号的延迟范围,保证时序稳定;同时,我们也可以约束数据路径的延迟,保证数据的正确传输。时序约束可以通过HDL代码中的约束语句进行设置,也可以通过专门的工具进行约束文件的编辑和设置。 总之,FPGA时序分析与约束是保证FPGA设计正确性和可靠性的重要步骤。通过分析时钟信号的传输延迟、时钟频率和数据路径的延迟等因素,并通过设置合理的时序约束,可以确保FPGA设计在工作时满足时序要求,稳定可靠地工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值