FPGA时序约束中常用公式的详细推导
在fpga工程中加入时序约束的目的:r r t r r t1、给quartusii提出时序要求;r r t r r t2、quartusii在布局布线时会尽量优先去满足给出的时序要求;r r t r r t3、STA静态时序分析工具根据你提出的约束去判断时序是否满足的标准。r r t r r t举个形象的比喻:就好比我要让代工厂(类比quartusii)给我加工一批零件,要求长宽高为10x10cm,误差不超过1mm(类比时序约束条件)。代工厂按要求(即约束条件)开始进行生产加工,工厂为了不返工,肯定会尽量生产出达到我要求的零件。当加工完成后,质检员(类比STA静态时序分析工具)按我给出的要求进行检验看是否满足要求。要是工厂想尽了各种办法也不能达到我给出的要求,那么就是我给出的要求太高了(即时序约束中的过约束),要是我给出的要求太低(比如说加工成方形就行,而没有指出长宽高),那么工厂很容易就生产出来了,但这并不是我想要的,这是由于我给出的约束太松即相当于时序里的欠约束。r r t r r tquartusii里的静态时序分析(STA):是套用特定的时序模型,针对特定电路分析其是否违反设计者给定的时序限制。说白了就是检查fpga内部所有寄存器的建立时间保持时间是否满足spec给定的要求。在FPGA设计中,时序约束是至关重要的,它直接影响着设计的性能和可靠性。时序约束主要包括建立时间(Setup Time)和保持时间(Hold Time)的要求,它们确保了数据在时钟边沿到来时能被正确地采样。本文将深入探讨FPGA时序约束中的常用公式及其意义。我们来看两个关键的时间概念:Data Arrival Time (DAT)和Clock Arrival Time (CAT)。DAT是指数据信号到达目的寄存器REG2的时间,而CAT则是时钟信号到达同一寄存器的时间。时序分析的目标是确保DAT在时钟到达之前满足建立时间要求,同时在时钟到来后保持足够长的时间以满足保持时间要求。 1. Data Required Time (DRT)分为两个部分:Setup DRT和Hold DRT。Setup DRT规定了数据必须在时钟沿到来前到达,以确保建立时间的满足,防止数据过慢导致采样失败。Hold DRT则规定数据在时钟沿之后需要保持稳定一段时间,防止数据过快导致寄存器在锁存旧数据时收到新数据,造成数据错误。 2.时序裕量(Slack)是衡量时序是否满足约束的关键指标。Setup Slack = Setup Required Time - DAT,如果大于0,则满足建立时间要求;反之,小于0则表示未满足。Hold Slack = DAT - Hold Required Time,大于0表示满足保持时间,小于0则不满足。 3.输入延迟(Input Delay)涉及到数据路径延迟和时钟路径延迟的比较。Input Delay = DAT - CAT,它定义了数据相对于时钟到达目的寄存器的时间差。输入最大延迟和最小延迟分别与建立时间和保持时间关联,确保FPGA输入满足这两项时序要求。 4.输出延迟(Output Delay)涉及外部设备的时序参数。输出最大延迟考虑了数据路径的最大延迟和时钟路径的最小延迟,而输出最小延迟则是数据路径的最小延迟和时钟路径的最大延迟之差。 5. Fmax是设计能够运行的最高频率,当Setup Slack等于0时,周期达到最小,此时的频率即为Fmax。计算公式为:period = tco + data_delay + tsu - tskew,其中period是时钟周期,tco是时钟输出延迟,data_delay是数据路径延迟,tsu是建立时间余量,tskew是时钟skew。理解并正确应用这些时序约束公式对于优化FPGA设计至关重要。通过设定合理的时序约束,可以确保设计在满足性能需求的同时,具备足够的裕量以应对工艺、电压和温度变化的影响。此外,时序分析工具如Quartus II的STA功能,能够帮助设计师检查并调整设计,以确保所有时序路径都满足预设的时序要求,从而实现高性能、可靠的FPGA系统。
下载地址
用户评论