(转)set_input_delay/ set_output_delay之图解

转载地址:http://article.ednchina.com/Other/20090206075509.htm

 EDN博客精华文章  作者:codeman

  在edn上看到很多仁兄的文章 大受启发 也写写自己的理解 一同讨论

  set_input_delay/ set_output_delay

  在与时钟选项定义的时钟相关的输入port上定义data arrival TIme,可将输入延时定义与上升沿或下降沿相关。

  如果输入延时与简单的生成时钟相关,到生成时钟的clock arrival time要加到data arrival time上。

  输入延时可以定义与时钟网络中的port相关,到参考port的clock arrival time要加到data arrival time上。

  输入延时可以包含时钟源延时,默认条件下,相关的时钟源延时加到输入延时上;但是,当定义-source_latency_included选项时,时钟源延时不要相加,因为它并没有用作为input delay value的时序因素。

  max用在时钟建立时间或恢复(recovery)校验上,min用于时钟保持时钟或移除(removal)校验上。

程序

  以上内容摘自Quartus help,基本定义edn上很多仁兄已经讲的很清楚了。

  看下面简单的例子,两级触发器,来自

  http://www.altera.com.cn/support/examples/timequest/exm-timequest.html

  设计图:

设计图

点击看原图

  很简单的例子,仅仅加时钟周期约束的条件下,用TimeQuest分析仅会得到一路path的分析,reg1 to reg2,时序图如下:

时序图

  这张图已经有人做过了仔细的分析,可以清楚地看到各个参数的大小。

  下面三张图是加约束后的时序分析图,所加的条件是:

  set_input_delay -clock { clk_in } -add_delay 1.200 [get_ports {data_in}]

  set_output_delay -clock { clk_in } -add_delay 2.000 [get_ports data_out]

  重新运行TimeQuest,可以看到3个path分析

  1) data_in to reg1

时序图

  2) reg1 to reg2

时序图

  3) reg2 to data_out

时序图

  可以看到,输入路径在data arrival time上加上了input delay;输出路径在data required time上减去了output delay;分别表现为对setup和hold时间的影响。

原文地址:https://www.cnblogs.com/god_like_donkey/p/1869461.html