如何来手动修复max transition和max capacitance.doc

如何来手动修复max transition和max capacitance.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何来手动修复max transition和max capacitance 前面两周介绍了如何修复setup和hold violation, 这次我们接着来讲下另外一个十分重要的violation——drv的修复。 首先,我们来了解下drv的基本概念,drv全称design rule violation,设计规则违反,主要包括max transition,max?capacitance, max fanout, max length。 分别对pin的转换时间,电容,扇出,wire长度有要求。其中,max transition和capacitance的violation是我们必须要修复的,因为过大的slew和load都会造成lookup table查找表的数值较大且不精确。fanout和length并不是必须要修复的,但是数值过大的话,会影响前两者。接下来,我们来看看在ECO阶段时,如何来手动修复max transition和max?capacitance。 首先来看max transition,通常我们也称为slew,可以看下概念介绍。 【时序分析基本概念介绍】 有很多原因会造成slew的violation,但最主要的分为以下几类: 1)cell的驱动能力太弱 2)fanout数目过大 3)net长度太长 Cell驱动能力太弱 这是最常见的一类slew的violation,如果某个cell的驱动能力太弱,无法驱动下一级的cell,则比较容易产生比较大的delay。 如何来修呢? 也很简单,我们可以通过size up这个cell来提高驱动能力,比如X1的BUF换成X4, X8的等。 一般情况下,如果我们看到某个cell的output transition比input transition大很多,那说明这个cell的驱动不够,我们可以尝试size up一下。如下图所示:第一个X1的INV input transition是18.051,而输出transition是66.328。明显的是X1的INV推不动下面的14个fanout,可以考虑将X1的INV换成驱动更强的cell。 Fanout数目过大 这也是常见的一类容易造成slew violation的情况。过多的fanout会显著恶化pin的transition。 对于这种情况,我们可以通过插入buffer来减少fanout数目。如下图所示: 中间的output pin驱动了15个instance,分布在左右两边,如果该cell的驱动能力不强,整体的net长度又比较长的话,则比较容易引起max transition的violation。 对于这种情况,我们可以选择在该instance的右边插入一个buffer,由于buffer的驱动较强,所以让它来驱动右边的10几个instance,这样就能显著降低fanout的数目,修复max transition的violation。如下图所示:原来的instance的fanout由15个变成了4个。 这边推荐一个比较实用的小功能,在ECO窗口中,我们可以选择Listed terminals旁边的框框,然后在GUI界面上框住添加的buffer所需要驱动的cell的pin,工具就会自动会让buffer驱动这些pin,比我们通过命令抓取这些pin更简单快捷。 net长度太长 过长的net长度也会恶化slew,造成max transition的violation。如下图所示: 对于这种情况,我们可以在net的中间插入一个buffer来打断这根net,就可以解掉这个max transition的violation。 max?capacitance代表pin的load(负载)太大了,超过了约束或者library里面的设置,同样会造成timing数据的不准确。修复的方法和transition一样,对于输出pin上的max?capacitance来说,一般是fanout数目过大,或者下一级net太长;对于输入pin上的max?capacitance来说,一般是上一级cell的驱动不够,或者输入的net太长等等,基本情况和max transition一样,这边就不过多介绍了。 修复drv并不困难,我们首先要做的事搞清楚violation的出现的原因,对症下药,才能更好地解决问题。

您可能关注的文档

文档评论(0)

韩喜芝 + 关注
实名认证
内容提供者

赶紧 下载啊啊啊啊

1亿VIP精品文档

相关文档