defin :加载一个指定的DEF文件
在引进一个设计之后,defin可以在任意步骤被使用。其典型的使用方法有:
1.加载一个由innovus或者其他工具导出的包含floorplan的DEF文件
2.运行一个带有Scan chain信息的DEF文件,可以在palce阶段进行Scan chain的重新排序
3.加载一个由innovus或者其他工具导出的包含cell的palcement和route信息的DEF文件
innovus会读取DEF文件的信息
1.Tracks, gcells, rows, die area
The software deletes all of the existing objects in the database and reads in the new information
2. Blockages, fills, special nets
软件将会与当前存在的物理信息进行比较,(例如shape and layer),如果它发现在当前DB文件中有与DEF文件相同的信息,则它会忽略此信息。如果信息并不存在,那么它会添加信息到DB文件中。
For special nets, the software merges wire segments in the DEF file with any existing ones in the database that overlap and have the same attributes, such as layer, width, shape, and direction. The software does not delete any existing data.
3.Nondefault rules(NDR), vias
The software adds the objects to the database if they do not already exist there.(不存在的会增加)
If a nondefault rules definition with the same name already exists, the software ignores the one in the DEF file. (NDR存在 忽略)
If a via definition with the same name already exists, and the via is a fixed via, the software ignores the one in the DEF file.(Via 存在,有相同名称,且Via为fix状态,忽略)
If a generated via definition with the same name already exists, the geomoetries are read, but the name might be changed.
The software does not delete any existing objects of these types.
4.Nets
For each net in the DEF file, the software removes the existing regular routing (not special routing), then adds the routing from the DEF file for this net.(去除原来,保留DEF)
If the net has a shielding segment with self reference, defIn will ignore the check.()
5.Pins
For each pin in the DEF file, the software removes the existing physical information for the pin, then adds the physical information from the DEF file for this pin.(去除原来,保存DEF)
If a pin does not already exist, and it is a power or ground pin, the software adds it to the database.(一个PIN不存在,但它是个PG pin,则工具将会添加其至DB)
If the pin is not a power orground pin, the software generates an error message.(如果不是PG pin 则会产生错误)
6.Groups, regions
If a group name in the DEF file matches an existing hierarchical instance name in the database, the region's boundary constraint is attached to the hierarchical instance, overriding any existing boundary constraint.(DEF文件中关于 instance 的各种限制将会覆盖DB文件)
The software checks whether the group members belong to the hierarchical instance, and generates a warning message if any do not belong.(检查 group number是否属于hierarchical instance,如果不属于将会生成警告信息)
If a group name does not match any hierarchical instance name, the software creates the instance group with an attached region boundary constraint, if one exists. Regions that are not used by groups in the same DEF file are ignored.(如果一个group name并没有匹配到任何信息,软件将会。如果已经存在,Region将不会被DEF同样信息的文件所使用)
The software does not remove existing groups.
(一)摆floorplan的迭代过程中使用def文件保留上一版的工作,方便微调。
后端工作者都知道,目前的floorplan主要还是靠人工反复迭代来求得最优解,保留一些可以重复使用的数据,就能大大降低手工工作量。
a. 保留core的大小形状:
deselectAll
defOut -selected core.def
这样就能只保存core的形状而不包含其他信息,方便下次使用。
b. 保留block ram的位置(顶层设计可以用到):
deselectAll
selectInst [dbGet [dbGet top.inists.cell.subClass block -p2].name]
defOut -selected mem.def
同样可以保留memory的位置,下次微调时候可以直接先吃进来,再做改动,减少重复动作。
c. blockage, instance等都可以通过def的方式保留。
(二)、 powerPlan的时候需要对power net进行局部调整动作的也可以借助def
a.需要手动画ring的时候,辛苦花过一次之后,还需要画同样的多层layer,就可以使用def的方式保存第一次的,然后修改def文件里的layer层,在defIn即可。
b.同一版本的floorplan,后面需要局部改动power,但是已经run到postroute,也可以使用def保存新的powerplan,在删掉route的power,吃进def,再做verify,保证没有drc就OK。
defOut、defIn只有记得verifyPowerVia,veriry_pg_short, verifyConnective等。
(三)、需要比较两版enc data的instance的差异,也可以使用def
需求描述:一版data做了opt或者eco的动作,变化了大量的instance,这时候需要debug一下变换了哪些instance,把不同的instance列出来。
这个问题以前使用过方法:
a.脚本去遍历来抓取不同,但是当instance超过一定的数量级就需要耗费大量的CPU资源和时间,甚至有hang住的风险;
b.使用cat命令,抓取相同的部分,可以比较两版差异的百分比,但是较难找出不同部分;
现在就可以借助def来完成这件事。
第一步,def出数量少的那一版的instance来,叫做min.def;
第二步,从def中列出instance list,每个前面加unplace Instance的命令;
第三部,在数量多的那一版里source这个list,unplance掉相同的部分,然后在defOut出来剩下的instance,就可以得到差异的那部分的instance了