ic基础|时序篇06:输入约束set_input_delay与输出约束set_output_delay详解

大家好,我是数字小熊饼干,一个练习时长两年半的ic打工人。我在两年前通过自学跨行社招加入了IC行业。现在我打算将这两年的工作经验和当初面试时最常问的一些问题进行总结,并通过汇总成文章的形式进行输出,相信无论你是在职的还是已经还准备入行,看过之后都会有有一些收获,如果看完后喜欢的话就请关注我吧~谢谢~

对ic前端设计工程师来说,对时序分析还是需要有一定程度的了解,毕竟芯片设计的各个流程的了解越多,就越有利于职业发展,而且我当时在求职时,也被面试官问到过这类问题,遗憾的是当时的我没有回答上来,不过亡羊补牢,为时未晚,现在就让我们来了解一下时序分析中对输入和输出路径的约束。

一、建立时间和保持时间

我们在定义输入延迟和输出延迟时,需要定义最大和最小延迟,这两个延迟实际上是对建立时间和保持时间的约束。

这是因为建立时间检查的是从发射触发器时钟的第一个有效沿到捕获触发器时钟的下一个有效沿,并且建立时间检查的是从发射触发器到捕获触发器之间的最长路径是否满足建立时间, 所以应该用最大延迟进行约束。

而保持时间检查的是从发射触发器的一个时钟有效沿到捕获触发器的相同时钟沿。保持时间检查需要确保一个触发器输出值在变化时不会传递到一个触发器,并且在捕获触发器有机会捕获它原来的值之前,不会覆盖掉它的的输出值,所以适用于最小延迟进行约束。

二、输入路径延迟约束

输入路径约束约束的是上游芯片触发器到设计芯片的输入端口之间的延迟。

当我们在给定了外部触发器的Tclk2q(外部发射触发器的时钟端CK到输出端Q的延迟),以及Tc1(外部组合逻辑之间的延迟)后,EDA工具会自动约束和优化设计芯片内部的触发器类型,组合逻辑等等,以确保能够满足时序约束要求。
在这里插入图片描述
基于上图举例:

若UFF0的Tclk2q的最大延迟和最小延迟分别为1.1ns和0.8ns;

组合逻辑延迟Tc1的最大延迟和最小延迟分别为5.6ns和2.2ns;

于是有clka到inp1的最大延迟为 1.1+5.6=6.7ns

于是有clka到inp1的最小延迟为 0.9+2.2=3ns

我们再加上时钟周期为15ns,于是有以下约束:


creat_clock -period 15 -waveform {5, 12} [get_ports CLKA]
set_input_delay -clock CLKA -max 6.7 [get_ports INP1]
set_input_delay -clock CLKA -min 3 [get_ports INP1]

由于建立时间用最大延迟进行约束,且检查的是到下一个时钟沿,于是我们内部设计的建立时间加上时延需要满足:

			T - Tmax_delay = 15 - 6.7 = 8.3

				Tsetup + Tcomb < 8.3ns

而保持时间用最小延迟进行约束,且检查的是同一个时钟沿,于是我们内部设计的保持时间加上延时需要满足:

  				 Tmin_delay = 3 ns

     			3ns + Tcomb > 

数据可变化的区间如下图所示,输入延迟是对应CLKA的上升沿指定的:

在这里插入图片描述

三、输出路径延迟约束

输出路径约束约束的是设计芯片的输出端口到下游芯片触发器之间的延迟。

类似输入延迟,我们需要在给定了外部触发器的建立时间,保持时间以及路径延迟后,EDA工具会自动约束和优化设计芯片内部的触发器类型,组合逻辑等等,以确保能够满足时序约束要求。
在这里插入图片描述

同样基于上图举例:

假设外部触发器UFF1的建立时间为0.4ns,保持时间为0.2ns;

外部路径的最大组合逻辑延时为7ns,最小为0ns;

因此有最大路径延迟:Tc2_max+Tsetup = 7 + 0.4 =7.4ns

最小路径延迟:Tc2_min-Thold = 0 - 0.2 =-0.2ns

假设时钟CLKQ周期为20ns,因此有以下的输出延时约束:

creat_clock -period 20 -waveform {0 15} [get_ports CLKQ]
set_output_delay -clock CLKQ -min -0.2 [get_ports OUTB]
set_output_delay -clock CLKQ -max 7.4 [get_ports OUTB]

于是,先考虑最大延时,我们内部设计的Tclk2q加上Tcomb需要满足:

     		 T - Tmax_delay = 20 - 7.4 = 12.6ns

         		Tclk2q+Tcomb    < 12.6 ns

再考虑最小延时,我们内部设计的Tclk2q加上Tcomb需要满足:

                Tclk2q+Tcomb    > 0.2ns

指定输出路径延迟下,数据可变化的区间如下图所示:
在这里插入图片描述

四、总结

可见,输入延迟约束和输出延迟约束的实质,实际上是根据外部已经选定好的器件和路径延时等参数,对内部器件和路径延时等参数进行优化的过程。

如果你喜欢这篇文章的话,请关注我的公众号-熊熊的ic车间,里面还有ic设计和ic验证的学习资料和书籍等着你呢~欢迎您的关注!

  • 27
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字ic小熊饼干

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值