Floorplan包含:

  • IO floorplan: 涉及板级设计、封装设计的交互,接口协议(timing相关),对一些高速接口需要做特殊考虑(如信号完整性等)。

  • Power plan:芯片的电源和低功耗设计方案、功耗及IR仿真。

  • Block floorplan:涉及设计结构,总线结构,时钟结构,数据流和timing。

  • Pin assignment:涉及data flow,timing,工艺。

Floorplan的问题主要有:

  • Large displacement相关的模块被摆放过远或逻辑detour,从而引入大量的buffering,进而导致area,routing和timing的问题。需要工程师对设计的数据流有一定的了解,将相关联的模块放在一起。

  • Congestion在局部区域有大量的走线经过,通常由于large displacement、local high density等原因导致。tool通常采用把集中的cell推开和绕线detour等方法解congestion。这样会对timing造成一定的影响。解决办法有:控制local density,给多扇入的cell加额外pading, reorder scan chain等。

个人认为floorplan的QA不是很好量化,通常通过timing, area, power和routing侧面反应出来。而且也是一个需要反复迭代,不断优化,折中的过程。

Placement:

要做好placement需要掌握哪些知识跟技能?

通常,遇到placement问题,大致的debug步骤跟方法有哪些?

如何衡量placement的QA?

Placement和floorplan关系比较紧密,floorplan确定后,placement基本也定型了,后端能做的就是加一些 physical / timing constraint或一些option来指导工具布局。

在新工艺中,placement需要考虑base layer drc的问题,因此需要对工艺,desig rule有了解。还需要对EDA工具的行为有深入的了解,明白什么样的行为会导致怎样的结果。

Placement的QA通常通过PPA (Performance,Power和Area)来衡量:

  • 看timing是否满足,是否有综合工具考虑不到的情况出现。

  • 看绕线资源,是否有较大的overflow,评估往下走是否会有布线拥塞的风险并进行调整。

  • 看利用率变化情况,是否有density过高的情况,local density过高会导致后续步骤的设计存在不收敛的风险。

  • 看功耗,各种vt单元之间的比例,评估是否满足设计指标,后续步骤是否还有优化空间。

CTS:

要做好CTS需要掌握哪些知识跟技能?

通常,遇到CTS问题,大致的debug步骤跟方法有哪些?

如何衡量CTS的QA?

做CTS需要了解芯片的时钟结构,STA,DFT,功耗分析等方面的知识。通常,时钟功耗在芯片功耗中占比很大,所以要尽量控制时钟树的功耗;clock skew 对 setup / hold 收敛至关重要,所以要利用并控制好clock skew。

CTS Debug:

  • 检查CTS sdc的正确性,是否存在漏做时钟、过约束设计;

  • 检查每个时钟的latency和级数是否在正常范围内,从物理上最远的时钟路径来看latency和级数是否合理,走线是否有detour,是否有大量的balance delay cell。通常在CTS之前,需要检查时钟单元的布局,及早发现detour的问题。

  • 检查每个corner下的clock skew是否符合预期,是否存在不同corner下,由于RC / std cell variation引起的不符合预期的skew变化。

  • 检查时钟单元是否有扎堆现象,较大的时钟单元容易引起IR问题。

  • 检查时钟绕线是否符合预期,新工艺下通常采用Non defaul routing rule来做时钟绕线。

通常通过clock latency, clock skew, clock inst count, total clock net cap, clock power和timing(setup是否能满足,hold timing TNS是否合理) 来衡量CTS的QA。

Route:

要做好Route需要掌握哪些知识跟技能?

通常,遇到Route问题,大致的debug步骤跟方法有哪些?

如何衡量Route的QA?

要对EDA进行route有基本的了解,熟悉route的一些基本的步骤以及现阶段route的一些主流的算法,最好还要对所用工艺比较熟悉。熟悉DRC的check。

Route Debug:

  • DRC问题:看是否满足Design Rule Check,是否存在short 和metal layer drc,这方面需要对所用的工艺比较熟悉,要了解每一代工艺会出现哪些新的DRC,router需要对于新的工艺做哪些新的设置。

  • Timing问题:如果timing degrade 很多的话,需要看是否有detour,是否有很大的SI,也要检查trial route engine和real rc engine之间的correlation。

  • 检查DFM相关信息,比如wire spread,NDR route,DFM via 比例等。

Route QA:

  • DRC数目是否足够小,是否在可控制的范围之内。

  • post route 和 pre route的timing correlation。

多说一句:Innovus nanoroute对于advanced node的routing有很强的handle能力,nanoroute route出来的design DRC会比较少,而且nanoroute是timing Driven的routing。

DRC:

要做好DRC需要掌握哪些知识跟技能?

通常,遇到DRC问题,大致的debug步骤跟方法有哪些?

如何衡量DRC的QA?

DRC与工艺、电器设计规则,版图知识密切相关,要对EDA tool、rule deck有深入了解,要清楚design 中用到的特殊器件,清楚设计中的供电情况。

DRC问题可以分为前段和后段:

  • 前段主要是base layer的检查,在floorplan和powerplan完成后,尽快做一版粗略的placement,供baselayer DRC检查。

  • 后段主要是metal layer的检查,通常EDA Tool 在routing时,所用的tech file能cover大部分metal layer的drc,存在的问题主要是density,还有和顶层模块拼接时出现的mis-match的问题。

