当前位置: 首页 > news >正文

Library介绍(三)

环境描述

工作条件

一般lib文件里面包含了芯片的工作条件即operation conditions,其指定了工艺(process)、温度(temperature)和电压(voltage),见图1。

其中,process代表了该工艺变量。如图1所示,代表tt_v1p2_25c这个corner的工艺变量是1。这个参数主要是给k库用的。所谓k库,就是通过已有的lib库,去生成一个foundry未提供的一个库。

打个比方,foundry提供了tt_1.2v_25c的库,但实际上该款芯片需要在tt_1.1v_25c下工作。那么,便可以通过k库的方式,通过k factor,便可根据tt_1.2v_25c lib生成tt_1.1v_25c的lib。

阈值定义

压摆值(slew)是基于库中指定的测量阈值点,通常是根据转换时间(transition time)来定义的,大多数上一代的库都使用10%和90%作为slew的测量阈值点。

压摆阈值点是选择对应波形的线性部分作为取值点的。随着技术发展,现在压摆阈值测量值取30%~70%部分(图2),而这一部分通常是实际波形最线性的部分。但是,由于之前测的slew在10%~90%之间。为了达到统一标准,需要将实际测算得到的30%~70%的slew进行加倍,将实际测算的slew值折算得到10%~90%的slew。而slew derate from library便是根据 ( 70% - 30% ) / ( 90% - 10% ) = 0.5得到的。上述定义在lib中的描述如图3所示。

而计算rise delay和fall delay时,怎么去取过渡时间的起始点和终止点呢?lib中也有的定义。一般是定义50%处,如图4所示。

默认属性(default attribute)

如果时序约束文件中(sdc)没有定义一些约束属性的话,那么便从lib中来获取相关参数了。如sdc中未定义max transition,而lib中定义了。那么,便采用lib中的约束。如果sdc中定义了相关约束的话,那么以sdc为准。

模板(templates)

所谓模板,就是定义了后续lookup table中需要根据哪几个input variable,来获取output variable的表格。如图5所示,为一个delay template,input变量有2个,分别为input net transition和output net capacitance。这个模板被应用在cell delay中。

k-factors

即上文所说的k库的参数(见图6)。在k库时,通过将k-factor代入到计算公式,便可以知道k完后的lib与原始lib直接的差异。

k库后的延迟 = 原始库的delay * (1 + kprocess * Δprocess + kvolt * Δvolt + ktemp * Δtemp )。

那么,如果将tt_1.1v_125c的库k到tt_1.2v_115c时,我们可以知道Δprocess= 0 ,kvolt = -0.042,ktemp = 0.0012

delay = 原始库delay * ( 1 + 0 – 0.042 * 0.1 - 0.0012 * 10 ) = 98.38%。

也就是说,tt_1.2v_115c库下cell delay约为tt_1.1v_125c的98.38%。

#小编是一个入行多年的数字后端工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。如有需求,可打开星球芯冰乐,获取更多知识干货分享与答疑服务。

相关文章:

  • 二叉搜索树(c++版)
  • Qt多线程与数据库
  • MacOS升级Ruby版本详解:步骤、挑战与解决方案
  • 深度学习推理的技术实现与优化策略
  • ELK-03-skywalking监控linux系统
  • 新能源汽车储充机器人:能源高效与智能调度
  • STM32常见配置
  • LM393 电压比较器和典型电路
  • Ubuntu 镜像替换为阿里云镜像:简化你的下载体验
  • JavaScript 网页设计案例:打造一个交互式用户界面
  • 迈瑞嵌入式面试及参考答案
  • 软件测试学习笔记丨Mock的价值与实战
  • 【算法业务】关于数据驱动的用户增长思考
  • Ubuntu 开机自启动 .py / .sh 脚本,可通过脚本启动 roslaunch/roscore等
  • DMDSC更换DCR和VOTE磁盘
  • 分享的文章《人生如棋》
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • $translatePartialLoader加载失败及解决方式
  • [LeetCode] Wiggle Sort
  • es6
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • MobX
  • MySQL数据库运维之数据恢复
  • SOFAMosn配置模型
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • webpack+react项目初体验——记录我的webpack环境配置
  • 如何使用 JavaScript 解析 URL
  • 使用putty远程连接linux
  • hi-nginx-1.3.4编译安装
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​【已解决】npm install​卡主不动的情况
  • ​2021半年盘点,不想你错过的重磅新书
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # 透过事物看本质的能力怎么培养?
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #、%和$符号在OGNL表达式中经常出现
  • #Linux(帮助手册)
  • #window11设置系统变量#
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (java)关于Thread的挂起和恢复
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (转)ORM
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .net 中viewstate的原理和使用
  • .NET导入Excel数据
  • .NET国产化改造探索(一)、VMware安装银河麒麟