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

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

日志

同步时序约束之INPUT_DELAY

已有 1731 次阅读| 2009-2-27 20:17

最近听AlteraFAE说:“以后Altera器件会慢慢转变为只支持TimeQuest时序分析工具”。虽然TimeQuest已经出来很久,但始终没有仔细研究过,不过现在有动力了。

时序约束主要是为了满足器件稳定工作在我们需要的工作频率,而是否满足工作频率又取决于Setup Slack是否大于零。在FPGA内部我们所需要设置时序约束就是Fmax大于Clock Frequency,但当FPGA连接外部ASSP时我们就需从板级去考虑时序。

假定我们现在有个系统从ASSP输出至FPGA的同步工作系统,那么整个板子是否正常工作又如何判断?如何去约束FPGA?在一个板子上,ASSP管脚至FPGA IO脚的长度已经确定,ASSP管脚的参数也已经确定,但是还有一处是会变化的,那就是FPGA IO口至内部寄存器的时间及时钟至内部寄存器的时间是可以变化,对应设置就是Assignment EditorInput Delay from Pin to Input Register设置。有人会说既然Assignment Editor可以完成约束,为什么我们还需要TimeQuest呢?从我个人观点上看,一是TimeQuest简单,只需要设置Input Delay参数;二是有助于我们从板级系统考虑时序,符合我们的思维模式。

先从下面两幅图看起:

点击开大图

1

Launch EdgeREG1数据发送边沿;

Latch EdgeREG2数据锁存边沿;

点击开大图

2

Tclk1:时钟clkASSP时钟脚的延迟;

Tclk2ext:时钟clkFPGA时钟IO的延迟;

Tdata_PCB:数据在PCB走线上的延迟;

CL:负载电容;

TcoASSP参数;

简单点说,如果要FPGA能正常接收数据,那就需要在Latch Edge到达Reg2之前,ASSP的输出就已经到达Reg2D数据口,并且至少已经稳定Tsu,这就是我们所说建立时间裕量,即Setup Slack。从图2可以知道,FPGA可以通过调整参数TdataintTclk2int来满足Tsu,前提是需要知道数据(从ASSP输出),及时钟到达FPGA的时间,这两个时间都是相对于OSC的时钟边沿决定,还有如我所说,这个两个参数在PCB上都为固定值,所以它们可以用一个INPUT DELAY参数表达,表达式如下:

点击开大图

3

也就是在Lanuch Edge发送出去后,数据经过Tdata_PCB + Tcl + Tclk1 + Tco到达FPGA IO,而Latch Edge发送出去经过Tclk2ext到达FPGA时钟IO

INPUT DELAY = Tdata_PCB + Tcl + Tclk1 + Tco - Tclk2ext

ASSPOSCFPGA看成一个整体,则“Tclk2ext”可以认为是减少了Reg2Tsu,而“Tclk1”加大了Reg1Tco,该系统稳定工作的条件需要满足条件:

Tdata_PCB + Tcl + Tclk1 + Tco + Tdataint +Tsu - Tclk2ext - Tclk2int<= Period_OSC

当我们设置完INPUT DELAY参数后,剩余工作就可以交由QuartusII工具完成,当然也可以自己在Chip Planner布局布线,后者都是在不得以情况下进行。


点赞

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 13

    粉丝
  • 1

    好友
  • 34

    获赞
  • 156

    评论
  • 4697

    访问数
关闭

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

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

GMT+8, 2024-3-28 19:50 , Processed in 0.017183 second(s), 6 queries , Gzip On, Redis On.

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