您的位置 首页 动态

FPGA进行静态时序剖析

FPGA进行静态时序分析-静态时序分析简称STA,它是一种穷尽的分析方法,它按照同步电路设计的要求,根据电路网表的拓扑结构,计算并检查电路中每一个DFF(触发器)的建立和保持时间以及其他基于路径的时延要求是否满足。

1. 适用范围

本文档理论适用于Actel FPGA而且选用Libero软件进行静态时序剖析(寄存器到寄存器)。

2. 运用布景

静态时序剖析简称STA,它是一种尽头的剖析办法,它依照同步电路规划的要求,依据电路网表的拓扑结构,核算并检查电路中每一个DFF(触发器)的树立和坚持时刻以及其他依据途径的时延要求是否满意。STA作为FPGA规划的首要验证手法之一,不需求规划者编写测验向量,由软件主动完结剖析,验证时刻大大缩短,测验覆盖率可达100%。

静态时序剖析的条件便是规划者先提出要求,然后时序剖析东西才会依据特定的时序模型进行剖析,给出正确是时序陈述。

进行静态时序剖析,首要意图便是为了进步体系作业主频以及添加体系的安稳性。对许多数字电路规划来说,进步作业频率非常重要,由于高作业频率意味着高处理才能。经过附加束缚能够操控逻辑的归纳、映射、布局和布线,以减小逻辑和布线延时,然后进步作业频率。

3. 理论剖析

3.1 静态时序剖析的理论基础知识

在进行正确的时序剖析前,咱们有必要具有根本的静态时序的根本知识点,否则看着编译器给出的时序剖析陈述犹如天书。如图3.1所示,为libero软件给出的寄存器到寄存器模型的时序剖析陈述的截取,接下来咱们会弄清楚每个栏意图数据变量的含义,以及核算办法。

FPGA进行静态时序剖析

图3.1 libero静态时序剖析陈述

3.1.1 固定参数launch edge、latch edge、Tsu、Th、Tco概念

1. launch edge

时序剖析起点(launch edge):榜首级寄存器数据改变的时钟边缘,也是静态时序剖析的起点。

2. latch edge

时序剖析结尾(latch edge):数据存的时钟边缘,也是静态时序剖析的结尾。

3. Clock Setup Time (Tsu)

树立时刻(Tsu):是指在时钟沿到来之前数据从不安稳到安稳所需的时刻,假如树立的时刻不满意要求那么数据将不能在这个时钟上升沿被安稳的打入触发器。如图3.2所示:

FPGA进行静态时序剖析

图3.2 树立时刻图解

4. Clock Hold TIme (Th)

坚持时刻(Th):是指数据安稳后坚持的时刻,假如坚持时刻不满意要求那么数据相同也不能被安稳的打入触发器。坚持时刻示意图如图3.3所示:

FPGA进行静态时序剖析

图3.3 坚持时刻图解

5. Clock-to-Output Delay(tco)

数据输出延时(Tco):这个时刻指的是当时钟有用沿改变后,数据从输入端到输出端的最小时刻距离。

3.1.2 Clock skew

时钟偏斜(clock skew):是指一个时钟源抵达两个不同寄存器时钟端的时刻偏移,如图3.4所示:

FPGA进行静态时序剖析

图3.4 时钟偏斜

时钟偏斜核算公式如下:

Tskew = Tclk2 – Tclk1                (公式3-1)

3.1.3 Data Arrival TIme

数据抵达时刻(Data Arrival TIme):输入数据在有用时钟沿后抵达所需求的时刻。首要分为三部分:时钟抵达寄存器时刻(Tclk1),寄存器输出延时(Tco)和数据传输延时(Tdata),如图3.5所示

FPGA进行静态时序剖析

图3.5 数据抵达时刻

数据抵达时刻核算公式如下:

Data Arrival TIme = Launch edge + Tclk1 +Tco + Tdata            (公式3-2)

3.1.4 Clock Arrival Time

时钟抵达时刻(Clock Arrival Time):时钟从latch边缘抵达锁存寄存器时钟输入端所耗费的时刻为时钟抵达时刻,如图3.6所示

FPGA进行静态时序剖析

图3.6 时钟抵达时刻

时钟抵达时刻核算公式如下:

Clock Arrival Time = Lacth edge + Tclk2              (公式3-3)

3.1.5 Data Required Time(setup/hold)

数据需求时刻(Data Required Time):在时钟锁存的树立时刻和坚持时刻之间数据有必要安稳,从源时钟起点抵达这种安稳状况需求的时刻即为数据需求时刻。如图3.7所示:

FPGA进行静态时序剖析

图3.7 数据需求时刻

(树立)数据需求时刻核算公式如下:

Data Required Time = Clock Arrival Time – Tsu            (公式3-4)

(坚持)数据需求时刻核算公式如下:

Data Required Time = Clock Arrival Time + Th            (公式3-5)

3.1.6 Setup slack

树立时刻余量(setup slack):当数据需求时刻大于数据抵达时刻时,就说时刻有余量,Slack是表明规划是否满意时序的一个称谓。

FPGA进行静态时序剖析

图3.8 树立时刻余量

