1.标准单元创建的几个关键步骤
从以上的介绍可以看出,所谓标准单元库的建立其实就是在全定制设计的版图基础上,按照标准单元库的要求和规则进行适当的修改而形成的一整套版图库。因此接下去将要介绍的内容是在已经完成了D508项目相应单元版图的基础上进行的。
1)单元方向调整。
进行单元的适当移动,可以选择“移动”命令,单击鼠标右键逆时针旋转90°。也可以选择“移动”命令再按<F3>键弹出对话框,有“sideways”、“upside down”等选项可以调整;确保移动后的单元中电源先VDD向上,地线GND向下。
2)单元原点确定。
采用版图编辑界面中Edit菜单下的Select选项,选择“Select All”,即选择所有图形。然后选择Edit菜单下的other选项,选择“move origin”,将单元原点调整到左下角金属的边界。
3)单元宽度的确定。
根据单元的宽度确定调用几个pitch单元。如果单元宽度超过整数个pitch单元(比如N个)一点,但又不到N+1个,那么还是要调用N+1个pitch单元,关于这点已经在上面的原则中介绍过。调用多个pitch单元的方法是上一章中介绍的阵列调用方式,然后从左到右拉平电源线、地线,确保图形比较美观。
通常数字单元中的N阱都是矩形形状,没有凹凸的地方,但D508项目中也有特殊的情况,那就是有些单元的N阱有凹凸,这样就无法采用上面介绍的pitch单元,为此专门建了一个pitcha的单元,在这个单元中不放阱,而直接在单元上添加N阱。
4)调整端口引出位置。
在保证单元的原点就是pitch阵列的原点的基础上,适当移动端口,使尽可能多的pin都差不多能放到pitch单元中的虚线框内;如果还有一些pin不能做到这点,那么可以适当调整pin的铝线,只要满足设计规则和连接关系,pin的连接信息可以调整,从而保障对各个pin均调用“VIA1”,其中“VIA1”一定要放在黄色虚线框内;而针对改用Metal2的TEXT、采用Metal1的VDD、GND等可以不用修改。
5)添加文本标识。
采用Create菜单下的Label选项,在单元的左上角,用nwell这一图层打上单元名称,字不要太大。最后整体再检查一下,如果没有问题,保存即可。
2.创建标准单元前、后的比较
(1)单元AND2(https://www.xing528.com)
从图4-17中可以看出,创建了标准单元之后的单元加了pitch,就是图中的白色方框(注意:就是上面一直提到的虚线小方框),PIN都被换成了二铝且都放了白色方框的中间;另外单元被旋转了,放在了原点位置;在电源线上面打了单元的名称。AND2创建标准单元前、后的版图如图4-17所示。

图4-17 AND2创建标准单元前、后的版图
a)创建标准单元之前的版图 b)创建标准单元之后的版图
(2)单元BUF
从图4-18a和图4-18b的比较可以看出,按照标准单元创建的步骤,单元被旋转了,电源线向上,地线向下,单元并且被放到了原点的位置。BUF创建标准单元前、后的版图如图4-18所示。

图4-18 BUF创建标准单元前、后的版图
a)创建标准单元之前的版图 b)创建标准单元之后的版图
(3)NEGDETECT单元
从图4-19a可以看出,这是一个非标准数字单元,为了可以跟其他标准数字单元一样参与布局布线,也可以把它做成图4-19b所示的标准单元。另外可以看出,这个单元调用的是pitcha。pitch和pitcha的区别就是pitch有阱,pitcha没有阱,因为图4-19a中是一个不规则的阱,所以调用了pitcha。同时该单元按照标准单元创建的步骤被旋转了,电源线向上,地线向下。NEGDETECT创建标准单元前、后的版图如图4-19所示。

图4-19 NEGDETECT创建标准单元前、后的版图
a)创建标准单元之前的版图 b)创建标准单元之后的版图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
