FPGA时序分析原理图

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。对于时序如何用FPGA来分析与设计,本文将详细介绍。

基本的电子系统如图 1所示,一般自己的设计都需要时序分析,如图 1所示的Design,上部分为时序组合逻辑,下部分只有组合逻辑。而对其进行时序分析时,一般都以时钟为参考的,因此一般主要分析上半部分。在进行时序分析之前,需要了解时序分析的一些基本概念,如时钟抖动、时钟偏斜(Tskew)、建立时间(Tsu)、保持时间(Th)等。时序分析也就是分析每一个触发器(寄存器)是否满足建立时间/保持时间,而时序的设计的实质就是满足每一个触发器的建立时间/保持时间的要求。

图 1 基本的电子系统

一、时钟抖动和时钟偏斜

1.时钟抖动

时钟信号边沿变化的不确定时间称为时钟抖动,如图 2所示。一般情况下的时序分析是不考虑时钟抖动,如果考虑时钟抖动,则建立时间应该是Tsu+T1,保持时间应该是Th+T2。

图 2 时钟抖动时序图

2.时钟偏斜

时序偏斜分析图如图 3所示。时钟的分析起点是源寄存器(Reg1),终点是目标寄存器(Reg2)。时钟在图中的结构中传输也会有延迟,时钟信号从时钟源传输到源寄存器的延时为Tc2s,传输到目标寄存器的延时为Tc2d。时钟网络的延时为Tc2s与Tc2d之差,即Tskew=Tc2d-Tc2s。

图 3 时钟偏斜时序图

二、建立时间和保持时间

建立时间(Setup Time)常用Tsu表示,指的是在触发器的时钟信号上升沿到来以前,数据和使能信号稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器,使能信号无效,也就是说在这个时钟周期对数据的操作时无效的;保持时间(Hold Time)常用Th表示,指的是在触发器的时钟信号上升沿到来以后,数据和使能信号稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器,对数据的操作同样是无效的,使能信号无效。数据要能稳定传输,就必须满足建立时间和保持时间的关系,图 4标识了它们间的关系。

图 4 建立时间/操持时间的概念

三、发送沿和捕获沿

(1)发送沿(Launch Edge):前级寄存器发送数据对应的时钟沿,是时序分析的起点;

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

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

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

launch寄存器必须保证驱动的信号跳变到达latch寄存器的时刻处于“信号跳变抵达窗口”内,才能保证不破坏latch寄存器的“信号电平采样窗口”。

图 5 Launch Edge和Latch Edge

四、数据和时钟的时序分析

如图 6所示,为分析建立时间/保持时间的基本电路图。Tclk1为Reg1的时钟延时,Tclk2为Reg2的时钟延时,Tco为Reg1固有延时,Tdata为Reg1的到Reg2之间组合逻辑的延时,Tsu为Reg2的建立时间,Th为Reg2的保持时间,设时钟clk周期为T,这里分析数据的建立时间和保持时间。

图 6 基本电路图

1、建立时间的分析

如图 7所示,建立时间的分析是以第一个launch Edge为基准,在Latch Edge查看结果。建立时间的裕量(T为时钟周期):

Setup Stack = (T+Tclk2) – Tsu – (Tclk1+Tco+Tdata)

假设△T = Tclk2-Tclk1,则:

Setup Stack = (T+△T) – Tsu – (Tco+Tdata)

可见△T<0影响建立时间,使建立时间的要求更加苛刻。因此对于△T尽量避免,采用同步单时钟,并且尽量采用全局的时钟信号,这样△T几乎为0,,△T的影响几乎不存在,可以忽略不计。

如果建立时间的裕量Setup Stack小于0,则不满足建立时间,也就会产生不稳定态,并通过寄存器传输下去。

图 7 建立时间时序分析图

2、保持时间的分析

如图 8所示,保持时间的分析是以第二个launch Edge为基准,在Latch Edge查看结果。保持时间的裕量:

Hold Stack = (Tclk1+Tco+Tdata) – Tclk2 – Th

假设△T = Tclk2-Tclk1,则:

Hold Stack = (Tco+Tdata) – △T – Th

可见△T>0影响保持时间,使保持时间的要求更加苛刻。。因此对于△T尽量避免,采用同步单时钟,并且尽量采用全局的时钟信号,这样△T几乎为0,,△T的影响几乎不存在,可以忽略不计。

如果保持时间的裕量Hold Stack小于0,则不满足保持时间,也就会产生不稳定态,并通过寄存器传输下去。

图 8 保持时间时序分析图

五、DT6000S项目实例

DT6000S项目上有4路光以太网接口连接到FPGA,由FPGA进行实现MAC层和解码IEC61850的SV和GOOSE。以太网PHY通过MII接口和FPGA,因此FPGA与外部的接口有4路MII接口。项目初期是实现1路光以太网接口,并且验证功能正确之后,但是后期变成的4路光以太网时,总会存在1路光以太网通信不正常。经过分析得到是FPGA通MII接口和PHY的时序不满足。如图 9所示为MII接口的时序图,时序不满足分为TX_CLK和RX_CLK。

其一是PHY输出的TX_CLK和FPGA依据TX_CLK产生的TXD[3:0]&TX_EN延时大,主要延时为内部逻辑的延时,PCB延时小并且一致,导致PHY的TX_CLK的建立时间不满足,从而导致发送数据错误。

其二是PHY输出的RX_CLK和RXD[3:0]&RX_DV&RX_ER到FPGA内部同步触发器的延时之差太大,导致FPGA内部同步触发器的RX_CLK的建立时间不满足,从而导致接收数据错误。

