从根本上讲,复杂系统级芯片的测试与验证问题与CMOS技术以前一直推测的物理极限存在冲突。在设计系统级芯片时,设计人员需要处理数百万门线路的设计,但即使解决了复杂的线路设计,设计好的电路仍然需要进行验证和测试,这时候就会出现半导体物理方面的问题,为已十分复杂的系统增添许多不希望看到的物理效应。为此,验证和测试技术人员不得不急切地开发新工具和技术,以克服0.18μm及更微细工艺所带来的新难题。
我们以可编程逻辑器件(PLD)设计作为一个例子。现在人们已经能够在一个PLD芯片上设计数百万门线路,所完成的系统采用复杂的工艺,至少用到了六个金属化层。芯片内除包含基本的门阵列以外,还含有存储器模块和其它IP内核(具有知识产权的电路模块)。
正如Synplicity公司PLD产品经理Jeff Garrison在他的文章中所说,"如此高密度、高速度器件的超细微工艺技术,给PLD器件带来了类似ASIC器件的问题。特别是时序延迟,过去一般是由逻辑线路单元引起,而现在延迟则主要产生在逻辑单元之间的内部连线上。"
这种现象在0.25μm的设计中就有了,重要的时序参数已从门级描述转向内部互连描述。现在即使是能够设计高度复杂逻辑线路的先进设计工具,对这样的问题也无能为力。 线路中这种很重要的时序特性在设计过程中一直都是个未知数,只有到布局和布线完成以后才能确定。而这时如果发现时序关系不能满足设计要求,就需要对整个设计进行返工,从而影响设计成品的投产进度,造成巨大经济损失。Garrison和他的同事们现正在和PLD供应商Altera公司合作进行工具开发,专门解决PLD结构中特殊的内部连线问题。
设计系统级芯片会用到很多种数字线路和IP内核,上面的例子只不过是其中一种而已。长期以来在易测性设计阶段,测试覆盖率一直是测试设计关心的重要课题,如今在一个芯片中包含了如此多种类型的线路,更为解决测试覆盖率问题增加了难度。
对于测试工程师来说经常需要反复考虑的一个问题,就是为了保证达到一定的故障覆盖率需要作多少种类型的测试。现在简单线路的测试覆盖率已不是大问题了,但是SOC的出现又将问题解决的难度提高了好几个数量级。
明导公司ATPG产品部的Ron Press和Janusz Ralski则在一个宏观的角度上,向我们介绍了随着电路复杂性的增加,同时伴随亚微米器件本身的复杂特性,测试和测量方面的问题如何变得越来越更加严重。
为了适应最新芯片中器件数量的惊人增长,现在测试系统已经开始改用64位处理器,并且采用压缩测试向量模式,目前的压缩率一般要达到60%。
但仅仅因为线路缩小而跟着在缩小的尺寸上进行测试是不够的,因为深亚微米器件还会产生一系列全新故障模式,这些故障和时序问题有直接关系,故而测试工程师会发现在现有方案中单纯增加测试是不够的。Press和Ralski认为,要想找出这些新故障,唯一的办法是在实际工作速度下进行测试。
传统的测试过程专注于找出"卡壳"故障(如晶体管不能开关,电路不能变换状态),这类故障和时序没有关系,因此在实际工作速度下的测试要采用一种更为复杂的方法。例如先建立一个和时序有关的"发生-收到"事件,然后检查接收到的原始事件是否落在规定的时序范围内。此外Garrison还发现,对于系统级芯片路径延迟已经成为总延迟的主要因素,因此不可以再忽略不计。
考虑晶体管和内部连线时序问题的同时,测试和验证现在还要必须考虑相邻连线之间的相互作用。随着内部连线越来越密集,在导线上传输的信号越来越快,线路逻辑状态通过导线间的耦合电容从一根导线传到另一根导线的可能性也越来越大。这样就又产生了一系列的新问题,即所谓的信号完整性问题。对这种类型的故障建模也很复杂,因为它不仅涉及个别的器件或连线,而是与整个网络都有关连,建模时先要分清楚产生影响的网络和受到影响的网络。
Cadence Design System公司的Lou Scheffer在他的文章里详细地介绍了信号完整性分析这一新领域的分类情况。这种线路内部的相互作用时序延迟十分复杂,而且每个周期都不相同,因此建模非常困难。
Scheffer指出,"交互干扰对时序的影响十分复杂微妙,因为受影响网络的时序不仅受到从第一个门电路就开始的门延迟影响,而且还受到内部连线延迟以及其它相邻网络状态的影响。对于内部连线不能再使用一个延迟数据,而是需要用最大延迟和最小延迟来描述,并且在这个周期和下个周期都各不相同。"
一种解决办法是加宽连线之间的距离以减小交互干扰,或者在连线间加隔离屏蔽。但是这种办法增加了成本,也为提高器件的集成度设置了障碍。因此就得在布局和布线设计完成后精确地提取时序范围,这也使故障分析越来越复杂。
另外一个由于连接线引起的问题,是它会影响电源线的电压降。由于亚微米器件的电压值范围越来越小,因此由于距离而产生的电压降问题也越来越尖锐,所以也必须将它列入测试和验证的项目中。
Scheffer在文章中还讨论了如何防止一些只会在测试完成之后的现场使用过程中才能发现的故障。这类令人头痛的问题一般是由于疲劳现象而引起的,如热电子效应、连线疲劳以及电子迁移等。可以预料,随着电路几何尺寸的缩小这些效应会变得更为严重。此外为了解决其它方面的问题而采用的新工艺,例如低k介电材料的应用等,也会使问题变得更为复杂,这主要是因为低介电系数材料的导热性能较差。
要解决设计完整性问题,就需要改变整个设计流程,而不仅是改进测试工作。芯片通过全部测试和验证离开制造厂以后,仍然可能存在潜伏的隐患,这些故障只会在以后的使用过程中才显露出来。