美文网首页IC数字后端知识角
关于set_input_delay和set_output_del

关于set_input_delay和set_output_del

作者: 飞奔的大虎 | 来源:发表于2022-06-24 12:47 被阅读0次

一、存在背景分析

      文档的说法是,set_input_delay和set_output_delay描述的是数据在端口处与某时钟的时序关系。这样的说法是很表面的。input/output其实是模拟数据在端口外的延时,实际上这是端口的一个外部约束条件,目的是为了约束FPGA输入端口到内部寄存器数据输入端或者内部寄存器输出端到FPGA输出端口之间允许的延时(因为这中间可能有组合逻辑),理解这一点非常重要。

      既然模拟的是数据在外部的情况,那么弄清楚这个延时是相对于哪个时钟而言的就很重要(这里也是泛泛而谈,后面有详细一点的分析)。很显然,这里的对象时钟是虚拟时钟virtual clock。

      对于任何一种情况,有一点必须要保证:必须保证接收端能接收到数据。在推导过程中,这一条是隐含的前提。

二、set_input_delay的推导

      对于set_input_delay,虚拟时钟是Launch,为保证FPGA能采样到数据,对源寄存器与目的寄存器之间的路径延时是有限制的。假如延时太大,FPGA端的建立时间可能不满足;延时太小,FPGA端的保持时间可能不满足。因此,计算max时考虑的是建立时间的情况,计算min时考虑的是保持时间的情况。

      考虑保持时间时,可得如下关系:

      Launch + Tco_ext + Td_ext + Td_in + uTsu = Latch

      假如Td_in为Td_in_max,如果时钟周期不变,外界最糟糕的情况是,(Tco_ext + Td_ext)的值也为最大。SDC对输入时max的定义如下:

      set_input_delay –max {Tco_ext + Td_max}

      实际上这并不是FPGA内部的延时,这只是FPGA内部延时的相关量,因为很明显内部的延时是Td_in。为什么不直接使用内部延时呢?因为那样的话涉及到的变量太多,而这两个参数,在板卡和板卡环境确定之后,几乎是不会变化的。这个相关量的意义是,Td_in想往上增大是要受到这个相关量的约束的。

      考虑建立时间时,可得:

      Launch + Tco_ext + Td_in + Td_ext + Tsrc = Latch + uThd

      假如Td_in为Td_in_min,外界最糟糕的情况是(Tco_ext + Td_ext)的值也为最小。SDC对输入是min的定义如下:

      set_input_delay –min  {Tco_ext + Td_min}

      当然这也是相对量。

      有一点应该说明,-max和-min不会同时达到极限值,因为Td不会同时既为max又为min。因此,假如su或者hd有一个时序不收敛,内部的路径延时是有调整空间的。

三、set_output_delay的推导

      对于set_output_delay,虚拟时钟是Latch。

      考虑外部寄存器的建立时间,可得:

      Launch + uTco + Td_in + Td_ext + Tsu_ext = Latch

      假如Td_in为Td_in_max,最糟糕的情况是(Td_ext + Tsu_ext)也为最大。SDC对输出时max的定义如下:

      set_output_delay –max {Td_max + Tsu_ext}

      考虑外部寄存器的保持时间,可得:

      Launch + uTco + Td_in + Td_ext + Tsrc = Latch + Thd_ext

      假如Td_in为Td_in_min,最糟糕的情况是Td_ext亦为最小。SDC对输出是min的定义如下:

      set_output_delay –min {-Thd_ext + Td_ext_min}

      至于为什么不写成(Thd_ext – Td_ext_min),是为了计算时与max一致。在验证建立时间是否满足时,在Latch确定了的情况下,需要Latch减去max得到Data Required Time。在验证保持时间时,为了计算一致,希望也用Latch减去min来得到Data Required Time,而这时Required的计算应写为

       Latch + Thd_ext – Td_ext_min

变换一下可得

       Latch – (-Thd_ext + Td_ext_min)

min就是这样得来的。

原文链接:https://www.cnblogs.com/freshair_cnblog/archive/2012/09/12/2681060.html

相关文章

  • 关于set_input_delay和set_output_del

    一、存在背景分析 文档的说法是,set_input_delay和set_output_delay描述的是数据在端...

  • 大疆笔试题

    1.c 对IO进行约束主要是: 输入延时约束set_input_delay -max 0.6 -clk Clk [...

  • 关于for,is 和 ==

    看到一个小程序,很容易犯错的地方,pycharm 都提示出错了,但是最后是没问题的 最后打印的是这个,i = 9 ...

  • 关于is和==

    表面上is和==都是用来测试相等性,可是它们却很不一样。 ==操作符测试值的相等性。 is表达式测试对象的一致性...

  • 关于&>和>&

    >&根据后面的参数不同会有不同的结果。 a.当>&后面接文件时,表示将标准输出和标准错误输出重定向至文件。(此时就...

  • 关于if()和==

    if语句是一个比较常用的语句,if语句语法格式为: if()括号条件可以为任意表达式,一般为布尔类型,计算结果为t...

  • 关于演员、关于乐观和关于爱情

    1、关于演员 我们每一个人都是演员,都在为各自的观众们表演,并且渴望获得他们的关注的目光。 在人生这个舞台上,没有...

  • 关于

    关于音乐 关于艺术 关于科学 关于真理 关于角落的书 关于那把吉他和画架 都被关于过去和心 打开于春

  • 关于「井」和「#」

    井,源远流长 井,是一种用来从地表下取水的装置。井的发明使人类在远离河流、湖泊的地方也能坐拥洁净的水源。《周易》曰...

  • 关于EnumerateObjectsUsingBlock和for

    关于EnumerateObjectsUsingBlock和for-in之间的较量 如果我们要遍历一个数组, 上过编...

网友评论

    本文标题:关于set_input_delay和set_output_del

    本文链接:https://www.haomeiwen.com/subject/yvcxvrtx.html