找回密码
 注册
关于网站域名变更的通知
查看: 360|回复: 1
打印 上一主题 下一主题

如何利用FPGA进行时序分析设计 

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-3-25 13:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    如何利用FPGA进行时序分析设计
    2 k5 r7 w6 z* M0 R
    FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。对于时序如何用FPGA来分析与设计,本文将详细介绍。" N" K9 R* ^' |5 ^
    7 H, z4 j% w( _( n5 W
    基本的电子系统如图 1所示,一般自己的设计都需要时序分析,如图 1所示的Design,上部分为时序组合逻辑,下部分只有组合逻辑。而对其进行时序分析时,一般都以时钟为参考的,因此一般主要分析上半部分。在进行时序分析之前,需要了解时序分析的一些基本概念,如时钟抖动、时钟偏斜(Tskew)、建立时间(Tsu)、保持时间(Th)等。时序分析也就是分析每一个触发器(寄存器)是否满足建立时间/保持时间,而时序的设计的实质就是满足每一个触发器的建立时间/保持时间的要求。
    % W2 }- w  A  |' j7 V. G7 B
    / G9 d' {6 d3 l, ^0 B* F一、时钟抖动和时钟偏斜( V9 i9 I7 b3 j2 I( d6 n) d+ w7 o
    1.时钟抖动
      v, N: I+ [) ]' |2 B$ I+ W5 |! D' H" K
    时钟信号边沿变化的不确定时间称为时钟抖动,如图 2所示。一般情况下的时序分析是不考虑时钟抖动,如果考虑时钟抖动,则建立时间应该是Tsu+T1,保持时间应该是Th+T2。: C. d* u. d, a& n" R
    ' ^* ]2 w8 n3 p# ^+ }. ^
    2.时钟偏斜7 T* X. o4 W* l& o2 C7 G/ ^

    4 Y# _+ P+ p. h9 X# a时序偏斜分析图如图 3所示。时钟的分析起点是源寄存器(Reg1),终点是目标寄存器(Reg2)。时钟在图中的结构中传输也会有延迟,时钟信号从时钟源传输到源寄存器的延时为Tc2s,传输到目标寄存器的延时为Tc2d。时钟网络的延时为Tc2s与Tc2d之差,即Tskew=Tc2d-Tc2s。
    6 L. n7 d3 T. F
    ' e' ~# J2 B5 i二、建立时间和保持时间5 |2 j3 f' p; f5 r- D1 u( Z* y
    建立时间(Setup Time)常用Tsu表示,指的是在触发器的时钟信号上升沿到来以前,数据和使能信号稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器,使能信号无效,也就是说在这个时钟周期对数据的操作时无效的;保持时间(Hold Time)常用Th表示,指的是在触发器的时钟信号上升沿到来以后,数据和使能信号稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器,对数据的操作同样是无效的,使能信号无效。数据要能稳定传输,就必须满足建立时间和保持时间的关系,图 4标识了它们间的关系。
    : d8 W* \% p) h8 s . h: |3 L( [  v, \7 f
    三、发送沿和捕获沿
    8 }$ X: n4 C% }; W/ U' k" |(1)发送沿(Launch Edge):前级寄存器发送数据对应的时钟沿,是时序分析的起点;# }; }9 \- p0 k( y" U2 w0 W6 y

    # L! j: D( ?2 l7 ~(2)捕获沿(Latch Edge):后记寄存器捕获数据对应的时钟沿,是时序分析的终点。相对于launch Edge通常为一个时钟周期,但不绝对,如多周期。
    5 l: `& V# R5 V# q9 H' D3 l- A# S' I' m
    “信号跳变抵达窗口”:对latch寄存器来说,从previous时钟对应的Hold Time开始,到current 时钟对应的Setup Time 结束。
    % a3 M+ l( W/ g: [5 f
    + e3 o$ \/ M% S5 [& T. K“信号电平采样窗口”:对latch寄存器来说,从current时钟对应的Setup Time开始,到current时钟对应的Hold Time结束。" s0 ?3 U3 N) K3 ~  t
    9 p1 ?+ \" z3 @2 T8 O! _
    launch寄存器必须保证驱动的信号跳变到达latch寄存器的时刻处于“信号跳变抵达窗口”内,才能保证不破坏latch寄存器的“信号电平采样窗口”。
      [& A  s! G! o% w6 x3 }) W / F, R/ ^/ H6 q1 x5 m; J5 _5 B1 `; a& l* J
    四、数据和时钟的时序分析
    " G/ X" \7 Y; X6 F) Y0 @! P$ s如图 6所示,为分析建立时间/保持时间的基本电路图。Tclk1为Reg1的时钟延时,Tclk2为Reg2的时钟延时,Tco为Reg1固有延时,Tdata为Reg1的到Reg2之间组合逻辑的延时,Tsu为Reg2的建立时间,Th为Reg2的保持时间,设时钟clk周期为T,这里分析数据的建立时间和保持时间。$ r' \/ ^& x# N# E2 p( C
    8 H; x2 S) B4 x3 b2 q3 H$ i/ U
    1、建立时间的分析  ?- N. H, \. i$ V- L* w) a- _
    如图 7所示,建立时间的分析是以第一个launch Edge为基准,在Latch Edge查看结果。建立时间的裕量(T为时钟周期):+ K4 e6 ~5 b# [7 G

    # D: e9 d. c) o* E+ bSetup Stack = (T+Tclk2) – Tsu – (Tclk1+Tco+Tdata)
    # |" M) @8 V( l+ `2 B1 q
    7 I8 s  V4 D$ @& w0 k" [# [' g假设△T = Tclk2-Tclk1,则:/ i' n8 S0 ]3 Y/ \$ t+ K4 {  v
    / x3 i- M+ S2 p) f
    Setup Stack = (T+△T) – Tsu – (Tco+Tdata)
    4 [! p. d) F$ @& ], M: i
    0 l# \, ^" `& k' _# [+ M可见△T<0影响建立时间,使建立时间的要求更加苛刻。因此对于△T尽量避免,采用同步单时钟,并且尽量采用全局的时钟信号,这样△T几乎为0,,△T的影响几乎不存在,可以忽略不计。
    0 z# w+ T. U$ d8 I7 Y  o; s$ e$ W
    8 {! ^( }$ I/ n5 \如果建立时间的裕量Setup Stack小于0,则不满足建立时间,也就会产生不稳定态,并通过寄存器传输下去。
    5 m+ _& M4 s5 z/ z# ]& |1 P1 }
    1 j( g4 N6 I5 g+ \$ y- x1 G& ?2、保持时间的分析
    / F1 l4 n% u8 E* q! o7 R" N如图 8所示,保持时间的分析是以第二个launch Edge为基准,在Latch Edge查看结果。保持时间的裕量:
    * h+ f% y( _1 F. R0 A( ^/ T
    ) F% e8 {# k% QHold Stack = (Tclk1+Tco+Tdata) – Tclk2 – Th( F& ]  [+ _6 r: h6 t# @3 C" M4 P
    ) C9 N4 c* V& p# v
    假设△T = Tclk2-Tclk1,则:( B; S6 V+ T8 i* X! V# @
    6 S7 r% |# K1 P$ N
    Hold Stack = (Tco+Tdata) – △T – Th
    6 Q5 h/ F2 j4 f
    # |, Q- z- }4 {- P9 R2 x3 g0 U可见△T>0影响保持时间,使保持时间的要求更加苛刻。。因此对于△T尽量避免,采用同步单时钟,并且尽量采用全局的时钟信号,这样△T几乎为0,,△T的影响几乎不存在,可以忽略不计。- b& E3 u, K' ~* p+ u" |

    9 }. M( c6 o& G* q* P  f如果保持时间的裕量Hold Stack小于0,则不满足保持时间,也就会产生不稳定态,并通过寄存器传输下去。5 m6 A( y' v7 V) b- Y7 l

    5 D9 B; w$ {: Q9 y- p五、DT6000S项目实例
    , V3 y$ m' L' \! UDT6000S项目上有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。6 S' Q9 M7 O' }( j
    ! r( u1 _2 c; M" d
    其一是PHY输出的TX_CLK和FPGA依据TX_CLK产生的TXD[3:0]&TX_EN延时大,主要延时为内部逻辑的延时,PCB延时小并且一致,导致PHY的TX_CLK的建立时间不满足,从而导致发送数据错误。# H1 R. A8 G( G8 ]5 l2 g

    7 W; @. A/ i5 T$ f/ f* g3 I其二是PHY输出的RX_CLK和RXD[3:0]&RX_DV&RX_ER到FPGA内部同步触发器的延时之差太大,导致FPGA内部同步触发器的RX_CLK的建立时间不满足,从而导致接收数据错误。
    ! y- M: q: p' Z: u! ^: ?2 _8 [' _. v- b+ ~* d
    因此FPGA在综合时需要添加约束,使之时序满足要求,约束的条件为TXD[3:0]和TX_EN的输出延时要少。RX_CLK和RXD[3:0]&RX_DV&RX_ER路径延时之差要小。添加约束之后,4路MII接口的光以太网数据通信就正常了。
    1 J5 V9 R. Q% }# q5 Y% b) X: ~& ~
    ; a+ Q3 h2 W6 j& A$ m这里阐述了时序分析基础,说明概念的同时进行了时序分析,通过时序分析理解建立时间和保持时间。希望大家阅读本文之后可以对FPGA时序分析有进一步的了解。
    ! o1 x! z3 u/ B3 Y! ]' N* t

    该用户从未签到

    2#
    发表于 2019-3-25 16:07 | 只看该作者
    发帖是心得 回帖是美德
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-29 01:11 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表