定义
lib库,全称liberty library format file:它是Liberty时序文件的简称,使用 Liberty 语法来编写。常被称为时序库,它描述了特定pvt条件下cell的timing、power和noise信息。
它可以通过library compiler/dc转换成.db文件(database),供synopsis家的DC和PT使用,也可以通过spyglass的library compiler来生成sglib文件,供spyglass使用。 他们是等价的,但db文件是二进制格式,人类不可读。
具体内容
Part 1:公共部分
lib库的公共部分,主要是库名称、基本属性、PVT条件、电压和压摆阈值、查找表模板

1、基本属性
主要有3个需要介绍:
- delay_model:表示了延迟的模型,以查找表居多。剩余的还有generic cmos、delay calculation module等
- in_place_swap_mode:规定了PR工具在做优化时能不能更换cell。一般采用match_footprint(相同功能可以换)的模式。
- voltage_map:库中电源和地网络所对应的电压。 如VDD → 0.72v
2、PVT条件
其他信息都清晰易懂。需要注意的是其中的balanced_tree指的是,库中cell计算用到的RC tree的模型。一共三种model,best-case tree指的是假设线上没有电阻,或者假设cell与负载物理位置比较近。balance假设每个终点看到的只有自己相关线上的电阻。worst-case指的是cell与负载比较远,所有终点都能看到全部线电阻。

3、电压和slew阈值
电压阈值定义0,1认定的阈值。例如当input_threshold_pct_rise=50表示,电压上升到50%时,认定逻辑从0变为了1。fall同理

slew阈值定义了slew具体认定为曲线的哪一段。比如下降时slew指的是从70%Vdd→30%Vdd的时间。并且这里面还提到了一个参数:slew_derate_from_library。它定义的是库中slew time和transition time的转换系数。由于transition time通常指的是10%→90%的时间。所以,(70-30)/(90-10)= 0.5。 (更详细的解释,可以参考书籍:Static Timing Analysis for Nanometer Designs)

4、查找表模板
下面就是一个的查找表模板。

如上面的delay_template_7x7模板,表示这个表有两个维度,表的大小为7x7。需要用input的transition time和outpot的capacitance才能查出此表。这里只做定义,会面会在cell中引用。
part2:cell部分
讲完了公共部分,接下来就是无数个cell的定义。以一个and2 cell为例:
牢记,cell部分主要用来描述cell的timing、power、noise情况。
组合逻辑cell
1)cell头、电源端口和leakage

其中cell_footprint对应了公共部分的in_place_swap_mode选项。cell_footprint相同即cell功能相同。
为什么把电源端口单独拎出来?因为他们简单,主要说明type、以及连接即可。 很多人会疑惑为什么这里含有VBB

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



