Innovus:Technology LEF和Cell LEF文件
相关阅读
Innovushttps://blog.csdn.net/weixin_45791458/category_13123362.html?spm=1001.2014.3001.5482
Tangent联合创始人兼早期技术负责人Aki Fujimura在1986年就已经设计并撰写了LEF(Library Exchange Format),这套格式最初就是为Tangent的自动布局布线工具服务,后来随着Cadence收购Tangent,并将其技术演进到Ensemble家族,再到Silicon Ensemble,LEF也随之被越来越多设计团队接受,最终从专有工具接口走成了数字后端事实上的通用交换语言。LEF主要用于描述IC布局设计中所需的工艺规则和单元物理信息,是布局布线工具(比如Innovus)的输入文件之一。
将所有信息定义在一个LEF文件中是允许的,但是,这样会产生一个很大的文件,管理起来复杂且困难。因此常常将信息分为两个文件:一个技术(Technology)LEF文件和一个单元(Cell)LEF文件。
技术(Technology)LEF文件包含设计所需的工艺信息和布局布线设计规则,以及各层的工艺参数,可以包含以下LEF语句:
[VERSION statement] [BUSBITCHARS statement] [DIVIDERCHAR statement] [UNITS statement] [MANUFACTURINGGRID statement] [USEMINSPACING statement] [CLEARANCEMEASURE statement ;] [PROPERTYDEFINITIONS statement] [FIXEDMASK ;] [LAYER (Nonrouting) statement | LAYER (Routing) statement] ... [MAXVIASTACK statement] [VIA statement] ... [VIARULE statement] ... [VIARULE GENERATE statement] ... [NONDEFAULTRULE statement] ... [SITE statement] ... [BEGINEXT statement] ... [END LIBRARY]从功能上看,技术(Technology)LEF文件主要是在告诉工具:这个工艺有哪些Routing/Cut/Non-routing layer、每层的最小宽度和间距约束是什么、可以使用哪些通孔、可以如何生成通孔,以及Site和一些非默认规则该怎么解释。换句话说,它定义的是整个物理实现环境的“地基”。如果没有这部分信息,后续读入标准单元抽象或者做布局布线都无从谈起。
单元(Cell)LEF文件包含设计所需的宏单元和标准单元信息,可以包含以下LEF语句:
[VERSION statement] [BUSBITCHARS statement] [DIVIDERCHAR statement] [VIA statement] ... [SITE statement] [MACRO statement [PIN statement] ... [OBS statement ...] ] ... [BEGINEXT statement] ... [END LIBRARY]和技术(Technology)LEF文件相比,单元(Cell)LEF文件更聚焦于“单元抽象”本身。这里的MACRO描述单元或宏块的物理边界,PIN描述可连接端口的位置与形状,OBS描述布线阻挡区域;对布局布线工具来说,它看到的并不是标准单元内部完整的版图,而是一个足以完成合法布局、引脚访问和布线的抽象外形。这个思想其实很重要,因为LEF的价值恰恰就在于:它不追求版图全细节,而追求实现阶段可复用、可交换、可维护的物理抽象。
在读取LEF文件时,必须先读取技术(Technology)LEF文件,然后再读取单元(Cell)LEF文件,因为技术(Technology)LEF文件中常常定义了单元(Cell)LEF文件中需要使用的部分。
LEF文件中的语句可以按任意顺序书写,但必须确保数据在被使用前已定义。例如,UNITS语句必须在所有依赖单位的语句之前定义,LAYER语句必须在使用该层名称的语句之前定义,VIA语句必须在引用前定义。
如果按照以下顺序书写,数据总是先定义后使用:
[VERSION statement] [BUSBITCHARS statement] [DIVIDERCHAR statement] [UNITS statement] [MANUFACTURINGGRID statement] [USEMINSPACING statement] [CLEARANCEMEASURE statement ;] [PROPERTYDEFINITIONS statement] [FIXEDMASK ;] [ LAYER (Nonrouting) statement | LAYER (Routing) statement] ... [MAXVIASTACK statement] [VIARULE GENERATE statement] ... [VIA statement] ... [VIARULE statement] ... [NONDEFAULTRULE statement] ... [SITE statement] ... [MACRO statement [PIN statement] ... [OBS statement ...]] ... [BEGINEXT statement] ... [END LIBRARY]顺带一提,除了使用技术(Technology)LEF文件和单元(Cell)LEF文件,Innovus还可以使用OpenAccess数据库(OA)作为布局布线工具(比如Innovus)的输入,这么做可以在支持OpenAccess标准的工具之间共享信息,例如将Virtuoso平台与Innovus平台对接,但是需要注意的是,如果使用了LEF Flow,则设计只能保存为原生Innovus数据库,如果使用了OpenAccess数据库,则设计应该保存为OpenAccess数据库。
对于Synopsys家的布局布线工具(比如IC Compiler),则使用Milkyway或NDM库保存单元信息,使用技术文件(.tf)保存工艺信息。
关于LEF文件的更多详细信息可以参考LEF/DEF 5.8/6.0 Language Reference。
