转眼间小编从硕士毕业到现在已经有13年了。不包括研究生阶段做的那些后端项目,小编参与流片量产的芯片已经有50颗+芯片。今天跟大家分享下芯片流片失败的那些典型案例。
1)电源和地短路
在芯片ChipLevel做LVS后结果是CORRECT的。但数字IC后端工程师提供的package pin信息时误把VSS的pad当成VDD了!即芯片内部VSS Pad是和内部的VSS net连成一片的,但在封装级它确实和VDD的球位连在一起。
因此,SoC Top过LVS使用的text坐标必须是封装使用的坐标。
当芯片回来做测试时发现只要一上电就会出现烧片的情况。所以解决思路是从die,封装和PCB三方面分别找short的点。
2)Pad Open
IC行业出现Pad Open的案例屡见不鲜,甚至好几家大厂都中招过。这种在设计外包公司经常出现。核心原因是团队physical经验不足!
整芯片的LVS是pass的,但在芯片测试时就是发现某些IO没有功能,基本上断定是IO open的情况。
业界遇到的PAD Open主要有如下几种情况:
- IO Cell和bonding pad之间没有物理连接通路
- Bonding pad定制时缺VIA4的通孔
顶层PAD的text一定要打在pad的最高层!IO Cell存在M4的text,在顶层过LVS时bond pad上也会有text。刚好顶层开了virtual connect,又或者calibre LVS在做gds抽取的时候报了两条net open的警告没有查看而只看了LVS 结果是CORRECT!
3)Package Pin没有bonding
需要引出来的pin引脚没有出给package。这种情况不需要更改芯片内部任何东西,只需要更改封装设计,增加一个封装引脚即可。
4)JDV(Job Deck View)没有认真核对
- Final GDS 版本错误
在芯片流片stage,我们通常会连续release很多版gds,经常是一天更新一个版本gds。这时候foundary可能会把版本搞错。
所以我们需要做JDV时需要重点检查当前最新Tapeout gds改动的地方,比如某个IP更新了,我们重点查看改动的地方是否在JDV中可以看到。又比如我们又增加一颗cell,我们也应该重点检查这颗cell所在的位置。
同样在我们做postMask function eco后也要认真检查JDV中最新改动的地方。
- 少Tapeout某一层
需要仔细核对整个芯片流片所有需要流片的layer,特别是很多base layer。
5)BootROM Code错误
系统引导程序(Bootloader)在SoC中扮演着至关重要的角色。它的主要任务包括以下几个方面。
硬件初始化:在系统上电后,引导程序首先需要初始化硬件,包括设置时钟、配置内存、初始化外设等。
安全启动:为了保护系统不被恶意软件攻击,引导程序会检查操作系统映像的完整性和合法性。
配置系统环境:设置系统运行所需的参数,如CPU工作模式、内存管理单元(MMU)配置等。
加载操作系统:将操作系统映像从存储设备(如闪存、硬盘)加载到内存中。
跳转到操作系统:一旦操作系统加载完成,引导程序会将控制权交给操作系统,让操作系统接管系统的控制。
这些操作系统或启动程序是由c或者c++等程序写成的,编译成.bin或者.hex文件,存储到非易失性存储器中,或者存储在外部存储设备上。这些文件被称为镜像文件(image)。
一般情况下都会采用内部ROM的方式进行boot,如果内部ROM出问题了,可以采用XIP进行debug或者作为备份。
在我们数字后端设计实现中会有一颗ROM,在流片前一定要跟前端仔细核对bootRom的版本。
6)芯片没有时钟(晶振)
芯片回来后发现测不出任何时钟!这个原因一般是晶振不起振和PLL相关问题。PLL的设计是一个复杂的工程,需要考虑的因素包括锁相环环路带宽、参考信号频率,相位噪声等。如果设计过程出现一些关键参数指标错误,会导致PLL无法正常工作。
当然还有我们数字后端实现阶段需要严格按照PLL Vendor提供的implementation guide来做集成和实现。比如PLL周围多少距离不能有走线,PLL各个接口信号需要加ip guide buffer等等。
7)Standard ,IP GDS 版本错误
物理验证DRC Merge阶段使用了老版本的IP数据。刚好这个版本的IP是有bug的。所以tapeout有个checklist就是检查GDS Merge List,确保这个list中的数据版本都是最新的。
8)功能Bug
这个可以通过Function ECO来解决。基本上postMask ECO只需要改动M1-M3这几层金属层即可(base layer不需要改动)。
9)芯片功耗太大
芯片的功耗太大会导致产品性能,散热等方面的问题。这样的产品通常被称之为“电老虎”或“暖手宝”。试想下如果你的手机需要每2小时充一次电,我相信你肯定不会买。因此,用户体验差的产品是没有商业价值的。
10)Timing约束不完备
Timing Signoff阶段没有仔细查看check_timing report的警告导致该约束的点没有约束。而芯片实际工作对这些点又有时序上的要求,最终导致芯片功能错误。
数字IC芯片设计实现 | 时序Timing Signoff check_timing检查解析
11)Timing Signoff全corner timing未clean
比如func模式,low speed 模式,high speed模式遗漏一个都会导致芯片功能错误。
12)Latchup效应
比如IO Ring太靠近core区域引起的latch up,导致内部过渡电流量使得芯片产生永久性破坏。
13)ESD保护电路问题
- Design Window设计不合理
该芯片存在高低两个电压域,其中低压VDD是由内部LDO产生。IO是低压信号,其Input buffer是由低压MOS构成,属于低压域。但是端口ESD器件却连接HV_Rail,采用高压ESD器件。整个端口的TLP曲线如图所示,IO Input buffer的器件已经损坏,而HV_ESD器件尚未开启,这种属于Design Window上限选取错误。整个端口的Design Window 设计不合理。
- ESD保护器件未及时开启
比如IO cell内部esd保护电路开启时间太慢。当ESD来临时,由于ESD保护电路未能及时开启,这个ESD高电压会直接灌进芯片内部电路烧坏芯片。
- ESD泄放通路电阻偏大
因此在整个数字IC设计实现的每个阶段都需要有完备的Checklist!!! 在芯片Tapeout前需要一条条review过。否则芯片回来一不小心就变成砖头了。
标签:操作系统,流片,芯片,ESD,失败,IO,PLL From: https://blog.csdn.net/weixin_37584728/article/details/143185881