静态时序分析(Static Timing Analysis)--- 04 Standard Cell Library

关于时序库的概述

        对应于流程图里面红色框的部分:

先给出一个库的模型,库的模型一般有两种格式:db和lib。其中lib可以打开看,db则不能。他们的内容是一样的,只是格式不同。

        dalay_model : table_lookup 查找表的形式、给出时间的单位ns、电压的单位v、电流的单位uA、电容、功耗的单位......

库中某个Cell的内容:

Non-Linear Dealy Model 非线性延迟模型

以一个反相器为例:

在静态时序分析里面,时序模型的Timing主要有两方面的影响因素:
        (1)the output load,输出负载,即输出引脚的电容负载

        (2)the transition time,输入的transition的时间

关于transition time和latency的关系:https://blog.csdn.net/LEBRON599/article/details/139498166?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22139498166%22%2C%22source%22%3A%22LEBRON599%22%7D

有了这两个之后,标准单元就可以计算出延时信息。(分为线性和非线性两种)

对线性:(随着半导体工艺的进步,线性已经用的很少)

对非线性模型:
        一般是通过一个二维的查找表来体现非线性模型。输入input transition time 和 output load capacitance。通过查找表得到输出--delay。

        从下图中还可以得到的信息:是从INP1到OUT的延迟,并且分为cell_rise(上升的延迟)和cell_fall(下降的延迟)

Q:如果input transition time 和 output load capacitance不在查找表里面应该怎样计算?

如下例,每个格点代表查找表中的一个值,但当x=0.32,y=0.05。不在查找表的格点上时,怎样得到延迟?

A:一般采样高斯消元法求得:(以周围的四个点为依据计算)

Slew Derate 

       查找延迟一般是通过查找表,那么该表是如何确定的呢?

        如下图,在0.25um及更老的工艺用的是10%到90%的点。但是随着半导体工艺的推进,现在大多数新的工艺用的是30%-70%。

        实际的延时值是30%-70%(中间是40%)。库里面的是10%-90%(中间是80%)。所以实际的值是库里面值的一半,所以我们实际中用到这个库的时候,是需要用他的一半的值,所以我们设置:slew_derate_from_library : 0.5。这就是Slew Derate 的意义。

所以在一般的定义中:

又如下图所示,我们可以算出库里面是0%-100%的

如果我们要得到真实的值,就要用库里的值 * slew_derate就可以得到延迟是多大。

        为什么需要slew_derate:当我们需要创建一个新的库的时候,最简单办法就是在原有库的基础上去扩展,这样利用slew_derate就可以更方便的去建一个新的库。

Wireload Models:线负载模型

一般分为两个模型:T-model 和 Pi-model

线负载模型的例子:

给了线负载模型的名字、电阻、电容、面积、斜率、线长。。。。

其中如下右边的图,对于不同的面积有不同的模型对应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值