ALTERA系列FPGA时序分析(一)

一. 约束的基本介绍

1.约束的分类

<1>.时序约束:主要用于规范设计的时序行为,表达设计者期望满足的时序条指导综合和布局布线阶段的优化算法等。

区域与位置约束:主要用于指定芯片I/O引脚位置以及指导实现工具在芯特定的物理区域进行布局布线。

其他约束:泛指目标芯片型号、接口位置,电气特性等约束属性。

2.时序约束的主要作用

<1>.提高设计的工作频率

通过附加时序约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。

<2>.获得正确的时序分析报告

QuartusII的静态时序分析(Static Timing Analysis---STA)工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入时序约束,以便STA工具能输出正确的时序分析结果。

3.静态时序分析与动态时序仿真的区别

<1>.静态时序分析:静态时序分析的前提是同步逻辑设计,是通过分析每个时序路径的延时,并且计算路径延迟的总和,比较相对于预定义时钟的延迟,计算出设计的各项时序性能指标,如最高时钟频率、建立保持时间等,发现时序违规。静态时序分析仅关注时序间的相对关系,因此它仅仅聚焦于时序性能的分析,并不涉及设计的逻辑功能,逻辑功能验证仍需通过仿真或其他手段(如形式验证等)进行。静态时序分析是最常用的分析、调试时序性能的方法和工具。

<2>.动态时序仿真:动态时序仿真是针对给定的仿真输入信号波形,模拟设计在器件实际工作时的功能和延时情况,给出相应的仿真输出信号波形。它主要用于验证设计在器件实际延时情况下的逻辑功能。由动态时序仿真报告无法得到设计的各项时序性能指标,如最高时钟频率等。

二. 常用的时序约束概念

1. 时钟抖动与偏斜

<1>.时钟抖动(CLOCK JITTER)

即是时钟信号边沿变化的不确定时间称之为时钟抖动,左右两边均有不同时间的抖动T1和T2,如图1所示

图1 时钟抖动

由于时钟抖动导致其数据的建立时间和保持时间产生一定的变化,即建立时间变为Tsu+T1,保持时间变为Th+T2。

<2>.时钟偏斜(CLOCK SHEW)

时序分析的起点是源寄存器(reg1),终点是目标寄存器(reg2)。时钟和其它信号的传输一样会有延时的。如下图2中所示,时钟信号从时钟源传输到源寄存器的延时定义为Tc2s,传输到目标寄存器的延时定义为Tc2d。

图2 时钟偏斜

时钟网络延时就定义为Tc2s与Tc2d之差,即Tshew=Tc2s - Tc2d。

2. 时钟建立时间和保持时间

<1>.Setup Time: 即建立时间, 在时钟上升沿之前数据必须稳定的最短时间。若不满足setup time, 数据无法进入寄存器:Tsu < Tclk + Tskew – Tco。

图3 建立时间和保持时间

<2>.Hold Time: 即保持时间, 在时钟上升沿之后数据必须稳定的最短时间。 若不满足hold time, 数据无法进入寄存器: Th < Tco。其中Th 限制了数据传输的速度,如果Tco延时太短导致上一级寄存器锁存的数 据侵占了下一级寄存器正在锁存数据的保持时间,那么下一级寄存器就无法有效的锁存数据,系统时序也就无法达到要求(下面将有更详细的分析,必让读者大饱眼福)!

3. Launch edge和Latch edge

<1>.Launch Edge:前级寄存器发送数据对应的时钟沿,是时序分析的起点。

<2>.Latch Edge:后级寄存器捕获数据对应的时钟沿,是时序分析的终点。相 对于launch edge通常为一个时钟周期,但不绝对,如多周期约束。

不瞎BB那么多了,先上图:

图4 Launch Edge & Latch Edge

“信号跳变抵达窗口”:对latch寄存器来说,从previous时钟对应的Hold Time 开始,到current时钟对应的Setup Time结束。

