当前位置:首页 > 新闻资讯 > FPGA之家动态 >

FPGA STA(静态时序分析)

时间:2025-01-17      来源:FPGA_UCY 关于我们 0

今天给大侠带来FPGA STA(静态时序分析),话不多说,上货。

一、概述

1.1 概述

在快速系统中FPGA时序约束不止包含内部时钟约束,还应包含完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛。因此。FPGA时序约束中IO口时序约束也是一个重点。仅仅有约束正确才能在快速情况下保证FPGA和外部器件通信正确。

1.2 FPGA总体概念

因为IO口时序约束分析是针对于电路板整个系统进行时序分析,所以FPGA需要作为一个总体分析,当中包含FPGA的建立时间、保持时间以及传输延时。传统的建立时间、保持时间以及传输延时都是针对寄存器形式的分析。针对整个系统FPGA的建立时间保持时间能够简化。下图为FPGA总体时序图:

如图上图所示,分解的FPGA内部寄存器的性能參数:

(1) Tdin为从FPGA的IO口到FPGA内部寄存器输入端的延时;

(2) Tclk为从FPGA的IO口到FPGA内部寄存器时钟端的延时;

(3) Tus/Th为FPGA内部寄存器的建立时间和保持时间;

(4) Tco为FPGA内部寄存器传输时间;

(5) Tout为从FPGA寄存器输出到IO口输出的延时。

对于整个FPGA系统分析,能够又一次定义这些參数:FPGA建立时间能够定义为:

(1) FPGA建立时间:FTsu = Tdin + Tsu – Tclk;

(2) FPGA保持时间:FTh = Th + Tclk。

(3) FPGA传输数据时间:FTco = Tclk + Tco + Tout;

由上分析当FPGA成为一个系统后就可以进行IO时序分析了。FPGA模型变为如下图所示,为FPGA系统参数:

1.3输入最大最小延时

外部器件发送数据到FPGA系统模型如图1.3所看到的。

对FPGA的IO口进行输入最大最小延时约束是为了让FPGA设计工具可以尽可能的优化从输入port到第一级寄存器之间的路径延迟,使其可以保证系统时钟可靠的採到从外部芯片到FPGA的信号。下图为FPGA数据输入模型:

输入延时即为从外部器件发出数据到FPGA输入port的延时时间。

当中包含时钟源到FPGA延时和到外部器件延时之差、经过外部器件的数据发送Tco。再加上PCB板上的走线延时。如图1.4所看到的,为外部器件和FPGA接口时序。下图为外部器件和FPGA接口时序:

(1). 最大输入延时

最大输入延时(input delay max)为当从数据发送时钟沿( edge)经过最大外部器件时钟偏斜(Tclk1),最大的器件数据输出延时(Tco),再加上最大的PCB走线延时(Tpcb)。减去最小的FPGA时钟偏移(FTsu)的情况下还能保证时序满足的延时。这样才能保证FPGA的建立时间,准确采集到本次数据值,即为setup slack必须为正。如图1.1的所看到的。计算公式如下所示:

Setup slack =(Tclk + Tclk2(min))–(Tclk1(max)+Tco(max)+Tpcb(max)+FTsu)≥0

推出以下公式:

Tclk1(max)+ Tco(max)+ Tpcb(max)–Tclk2(min)≤ Tclk + FTsu

由官方数据手冊得知:

input delay max = Board Delay(max)– Board clock skew(min)+ Tco(max)

结合本系统參数公式为:

input delay max = Tpcb(max)– (Tclk2(min)–Tclk1(max)) + Tco(max)

(2).最小输入延时

最小输入延时(input delay min)为当从数据发送时钟沿( edge)经过最小外部器件时钟偏斜(Tclk1),最小器件数据输出延时(Tco),再加上最小PCB走线延时(Tpcb),此时的时间总延时值一定要大于FPGA的最大时钟延时和建立时间之和。这样才能不破坏FPGA上一次数据的保持时间。即为hold slack必须为正,如图1.1的所看到的,计算公式例如以下式所看到的:

Hold slack=(Tclk1(min)+ Tco(min)+ Tpcb(min))–(FTh + Tclk2(max))≥ 0

推出例如以下公式:

Tclk1(min)+Tco(min)+Tpcb(min)–Tclk2(max)≥ FTh

由官方数据手冊得知:

input delay max = Board Delay(min)- Board clock skew(min)+ Tco(min)

结合本系统參数公式为

input delay max=Tpcb(min)– (Tclk2(max)–Tclk1(min)) + Tco(min)

进行输入最大最小延时的计算,我们需要估算4个值:

当外部器件时钟为FPGA提供的时候。Tclk1和Tclk2即合成Tshew,如图下图所示,为FPGA输出时钟模型:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

1.4 输出最大最小延时

FPGA输出数据给外部器件模型如下图所示。对FPGA的IO口进行输出最大最小延时约束是为了让FPGA设计工具可以尽可能的优化从第一级寄存器到输出port之间的路径延迟。使其可以保证让外部器件能准确的採集到FPGA的输出数据。下图为FPGA输出延时模型:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

输出延时即为从FPGA输出数据后到达外部器件的延时时间。

当中包含时钟源到FPGA延时和到外部器件延时之差、PCB板上的走线延时以及外部器件的数据建立和保持时间。如图所看到的,为FPGA和外部器件接口时序图。下图为FPGA输出延时:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

(1). 最大输出延时

由官方数据手冊得知:

delay max = Board Delay (max) – Board clock skew (min) + Tsu

