ABS view是abstract view的简写。其实我猜测也是为了口头表达方便,硬是把abstract view说成ABS,乍一听以为是防抱死系统。类似的还有cell的obstruct,可以表达为OBS,这个可能之后再来讲。
今天先来简单介绍一下ABS view。我先说一说什么是view,然后讲一下ABS view的作用。
这里所谓的view,确实好像也没有特别好的中文来对应。按我的理解,概括来说指的是我们的设计所呈现的细节程度。拿ICC2所用到的view来举例,包含整个设计所有信息的称为design view,只包含timing信息的是timing view,只包含外部框架和出pin信息的叫frame view,还有一种就是比较抽象的abstract view。Abstract view是剔除了design view中内部reg2reg的信息。总之我说这些并不是想介绍ICC2各个view的作用,只是想借用例子来解释view的含义。
本文想要说的ABS view是特指PV(physical verification)阶段所用的,一般也可以简称为ABS。在hierarchical的设计中,block会在内部验证自己的PV,而top层也不会等block都干净了才开始PV,其实是并行开始验证top-only的PV,这样就可以缩短设计周期,最终再把top-only和block拿在一起验证flatten的PV。但这就也带来一个问题,对于top来说,block的位置的物理信息从哪里来呢?这个时候就需要block的ABS了,它包含了两部分:一个是DRC检查所用的“空壳”GDS,一个是LVS检查所用的“空壳”SPI。
所谓“空壳”GDS,就是说ABS只有block最外层的GDS信息,block里面的GDS都被剔除掉了。就很类似一个礼物盒,留下最外面精美的包装,只要顾客能看到的地方都留,但是里面啥也没有。这样top在检查DRC的时候不用看盒子里面是啥,但是空壳对top的影响还可以看到。这样做的好处就是快,毕竟一个空的礼物盒也比较轻嘛。所以,一般在项目最初,block上完shielding ring,打好PG之后,就要给top一个ABS了。
另外的“空壳”SPI,其大致思想也是类似,就是把block看作一个整体所对应的spice文件,其实也很类似block用到的cell的SPI,就可以类比,top就是把block当作macro或者cell来处理。有了block的SPI,top才可以进行LVS检查,并且这样的检查也不会涉及block内部。有的时候也不一定给spice文件,因为netlist和spice可以互相转化,所以有的时候block可能提供“空壳”netlist。
总而言之,ABS就是低层给更高层级来快速验证只有高层级自己那部分PV情况的。低层的PV就由低层级自己来验,高层级也只关注高层级的部分。直到项目最后,在整体的把所有层级合并在一起来flatten的验一次,最终flatten过了那才说明芯片没有问题了。
这是我的第30篇文章。微信公众号:伟酱的芯片后端之路