“信号电平采样窗口”:对latch寄存器来说,从current时钟对应的 Setup Time 开始,到current时钟对应的Hold Time结束。

launch寄存器必须保证驱动的信号跳变到达latch寄存器的时刻处于“ 信号跳 变抵达窗口” 内,才能保证不破坏latch寄存器的“信号电平采样窗口”。(读者可自行画图理解)

三. 余量(Slack)简析

1. 关于Setup Slack分析:

在介绍Setup Slack之前,先给大家普及一下相关知识:

<1>.浅谈Data Arrival Time(PS:The time for data to arrival at destination register’s D input),如下图5所示

图5 Data Arrival Time

如图可得:Data Arrival Time = Launch Edge +Tclk1 +Tco + Tdata;

<2>.Clock Arrival Time(The time for clock to arrival at destination register’s clock input)如下图所示

图6 Clock Arrival Time

依图可得:Clock Arrival Time = Latch Edge + Tclk2

<3>.Data Required Time (Setup):(The minimum time required for the data to latched into the destination register ),如下图7所示

图7 Data Required Time

依图可知:Data Required Time =Clock Arrival Time + Tsu

若考虑最坏的情况,则可得Data Required Time =Clock Arrival Time + Tsu – Setup Uncentainty;

<4>.普及了以上知识点,现在就来讲讲有关于Setup Slack的分析:

在Altera的手册上的有关Setup Slack的解释如下:The margin by which the setup timing requirement is met,It ensures launched data arrives in time to meet the latching requirement;见图8

图8 Setup Slack

由图8可知, Setup Slack = Data Required Time – Data Arrival Time,若Setup Slack为正,则说明建立时序余量充足,即满足Setup Time;反之,则不满足;

2. 关于Hold Slack分析:

有了上面关于Setup Slack的分析,以下的hold Slack就so easy啦!

<1>. Data Required Time (Hold): The minimum time required for the data to latched into the destination register.见图9

图9 Data Required Time

依图可知:Data Required Time =Clock Arrival Time + Th;

若考虑最坏的情况,则可得Data Required Time =Clock Arrival Time + Th – Hold Uncentainty;即最坏的情况仍然满足时序要求。

<2>. Hold Slack简析:在Altera的手册上的有关Hold Slack的解释如下:The margin by which the Hold timing requirement is met,It ensures latched data is not corrupted by the data from another launch edge.见图10

图10   Hold Slack

由图10可知, Hold Slack = Data Arrival Time – Data Required Time,若Hold Slack为正,则说明建立时序余量充足,即满足Hold Time;反之,则不满足;

至此,有关于时序分析的基础知识就先到此为止,而关于时序分析计算公式的,小编打算在ALTERA系列FPGA时序分析(二)中继续与广大读者一起分享,一起学习,共同进步。欲知后事如何,请听下回分解;今天广东还下雪了,冻得小编不要不要的。时至深夜,就此搁笔。

时间: 2024-10-21 18:48:53

ALTERA系列FPGA时序分析(一)的相关文章

Altera 的 FPGA 的 AS、PS 和 JTAG 配置模式

FPGA 器件有三种配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式. AS 模式(Active Serial Configuration Mode): FPGA 器件每次上电时作为控制器,由 FPGA 器件引导配置操作过程,它控制着外部存储器和初始化过程,从配置器件 EPCS 主动发出读取数据信号,从而把 EPCS 的数据读入 FPGA 中,实现对 FPGA 的编程配置数据通过 DATA0 引脚送入 FPGA,配置数据被同步在 DCLK 输入上,1 个时钟

ALTERA的FPGA命名规则

DIP中文解释:双列直插式封装.插装型封装之一,引脚从封装两侧引出,封装材料有塑料和陶瓷两种.DIP是最普及的插装型封装,应用范围包括标准逻辑IC,存贮器LSI,微机电路等.        PLCC中文解释:外形呈正方形,32脚封装,四周都有管脚,外形尺寸比DIP封装小得多.PLCC封装适合用SMT表面安装技术在PCB上安装布线,具有外形尺寸小.可靠性高的优点. PQFP中文解释:芯片引脚之间距离很小,管脚很细,一般大规模或超大规模集成电路采用这种封装形式,其引脚数一般都在100以上. SOP中

