接着《综合 | 概述及 library 检查》继续掰扯综合的输入文件,虽然DEF 要在解析完RTL 之后才读入,但因为LEF, QRC, DEF 都属于物理综合必需的文件,所以放到一起来掰扯。
LEF
LEF 是Library Exchange Format 的首字母缩写,是C 家物理库的描述格式。LEF 分为tech lef 跟cell lef 两种,不论是哪个阶段的工具要使用lef 都必须先读入tech lef 再读入cell lef, 因为cell lef 中要引用tech lef 中定义的信息。
Tech lef 中定义了metal layer, via, design rule 等信息,请详细研读下面几张从油管上抠出来的图,图中较详细介绍了tech lef, cell lef 各包含哪些信息以及cell lef 跟cell abstract view 的对应关系。
Cell lef 中定义了cell 的几何形状跟abstract view:
对于lef 的详细内容跟语法格式,可以移步到support.cadence.com 阅读文档:《 LEF/DEF 5.8 Language Reference 》。对于综合工程师而言,除了要能读懂lef 之外,还需要知道:综合工具会从lef 中抽取哪些信息,缺了lef 会如何。
以Genus 为例,工具会从lef 中抽取:
以Genus 为例,如果缺了lef 工具会:
经常有人问如何生成lef 文件,驴号曾经转了一遍大牛文,可参考《Step By Step Use Abstract 提取LEF File》。
QRC
QRC 也是物理综合必须要读入的文件,老工艺是captable 新工艺都是QRC, QRC 是foundry 提供的一个不可读文件,对于综合工程师而言,要保证读入正确corner 的QRC 即可,因为其内容不可读,其他的也没什么要注意的。以Genus 为例,工具需要从Captable 或QRC 文件中读入如下信息:
DEF
关于DEF, 请参阅《论综合 | DEF 解析》跟《论综合 | 是什么让一个数字前端实现硅农开始学习Floorplan 的?》除了这里提到的内容外,在读完DEF 后一定要详细检查DEF 读取过程中报出的所有Error 跟Warning, 要知道每一个Error 跟Warning 的含义及即将对工具行为的影响,然后忽略掉那些影响不大的部分,修正那些影响大的部分。一定要对DEF 的质量进一步检查,以Genus 为例check_floorplan 会报出更详细的信息,同样对报出的每一项要有深入理解。
驴说IC