人类从漫长的蒙昧中觉醒之后,不再依靠着奇装异服的巫师通灵来指导生活,巫师进化成了科学家,他们试图对周遭的一切进行概括、分类、抽象,于是有了化学、物理、数学等基科。比如一粒沙,它的化学组成是什么,物理特性是什么,可抽象成什么样的数学公式。

用沙子做成的芯片亦如此,从设计实现到生产制造,每一步的背后都是化学、物理、数学。这些对一线工人硅农而言太过深奥,即使大部分的他们在人生曾有的高光时刻可以倒背元素周期表,可以随手写出力、电、热的公式,可以徒手开根号。抛开这些高深的基础理论,仍有如山一样的『知识技能』等待着硅农去熟撸,人生有限而学海无涯,面对如山的信息,重要的是分清本末,用力抓住本轻轻抚摸末,让它们一个也逃不脱。

工艺


末:在每一个工艺结点,代工厂都会给出一个叫"sign-off recommendtion " 的文档,该文档详细描述了setup 跟hold 分别需要在哪些corner (library PVT + RC corner) 下做timing check, 及在每个corner 下cell Process OCV, cell voltage/temperature OCV,  Spatial OCV, wire OCV, 额外的margin 都分别设多少。对,这些都是末,在做STA 时只要把对应值关联到对应corner 上即可,保证不犯低级错误就行,没必花太多精力去抠每个值是怎么来的,也没必要花心思去想这样设会不会过紧或过松,只要记住一句话:在sign-off 这件事上,代工厂就是独裁者,它让你干啥你就干啥,它让你怎么干你就怎么干。

本:setup/hold 为什么分别要在这些corner 下sign-off? PVT 是什么?RC corner 是什么?Variation 是什么?cell 跟 wire 的OCV 都在模拟什么效应?IR-drop 用什么来体现?额外margin 在模拟什么?为什么launch path 跟capture path 要设不同的derate? 为什么data path 跟clock path 要设不同的derate? 为什么data path 跟clock path 对transition 的要求不同?flat ocv, AOCV, SOCV 是什么,从哪来,各有什么特性,如何选择?对应工艺结点都有哪些VT cell, 每一类型VT cell 各有什么特性,不同类型VT cell 之间的特性趋势是什么?

工具


末:数字设计实现中接触到的每个工具都是一个死胖子,有巨多无比的变量,有巨多无比的命令,有巨多无比的option, 而且每家工具都很臭不要脸的有一系列的隐藏变量,然并卵,这些都是末,没必要刻意去记变量命令跟option, 常用的不用记也可以熟能生巧,不常用的记了也会忘。通常,代工厂跟EDA 厂在每个工艺结点,都会给出推荐的工具版本及对应的一组推荐setting, 大部分时候双方给出的是一致的,少部分时候会有些许差别,老驴建议听独裁者代工厂的,但是要跟EDA 厂确认工具版本,及对应工具版本跟代工厂推荐的工具版本之间有没有默认设置的更改,通常都会有,按照建议做对应更新就行。没必要花太多精力去纠结为什么推荐这些变量这么设,还是那句话,听独裁者的。

本:所有涉及到工具端的本都在方法学跟模型建立上,方法学从宏观上指导整个设计实现的过程,模型建立支撑过程中每一个结点的实现及量化。就STA 而言,从方法学上要知道:STA 是什么?STA 的基本原理跟数学支撑是什么?STA 要吃什么拉什么?STA 的流程是什么?检查STA 的方法是什么?检验STA 的标准是什么?如何分析STA 的结果?timing ECO 的方法有哪些?从模型建立上要知道:如何将一个设计切分成可量化的timing path? cell delay 的计算模型是什么?net delay 的计算模型是什么? GBA 跟PBA 是什么?CRPR 是什么?crosstalk 的模型是什么?不同OCV 对应的模型是什么?waveform propagation的模型是什么?Glitch 的模型是什么?

分析


末:所有目所能及的结果都是末。STA 过程是:在一定的PVT + RC-corner 下,在SDC 约定的范围内,来检查 netlist 的timing 质量。所以要保证:所有的library 都在对应PVT 下,SPEF 是在对应RC-corner 下抽取的,SDC 是准确无误的,所有工具端的设置都是按照代工厂或EDA 厂或以往经验得来的。在这样的保证下,run 出的任何结果都是现实,心平气和地接受它,再丑的孩子也是自己家的,该爱还是要爱。