FPGA时序分析原理图

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点.对于时序如何用FPGA来分析与设计,本文将详细介绍. 基本的电子系统如图 1所示,一般自己的设计都需要时序分析,如图 1所示的Design,上部分为时序组合逻辑,下部分只有组合逻辑.而对其进行时序分析时,一般都以时钟为参考的,因此一般主要分析上半部分.在进行时序分析之前,需要了

xilinx和altera的fpga的不同之处!----如果不知道,你将为之付出代价! --转载

本人从2004年接触fpga开始,至今已经8年了.开发过altera的flex系列和cyclone3系列:开发过xilinx的vii和v5系列.下面谈谈本人对二者的一些不同,以便引起开发者对一些细节上的注意,免得为之付出代价,再走弯路!(1)altera的任意一个管脚都可以连接到这样的sig信号上always @ (posedge(sig)) ……:但是xilinx的fpga不能,只有clk信号才能够分配这样的信号.本人最早使用a公司flex系列的fpga,当fpga和dsp的emif连接时,为

altera公司FPGA的视频流帧抓取

我们在用FPGA对视频进行处理时,常常会遇到:有时候图像中的某些文字显示模糊----这有可能是缩放导致:有时可能是AD/DA模块采用了不同厂家的芯片----导致转换后的效果不同:有可能在图像YUV422与YUV420互相转换----算法间接导致图像效果变差.林林总总,当然还有其它不同的图像处理而有可能降低画质的场景.在针对图像质量跟踪定位时,最直观的,莫过于直接抓取各图像处理功能模块的输入输出,取出前后图像直接对比,就能立竿见影的诊断出该模块是否异常.所以:如何在FPGA中抓取视频流中的一帧图像

FPGA时序分析的一些理解

最开始看的一些资料,大家其实讲得都差不多,但是我却看得云里雾里的,应该是还没真正理解这个东西. 今天心血来潮又把 <七天玩转ALTREA之时序篇>拿出来看了看,应该有些豁然开朗的感觉,在下实属愚笨,想透彻理解一个东西太慢. 首先看一下寄存器到寄存器的路径,如图1: data arrive time:数据到达REG2.D的时刻.进行时序分析时,setup 和hold时间分析时的data arrive time的计算公式都是一样的 关于data arrive time的理解要基于第一个寄存器REG

[笔记]Altera系列01:常用资料下载链接

Altera Product Catalog 外部存储器规范估算器 To be continued.

20150906 - Altera CPLD/FPGA中使用LCELL实现低于一个时钟周期的延时 - ongoing

问题来源:进行串行数据接口调试,希望将Data线在CPLD(EPM570)中进行纳秒级的延时: 解决过程:-->使用插入LCELL来进行延时,LCELL延时相对固定但是会受温度.器件等因素影响: -->插入方法如下: wire AD1_CH0_wire; assign AD1_CH0_wire = ADC_B0; lcell U0_Lcell/* synthesis keep */ ( .in(AD1_CH0_wire), .out(AD1_CH0) );   注意,需要/* synthesi

FPGA驱动lLCD1602

今天抽空写了个驱动LCD1602的小程序.众所周知,FPGA的优势在于并行处理,对于并行的任务FPGA是在擅长不过的了.由于 FPGA 的并行性, 不管是扫描键盘, 还是扫描 VGA,还是LED等, 都可以把它们做成独立的模块, 时间上没有冲突, 每个模块可以同时执行.有优势当然也就存在劣势.对于那列串行的顺序控制就是他的不足.办法总比问题多,我们可以用2种方法解决顺序控制的问题:    1.状态机设计    可以用Verilog编写状态机代码来实现顺序控制,所谓的状态机,就是通过控制状态的跳转