primetime中cell和net的OCV


前言

在生产中,外界环境的各种变化,比如PVT,都可能会使芯片产生不同的误差。由于这些偏差的存在,不同晶圆之间,同一晶圆的不同芯片之间,同一芯片的不同区域之间,情况都是不相同的。而OCV就可以描述PVT在单个芯片所造成的影响,我们在时序分析时引入derate参数模拟OCV效应,其通过改变时延迟的早晚来影响设计。

一、Cell OCV

Cell的OCV的input data一般有两种,一是手写的带有POCV的文件;二是TSMC提供的带有POCV的lib。

1. POCV coefficient file

对于不同的标准单元库,其不同PVT条件均有不同的POCV文件。在使用POCV文件的情况下,cell delay的计算遵从如下公式,其中P代表正态分布,而C称为POCV coefficient:
cell delay = nominal_delay + (C * nominal_delay) * P
POCV coefficient文件中所能查到的内容正是上述公式中的参数C。一般在同一个PVT条件下的某个cell,都会有late-rise, late-fall, early-rise, early-fall等四种参数,这四种参数分别应用在setup和hold的rise/fall分析中。如下图所示。
在这里插入图片描述

2. POCV Slew-Load Table in Liberty Variation Format(LVF lib)

PrimeTime can read a POCV slew-load table for each delay timing arc in Liberty Variation Format (LVF). The following example shows a POCV slew-load table in the library.
在这里插入图片描述
在这里插入图片描述
Using LVF improves the overall accuracy of POCV analysis by applying coefficients that vary with different slew and load conditions, instead of using a fixed coefficient for all conditions. The tool supports POCV LVF data for delay timing arcs, setup and hold constraints, recovery and removal constraints, and clock-gating checks.
因此,与读POCV coefficient file相比,POCV coefficient file中的C数值是一个固定值,但是LVF对于不同的Slew-Load有不同的delay, LVF对POCV的分析会更加准确。
PrimeTime can also read distance-based derating in the Liberty Variation Format, as shown in the following example. While linking the design, PrimeTime automatically reads the distance-based derating table if it exists in the library.
在这里插入图片描述
If the tool reads both types of data, the POCV single coefficient in a side file has higher precedence and overrides the POCV slew-load table in the library.也就是说如果使用了coefficient file和LVF lib,那么coefficient file对POCV的设置的优先级更高。

如果使用了LVF lib之后,还想要对cell加额外的derate,则可以使用set_timing_derate -cell_delay -increment指令。
setup检查:
对于launch clock path 和 data path 使用 -late 选项;对capture clock path 使用 -early 选项。
set_timing_derate -early -0.112 -clock -cell_delay [get_lib_cells / -quiet] -increment
set_timing_derate -late 0.112 -cell_delay [get_lib_cells / -quiet] -increment
hold检查:
对于launch clock path 和 data path 使用 -early 选项;对capture clock path 使用 -late 选项。
set_timing_derate -early -0.112 -cell_delay [get_lib_cells / -quiet] -increment
set_timing_derate -late 0.112 -clock -cell_delay [get_lib_cells / -quiet] -increment
在这里插入图片描述
在这里插入图片描述

二、Net OCV

可以通过derate 特定单元/走线(cell/net)的延迟来对OCV的影响进行建模。下面的指令通过derate net的delay来对OCV的影响进行建模。

set_timing_derate -early -0.07 -net_delay [get_nets -h * -quite] -increment
set_timing_derate -late 0.07 -net_delay [get_nets -h * -quite] -increment

在这里插入图片描述

三、如何check OCV是否已加上?

可以使用下面的指令来验证OCV是否加上,POCV的信息在Mean和sensit列里面。

report_timing -transition_time -crosstalk_delta -derate -nets -from [get_pins $cell/CP] -to [get_pins $cell/D] -nosplit -pba_mode exhaustive -variation

在这里插入图片描述


总结

在设计中引入OCV的目的在于从设计角度考虑芯片在实际生产中可能出现的各种差异(variation),从而适度增加设计余量(margin),减少不必要的设计悲观量(pessimism)。

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值