由公式得知。最大输出延时( delay max)为当从FPGA数据发出后经过最大的PCB延时、最小的FPGA和器件时钟偏斜,再加上外部器件的建立时间。约束最大输出延时,是为了约束IO口输出,从而使外部器件的数据建立时间。即为setup slack必须为正,计算公式例如以下式所看到的:

Setup slack =(Tclk + Tclk2(min))–(Tclk1(max)+FTco(max)+Tpcb(max)+Tsu)≥0

推导出例如以下公式:

FTco(max)+ Tpcb(max)–(Tclk2(min)– Tclk1(max))+Tsu ≤Tclk

再次推导,得到例如以下公式:

FTco(max)+ delay max ≤Tclk

由此可见,约束输出最大延时。即为通知编译器FPGA的FTco最大值为多少。依据这个值做出正确的综合结果。

(2).输出最小延时

由官方数据手冊得知:

delay min = Board Delay (min) – Board clock skew (max) –Th

由公式得知,最小输出延时( delay min)为当从FPGA数据发出后经过最小的PCB延时、最大的FPGA和器件时钟偏斜,再减去外部器件的建立时间。约束最小输出延时,是为了约束IO口输出。从而使IO口输出有个最小延时值,防止输出过快,破坏了外部器件上一个时钟的数据保持时间。导致hlod slack为负值。不能正确的锁存到数据。最小输出延时的推导计算公式例如以下式所看到的:

Hold slack = (Tclk1(min)+ FTco(min)+ Tpcb(min))–(Th + Tclk2(max))≥ 0

推导出例如以下公式:

FTco(min)+ Tpcb(min)– (Tclk2(max)– Tclk1(min))– Th ≥ 0

再次推导,得出例如以下公式:

FTco(min)+ delay min ≥ 0

由公式得知,约束输出最大延时,即为通知编译器FPGA的FTco最小值为多少。依据这个值做出正确的综合结果。

由公式得知,进行输出最大最小延时的计算,我们需要估算4个值:

当外部器件时钟为FPGA提供的时候,Tclk1和Tclk2即合成Tshew。如下图所示,为FPGA提供时钟模型:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

1.5 使用范围

通过作者使用总结情况,IO口时序约束主要使用在下面情况:

1.数据交换频率较高

因为IO时序约束一般计算值都是在几纳秒。当FPGA和外部数据交换频率较低,如FPGA操作640*480的TFT液晶进行刷屏,传输数据频率只24Mhz,一个数据时钟都有41.666ns,全然不用约束都能满足时序要求。

可是当操作SDRAM执行到120M时候,因为一个数据变换周期才8ns。因此IO口的少量延时都会影响到SDRAM数据。因此这样的情况下需要对输入输出进行完整的IO口时序约束。而且分析正确,才干消除传输数据不稳定过的情况。

2.代码已经比较优化

当数据交换频率较高,可是时序约束还是不满足时序要求的时候。我们都需要对代码进行分析,好的时序都是设计出来的,不是约束出来的。如程序清单 1.1所看到的。首先 和 都为10位计数器,这种代码TFT的三色输出的port就会有非常大的延时。由于的胶合逻辑太多。输出路径太长导致。

这种情况下应该不是首先做时序约束,应该改动代码,尽量做到寄存器直接输出。仅仅有当代码比较优化的情况,再做时序约束这样才干得到较好的结果。

演示样例程序如下:

= (( >= ) && ( < )) &&((>=)&&(-> File建立SDC文件,选择时钟约束如下图所示,为多时钟约束:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

对时钟进行例如以下约束后保存SDC文件,约束如下图所示,为多时钟约束完毕:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

1. 时钟约束

时钟约束除了在中能够约束外。还能够在 中设置时钟约束,打开 ,选择Clock进行针对每一个使用时钟的设置,如下图所示,为时序约束:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

1.3时序报告分析(1)时序报告

当约束了时序后,需要观察时序报告,看时钟是否能达到我们需要的时钟,首先观察综合报告。以多时钟约束为样例,从得到的时序报告如下图所示,为多时钟约束时序报告:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

由上图可知时序都满足约束,未出现违规。能够在以下的报告中查看最差路径,如图4.7所看到的是clk2的最差路径。下图为最差路径:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

(2) 时序分析报告

当设计经过综合给出网表文件后,还须要进行布局布线,通过布局布线优化后的时序会有变化,因此,还须要分析布局布线后的时序,打开-> 查阅总体时序分析报告如下图所示,为布局布线后时序报告:

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

由综合后的报告和进行布局布线后的报告能够看出。布局布线后优化了一些时序。特别是clk2时钟,通过布局布线后优化到了,全然满足时序。

(3)具体时序报告图

通过综合后的和进行布局布线都仅仅是看到了一个大体的时序报告。当我们需要分析时序时候必须观察细致的时序报告,在中提供这样的报告功能,以clk2分析为例,在 找到例如以下区域,下图为时序报告选择。

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

如上图所示,选择寄存器到寄存器进行分析时钟主频。寄存器到寄存器分析。

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

如上图所示,时序报告中给出了数据延时。时序余量,数据到达时间,数据需求时间。数据建立时间,以及最小周期和时钟偏斜等信息,有了上一节的时序分析基础知识,我们全然能看懂这些数据代表的意义。这样对我们时序分析就知己知彼,进一步双击当中一条路径,还会给出这条路径的硬件电路图,如下图硬件电路图所示。有了这些具体的时序报告。对设计进行调整更加清晰。

基础知识是指什么_基础知识不牢固的评语_FPGA基础知识

END


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言