P &R 12

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

原文地址:https://www.cnblogs.com/lelin/p/11407562.html

时间: 2025-01-17 14:21:12

P &R 12的相关文章

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 SOAP UI (Doc ID 1314946.1) Modified: 10-Nov-2013 Type: PROBLEM   In this Document   Symptoms   Cause   Solution   References Applies to: Oracle E-Bus

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

在Windows环境下,我们可以使用installr包自动将R升级到最新版本.并且可以安装软件.下面主要演示如何在Windows环境下升级R,并将旧版本安装的R包复制到更新版本的R. 1.加载installr包 install.packages("installr") library(installr) 2.在“installr”菜单中选择“update R” 3.installr将会检测是否发布了新版本的R,如果检查到有单击“确定”即可更新R. 4.如果想了解新版本R的相关特性介绍,

R笔记1

swirl安装课程命令:install_from_swirl("Data_Analysis") <2:workspace and files>1.getwd():显示当前工作空间路径;例子:old.dir <- getwd()将当前工作路径赋给old.dir变量;2.ls():列出当前工作空间里的所有对象(变量);3.dir():列出当前工作空间文件文件夹内所有文件和文件夹;4.list.files():与dir()函数作用一样;5.args():查看某函数所需的变量

第12周 【项目4 - 点、圆的关系】(2)

问题描述: [项目4 - 点.圆的关系] (1)先建立一个Point(点)类,包含数据成员x,y(坐标点): (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心: (3)编写上述两类中的构造.析构函数及必要运算符重载函数(本项目主要是输入输出): (4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外): <strong><span style="font-family:

第12周 【项目4 - 点、圆的关系】(1)

问题描述: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点): (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心: (3)编写上述两类中的构造.析构函数及必要运算符重载函数(本项目主要是输入输出): (4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外): int main( ) { Circle c1(3,2,4),c2(4,5,5); //c2应该大于c1 Point p1(

第12周 【项目4 - 点、圆的关系】(3)

问题描述: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点): (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心: (3)编写上述两类中的构造.析构函数及必要运算符重载函数(本项目主要是输入输出): (4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外): int main( ) { Circle c1(3,2,4),c2(4,5,5); //c2应该大于c1 Point p1(

2020.4.12 个人rating赛 解题+补题报告

A. Balloons  1.题意 有n包气球,每包气球有ai个,将这n包气球以包为单位全部分给两个人,要求每人至少有一包气球且两人气球总个数不能相等.  2.题解 用结构体将n包气球的编号和气球数存起来,按每包气球个数排序后,如果第一包气球的个数不为总个数的一半,满足题意.  3.代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 struct node{ 5 int id,x; 6 }a[15]; 7 bool cm

并查集(个人模版)

并查集: 1 int find(int a) 2 { 3 int r=a; 4 while(f[r]!=r) 5 r=f[r]; 6 int i=a; 7 int j; 8 while(i!=r) 9 { 10 j=f[i]; 11 f[i]=r; 12 i=j; 13 } 14 return r; 15 } 16 int merge(int a,int b) 17 { 18 int A,B; 19 A=find(a); 20 B=find(b); 21 if(A!=B) 22 { 23 f[B

Integer和Long部分源码分析

Integer和Long的java中使用特别广泛,本人主要一下Integer.toString(int i)和Long.toString(long i)方法,其他方法都比较容易理解. Integer.toString(int i)和Long.toString(long i),以Integer.toString(int i)为例,先看源码: 1 /** 2 * Returns a {@code String} object representing the 3 * specified intege