所有这些多路复用和输入输出传送共同作用,可能并不太实际。而且,结果的额外互连会造成尽管所有模块可从针脚进行实际访问,但其访问速度根本达不到要求。这是一个严重的问题。“我们必须要以全速测试电路,特别是模块间的互连,”Hublitz 说。“这对于65 nm工艺的芯片更是如此。否则会产生芯片中的故障。”
Hublitz 强调,由ATE (自动测试设备) 支持的良好的
DFT 策略,可极大地有助调试过程。“我们第一轮调试在ATE 系统上进行,”他说。“在我们清楚了芯片不会融化后,把它交给设计人员,与他们一起合作。”Hublitz同时表明,芯片可能会不断地返回到 Broadcom的测试台,以使 ATE 系统采集大量的数据或进行速度检查。“自己内部有ATE 能力的真是很有用,”他表示。“我们有28 个系统,大概每季度就增加一个新的,主要是用于调试,调试新芯片是我们装备设备最主要的目的。”
虽然有了ATE 系统,某些信号和
状态还是不能通过探测卡的检查。需要采用其它的策略:内部仿真和逻辑分析。有时,对模块进行快速仿真和捕捉其行为的唯一有效途径是将电路构建到模块内部。据Chiang介绍,Bay将其网络处理芯片组织成一串独立的处理器,并广泛应用这项技术。重要的模块可以有其自己的调试内核,包括单步和断点能力及跟踪缓冲器实时捕捉内部状态。Bay 的逻辑设计总监Jun-wen Tsong将这种方法描述为多阶段验证流程。
“首先,我们在模块级实现芯片。在这种模式下,每个模块都被隔离开来:我们可以注入足够的状态启动其运行,然后观察其独立运行特点。”这些测试必须在最大时钟速度下进行,以保证精度。这样,设计师就可实现对一串处理器每级的调试。此时,设计师还将I/O 环与内部模块隔离,使输入可直接进入输出FIFO中。Bay 的设计师在独立验证I/O 环和内部模块后,再将两者结合起来整体地测试芯片。
以整个芯片全速运行采集数据,需要制定全面的计划。单个处理器中的调试内核必须不仅可以识别本地指令和数据字,而且大的图像数据对芯片运行也是十分重要的:如数据包和数据封包。另外,36位总线贯穿整个芯片,可实时将关键信号从任何模块传输到封装脚。使芯片以全速处理包时,调试工程师可以观察模块的运行。此外,硬件实时监测特定的断言,如FIFO full/empty 断言。Broadcom 也有类似的方法。Hublitz告诉我们,他们公司的无线局域网芯片有足够的内部调试硬件,工程师可以在整个芯片上跟踪向量幅度,从输入到基带直到输出。
在一个模块内一旦将问题隔离到一个功能上时,基于类似DFT 的策略,调试工程师可使用低级的诊断工具。Bay 杰出的工程师兼芯片架构师Barry Lee 说:“我们在模块中有对触发和单步的时钟控制,并可扫描我们认为重要的信号。理想情况下,我们可以确切地了解一个特殊的流水线如何执行到针脚和寄存器级别。”
模拟挑战
当涉及模拟电路时,一切都不一样了。“我们将模拟部分与数字电路分割开来进行调试”Lee 解释道。“对两者的调试技术是不一样的。在模拟领域,要打开环回途径,可能要将所有的调试拿到封装脚之外进行。由于在模拟电路中活动基元并不与时钟同步,因而无法对其进行捕捉。”
模拟电路与数字电路类似,随着几何尺寸的缩小,设计师已经看到了探测和实验设计的能力,Analog Devices的Paul Ferguson 认为。“我们习惯了将激光切割器用于探测台来修改电路。后来,随着几何尺寸的减小,我们转移到了聚焦离子束系统。对于250 nm 或更大的间距非常实用。这表明,实际上说,如果采用65nm 工艺,只能改动上面的两个金属层。”
这种情况引发了模拟设计风格的一个有趣的变化, Ferguson说。“最近我们在做一项90nm 设计的PLL,我们发现必须首先完成VCO(压控制振荡器),才能建立合适的模型。所以,我们引入了一些线路,将增益和其它参数调整到所能达到的上部金属层。这对于调试过程的确很有益处。”
Matt Ball 是单芯片无线电厂商Jennic公司的混合信号项目工程师,他也强调要将关键模拟信号置于可取位置的重要性。“我们加入了尽量多的可编程性和数字调整功能,”他说。“有些东西必须为金属微调的, 我们将那些位置变成单一的掩模层级别实现可访问性。”
除了将实时信号引到上部金属层或封装脚上,今天的模拟设计师还有其它武器设定及观察电路的状态。最重要的是在微细几何尺寸上进行,模拟电路与校准和监测它们的数字电路间要有密切的协作。
CSR的McCall 说在其设计中,ADC监测器可确定模拟电路中数字监视电路的多个点。这些点通过将转换器的输出接到封装的外部,为调试工程师提供了访问模拟部分行为的机会。“通常重要的模拟信号在某些点进行数字化处理了”Ball说。“为什么不进行采样,以片上DSP进行滤波,输出我们能够看到它的结果呢?”