wjw576657631的个人空间 https://blog.eetop.cn/743817 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

(转)FPGA内部时序问题的理解

已有 5185 次阅读| 2011-12-7 17:15 |个人分类:FPGA知识

时许,还是时许约束,最近用到比较多,整理下概念问题

一 先说FPGA内部:

如图


 

 

先简单说明几种时间

TAB :时钟脚到reg1的延时tclk1

TAE :时钟脚到reg2的延时tclk2

TBC :reg1时钟到来后,数据的TCO(寄存器固定值,且较小)

TCD :数据延时tdelay

TDE :reg2数据的TSU(寄存器固定值,且较小)

 

重申下TCO,TSU,TH概念

Tsu:时钟到达前,数据和使能信号准备好的时间间隔

Th: 在(有效时钟沿能正确采样的)数据在时钟沿之后的稳定时间。

Tco:时钟有效沿到数据有效的时间间隔

(最小)时间间隔,(最小)稳定时间,(最大)时间间隔都是REG的固定参数MTsu,MTh, MTco。

 

简单点说,一次FPGA数据传输的循环周期:

Tclk1到达reg1,然后reg1中数据输出,经传输,到达reg2的D端.

同时Tclk2到达reg2,将D端已经等待足够长时间T2(大于等于Mtsu)的数据latch进reg2.

latch的过程需要T3(大于等于Mth)个时间。

------- T2时间为本次已经到达D2但是下个数据还未到达D2的时间(即本次数据还有效)

 

在这个过程中,reg2要正确接收数据必须满足:在latch edge到达reg2之前,数据已经进行到等待了不少于Tsu个时间。 FPGA中 latch edge为延后一个T到达的时钟沿

所以有如下时间关系

 Tclk1 + tco +tdelay + T2 <= tclk2 + T

其中T2大于等于Mtsu

 Tclk1 + tco +tdelay + Mtsu <= tclk2 + T

另外

下一个周期的数据到达D2前必须有reg2已经完成latch

tclk2 + T +T3 < = Tclk1 + tco +tdelay + T

所以有 tclk2 +T3 < = Tclk1 + tco +tdelay

tclk2 +MTh < = Tclk1 + tco +tdelay

一般FPGA内部约束中T2,T3就靠tdelay来改变

 

 

如图



 T1 = Tco +Tdelay

 T2 = Tco +Tdelay – (Tclk2 – Tclk1) >= Th   -------------式1

 T3 = Tclk2 – Tclk1

 T4 = T – (Tco +Tdelay ) + (Tclk2 – Tclk1) >=Tsu -------------式2

 

一般路径周期

 T = Tco + Tdelay - (Tclk2 – Tclk1) + Tsu

所以一般最大延时路径有:

 TMAX =MTco + Tdelaymax - (Tclk2 – Tclk1) + MTsu

 

我们通常对建立保持时间的要求,即为要满足式1和式2

 

在一般FPGA中没有时钟偏斜

如图



则有

T1 = Tco +Tdelay

 T2 = Tco +Tdelay >= Th   -------------式1

T4 = T – (Tco +Tdelay ) >=Tsu -------------式2

 

 

看FPGA与外部器件共时钟的情况(参考其他)



这里时钟的延时,和偏斜是肯定存在的。

则按照fpga内部时序理解可以得出如下公式

 

Tclk1 + Tco + Tdata_PCB + Tcl + Tdataint + T2 <= Tclk2ext + Tclk2int + T

Tclk1 + Tco + Tdata_PCB + Tcl + Tdataint + Mtsu <= Tclk2ext + Tclk2int + T

 

IO约束中有

Tsu = Tdataint + Mtsu  - Tclk2int

 

所以Tsu约束

Tclk1 + Tco + Tdata_PCB + Tcl + Tdataint + Mtsu <= Tclk2ext + Tclk2int + T

Tsu = Tdataint + Mtsu - Tclk2int <= T – (Tco + Tdata_PCB + Tcl) + (Tclk2ext - Tclk1)

 

Th约束:

