Advance Node的需要使用ICADV12.3版本的Abstract,28nm以上的需要使用IC61X
Session #1:准备阶段
设置Virtuoso的环境变量:
setenv CDSHOME /IC123的安装路径/ if ( -x $CDSHOME/tools/bin ) set path=($CDSHOME/tools/bin $path) if ( -x $CDSHOME/tools/dfII/bin ) set path=($CDSHOME/tools/dfII/bin $path)
在工作目录下,用“abstract &” 命令来启动Abstract. cmd>abstract &
正常启动后,界面如下:
Menu->File->Library->Open 或者下图的图标,出现“OpenLibrary”界面,会列出所有的库。打开你的版图所在的库。比如“Test_16nm”
当你打开库以后,库里面的所有Cell,缺省都会在Core这个Bin里面。可以和LEF的使用者确认一下,最后的LEF文件里,这个Cell希望在那个Bin里,然后通过下面的方法,调整Cell所在的Bin.
选择相应的Cell,然后通过菜单Menu->Cells->Move… 来把这个Cell调整到其他的Bin。下图演示了吧lef_test这个Cell调整到Block这个Bin里。
Session #2:Pin Flow (抽取Pin)
这是抽取工作的第一步,工具会根据设置,在版图上生成相应的Pin,然后产生一个abstract.pin的view。
选择菜单 Menu->Flow->Pins 或者下图的图标,打开Pin这个抽取对话框。
第一个”Map”是设置工具是如何判别Pin的。如果没有特殊需求,可以按下图的缺省值填写。Power/Ground这里的设置是让工具根据名字来判断是否是Power/Ground,如果不是,工具就认为是普通走线。
第二个“Text”是如何进行Pin的名字转换的。可以全用下图的缺省值,不需要修改。
“Boundary” 是告诉工具如何生成Boundary,最后在LEF文件里的SIZE这一项,就是基于这个结果的。需要注意的是,SIZE字段只能支持RECT的坐标,也就是PRBoundary相应的BBOX的范围。如果需要指定非RECT的PRBoundary,请参看后面的Abstract中”Overlap”设置。
“Create boundary”有三个选项,分别为:
- “off”:工具不生成PRBoundary而直接使用版本里的PR Boundary。如果版图里没有PRBoundary,工具会报错。
- “as needed”:如果版图里有PRBoundary,那么工具就使用这个PR Boundary。如果版图里没有,工具会根据下面列表里的层次来自动生成。
- “always”:不管版图里是否有PR Boundary,工具都会根据列表里的层次来自动生成。
Session #3:Extract Flow (抽取走线)
这是从版图中按要求抽取走线的工,工具会根据设置,在版图中抽取需要的走线,生成Metalxxx.net的覆盖层,然后产生一个abstract.ext的view。
选择菜单 Menu->Flow->Extract 或者下图的图标,打开Extract这个抽取对话框。
第一个是”Signal”,设置对于普通信号线是否抽取。工具判断“普通”走线和“Power/Ground”的标准是根据Pin抽取流程中的设置。
如果不勾选”Extractsignal nets”(如上图),那么工具不会抽取任何信号线。 如果勾选”Extractsignal nets”,那么工具会从Pin开始,抽取信号线,而抽取的连接情况是根据下面列表里的层次。比如,如果有Metal2,那么所有的Metal2.drawing会作为联通层,同时在上面会覆盖一层Metal2.net,属性就是这根信号线名。
第二个是”Power”,设置对于Power/Ground线是否抽取。
如果不勾选”Extractpower nets”(如上图),那么工具不会抽取任何Power/Ground线。 如果勾选”Extractpower nets”,那么工具会从Pin开始,抽Power/Ground线,而抽取的连接情况是根据下面列表里的层次。比如,如果有Metal2,那么所有的Metal2.drawing会作为联通层,同时在上面会覆盖一层Metal2.net,属性就是这Power/Ground线名。
第三/第四一般不需要修改,按缺省就可以。一般不用抽取Antanna,如果需要抽取,可以查阅具体的手册。
Session #4:Abstract Flow (生成Blockage等其他信息)
这是最后生成Blockage以及其他的信息。工具会以extract.ext为基础,只保留所有的Pin和在Extract(抽取)这一步生成的Metalxxx.net信息,然后根据设置生成Blockage及其他内容,最后产生一个abstract的view。
选择菜单 Menu->Flow->Abstract 或者下图的图标,打开Abstract这个抽取对话框。
第一个是调节Pin的位置,缺省不需要修改。如果想要把Pin都放在周围的话,勾选上,”SignaNets”下的”Createboundary pins”来对普通信号线进行操作,或”Power Nets”下的”Createboundary pins”来对Power/Ground进行操作。
设置Blockage的生成方式。缺省是所有的金属层次都会生成Blockage,也就是除了Pin和Metalx.net的地方,其他地方都覆盖这个Metal层的Blockage,同时在Pin的周围流出一定的空间(”PinCutout”打勾)给外部走线的连接。如果某层不想生成Blockage,那么选上这层,然后点击下面的”Delete”按钮。Blockage最后在LEF里面会成为OBS里面的内容。
“Fracture”这里设置是否要让工具做Fracture这一步,也就是是否要把所有的Polygon图形(Pin/Net/Blockage)转换成Rectangle的。如果需要通用性,那么把这个选项选上,最后的所有图形都是Rect组成,后继使用LEF的工具一般都是会支持RECT的。但是这个切割的过程会比较缓慢。 如果不勾选,那么最后输出的LEF会含有Polygon图形,如果后继工具确定能支持Polygon的输入,则没有问题,如果后继工具不支持Polygon,则LEF的读入会有问题。
“Overlap”这个选项是指示工具是否在LEF中生成特殊的OVERLAP字段。 LEF的Size字段只能是RECT图形,也就是整个PRBoundary所在的BBOX框,比较大。 而LEF通过OVERLAP字段来指示POLYGON图形的PRBoundary,这个用来精确描述这个LEF的使用范围。
- “off”:不生成OVERLAP字段。
- “Always::用列表中的层次计算出PR Boundary,然后生成OVERLAP字段。
- “As needed”:如果有PR Boundary就用PR Boudary,如果没有,就用列表中的层次生成,然后生成OVERLAP字段。
另三个”Density” , “Site” , “Grids”一般不需改动,用下图的缺省设置就可以。
Session #5:Verify Flow (验证)
这是验证的过程,不是必须的流程,可以略过不做。如需操作,则按下面步骤。
选择菜单 Menu->Flow->Verify 或者下图的图标,打开Verify这个对话框。
按照下面的缺省值设置,运行即可。如果结构中有问题,请按需求解决。
Session #6:LEF out (产生LEF文件)
这是最后生成LEF文件的步骤。
选择菜单 Menu->File->Export->LEF打开ExportLEF这个对话框。
如下图设置,填入想要生成的LEF文件的名字到LEFFilename。 注意LEFVersion需要选择5.8。因为5.8的版本才能支持TSMC16nm的DoublePattern的定义。
选择OK后,工具会从前面步骤产生的abstractview来生成最终的LEF文件。