一般简单的DRC问题可以根据design rule的描述进行修复,在debug复杂问题时:

  • 先从rule deck入手,保证rule 版本和配置的正确性,电源,PAD指定正确。

  • 确认input data是干净的,db在pr database里是clean的,IP中的特殊标识层是完备且正确的。

  • 先清PG short, text问题;再解latch up,esd的问题

  • 结合design rule说明文档,ERC报告等,具体分析。

衡量DRC QA:

  • LVS clean

  • Antenna clean

  • DRC/ERC不clean的地方经IP vender和foundry确认可以waive

P &R 12的更多相关文章

  1. wsse:InvalidSecurity Error When Testing FND_PROFILE Web Service in Oracle Applications R 12.1.2 from SOAP UI (Doc ID 1314946.1)

    wsse:InvalidSecurity Error When Testing FND_PROFILE Web Service in Oracle Applications R 12.1.2 from ...

  2. 手把手教你在Windows环境下升级R

    在Windows环境下,我们可以使用installr包自动将R升级到最新版本.并且可以安装软件.下面主要演示如何在Windows环境下升级R,并将旧版本安装的R包复制到更新版本的R. 1.加载inst ...

  3. 【Java】-NO.12.Java.2.OCJP.1.001-【Java OCJP】-

    1.0.0 Summary Tittle:[Java]-NO.12.Java.2.OCJP.1.001-[Java OCJP]- Style:Java Series:OCJP Since:2017-0 ...

  4. FreeBSD 12.2 已经发布 从现有版本更新到12

    #freebsd-update -r 12.2-RELEASE upgrade 如果提示更新第三方软件后,再执行freebsd-update install , 请输入 #pkg update &am ...

  5. 【计理05组01号】R 语言基础入门

    R 语言基本数据结构 首先让我们先进入 R 环境下: sudo R 赋值 R 中可以用 = 或者 <- 来进行赋值 ,<- 的快捷键是 alt + - . > a <- c(2 ...

  6. SDWebImage源码解读之SDWebImageCache(下)

    第六篇 前言 我们在SDWebImageCache(上)中了解了这个缓存类大概的功能是什么?那么接下来就要看看这些功能是如何实现的? 再次强调,不管是图片的缓存还是其他各种不同形式的缓存,在原理上都极 ...

  7. Java 经典入门(一)

    一.什么是 Java 技术?为何需要 Java? Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台.有许多应用程序和 Web 站点只有在安装 Java 后 ...

  8. date命令

    GNU的date提供+%s(小写s), 能打印出自1970-01-01 00:00:00到当前时间的秒数. 这可能大家都不陌生,但有两点需要注意: 1. %s存在于GNU扩展版本.像在solaris等 ...

  9. SpingMVC 核心技术帮助文档

    声明:本篇文档主要是用于参考帮助文档,没有实例,但几乎包含了SpringMVC 4.2版本的所有核心技术,当前最新版本是4.3,4.2的版本已经经是很新的了,所以非常值得大家一读,对于读完这篇文档感觉 ...

随机推荐

  1. redis 列表类型list

    列表类型(list)1.插入 左侧插入 :lpush key value1 value2 value3... 右侧插入: lpush key value1 value2 value3... 在指定元素 ...

  2. Java基础--数组(Arrays)

    数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理.本篇博客是对Java基础中的数组进行详细说明. 目录: 数组的概述 一维数组 ...

  3. Hello world-初识C++

    刚开始学习编程时,都是以输出Hello world开始的 用C++编写程序输出Hello world如下: #include<iostream>using namespace std;in ...

  4. 在电脑上用chrome浏览器调试android手机里的网页代码时,无法看到本地加载的js文件

    在需要调试的js文件最顶部加上代码就可以看到了: console.log('haha'); debugger;

  5. c++踩坑大法好 typedef和模板

    1,typedef字面意思,自定义一种数据类型 语法:typedef 类型名称 类型标识符; 基本用法: 1) 为基本数据类型定义新的类型名. 2) 为自定义数据类型(结构体.公用体和枚举类型)定义简 ...

  6. 在用vue-cli4创建的vue2.x项目中通过vue-fontawesome使用fontawesome5

    前言 本文写于2020年1月11日,仅提供最基本的引用方法,参考fontawesome5英文官方文档和vue-fontawesome英文官方文档. 正文 在vue项目中使用fontawesome5图标 ...

  7. python之路递归、冒泡算法、装饰器

    map使用 完整用户名登录,注册 冒泡排序 递归 def func(arg1,arg2): if arg1 == 0: print arg1, arg2 arg3 = arg1 + arg2 prin ...

  8. opensuse安装pycharm

    最近在学习python,所以查询了很多资料,大多都推荐pycharm进行pychon项目开发.于是查阅一些资料,整理出这个安装步骤.(仅供参考!!!仅供参考!!!仅供参考!!!) 仅供参考!!!仅供参 ...

  9. 杭电oj 2072————统计单词数(java)

    problem:统计单词数 思路:利用HashMap的特性——不能反复存储同一个键得数据,所以可以保证map里边儿的元素都是不重复的,存储完毕之后直接输出size就好了 注意事项: 1.利用strin ...

  10. jqGrid colModel 参数(来自中文手册)

    jqGrid colModel 参数 ColModel 是jqGrid里最重要的一个属性,设置表格列的属性. 属性 数据类型 备注 默认值 align string left, center, rig ...