Tclk2ext + Tclk2int + T +MTh < = Tclk1 + Tco + Tdata_PCB + Tcl + Tdataint + T

Tclk2ext + Tclk2int +MTh < = Tclk1 + Tco + Tdata_PCB + Tcl + Tdataint

IO约束中有

Th = Tclk2int +MTh – Tdataint

 

所以

Th = Tclk2int +MTh – Tdataint <= (Tco + Tdata_PCB + Tcl )– (Tclk2ext - Tclk1)

 

不难看出其tsu和th的满足条件和FPGA内部的是一样的

 

PS 附加更正:

FPGA内部:

T2 = Tco +Tdelay – (Tclk2 – Tclk1) = Th >= Mth  -------------式1

T4 = T – (Tco +Tdelay ) + (Tclk2 – Tclk1) =Tsu >= MTsu -------------式2

 

在有Tdelay的大小确定

Tdelay >= MTh +  (Tclk2 – Tclk1) – Tco

Tdelay <= T – (Tco) + (Tclk2 – Tclk1) - MTsu

 

 

FPGA与外部时钟共时钟情况

则按照fpga内部时序理解可以得出如下公式

 

Tclk1 + Tco + Tdata_PCB + Tcl + Tdataint + T2 = Tclk2ext + Tclk2int + T

Tclk1 + Tco + Tdata_PCB + Tcl + Tdataint + Mtsu <= Tclk2ext + Tclk2int + T

 

一般约束时候

Tsu = Tdataint + Mtsu - Tclk2int <= T – (Tco + Tdata_PCB + Tcl) + (Tclk2ext - Tclk1)

T – (Tco + Tdata_PCB + Tcl) + (Tclk2ext - Tclk1)为根据外部PCB计算出的建立时间TsuI,Tclk2int一般较固定,

所以有 (Tdataint)max = Tclk2int + TsuI – Mtsu

 

同理

(Tdataint)min = Tclk2int – ThI – Mth

 

以下为lattice中一个例子便于理解约束的意义和负值的意思。

某个设计,PCB能够提供的建立时间TsuI为3ns,保持时间ThI为1ns,FPGA寄存器建立时间要求是0.7,保持时间0.2ns,计算得到的数据路径延迟减去时钟路径延迟的差值应该要在-0.8到2.3ns之间。数据路径延迟减去时钟路径延迟为负值表示允许时钟路径的延时比数字路径的延时要大,但是不能超过0.8ns。

 

 

关于TSU,TH,TCO的在此理解

tsu: 数据先于时钟采样之沿前到达的时间,所以当时钟延迟大于数据延迟理解为Tclk – Td = tsu,(关于Tclk和Td的细节说明见前面)但是实际中,Td因为Tco和逻辑延时+非全局时钟线等原因,一般Td比Tclk大。所以以A点为参考点,T1时刻的数据到达B点时候,一般由T2(后一个周期)时刻产生的时钟沿到达B点采样。时间修改为 T + Tclk – Td = Tsu, 这里的Tsu放在外部芯片接口即为算出的约束值。

 

Th: 时钟采样沿之后,下个数据到达的时间。所以当时钟延迟大于数据延迟理解为

 T – (Tclk-Td) = T + Td – Tclk = Th. 当时钟延迟小于数据延迟,T2时刻的数据比采样T1数据的T2时钟沿晚到的时间差 Td – Tclk。

 

Tco:时钟有效沿到数据有效的时间间隔,所以一定要指明是那个点的时钟(参考时钟点)。

ALTER的FPGA中TCO约束的是以输入时钟端口到输出IO的TCO:Tclkdelay+ Td + MTco

Lattice中可以设置参考时钟,随路时钟输出点参考有tco = td +Mtco - Tclk


点赞

发表评论 评论 (6 个评论)

回复 yuzhu361 2011-12-16 20:38
:victory:
回复 muyulchy 2012-5-7 23:03
看着头疼
回复 janstina 2013-8-24 18:51
:funk:

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 33

    评论
  • 1523

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 14:57 , Processed in 0.024393 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部