我是靠谱客的博主 干净溪流,最近开发中收集的这篇文章主要介绍2.数字芯片时序正确的前提—Max-transition,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

偷懒了许久,今天简单聊聊芯片时序中的一个基本但很重要的检查—Max-transition。

Max-transition属于DRC(Design Rule Checking,设计规则检查)中的项目,因此要保证没有违例。Max-transition从这个单词的意思看,最大过渡,从什么到什么的过渡呢。

我们知道,数字电路是0和1的组合,要依靠电路实现0与1,依靠的是电压的不同,例如电压为0伏时表现为0,电压为1伏时表现为1。这里只是简单的一个例子,实际电路中的电压会有很多情况。为了实现信息的传输,电路需要不断地在0与1之间切换,例如0101。这时候就需要通过电压的高低切换来实现信号的01切换。比如刚才的0101,就需要电压做出如下变换。

 

图1

看起来非常规整的波形对吧?电压的上升沿与下降沿都没有延迟一步到位。但这是理想而非现实,实际电路中电压的升降都需要经过一定的时间完成,如下图:

图2

信号从0-1需要经过一个Rise Time,1-0则需要经过一个Fall Time,这一段时间就是transition Time,过渡时间,也称作Slew(压摆)。一般情况下上升与下降的过渡时间是不同的。细心的朋友可能注意到,上升与下降时间并不是从电压的最低点计算到电压的最高点,而是从10%-90%。这主要是因为上面的图也是接近理想状况的,实际中的波形更加接近下图:

图3

与之前的理想transition相比,过渡过程的波形不再是一条直线,而是一条曲线,而这条曲线在接近两端的时候由于趋向最大(最小)电压,因此逐渐平缓,不容易判断何时达到最值。如果计算最高最低电压之间的过渡时间就会有比较大的误差。

我们也能看到在电压转换中间的波形是比较平直的,基本就是一条直线,用这段时间计算相对比较精确。因此在计算transition时通常都是选取转换过程中的一段时间计算,如10%-90%,20%-80%等,根据不同的单元库会有所差别,要确保两端的比例一致。这个值也可以在库中查到,如下图index_1。transition值要保持在这个范围内。

图4

 那么Max-transition为什么需要重点关注呢?

首先因为它是DRC中的项目,所以必须保证满足设计规则。此外,在检查时序时,需要计算不同cell之间的延迟,transition时间当然也会对延迟的计算产生影响,如果transition时间过长,那么cell的延迟会增加,而且如果超过了Max-transition的限制,时序的计算会失真,STA的结果也可能不准确,影响Setup,Hold的结果。因此Max-transition需要保证没有违例(violation)。

在进行PnR时,EDA工具中可以手动设置相应的Max-transition上限,如set_max_transition等,也可以读取库中的值。这样EDA会自动针对Max-transition进行优化,一般就是在时序路径上插入Buffer等,保证cell之间不会距离过远因此产生很大的transition,超过Max-transition的约束产生Violations。但如果设置的约束过于严格,也会让工具过度优化,插入更多的Buffer保证满足设定的约束,这会浪费面积,功耗等,因此不是越严越好。

如果PnR结束后的数据中依然存在Max-transition的违例,那么就得手动ECO修复了,现在也有一些EDA公司开发了一些自动ECO工具,比如Synopsys的某款ECO工具,如果芯片的尺寸比较大,频率比较高,可能Max-transition违例的数量也会比较多,利用自动ECO工具先修一遍,能够节省大量的时间。

那么,如何修复最后的Max-transition违例呢?Max-transition违例的产生主要是因为输出Cell的驱动能力不足,造成过渡波形平缓,因此修复时核心是让输出的Driver Cell相对输入的Receiver Cell有更强的驱动能力,这样上升下降沿就能够更加陡峭,需要的过渡时间也就更少。围绕这个核心,大家可以考虑考虑哪些情况下会产生Max-transition违例以及如何针对不同情况进行调整。关于违例的修复也有很多相关文章,可以进行参考,不过在此之前也可以先自己思考一下。

简单抛砖引玉,如果文章中有什么错误之处,欢迎指出,多多交流,谢谢。

参考资料:

1.ASIC Physical Design.Fix transition time violations:http://asicpd.blogspot.com/2012/08/how-to-fix-transition-time-violations.html

2.max transition violations:​​​​​​http://mantravlsi.blogspot.com/2014/06/max-transition-violations.html

3.西南交通大学信息科学与技术学院,邸志雄: 数字集成电路静态时序分析基础.

4.知乎,土豆土豆我是番茄​:数字后端知识点(6)-修复max_transition violation

最后

以上就是干净溪流为你收集整理的2.数字芯片时序正确的前提—Max-transition的全部内容,希望文章能够帮你解决2.数字芯片时序正确的前提—Max-transition所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部