本:所有结果背后的根因才是本。有了结果之后的分析大多是依据工艺跟工具所涉及的本,再加上一点命令的熟练使用就能在timing 的海洋里催起肚子蹭光头发,一路飞扬了。

论STA | 工艺、工具、分析的本与末的更多相关文章

  1. 使用MAT(Memory Analyzer Tool)工具分析dump文件--转

    原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...

  2. Oracle logmnr工具分析日志脚本

    在oracle:对logmnr工具分析日志这个不陌生:对数据恢复应用场景经常用到:这里为了方便对归档日志进行分析: 当然网上有一个logmnr界面的工具:感觉很人性化:下载需要积分:为此写一个脚本. ...

  3. 攻击者利用的Windows命令、横向渗透工具分析结果列表

    横向渗透工具分析结果列表 https://jpcertcc.github.io/ToolAnalysisResultSheet/ 攻击者利用的Windows命令 https://blogs.jpcer ...

  4. 几种常见的JavaScript混淆和反混淆工具分析实战

    几种常见的JavaScript混淆和反混淆工具分析实战 xiaix2016-03-05+8共1195751人围观 ,发现 5 个不明物体WEB安全 信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试 ...

  5. android ARM 汇编学习—— 在 android 设备上编译c/cpp代码并用objdump/readelf等工具分析

    学习 android 逆向分析过程中,需要学习 Arm 指令,不可避免要编写一些 test code 并分析其指令,这是这篇文档的背景. 在目前 android 提供的开发环境里,如果要编写 c / ...

  6. JVM之工具分析

    JVM分析工具有很多; jdk自带工具:jconsole.jvisualvm 其他工具:jprofile ,yourkit等 不要在线上用,影响性能,在测试环境中使用. 一.jconsole ——jd ...

  7. 使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题

    一.前言 最近一段时间,网站经常出现两个问题: 1.内存占用率一点点增高,直到将服务器内存占满. 2.访问某个页面时,页面响应过慢,CPU居高不下. 初步判断内存一点点增多可能是因为有未释放的资源一直 ...

  8. 使用KRPano资源分析工具分析动态网站资源

    软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...

  9. .Net加密保护工具分析介绍

    本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨. remotesoft protector.maxtocode..Net Reactor.Cliprotector.themid ...

随机推荐

  1. 树莓派操作案例1-使用python GPIO+TB6612驱动步进电机

    原理图: 接口说明 A控制信号输入------PWMA               VM ------电机驱动电压输入端(4.5V-15V) A电机输入端2 ------AIN2           ...

  2. MySQL用B+树做索引

    索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕很少有人能把前因后果讲述的很完整.本文就来从头到尾介绍下数据库的索引. 索引是一种数 ...

  3. OpenCV3+VS2015 经常出现debug error abort()has been called问题

    方案1:图片路径错误:查看imread的路径

  4. DataPipeline王睿:业务异常实时自动化检测 — 基于人工智能的系统实战

    大家好,先自我介绍一下,我是王睿.之前在Facebook/Instagram担任AI技术负责人,现在DataPipeline任Head of AI,负责研发企业级业务异常检测产品,旨在帮助企业一站式解 ...

  5. 使用acme.sh签发Let's Encrypt的免费数字证书

    --------------安装----------------curl https://get.acme.sh | sh#让alias生效source ~/.bashrc ------------- ...

  6. Spring解决bean之间的循环依赖

    转自链接:https://blog.csdn.net/lyc_liyanchao/article/details/83099675通过前几节的分析,已经成功将bean实例化,但是大家一定要将bean的 ...

  7. sql查询 ——聚合函数

    --聚合函数 -- sum() -- 求和 select sum(age) from student; -- count() -- 求数量 -- 数据量 select count(*) as '数量' ...

  8. HDU1024 Max Sum Plus Plus(dp)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 #include<iostream> #include<vector> #i ...

  9. 新建表需要原表的数据,mysql 如何把查询到的结果插入到新表中

    项目运用情景:新建表需要原表的数据 1. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO  目标表  SELECT  * FROM  来源表 ...

  10. 简单了解一个WSDL,SOAP的格式

    简单了解一个WSDL,SOAP的格式 2016-06-20 09:34:43 树先生i 阅读数 5187  收藏 更多 分类专栏: WebService   版权声明:本文为博主原创文章,遵循CC 4 ...