如图3.8所示,树立时刻余量的核算公式如下:

Setup slack = Data Required Time – Data Arrival Time            (公式3-6)

由公式可知,正的slack表明数据需求时刻大于数据抵达时刻,满意时序(时序的余量),负的slack表明数据需求时刻小于数据抵达时刻,不满意时序(时序的短缺量)。

3.1.7 时钟最小周期

时钟最小周期:体系时钟能运转的最高频率。

1.  当数据需求时刻大于数据抵达时刻时,时钟具有余量;

2. 当数据需求时刻小于数据抵达时刻时,不满意时序要求,寄存器阅历亚稳态或许不能正确取得数据;

3. 当数据需求时刻等于数据抵达时刻时,这是最小时钟运转频率,刚好满意时序。

从以上三点能够得出最小时钟周期为数据抵达时刻等于数据需求时刻,的运算公式如下:

Data Required Time = Data Arrival Time                (公式3-7)

由上式推出如下公式:

Tmin + Latch edge + Tclk2 – Tsu = Launch edge + Tclk1 + Tco + Tdata

终究推出最小时钟周期为:

Tmin = Tco + Tdata + Tsu – Tskew                  (公式3-8)

4. 运用剖析

4.1 设置时钟主频束缚

一切的静态时序剖析都是在有束缚的情况下编译器才给出剖析陈述,所以进行时序剖析的榜首步便是设置束缚。

Libero软件设置时钟束缚的途径三种,单时钟束缚,多时钟束缚和在Designer里边进行束缚。

4.1.1 单时钟束缚

有时咱们体系一切模块都选用同一个时钟,这种方法最为简略,直接在Synplify主界面上有个设置时钟束缚的,如图4.1中红框所示:

FPGA进行静态时序剖析

图4.1 单时钟设置

设置完结后,编译,经过Synplify时钟陈述看开始时钟运转频率能否抵达要求,时钟陈述如图4.2所示,设定100Mhz,能运转102.7Mhz,满意时序。

FPGA进行静态时序剖析

图4.2 时序陈述

4.2 多时钟束缚

当体系内部模块选用了多个时钟时,那就需求进行多时钟束缚了。首要需求翻开设置界面,在Synplify中挑选:File-》New-》Constraint File树立SDC文件,挑选时钟束缚如图4.3所示:

FPGA进行静态时序剖析

图4.3 多时钟束缚

对时钟进行如下束缚后保存SDC文件,束缚如图4.4所示

FPGA进行静态时序剖析

图4.4 多时钟束缚完结

4.3 Designer SmartTime时钟束缚

时钟束缚除了在Synplify中能够束缚外,还能够在Designer SmartTime中设置时钟束缚,翻开Designer Constraint,挑选Clock进行针对每个运用时钟的设置,如图4.5所示:

FPGA进行静态时序剖析

图4.5 Designer时序束缚

4.4 时序陈述剖析

4.4.1 Synplify时序陈述

当束缚了时序后,需求调查时序陈述,看时钟能否抵达咱们需求的时钟,首要调查Synplify归纳陈述。以多时钟束缚为比如,从Synplify得到的时序陈述如图4.6所示:

FPGA进行静态时序剖析

图4.6 多时钟束缚时序陈述

由上图可知时序都满意束缚,未呈现违规,能够鄙人面的陈述中检查最差途径,如图4.7所示是clk2的最差途径。

FPGA进行静态时序剖析

图4.7 最差途径

4.4.2 Designer SmartTime时序剖析陈述

当规划经过Synplify归纳给出网表文件后,还需求Designer进行布局布线,经过布局布线优化后的时序会有改变,因而,还需求剖析布局布线后的时序,翻开Designer-》Timing Analyzer查阅全体时序剖析陈述如图4.8所示:

FPGA进行静态时序剖析

图4.8 布局布线后时序陈述

由Synplify归纳后的陈述和Designer进行布局布线后的陈述能够看出,布局布线后优化了一些时序,特别是clk2时钟,经过布局布线后优化到了184Mhz,彻底满意时序。

4.4.3 具体时序陈述图

经过Synplify归纳后的和Designer进行布局布线都只是看到了一个大体的时序陈述,当咱们需求剖析时序时分有必要调查细心的时序陈述,在SmartTime中供给这种陈述功用,以clk2剖析为例,在Timing Analyzer找到如下区域。

FPGA进行静态时序剖析

图4.9 时序陈述挑选

如图4.9所示,挑选寄存器到寄存器进行剖析时钟主频。

FPGA进行静态时序剖析

图4.10 寄存器到寄存器剖析

如图4.10所示,时序陈述中给出了数据延时,时序余量,数据抵达时刻,数据需求时刻,数据树立时刻,以及最小周期和时钟偏斜等信息,有了上一节的时序剖析基础知识,咱们彻底能看懂这些数据代表的含义,这样对咱们时序剖析就知己知彼,进一步双击其间一条途径,还会给出这条途径的硬件电路图,如图4.11所示,有了这些具体的时序陈述,对规划进行调整愈加明晰。

FPGA进行静态时序剖析

图4.11 硬件途径

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/99125.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部