为什么先进工艺需要check那么多corner?

    越先进的工艺,其制造生产是偏差也越大。所以导致了了很多corner的产生。如RC corner有最基础的rcworst、cworst、rcbes和cbest情况。有的foundry还会对rc的取值范围进行了约束,如cworst_T,采用的是1.5 sigma的取值范围。

    此外,工艺越先进,mos管的工作电压也会随之降低。这也发生了有趣的现象,MOS管的器件延迟随着温度的升高而降低即温度反转效应。因此,在温度反转效应下,ff125的delay反而要比ffm40更小。

    因此,先进工艺下,RC corner变得更多,同时加上温度反转效应,这就导致了signoff corner要比老工艺多很多。同时,我们也会发现hold signoff corner要比setup多很多。这又是为什么呢?

    答案是setup如果不满足的情况下,可能通过降频使得芯片正常工作。而且,我们在设计的时候,一般clock频率都会过约,所以是有较大的margin的。而hold如果出现了violation就没有很好的手段去修复了。因此,我们需要在尽可能多的corner下去check hold。

那么基于上面的陈述,我们可以探讨一下一个问题,就是如果ffcbest的hold check满足的情况下,还有必要去check ffcworst吗?

    搞清楚上面的问题,可以从hold check公式入手:hold_slack = ( launch_clock_delay + data_path_delay ) – capture_clock_delay – hold_check

    举个极端的例子方便大家理解,假设launch clock path delay为0,launch clock data path delay 也为0,而capture clock path delay较大。

    那么hold slack = launch clock path delay + data path delay - capture_clock_path_delay = -capture_clock_path_delay,也就是说,capture clock path delay越大,hold越难满足。很明显,ffcworst下的delay是更大的。所以,在这条特殊case下,ffcbest hold是cover不掉ffcworst的情况的。

    当然上面的例子过于极端,我们再看一个例子。假设launch clock path 和data path上的delay主要是集中在cell delay上,capture clock path delay主要集中在net delay上。那么,这种情况下,ffcworst的capture clock path delay就要大于ffcbest了。导致ff cworst下,hold更难满足。

    芯片的生产制造和使用环境是特别复杂的。为了能够满足不同体质的芯片在不同的使用场景下面都能够正常的工作。我们需要在尽可能多的corner下都能够满足timing要求,从而增加芯片稳定运行的鲁棒性。

#小编是一个入行多年的数字后端工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。如有需求,可打开星球芯冰乐,获取更多知识干货分享与答疑服务。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Matlab 中,validation check 是指在神经网络训练过程中进行的一种验证检查,用于评估神经网络模型的泛化能力。 神经网络训练的目标是使得神经网络在训练集上的误差最小化。然而,当神经网络在训练集上表现良好时,有可能会出现过拟合(overfitting)的情况,即神经网络在训练集上表现很好,但在测试集上表现较差。这是因为神经网络在训练的过程中可能出现了过分拟合训练集的情况,导致网络对于训练集的特征过于敏感,而对于未知数据的泛化能力不足。 为了避免过拟合的情况,可以在训练过程中引入 validation check,即在每一轮训练后,使用验证集来评估神经网络的泛化能力。具体地,将训练集分为训练集和验证集两部分,用训练集进行神经网络的训练,然后用验证集来评估神经网络的性能。如果在验证集上的误差开始上升,则说明神经网络已经开始出现过拟合的情况,需要及时停止训练或调整网络结构等参数。 在 Matlab 中,可以通过设置 trainFcn、valFcn 和 testFcn 等参数来进行 validation check。其中,trainFcn 表示训练函数,valFcn 表示验证函数,testFcn 表示测试函数,分别用于训练、验证和测试神经网络模型。常用的 trainFcn 包括 trainlm(Levenberg-Marquardt 算法)、traingd(梯度下降算法)等;常用的 valFcn 包括 validationc(分类验证函数)、validationm(回归验证函数)等。通过设置这些参数,可以有效地进行 validation check,提高神经网络模型的泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值