因此FPGA在综合时需要添加约束,使之时序满足要求,约束的条件为TXD[3:0]和TX_EN的输出延时要少。RX_CLK和RXD[3:0]&RX_DV&RX_ER路径延时之差要小。添加约束之后,4路MII接口的光以太网数据通信就正常了。

图 9 MII时序图

这里阐述了时序分析基础,说明概念的同时进行了时序分析,通过时序分析理解建立时间和保持时间。希望大家阅读本文之后可以对FPGA时序分析有进一步的了解。

原文地址:https://www.cnblogs.com/lionsde/p/9404685.html

时间: 2024-10-21 07:26:01

FPGA时序分析原理图的相关文章

ALTERA系列FPGA时序分析(一)

一. 约束的基本介绍 1.约束的分类 <1>.时序约束:主要用于规范设计的时序行为,表达设计者期望满足的时序条指导综合和布局布线阶段的优化算法等. 区域与位置约束:主要用于指定芯片I/O引脚位置以及指导实现工具在芯特定的物理区域进行布局布线. 其他约束:泛指目标芯片型号.接口位置,电气特性等约束属性. 2.时序约束的主要作用 <1>.提高设计的工作频率 通过附加时序约束可以控制逻辑的综合.映射.布局和布线,以减小逻辑和布线延时,从而提高工作频率. <2>.获得正确的时序

如何寻找FPGA的原理图封装库

Candence的SPB平台业界闻名,其PCB工具allegro渐已成为业界的标准,自从收购了ORCAD原理图工具(改名为Capture CIS),尽管它们不是同一个娘生的,但配合得天衣无缝.   ALTERA 遗憾的是ORCAD里面的原理图库不全,FPGA的库元件都是老掉牙的东西,对此我开始时是非常不满意,后来发觉在http://www.altera.com.cn/support/software/download/pcb/pcb-pcb_index.html有完全的PCB和原理图封装信息,还

FPGA时序分析的一些理解

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

Timequest Timing Analyzer进行时序分析(四)

设定输入/输出延迟(input/output delay).首先看输入延迟. 下面图示的系统是我们在做数字电路设计时经常会遇到的.External Device可能是其他的集成电路芯片,也有可能是其他的FPGA,为了与我们所要讨论的FPGA分开,称之为External Device.External Device中的寄存器D1的输出送给FPGA中的寄存器D2.D1和D2属于同一个时钟域(CLK).为了简化讨论,我们假设CLK source到两个寄存器之间的延时是相等的,也就是说延时CLK1等于延

基于建立/保持时间等的参数化时序分析

说明 本文源自作者读研期间的一份作业报告,主要基于建立时间.保持时间等时间约束参数推导时序分析公式,并通过实验进行验证. 因时间久远,某些实验数据和理论推导可能存在缺失,且难以回忆.若对读者造成理解困难,还请见谅~ 相关实验参见以下两篇文章: 采用流水线技术实现8位加法器 Stratix内嵌存储器测试报告 一  基本概念 建立时间(SetUp Time, tsu):触发器在有效时钟沿来到前,其数据输入端的数据必须保持不变的时间: 保持时间(Hold Time, th):触发器在有效时钟沿来到后,

关于rs编码的理解

1,rs编码首先是线性循环编码,所谓线性循环编码就是说编码后的码组T(x)左移或右移都必然还是有限组码组中的一组,并且T(X)码组能够被g(x)整除,g(x)为生成多项式. 2,由信息码m(x)得到T(x)的原理: 3,关于域 所指的域为伽罗华域,简写为GF(2^m)域中的每个元素都可以用a^0,a^1,a^2...a^(m-1) 的和表示. 运算法则可以参考模2运算,不过乘法运算有区别,是模N算法,N不一定是2. 4,生成多项式g(x)=(x-a)(x-a^2)(x-a^3).....(x-a

FPGA静态时序分析——IO口时序(Input Delay /output Delay)(转载)

转载地址:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1  概述 在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛.因此,FPGA时序约束中IO口时序约束也是一个重点.只有约束正确才能在高速情况下保证FPGA和外部器件通信正确. 1.2  FPGA整体概念 由于IO口时序约束分析是针对于电路板整个系统进行时序分析,所以FPGA需要作为一个

FPGA中的时序分析(二)

使用Timequest 笔者对Altera较熟悉,这里以quartus ii中的timequest作为讲解. Timequest分析时序的核心,也就是在于延迟因数的计算.那么建立约束文件,去告诉timequest,哪个地方有什么样的约束,该怎么进行约束. 之所以要建立相关网表的概念,是因为我们在利用quartus ii 中的timequest 时,大致的流程是:建立网表----建立SDC文件----更新网表: 2.1 SDC网表 SDC网表包括:端口(port),引脚(pin),单元(cell)

《FPGA全程进阶---实战演练》第十章 VGA五彩缤纷

1基础理论部分 VGA(video graphics array)即视频图形阵列,是IBM在1987年随PS/2一起推出的使用模拟信号的一种视频传输标准.VGA相比与现在的视频传输接口来说已经过时,不过作为最低标准,基本上制造商都会接入此接口,图11.1是常见的VGA接口. 图11.1 VGA接口 对于VGA15个引脚的相关说明,如下图所示. 图11.2 VGA引脚说明 大家做实验的时候,可能会有一个误区,那就是做实验时直接把实验板的VGA接口接到笔记本电脑上,还兴高采烈的等待着显示图像,殊不知