工艺角 PVT OCV SSTA

本文只是一个笔记,大量借鉴了一篇文章,在CSDN、百度文库等网站都有介绍,由于不知道真正源头,就不贴借鉴了。

Process       

通常提到的工艺角有5种:TT、FF、SS、FS、SF。其中T指Typical,F 指Fast,S指Slow,两个字母分别代表NMOS管和PMOS管的驱动电流,如FS指NMOS管为驱动电流为最大值,PMOS管驱动电流为最小值,此时下拉较快 。 我们将SS、TT、FF分别指左下角、中心、右上角corner。

PVT

除了process外,设计一般还需要考虑驱动电压Voltage和温度Temperature,合称为PVT,电压根据工艺的不同并不一致,这里不在赘述,后面会举例说明。温度一般有-40、0、25、125℃等选项。

STA

常用的静态时序分析(STA,Static timing analysis)条件有:

        WCS (Worst Case Slow) : slow process, high temperature, lowest voltage

        TYP (typical) : typical process, nominal temperature,nominal voltage

        BCF (Best Case Fast ) : fast process, lowest temperature, high voltage

        WCL (Worst Case @ Cold) : slow process, lowest temperature, lowest voltage

在进行功耗分析时,还有两种组合:        

        ML (Maximal Leakage ) : fast process, high temperature, high voltage

        TL (typical Leakage ) : typical process, high temperature, nominal voltage

此外,还有一种在考虑噪声(noise)和串扰(crosstalk)时用到的组合条件,称为 Scenarios:

        Scenarios = Interconnect + operation mode + PVT

这种组合将内连线情况(interconnect)和工作模式(operation model)加入了STA分析,内连线情况指制造对互联线的影响,有R_typical C_typical, R_max C_max, R_max C_min, R_min C_min几种情况,工作模式有unction mode, scan mode, sleep mode, standby mode, active mode。

       同时对多种scenarios的综合分析,被称为MMMC(Multi-mode Multi-coner)analysis,MCMM表示设计工具同时针对所有mode和corner的所有设计指标进行优化,这种分析应用于mode和corner多达数百种的高级设计中。

OCV

        片上差异(On-chip Variations)是指同一设计在制作成多块芯片后由于制作过程、材料等因素出现差异,这些差异主要体现在:

1,IR Drop造成局部不同的供电的差异;

2,晶体管阈值电压的差异;

3,晶体管沟道长度的差异;

4,局部热点形成的温度系数的差异;

5,互连线不同引起的电阻电容的差异。

        由于OCV带来的问题,在设计时就需要更加严格的约束条件,以保证制成的芯片可供使用。因此引入了新的STA分析方法:

1,单一模式, 用同一条件分析setup/hold ;

2,WC_BC模式, 用worst case计算setup,用best case计算hold;

3,OCV模式, 计算setup 用计算worst case数据路径,用best case计算时钟路径;计算hold 用best case计算数据路径,用worst case计算时钟路径;

        通过以上的分析方法比较,可以看出是越来越悲观的,第三种方法在不同的路径上都选择了最坏的情况,尽管这种情况理论上不可能同时发生。

SSTA

        统计静态时序分析 (Statistical Static timing analysis),由于OCV的影响,芯片的参数并不是一个固定值,而是一个呈统计分布的局部参数。如果提供的库是基于局部参数差异统计建立起来的,在进行基于OCV模型的静态时序分析时,就无需OCV参数的设定。同理,互连线的差异也是如此 。

        基于这样的观点,同一时序路径可能存在不同种情况的组合,而且每种情况的参数都是呈统计学分布,组合的计算将不是单纯的相加差,而是需要相关性分析与统计学计算。统计方法的引入,改变了传统静态时序分析悲观且不实际的做法。

        SSTA需要大量的统计数据级计算 ,运行时间可能更长,但能够以更切实可行的方式为设计提供收尾工作。

实际使用的一个例子:

        我用的28nm的工艺库中带有的lib只有tt ff ss 三种,或者说我只找到了这三种,其他的我没有看到。 然后WCS分析时,我发现-40比 125℃的情况更差。

这里简单贴一张图介绍下命名,tcbn是台积电的库,28指28nm的工艺,

hpc 是 High Performance Compact 的缩写

12t指12track,40p140指poly的L尺寸=40nm,poly到poly为140nm

tt、ss指的就是工艺角了

0p8v 指电压为 0.8v,p指point 小数点。

125c、m40c分别指125度 和-40度,m为负minus

详细介绍可以看知乎上的一个介绍

  • 3
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力为您解答。首先,让我们来了解一下凑硬币问题。 在凑硬币问题中,我们需要找到最少的硬币数来凑成给定的金额。例如,如果我们需要凑成 11 元,而有 1 元、2 元、5 元三种不同面值的硬币可供使用,那么最少需要使用 3 枚硬币,即 5 元、5 元和 1 元。 下面是一种使用动态规划解决凑硬币问题的方法: 1. 创建一个长度为 amount+1 的数组 dp,其中 dp[i] 表示凑成面值为 i 元所需的最少硬币数。 2. 初始化 dp[0] 为 0,其余元素初始化为一个较大的数(例如 amount+1),表示当前面值无法被凑成。 3. 遍历硬币数组 coins,对于每个硬币,遍历 dp 数组,更新 dp[j] 的值为 dp[j-coins[i]]+1,其中 j>=coins[i],表示当前面值可以被凑成。 4. 最终 dp[amount] 就是凑成 amount 元所需的最少硬币数,如果 dp[amount]>amount,则表示无法凑成给定金额。 下面是使用 JavaScript 实现该算法的代码: ```javascript function coinChange(coins, amount) { const dp = new Array(amount + 1).fill(amount + 1); dp[0] = 0; for (let i = 0; i < coins.length; i++) { for (let j = coins[i]; j <= amount; j++) { dp[j] = Math.min(dp[j], dp[j - coins[i]] + 1); } } return dp[amount] > amount ? -1 : dp[amount]; } ``` 这个函数接受两个参数,一个是硬币数组 coins,另一个是需要凑成的金额 amount。最终返回凑成 amount 元所需的最少硬币数,如果无法凑成则返回 -1。 例如,若 coins = [1, 2, 5],amount = 11,则 coinChange(coins, amount) 的返回值为 3,表示凑成 11 元最少需要 3 枚硬币。 希望这个简单的解释和代码能够帮到您,如果您还有其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值