实现测试时钟控制结构(“tccs”)的器件的基于扫描测试的制作方法

文档序号:6129689阅读:518来源:国知局
专利名称:实现测试时钟控制结构(“tccs”)的器件的基于扫描测试的制作方法
技术领域
本发明一般涉及电子器件的测试,尤其涉及使用包括一个或多个测试时钟控 制结构的架构来实现基于扫描测试的方法和计算机可读介质。
背景技术
电子器件制造商使用纳米级半导体制造工艺来制造几何尺寸减小的集成电 路,由此在每单位面积上设置更多的晶体管和互连资源。但是制造几何尺寸越来越 小的器件也增加了发生导体相关故障以及电阻类缺陷的机率。导体相关故障通常由 降低金属互连质量的加工偏差所引起,从而导致例如不一致的接触电阻。电阻性缺 陷使得受影响电路节点上的信号转变更缓慢地上升和下降。但是因为常规固定型 和参数泄漏电流(例如IDDQ测试)测试方法无法有效地检测这些类型的故障,所 以电子器件制造商通常依靠延迟测试方法来筛选出这些故障模式。然而,结构延迟 测试显然比诸如固定型测试的常规测试方法昂贵得多。例如,用于实现延迟测试的 数据量显著大于用于常规固定型测试的数据量。在一些情况中,延迟测试需要比固 定型测试多五倍的数据。此外,固定型测试检测诸如"固定"在逻辑值为1或0 的电路节点的静态故障。相比之下,延迟测试检测导致信号上升或下降比可接受的 更慢的动态故障。通常,延迟测试需要使转变信号通过其中该测试筛选延迟相关故 障的电路来传播。并且因为延迟测试需要在确定时序限制内发射和捕获转变信号, 所以延迟测试矢量显然比固定型测试矢量更难生成测试时钟并与其同步。
图1是示出通常用来实现用于在待测试电路("CUT" )102中检测动态相关故 障的常规延迟测试的扫描链的一部分100的示图。常规扫描链通常包括触发器108 和多路复用器106。扫描使能("SE")信号104控制多路复用器106用于与电路102 交换刺激和结果信号、或者用于将扫描数据移入或移出触发器108。通常,扫描使 能104是通过扇出装置从单个源传播的全局信号,类似于测试时钟("CLK" )120。 扫描输入端("SI" )110接收来自诸如自动测试设备("ATE")的外部源的扫描数据, 而扫描输出端("SO")112移出由刺激信号所生成的结果。为了使用扫描链部分100 协调延迟测试,测试时钟发生器通常生成测试时钟("CLK" )120,以驱动扫描数
据通过扫描链。多路复用器130选通慢时钟140或快时钟150。具体地,扫描链部 分100使用慢时钟140来驱动扫描数据通过扫描链,并使用快时钟150来对电路 102执行实速功能测试。虽然ATE可用作测试时钟发生器,但是诸如芯片上锁相 环("PLL")电路的芯片上功能时钟电路可以较低成本提供高速测试信号。然而常 规测试时钟发生电路是复杂且高成本的,特别是当待测试器件("DUT")包含诸如 20到100个时钟域或者更多的许多时钟域时。
图2示出了因在常规扫描链结构中使用单个扫描使能("SE")信号来执行常规 实速延迟测试而产生的时序不确定度。通常用来检测动态故障的实速延迟测试的一 个示例是"上次移位启动"测试。在该技术中,为第一测试图移位到扫描链中的最 后扫描数据位在再一次移位之后变成第二测试图的输入。时序图200示出了执行常 规上次移位启动测试的图1的测试时钟120和扫描使能信号104。具体地,第一测 试图在扫描模式期间使用慢时钟140移位到扫描链中,并且上次扫描数据位移位到 扫描链中作为启动沿210。为了执行实速延迟测试,扫描使能104改变状态,并且 将快时钟150施加到扫描链,以捕获功能测试结果。使用单个使能信号104来实现 实速延迟测试的缺点是必须在限定的时间距离内检测捕获沿220,从而施加了实速 时序限制202。因此,在实速时序限制202期间,扫描使能104必须从一个状态转 换到下一个状态以便充分检测捕获沿220。但是随着实速时序限制202越来越窄以 适应更小几何尺寸上的延迟测试,变得难以期望扫描使能104充分地转换状态。
图3示出了使用常规测试时钟控制技术来实现实速延迟测试的典型扫描链结 构300。如图所示,扫描链结构300包括具有扫描输入310和扫描输出312的扫描 链320、以及内部时钟发生器330 (例如一个或多个PPL电路)和内部测试时钟控 制器340。扫描链结构300使用内部测试时钟控制器340来对待测试("CUT")电 路302执行实速延迟测试。各个待测试电路302都驻留在时钟域304内。时钟域是 与特时序钟同步的电路区域。时钟控制位350定义了内部测试时钟控制器340的操 作。但是为了配置内部测试时钟控制器340,常规实速测试技术将时钟控制位350 与扫描数据位一起嵌入到扫描链320中。这种方法的一个缺点是扫描链320加载有 时钟控制位350以在每一次扫描链加载时测试一个时钟域304。因而,整个扫描链 320在每次测试一个单独域304时加载和卸载一次。同样注意时钟控制位350是 静态的,特别是在测试期间。具体地,扫描链结构300通常需要时钟控制位350 在扫描链320中保持固定,从而内部测试时钟控制器340可根据这些位进行操作。 同样地,扫描链结构300和其它类似常规扫描链结构并不适合与扫描链320中的位
无关地来操作内部测试时钟控制器340,特别是当实现时钟域间测试(例如启动和
捕获)时。另一个缺点是常规扫描链结构300通常不足以支持控制扫描链320
的多个部分选择性地加载和卸载以便于减少测试时间和数据量的控制序列和/或程
序。例如,大多数扫描链320不能选择性地重新加载扫描链320 (或其一个或多个 部分)来仅测试待测试的目标电路302。这意味着扫描链320可能加载了对于特定 测试来说非必要的数据,由此加载到扫描链320中的这些非必要数据增加了测试数 据量,从而增加了测试时间。为了检査目标电路302之一的结果,常规扫描链320 一往往相对较长一需要移位非必要数据和结果两者,两者的组合通常导致较长的测 试时间。扫描链300的又一个缺点是域间逻辑306通常不足以充分地使一个时钟 域中的捕获脉冲与来自另一个时钟域的启动时钟脉冲同步,特别是当两个时钟域具 有不同时钟频率时。
图4示出了使用图3中采用了常规测试时钟控制技术的扫描链结构300进行 的域间逻辑306的测试。通常,从第一时钟域("i")410中的输入寄存器("OutReg") 向第二时钟域("j" )420的输入寄存器("InReg")启动从逻辑O到1 (或相反)的 转变。时钟("CLK[i]" )412驱动经由域间组合逻辑306从输入寄存器402向输入 寄存器404的转变,该输入寄存器在时钟("CLK[j]" )422下工作以便锁存转变状 态。期望启动沿450为捕获沿470提供同步以便适当地捕获测试响应。但是考虑时 钟422的一个时钟周期对应于时钟412的五个时钟周期的情形。如果如常规延迟测 试中通常所实现的,从时钟域410中与时钟422 (时钟域420中)的时钟沿460同 步地启动转变,则在时钟域420内捕获测试响应之前会流逝五个时钟周期。因此, 沿440上的非期望启动可能无法适当地捕获到沿470上的测试响应。随着参与时钟 域的数量的增加,变得越来越难以管理常规扫描链结构中的时钟域之间的同步。另 外,常规内部测试时钟控制器中的固有等待时间会因为类似原因而使得时钟域间测 试变得复杂。
图5是示出用于实现实速延迟测试的具有常规测试功能时钟路径530的内部 测试时钟控制器502的框图500。内部测试时钟控制器502接收功能时钟("PLL Clk" )510和嵌入时钟控制位504以生成经延迟的捕获脉冲。内部测试时钟控制器 502也包括用于对功能时钟510的沿进行计数的脉冲计数器520、以及响应于嵌入 时钟控制位504的值生成测试时钟550的逻辑电路522。在工作时,脉冲计数器520 和逻辑电路522相配合以使捕获启动脉冲560之后的捕获脉冲570延迟一时延562, 从而执行例如域间测试。这种方法的一个缺点是测试时钟控制器502包括测试功
能时钟路径530,该路径除多路复用器534之外还包括附加电路元件。当执行启动 和捕获操作时,这些附加元件536可不利地使实速功能时钟信号510偏斜,从而在 捕获脉冲570的时序中导致不确定度580。通常,时延562需要时钟平衡以保证路 径530上测试模式中的实速功能时钟可在不包括附加元件536的路径532上模拟运 行模式中(例如,当测试模式或TM被禁用时)的功能时钟510。
图6A和6B分别示出了宽面和上次移位启动测试协议的常规实现。图6A包 括包含不同寄存器级612的扫描链610。对于示图600中所示的宽面协议测试,从 前一寄存器级612b启动期望转变602,使其传播通过组合电路620b,然后将其捕 获到寄存器级612c的寄存器630中。这测试了 一直接或间接地一组合电路620a和 620b。在启动沿,寄存器632锁定逻辑0,由此通过组合电路620b启动l-到-O的 转变。寄存器630在捕获沿捕获逻辑0值。注意逻辑O的出现取决于先前从寄存 器634的值的转变601,由此测试组合电路620a。在该技术中,通过在测试模式中 以慢速度、接着在功能模式中以两个实速时钟脉冲(例如启动和捕获沿)的方式移 位数据来将其加载到整个扫描链中。接着, 一旦捕获到值,则可以测试模式缓慢移 出数据。虽然使用宽面协议的延迟测试可检测到其它方案无法检测的延迟故障,但 是用于宽面协议的测试图的大小通常比用于上次移位启动协议的图大。此外,用于 宽面的测试图本质上是连续的,因而更难以生成。
图6B包括包含不同寄存器级672的扫描链660。对于上次移位启动协议测试, 转变662从寄存器级672b中的扫描加载或卸载序列期间的上次移位启动。然后, 它被捕获到下一寄存器级672c的寄存器680中。因为输入转变690从上次移位661 启动,所以上次移位启动测试图的大小可比宽面的更小并更容易生成,因为连续测 试图比组合图更难以压縮。但是上次移位启动协议具有上述的缺点。因为宽面和上 次移位启动两者看起来具有互斥的优点和缺点,所以大部分设计者仅实现两者之
根据前述内容,期望提供最小化上述缺点、并且提供基于扫描的实速测试来 至少检测延迟相关故障的系统、结构和方法。

发明内容
公开了使用了一个和多个测试时钟控制结构来执行电路的基于扫描测试的方 法和计算机可读介质。在一个实施例中,方法包括执行域内测试来运用实现动态故 障检测测试图的多个电路的第一域子集。它还包括执行域间测试来运用实现动态故
障检测测试图的多个电路的第二域子集。动态故障检测测试图通常包括例如上次移 位启动测试图和宽面测试图。在一个实例中,这些域是时钟域。同样地,该方法可 包括配置不同的可编程测试时钟控制器来基本上并行地测试不同时钟域。注意在 一些情形中,基本上并行地测试不同时钟域可包括在测试不同时钟域时,减少加载 一个和多个扫描链的次数。该方法可包括通过例如基本上与静态故障检测测试图并 发地将动态故障检测测试图加载到扫描链中、以及基本上与静态故障检测并发地使 用动态故障检测测试图执行动态测试,来实现静态故障检测测试图。
在一个实施例中,该方法可通过例如基本上与时钟域间测试图并发地将时钟 域内测试图加载到扫描链中、以及在不用重新加载扫描链的情况下在域内测试期间 执行时钟域内测试和时钟域间测试,来执行域间测试。在另一个实施例中,该方法 也可包括通过例如基本上与时钟域内测试图并发地将时钟域间测试图加载到扫描 链中、以及在不用重新加载扫描链的情况下在域间测试期间执行时钟域间测试和时 钟域内测试,来执行域间测试。在一些实例中,域间测试还包括对多个电路的与域 间测试隔离的部分执行域内测试。执行域间测试还可包括通过例如基本上与静态故 障检测测试图并发地将动态故障检测测试图加载到扫描链中、以及在域间测试期间 基本上与静态故障测试并发地执行动态测试,来执行静态检测测试图。动态测试的 执行可包括执行上次移位启动测试或宽面测试、或者两者。
在另一个实施例中,方法包括配置可编程测试时钟控制器的第一子集来加 载扫描链;根据指定是否激活加载扫描链的时钟命令信息来将扫描数据加载到扫描 链中;以及配置可编程测试时钟控制器的第一子集中的一个可编程测试时钟控制 器,以响应于指定是否检测故障的附加时钟命令信息生成测试时钟。它也可包括根 据附加时钟命令信息生成测试时钟来检测一个或多个电路。在一些实例中,生成测 试时钟还包括使用上次移位启动测试和宽面测试对动态故障的测试、或使用固定型 测试对静态故障的测试、或者两者。生成测试时钟还可包括并行地生成用于可编程 测试时钟控制器之一的测试时钟和用于其它可编程测试时钟控制器的其它测试时 钟,由此并行测试多个域。注意在一些实施例中,方法还包括在不加载扫描链的 情况下,使用扫描数据执行附加操作,该执行包括配置可编程测试时钟控制器的第 一子集中的至少一个可编程测试时钟控制器,以生成另一个测试时钟来执行一个或 多个电路的另一测试。
在又一个实施例中,计算机可读介质被配置成执行测试时钟控制结构以实现 基于扫描的电路测试。该计算机可读介质包括可执行指令,这些指令用于生成用
时钟命令信息编程可编程测试时钟控制器来测试电路的控制层时钟信号(TCLK); 生成以扫描速度驱动一些扫描链的扫描层时钟信号(SCLK);加载与可编程测试时 钟控制器的第一子集相关联的扫描链;以及生成测试时钟。因而,生成测试时钟的 可执行指令可执行测试实现一种或多种动态故障检测测试的电路的第一子集的域 内测试、执行测试实现一种或多种动态故障检测测试的电路的第二子集的域间测 试、和/或执行对其它电路的固定型测试。可基本上并行执行域内测试、域间测试 和固定型测试的两个或多个。


通过以下详细描述并结合附图将更全面地理解本发明,在附图中
图1是示出了通常用来实现待测试电路的常规延迟测试的扫描链的一部分的
示图2示出了在常规扫描链结构中使用单个扫描使能("SE")信号来执行实速延 迟测试的时序不确定度;
图3示出了使用常规测试时钟控制技术来实现实速延迟测试的典型扫描链结
构;
图4示出了使用图3扫描链结构对域间逻辑进行的测试;
图5是示出了具有使实速时钟信号偏斜的测试功能时钟路径的常规内部测试 时钟控制器的框图6A和6B分别示出了宽面和上次移位启动的常规实现;
图7是示出了根据本发明的至少一个具体实施例的用于测试电路的测试时钟 控制结构的框图8是示出了根据本发明的至少一个具体实施例的可编程测试时钟控制器的
框图9是示出了根据本发明的一个实施例的可编程测试时钟控制器的一个功能 示例的示图IO是示出了根据本发明的一个实施例的可编程测试时钟控制器的一个示例 的示图11是示出了根据本发明的一个实施例的可编程测试时钟控制器的基于多个 扫描使能控制信号的操作状态的表格;
图12A和12B分别示出了根据本发明的各个实施例的扫描时钟译码器和可编 程测试时钟控制器的具体实现;
图13示出了根据本发明的一个实施例的、适合于实施用于编程具体时钟域的 图12B的可编程测试时钟控制器的时钟脉冲控制器的状态图14A和图14B分别示出了根据本发明各个实施例的用来将可编程测试时钟 控制器配置成构建启动和捕获各操作的测试时钟、以及禁用对应时钟域的信号的时 序;
图15示出了根据本发明的一个实施例的包括简化时钟脉冲控制器和简化测试 时钟发生器的可编程测试时钟控制器;
图16示出了根据本发明的一个实施例的包括补充时钟命令源的可编程测试时 钟控制器;
图17A和17B分别示出了根据本发明的各个实施例的实现为字符串生成器的 补充时钟命令源和对应状态图18是示出了根据本发明的一个实施例的实现任意数量的可编程测试时钟控 制器以测试电子器件及其电路的概念性测试时钟控制结构的框图19是示出了根据本发明的一个实施例的实现可编程测试时钟控制器以测试 不同域中的电路的测试时钟控制结构的示图20是示出了根据本发明的一个实施例的共享初级输入和初级输出以减少测 试接入点的控制链和扫描链的示图21示出了根据本发明的一个实施例的被配置成执行域间测试的测试时钟控 制结构;
图22A和22B示出了根据本发明的各个实施例的使用一个或多个时序基准点 来计算时间距离以实现域间测试的的各种技术;
图23示出了根据本发明的一个实施例的被配置成执行域内测试的测试时钟控
制结构;
图24示出了根据本发明的一个实施例的被配置成使用简化可编程测试时钟控 制器执行域内测试的测试时钟控制结构;
图25A到25D根据本发明的一个实施例的被配置成便于使用可编程测试时钟 控制器进行域间测试和域内测试的测试时钟控制结构;
图26示出了根据本发明的一个实施例的使用实现可编程测试时钟控制器 ("PTCC")的测试时钟控制器结构来测试电路的微观流程的一个示例;
图27示出了根据本发明的一个实施例的使用测试时钟控制器结构和可编程测 试时钟控制器("PTCC")来测试电路的宏观流程的一个示例;
在所有这些附图的若干视图中,相同标号表示对应部分。注意大部分标号 包括通常标识首次引入该标号的附图的一位或两位最左侧数字。
具体实施例方式
图7是示出根据本发明一特定实施方式的用于测试至少一个电路的测试时 钟控制结构。测试时钟控制结构701包括用于测试待测试电路703的一个或多 个可编程测试时钟控制器700。如图所示,可编程测试时钟控制器与两个不同 层一控制层720和扫描层730 —上的数据交互作用。可编程测试时钟控制器700 包括用于产生可配置测试时钟("CTC" ) 714的测试时钟发生器704。可编程 测试时钟控制器700也可包括扫描层接口 712以用可配置测试时钟714经由扫 描层接口 712来驱动扫描链732的至少一个扫描链部分。如图所示,扫描链732 位于扫描层730内。此外,可编程测试时钟控制器700可包括控制层接口 710 以访问用于控制例如扫描链732或扫描链部分734的控制信息724。
可编程测试时钟控制器700可包括通过控制层接口 710与例如控制层720 中的控制链722的一部分连接的控制逻辑706。因此,控制逻辑706可控制是 否要基于控制信息724选择性地将扫描数据加载到扫描链732 (或者其一部分) 中。在不同实施方式中,控制链722是与扫描链734不同的通道,由此便于与 扫描数据的传输独立地将控制信息724传输到可编程测试时钟控制器700。这 样的优点是减少扫描加载和卸载序列的数量,从而减少测试时间。在一些情形 中,控制逻辑706可便于实现两个或多个扫描测试协议以使用来自扫描链的基 本相同数据测试电路750 (例如无需在不同测试协议之间整个地加载或卸载扫 描链)。例如,可编程测试时钟控制器700可规定在同一测试流中使用宽面测 试和上次移位启动测试协议。由于可编程测试时钟控制器700可适应单个构架 中的不同测试协议,因此与单个延迟测试协议的实现相比,这可有利地增加测 试覆盖面。所以,如果使用例如上次移位启动技术未检测到故障,则可实现宽 面测试来检测故障。在一实施方式中,可编程测试时钟控制器700包括接收共 同代替常规单个扫描使能信号的多个扫描使能控制信号的输入端708。在另一 实施方式中,测试时钟控制结构701可在包括电路750的单个衬底上形成。可 配置测试时钟714可被称为测试时钟以及链时钟。通常,测试时钟控制结构包 括可编程测试时钟控制器、控制链、扫描链、以及用于测试电路的其它测试相
关结构。
图8是示出根据本发明至少一个特定实施方式的可编程测试时钟控制器。 可编程测试时钟控制器800被配置成使用相对低速的扫描时钟(即"扫描速度" 下)和相对高速的功能时钟(即"实速")来产生用于结构延迟测试的可配置
测试时钟,以将测试时钟830配置成实现多个延迟测试协议。可编程测试时钟 控制器800可将测试时钟配置成进行一系列扫描链加载和卸载操作。或者,它 可将测试时钟配置成启动输入转变和捕获测试响应。这样,可编程测试时钟控 制器800可将测试时钟830配置成扫描速度时钟("SCLK" ) 832以驱动扫描 数据进入或输出扫描链,或者配置成实速功能时钟("PCLK" ) 834以进行启 动和/或捕获操作。在至少一个实施方式中,多路复用器840 (或者能执行多路 复用操作的任何等效结构)将扫描速度时钟832或实速功能时钟834路由到输 出终端以产生测试时钟830。可编程测试时钟控制器800实际上可插入到任何 功能时钟路径中,并可与诸如芯片上PLL的任何功能时钟源集成,而不显著改 变内部时钟结构。此外,可编程测试时钟控制器800可编程为禁用任何时钟域, 从而选择性地从任一启动、捕获、扫描加载和扫描卸载操作中包括和排除一个 或多个时钟域。
可编程测试时钟控制器800包括扫描时钟解码器802和时钟模块804,以 从功能时钟PCLK[i]817和外部驱动扫描速度扫描时钟("扫描时钟")810产 生可配置测试时钟,诸如测试时钟("CLK" ) 830。在一些情形中,PLL电 路850产生功能时钟834且ATE产生扫描时钟810。参考时钟("RefClk[k]") 815可提供给PLL 850以产生功能时钟817,并且可控制例如时钟模块804的 控制操作。在一些实施方式中,实速功能时钟834实质上是功能时钟817。扫 描时钟解码器802解码扫描时钟810以同步包括控制层时钟信号("TCLK") 820和扫描层时钟信号("SCLK" ) 822的时钟控制信号。控制层时钟信号820 用于至少将来自控制链(未示出)的时钟命令信息提供给时钟模块804。扫描 层时钟信号("SCLK" ) 822用于驱动扫描链或其一部分(未示出)。注意, 控制层时钟信号820和扫描层时钟信号822实质上是概念性的,并且不需要延 伸到可编程测试时钟控制器800之外。
虽然常规扫描测试时钟控制技术使用单个扫描使能("SE")信号来在扫 描路径与功能路径之间多路复用,但是可编程测试时钟控制器800用至少两个 扫描使能控制信号—扫描使能时钟("SeC")控制信号812和扫描使能数据
("SeD")控制信号814 —代替常规的单个扫描使能信号。SeD控制信号814 被配置成在功能路径与扫描路径之间多路复用,而SeC控制信号812在扫描时 钟和功能(即实速)时钟之间多路复用。有利的是时钟和数据控制的分离简化 了时钟产生结构的设计,并使得从扫描移位到启动和捕获操作(或相反)的同 步容易。此外,分离的SeD时钟控制信号814和SeC数据控制信号812也提供 了可编程测试时钟控制器800在同一芯片上实现不同的测试协议,诸如宽面和 上次移位启动测试协议的能力。
图9是示出根据本发明一实施方式的由可编程测试时钟控制器执行的功能 示例的示图。可编程测试时钟控制器900被配置成多路复用相对低速的扫描时 钟("SCLK" ) 902和相对高速的功能时钟("PCLK" ) 904以产生要在至 少宽面和上次移位启动延迟测试协议下实现的测试时钟930。特别地,可编程 测试时钟控制器900在扫描时钟902和功能时钟904的基本稳态部分908期间 在时钟源之间多路复用。通过在具有稳态相位906的相同稳态值(例如逻辑低) 的时钟源之间多路复用,可编程测试时钟控制器900提供扫描时钟卯2与功能 时钟904之间的安全切换,使得例如负载循环保持不变且短时干扰最小。在一 实施方式中,可编程测试时钟控制器900使用多路复用器910来在扫描时钟902 和功能时钟904之间多路复用而无需实速时钟产生路径中的附加逻辑元件。这 样,可编程测试时钟控制器900可避免对于为了时钟选通目的而使用附加逻辑 元件的一些常规测试时钟发生器普遍的时钟偏斜。可编程测试时钟控制器900 可将测试时钟930配置成提供宽面计时的时钟926或者提供上次移位启动计时 的时钟946。这样,可编程测试时钟控制器900可有利地实现宽面和上次移位 启动协议。为了实现宽面计时920,可编程测试时钟控制器900操作以在扫描 模式中将N个扫描数据位移进扫描链中,之后在功能模式中提供实速的启动时 钟沿922和捕获时钟沿924。为了实现上次移位启动定时940,可编程测试时 钟控制器900操作以在扫描模式中移位N-l个扫描数据位。在第N-l位之后, 在扫描模式中提供启动时钟沿942作为第N个时钟沿,之后在功能模式中捕获 沿944作为第N+l个时钟捕获时钟沿。
图10是示出根据本发明一实施方式的可编程测试时钟控制器的一个示例 的示图。可编程测试时钟控制器IOOO包括被配置成根据编程到时钟脉冲控制 器1002中的时钟命令信息("CCI" ) 1012产生时钟控制信号("TC_En") 1024的时钟脉冲控制器("CPC" ) 1002。时钟脉冲控制器1002可形成控制
层中控制链1012的一部分。可编程测试时钟控制器1000也包括被配置成根据 时钟命令信息1012—部分产生测试时钟("CLK" ) 1052的测试时钟发生器 1030。在一些情形中,时钟命令信息1012指定是否将功能时钟信号作为测试 时钟1052施加到扫描链。可编程测试时钟控制器1000接收可输入到PLL电路 的参考时钟("RefClk" ) 1046。参考时钟1046的相位可锁定到来自一个或 多个PLL电路的一个或多个PLL输出时钟。
在一实施方式中,时钟脉冲控制器1002包括时钟控制信号发生器1010和 时钟速率选择器1020。时钟控制信号发生器1010根据时钟命令信息1012在各 个时钟沿产生时钟控制信号1024,而时钟速率选择器1020对各个单独时钟沿 设定时钟循环周期。时钟速率选择器1020在表示用于实速测试的第一时钟速 率的第一周期与表示用于至少驱动扫描链的第二时钟速率的第二周期之间选 择。测试时钟发生器1030可包括测试构建和执行控制器1040与测试时钟选择 器1050。测试构建和执行控制器1040操作以将可编程测试时钟控制器1000配 置成数据传输模式或测试执行模式。此外,测试构建和执行控制器1040提供 时钟速率控制信号("CPC_En" ) 1022以选择单独时钟沿例如作为测试时钟 1052移出的时钟速率。测试时钟选择器1050被配置成基于时钟控制信号1024 将功能时钟信号1054或单独时钟沿的子集施加到扫描链。注意,时钟控制信 号1024可指定功能时钟信号1054的形成测试时钟1052的单独时钟沿的可编 程量。在至少一个实施方式中,测试时钟选择器1050也提供扫描时钟("SCLK") 作为测试时钟1052,用于将扫描数据移进或移出扫描链。根据一实施方式,测 试时钟发生器1030包括至少两个输入。第一输入被配置成接收表示以数据传 输模式或测试执行模式操作可编程测试时钟控制器1000的扫描使能数据
("SeD")信号1042,而第二输入被配置成接收表示将可编程测试时钟控制 器1000配置成将功能时钟信号("PCLK" ) 1054或单独时钟沿的子集施加到 扫描链的扫描使能时钟("SeC")信号1044。如果扫描使能数据信号1042 表示数据传输模式,则可编程测试时钟控制器1000操作以使用扫描速度时钟 速率将数据移进扫描链或控制链。或者,如果扫描使能数据信号1042表示测 试执行模式,它操作以将其自身配置成使用实速时钟速率进行功能测试。然而, 扫描使能时钟信号1044使得可编程测试时钟控制器1000以静默状态(例如用 于执行泄漏IDDQ测试)或实速启动和/或捕获状态工作。注意,图10的可编 程测试时钟控制器略去了扫描时钟解码器以简化讨论。图11是示出根据本发明一实施方式的基于多个扫描使能控制信号的可编 程测试时钟控制器的操作状态的表格。表1100示出扫描使能数据("SeD")
控制信号1101和扫描使能时钟("SeC")控制信号1103建立了可用于实现 根据本发明不同实施方式的可编程测试时钟控制器的期望功能的信号状态(或 测试模式)集合1105。在静默状态1102期间,待测试电路的所有时钟被关闭, 而在启动/捕获状态1104中实速功能时钟被施加到扫描链以执行延迟测试。在 扫描加载/卸载链状态1106中,扫描链被加载或卸载,且在控制加载/卸载状态 1108中,可对编程测试时钟控制器编程。通常,扫描使能数据控制信号1101 的值确定可编程测试时钟控制器以数据传输模式或测试执行模式工作。当SeD 控制信号1101具有值1时,可编程测试时钟控制器使用来自诸如ATE器件的 外部源的扫描时钟参与相对低速的数据传输操作。然后,如果SeC控制信号 1103具有值O,则可编程测试时钟控制器加载或卸载扫描链以将电路的内部寄 存器初始化到已知状态。相反,SeC控制信号1103的值1导致可编程测试时钟 控制器用时钟命令信息编程。在静默状态1102,可编程测试时钟控制器不施加 时钟脉冲以产生到待测试电路的域的转变。在该状态中,ATE可强加主输入
("PI")以测量主输出("PO")或测量从电源到接地的IDDQ泄漏电流。 注意,当SeD控制信号1101具有值O时,可编程测试时钟控制器可参与实速 测试以使用功能时钟在相对高速下启动输入转变或捕获测试响应或两者。
图12A和12B分别示出根据本发明不同实施方式的扫描时钟解码器和可编 程测试时钟控制器的特定实现。在图12A中,扫描时钟解码器1200包括产生 驱动扫描链的扫描时钟("SCLK" ) 1208和用于编程目的的控制层时钟
("TCLK" ) 1210的逻辑,这两个时钟都是时钟控制信号。逻辑门1201使用 主扫描时钟("ScanClk" ) 1206、扫描使能时钟控制信号("SeC" ) 1204和 时钟控制信号("TCEn" ) 1202来形成时钟控制信号SCLK、 TCLK。在一实 施方式中,ATE可产生主扫描时钟1206和扫描使能时钟控制信号1204并将其 施加到图12B中的可编程测试时钟控制器。在一些实施方式中,扫描使能数据 控制信号("SeD" ) 1211可用于控制逻辑门1201a的操作,以独立于通常由 外部测试器或ATE提供的主扫描时钟("ScanClk" ) 1206的状态禁用时钟控 制信号SCLK和TCLK的信息(例如逻辑0的SeD)。
在图12B中,可编程测试时钟控制器1220包括时钟脉冲控制器("CPC") 1230和测试时钟发生器("TCG" ) 1250。时钟脉冲控制器1230将时钟沿流
作为TCEn信号1202的值提供给测试时钟发生器1250,该发生器1250使用时 钟沿值来形成实速测试时钟。在一实施方式中,时钟脉冲控制器1230包含可 分别通过控制扫描输入("CSI")终端1236和控制扫描输出("CSO")终 端1238连续加载和卸载的2-位移位寄存器("SR" ) 1234。在操作中,2-位 移位寄存器1234基于启动和/或捕获操作中的功能时钟("PCLK" ) 1252向 TCEn信号1202提供具有用于产生最多达2个实速脉冲的控制值。在至少一个 实施方式中,2-位移位寄存器1234保持要移出到测试时钟发生器1250的编程 数量的单独时钟沿。TCEn信号1202在启动/捕获状态中基于功能时钟
("PCLK" ) 1252 "实速"移位,只要时钟脉冲控制器使能("CPCEn") 信号1240具有逻辑值1即可。但是2-位移位寄存器1234在控制链加载和卸载 操作过程中基于图12A的相对较慢的主扫描时钟("ScanClk" ) 1206以"扫 描速度"移位。
注意,2-位移位寄存器1234在静默状态以及扫描加载/卸载状态中未用时 钟脉冲计时,所以存储其中的时钟命令信息在这些状态中保持不变。在一些实 施方式中,时钟脉冲控制器1230产生可选择性地使第"i"个时钟域参与启动 和/或捕获操作的时钟域使能("CDEn[i]")控制信号1244。在可选实施方式 中,时钟脉冲控制器1230向补充时钟命令源(未示出)提供ICLK信号1246 以从例如字符串发生器输入("Sgenln")接收补充时钟命令信息。补充时钟 命令源将2-位移位寄存器1234的功能延伸超过2位。
测试时钟发生器1250被设计成将测试时钟("CLK" ) 1254配置成提供 由功能时钟1252的多个部分和扫描时钟("SCLK" ) 1208的多个部分组成的 期望波形。特别地,测试时钟发生器1250在扫描时钟("SCLK" ) 1208与功 能时钟("PCLK" ) 1252之间多路复用。在一些实施方式中,功能时钟1252 可与TCEn信号1202逻辑与以产生测试时钟1254。测试时钟发生器1250使用 SeD信号1258和SeC信号1260来选择功能时钟1252或扫描时钟1208作为时 钟源。此外,测试时钟发生器1250使用这些信号来产生用于加工测试时钟 ("CLK[i]" ) 1254的TCEn信号1202。在操作中,测试时钟发生器1250通 过时钟脉冲控制器使能信号1240使测试时钟与时钟脉冲控制器("CPC") 1230 同步,该时钟脉冲控制器使能信号1240是用于选择单独时钟沿显现为测试时 钟1254的时钟速率的时钟速率控制信号。
在一些实例中,测试时钟发生器1250可被视为具有抑制能力的流多路复 用器。即,它多路复用了与TCEn信号值(即单独时钟沿值)流逻辑与的源时 钟信号波形以产生测试时钟1254的波形。此外,SeC信号1260和SeD信号1258 两者的状态选择哪个源时钟将与TCEn信号值流逻辑与。如果TCEn信号1202 具有O值,则源时钟脉冲被抑制。否则,源脉冲被传递以形成测试时钟1254 的一部分。此外,测试时钟发生器1250抑制可能的时钟偏斜,该偏斜源于通 过在初始化启动和/或捕获操作时选择处于稳态相("关闭"或处于低逻辑值) 的扫描时钟("SCLK" ) 1208而用功能时钟路径进行逐位-逻辑与操作。稳态 相的一个示例是图9的稳态相908。
在图12B所示的示例中,测试时钟发生器1250包括采样和保持寄存器
("SHR" ) 1270以及时钟选择寄存器("CSR" ) 1272。采样和保持寄存器 1270使用参考时钟("RefClk[k]" ) 1262对SeC信号1260进行采样,并且向 时钟脉冲控制器1230提供时钟脉冲控制器使能("CPCEn")信号1240用于 选择测试时钟速率。如果CPCEn信号1240具有值1,则多路复用器1242选择 功能时钟("PCLK" ) 1252。具有值0时,多路复用器1242选择控制层时钟
("TCLK" ) 1210以将时钟命令信息位移进和移出。如果SeD信号1258具 有值0且SeC信号1260具有值1,则采样和保持寄存器1270产生逻辑值1。 否则,采样和保持寄存器1270的输出1271保持在逻辑0。在一些实施方式中, 采样和保持寄存器1270也可提供用于执行时钟域间测试的同步时序参考点。
采样和保持寄存器1270也有助于对控制层中的控制逻辑执行固定型测试, 因为控制逻辑是由控制层时钟("TCLK" ) 1210计时的。为了实现固定型测 试,RefClk 1262被关闭。采样和保持寄存器1270由SeD信号1258重置,并 在静态测试过程中保持重置。采样和保持寄存器1270的重置值在静态测试过 程中选择扫描时钟("SCLK" ) 1208。由于采样和保持寄存器1270阻止SeC 信号1260传播到时钟选择寄存器1272,则SeC信号1260可用于多路复用时钟 控制信号TCLK 1210和SCLK 1208,以便执行固定型测试。因此,可编程测试 时钟控制器的启动/捕获状态可在控制逻辑的固定型测试过程中用于捕获,而扫 描加载/卸载状态可用于访问数据扫描链。类似地,静默状态可用于捕获,而控 制加载/卸载状态可用于在待测试电路的固定型测试过程中访问控制链。
时钟选择寄存器1272被配置成存储时钟选择控制信息,该信息选择源时 钟以形成测试时钟1254的可配置部分。时钟选择寄存器1272的时钟选择控制 信息根据采样和保持寄存器1270以及TCEn信号1202两者的状态确定。在常规功能模式中,测试模式信号("TM" ) 1280重置时钟选择寄存器1272。因 此,功能时钟1252连接于测试时钟1254。时钟选择寄存器1272的状态在功能 模式过程中保持不变,除非施加功率下降信号("PWD" ) 1282。功率下降信 号("PWD" ) 1282可在正常功能模式过程中停止相应时钟域的操作。使时钟 域功率下降可以是用于测试低功率电路应用的期望特性。但是功率下降信号 ("PWD" ) 1282可将增强的功能提供给不同实施方式的测试结构。特别地, PWD 1282被结合到测试时钟控制器中以进行时钟选通而无需插入沿功能时钟 逻辑干预的额外逻辑门。注意,如果PWD信号1282被设定成关闭测试时钟1254 的功能时钟,则多路复用器1255选择在正常功能模式过程中非活性的扫描时 钟("SCLK" ) 1208,从而不产生作为测试时钟1254的时钟脉冲。此外,PWD 信号1282也可在功能测试和硅调试中用作时钟停止电路。这样,在嵌入式内 部监控电路(未示出)检测到系统错误的情形中有利地关闭问题时钟域。如果 检测到错误,则可停止相应的时钟域以防止其进一步传播。这简化了调试过程, 尤其在与调试使用常规扫描链结构(包括缺乏迅速检测错误的控制机构的相对 较长的扫描链)的电路作比较时。通常,常规扫描链的长度和来自居间逻辑的 输出隐匿了错误或将检测延迟了超过几个时钟周期。相反,本发明的不同实施 方式可使用PWD 1282来停止测试以在例如一对时钟周期或更少的时钟周期内 快速检测到错误。注意,用于产生功率下降信号("PWD" ) 1282的PWD信 号发生器在电路设计领域中以提供低功率电路应用而众所周知,因此无需详细 讨论。
图13示出根据本发明一实施方式的用于对特定时钟域编程的图12B的2-位移位寄存器示例的状态图。通过加载2-位移位寄存器1300,单个时钟域可对 扫描加载和卸载操作以及启动和捕获操作进行编程。状态图1310总结了图12A 和12B的TCEn信号1202如何从存储在2-位移位寄存器1300内的编程状态产 生。状态图1310假设未使用来自补充时钟命令源的字符串发生器输入 ("SGenln" ) 1302 (即Sgenln终端设定为0值)。从状态1312至1318的各 个状态表示2-位移位寄存器1300的内容,且用"Sgenln/TCEn"符号标记该转 变。注意,由于排除使用补充时钟命令源的输入限制(即Sgenlr^0),因此如 虚线1320指示的一些转变不可用。2-位移位寄存器1300的初始状态包括启动/ 捕获状态1312(SR的内容是"11")、仅启动状态1314(SR的内容是"10")、 仅捕获状态1318(SR的内容是"01")以及禁用状态1316(SR的内容是"00")。 总之,2-位移位寄存器1300中1的数目对应于可作为测试时钟CLK[i]传递的 功能时钟脉冲的数目。
如果例如2-位移位寄存器1300包括内容"11",则产生两个连续功能时 钟脉冲以形成测试时钟一一个脉冲沿用于启动操作而另一个脉冲沿用于捕获 操作。在启动/捕获状态1312结束之后,2-位移位寄存器1300达到禁用状态1316 且内容为"00",由此禁用测试时钟CLK。具体地,禁用状态1316禁用扫描 时钟SCLK。注意,SCLK可在启动/捕获过程中静默。类似地,如果2-位移位 寄存器1300包含"10"或"01"的值,则一个功能时钟脉冲对仅启动状态1314 和仅捕获状态1318发出。启动和捕获时钟脉冲沿之间的区别在于其时钟沿的 时间位移。例如,启动时钟脉冲通常领先捕获时钟脉冲至少一个功能时钟 ("PCLK")周期。
为了实现扫描加载和卸载操作,2-位移位寄存器1300的初始状态提供确定 测试时钟是否包括扫描时钟脉冲的TCEn信号值。如果2-位移位寄存器1300 包括内容"lx",则扫描时钟使能扫描加载和卸载操作,其中x指示"无需考 虑"。但是如果内容是"Ox",则扫描时钟禁用且没有脉冲沿施加到扫描链。 注意,TCEn信号的值通常在扫描加载/卸载过程中不变。在一实施方式中,如 果所有扫描链要一次性加载而非选择性地加载,则SCLK路径中的与门可去除。
图14A和14B分别示出根据本发明不同实施方式的将可编程测试时钟控制 器配置成构建用于进行启动和捕获操作以及用于禁用与其对应的时钟域的测 试时钟的信号时序。图14A的时序图1400示出可编程测试时钟控制器如何使 用扫描时钟("SCLK")信号和功能时钟("PCLK")信号1402来产生启 动和/或捕获操作的可配置测试时钟波形("CLK" ) 1410。考虑其它信号1420 被初始化成如图所示的状态。CPCEn信号1406在扫描加载或卸载操作后设定 成逻辑值O。 CPCEn信号1406将输出信号("Mux.SO")的值强制设定为逻 辑1。当SeC信号1401和SeD信号1430两者设定为逻辑值0时,CPCEn信号 1406保持为逻辑值0,从而将时钟选择寄存器("CSR")输出信号("Mux.SO") 1408保持为逻辑值1。这样,CSR输出信号1408使得多路复用器选择在扫描 模式间隔1413期间形成测试时钟1410的扫描时钟("SCLK[i]" ) 1412。之 后,考虑时钟脉冲控制器被编程为当TCEn信号1404激活(即值为1)时在从 控制链的加载操作过程中在其移位寄存器中包括值"11"(即SR-ll) 。 CSR 的状态持续对CPCEn信号1406产生逻辑值0,直到SeC信号1401转变成逻辑
值1。然后,在将SeC信号1401采样到采样和保持寄存器中之后的功能时钟信 号1402的第一下降沿1409处,在CPCEn信号1406的沿1407处的逻辑值1 被捕获到时钟选择寄存器。如果时钟选择寄存器内容的状态将CSR输出信号 1408从逻辑值1变为0,则多路复用器选择功能时钟("PCLK[i]" ) 1414作 为测试时钟1410。在功能模式间隔1415期间,两个连续功能时钟脉冲1419由 TCEn信号1404激活作为启动时钟脉冲和捕获时钟脉冲。注意,对于各个功能 时钟脉冲1419,逻辑值O移位进入到移位寄存器中(例如通过设定为逻辑O的 Sgenln输入)。当移位寄存器达到禁用状态(即其内容包括值"OO")时,则 TCEn信号1404被禁用并在沿1421降为逻辑值0。此外,CSR输出信号1408 然后在沿1423改变状态,从而使可编程测试时钟控制器在间隔1417期间返回 到扫描模式以输出扫描时钟("SCLK[i]" ) 1416作为测试时钟1410。
注意,当SeD信号处于逻辑0时扫描时钟1412通常保持为稳态值0。可 编程测试时钟控制器使多路复用器输出(即输出信号1408)大致在功能时钟 1402处于稳态逻辑值0时的其负载周期中间1430处出现。在稳态相1432的中 间1430切换测试时钟1410有利地提供了对可在制造中发生的工艺变化的容 限,从而降低时序不确定度以及保持不变的功能时钟负载循环。
图14B的时序图1450示出根据本发明一实施方式的可编程测试时钟控制 器如何产生禁用时钟域的可配置测试时钟波形。考虑其它信号1470被初始化 成所示状态。这样,移位寄存器("SR")加载有内容"00",从而产生TCEn 信号1454的逻辑值0。结果,时钟选择寄存器产生具有逻辑值1的CSR输出 信号1458,从而选择扫描时钟("SCLK[i]" ) 1462作为测试时钟1460。因此, 对于测试时钟,没有扫描脉冲或功能脉冲产生。
图15示出根据本发明一实施方式的包括简化时钟脉冲控制器和简化测试 时钟发生器的可编程测试时钟控制器。可编程测试时钟控制器1500包括简化 时钟脉冲控制器1502和简化测试时钟发生器1520,两者与图12B中类似命名 的信号交互作用。虽然可编程测试时钟控制器1500与图12B的可编程测试时 钟控制器作用类似,但是它被特别地配置成提供启动和/或捕获操作以及连续测 试能力。在该情形中,简化时钟脉冲控制器1502包括用于存储和提供单个位 的1-位移位寄存器("CPCR" ) 1504。例如,可编程测试时钟控制器1500可 提供相应的TCEn信号1506值的流,诸如1[1*00]或0[x*],其中1-位移位寄存 器504的初始状态只包括第一位(即括号之间的位是外部供应的)。在这样的
情形中,时钟速率控制信号(即CPCEn信号)源自SeD 1521。信号SeD 1521 迫使MUS 1508在扫描加载/卸载之后选择CLK[i]。然而,CLK[i]通常静默直到 CSR 1524的输出被设定成选择CLK[i]。这是由信号SeC 1523的值从逻辑0改 变到1导致的。可编程测试时钟控制器1500可将1-位移位寄存器1504和时钟 选择寄存器1526两者实现为有效2-位移位寄存器("SR"),以容纳用于启 动和捕获操作的TCEn信号1506的值。注意,时钟选择寄存器1526确定时钟 命令信息加载和实速测试两者的测试时钟。在操作中,1-位移位寄存器1504 的内容在启动或捕获操作之前被拷贝到时钟选择寄存器1526中。通过移位1-位移位寄存器1504, TCEn信号1506的值通过输出1524施加到多路复用器 1528。在另一实施方式中,经简化的测试时钟发生器1520包括2-位同步器1522, 以适应同步的采样和保持可能不足以确保准确或安全的测试操作的情形。虽然 未示出,但是参考时钟RefClk[k]也可代替功能时钟("PCLK[i]" ) 1530用于 驱动同步器1522。
图16示出根据本发明一实施方式的包括补充时钟命令源的可编程测试时 钟控制器。如图所示,可编程测试时钟控制器1600耦合于补充时钟命令源 ("SCCS" ) 1602以将产生的功能时钟脉冲抑制或延迟可编程的时间量。补 充时钟命令源1602可以是例如产生期望二进制位流作为单独时钟沿的时钟控 制("TCEn")信号值的有限状态机。再参照图12B,注意,如果SGenln信 号1248未受限制(即在移出2位之后它并未保持为否则将禁用可编程测试时 钟控制器的稳态低值),则由补充时钟命令源1602产生的位流便于多周期路 径测试。这样,捕获时钟沿可通过抑制特定启动时钟沿之后的多个功能时钟脉 冲而延迟多个周期。参照图13,考虑多周期计时方案可通过首先从作为2-位移 位寄存器1300的初始状态的仅启动状态1314 (即内容编程为"10")开始。 然后,图16的10
的TCEn信号值1604可支持用于延迟测试的多周期 路径。补充时钟命令信息
(即序列的前两位"10"之后的剩余部分) 可由补充时钟命令源1602提供。
补充时钟命令源1602有利地产生多周期的TCEn值10*100*、连续的 1*00*、以及仅启动或仅捕获的0*100*,以相应地实现多周期路径测试操作、 连续测试操作以及延迟的仅启动操作或仅捕获操作。TCEn值1604的前2位可 存储在时钟脉冲控制器中。注意,"x*"的首次出现之后是补码"x",随后 是"00*"。最后的字符串"00*"在测试动作结束时禁用功能时钟,从而将可
编程测试时钟控制器1600置于禁用状态。在一些实施方式中,补充时钟命令
源1602可以是提供TCEn信号1604的最多达k-位值(或单独时钟沿)的k-位 移位寄存器。然而,如果k相对较大,则字符串发生器可用于减少硬件额外开 支。
图17A和17B分别示出根据本发明各种实施方式的实现为字符串发生器的 补充时钟命令源以及相应的状态图。在一实施方式中,字符串发生器1700产 生表示补充时钟命令信息的数据位串,其中该串的位长通常比例如在k位寄存 器中存储k个数据位所需的存储器元件中的位数更长。字符串发生器1700包 括被配置成存储第一脉冲值和第二脉冲值的位保持单元1720、和用于在第一脉 冲值与第二脉冲值之间移位了多个插入时钟周期之后实现专用环计数器中最 显著位("MSB")的逻辑转变的专用环计数器1720。例如,位保持单元1720 可在TCEn信号值的流中"n"次地产生逻辑值0或1。专用环计数器1720追 踪要产生脉冲的数目。专用环计数器1720的初始内容可通过CSI 1711和CSO 1712串行加载或卸载。在启动和捕获操作过程中,它保持计数直到达到零状态。
在操作中,位保持单元1710保持初始值直到具有逻辑值0的零("Zero") 信号1716到达终端1714。这样,零信号1716表示专用环计数器1720是否已 到达零状态。寄存器("G1" ) 1702和寄存器("GO" ) 1704在例如进行启 动和/或捕获操作之后用补充逻辑值初始化。补充逻辑值在计数结束时输出到时 钟脉冲控制器(未示出)。专用环计数器1720在直到被重新加载前都保持为 零状态。为了说明起见,考虑零信号1716具有逻辑值1且寄存器1702和1704 包含补充逻辑值。此外,XOR-门1718引入额外反转以使寄存器1704的内容保 持不变。然后,考虑零信号1716具有逻辑值0,从而将位保持单元1710配置 为2-位移位寄存器。注意,XOR-门1718在零信号1716具有逻辑值1时用作 反相器,否则作为缓冲器工作。因此,在零信号1716达到值0之后有两个功 能时钟循环,各个寄存器1702和1704包含逻辑值0。基于来自寄存器1702和 1704两者的内容SGenEn信号1719产生,以表示字符串发生器1700是否被激 活。如果寄存器1702和1704分别包含逻辑值O和O,则SgenEn信号1719指 示字符串发生器170被0禁用(且保持禁用直到被重新加载)。否则,对于启 动和/或捕获操作,字符串发生器1700被激活。图17B的状态图1750包括用于 描述位保持单元1710的状态图1760。
再参照图17A,专用环计数器1720可编程为包含寄存器("G1" ) 1704
要保持的多个功能时钟周期(例如启动时钟沿与捕获时钟沿之间的多个单独时
钟沿)。字符串发生器1700使用具有零检测能力的专用串计数器1720。在所 示示例中,专用环计数器1720实现3-位环计数器1722。 3-位环计数器1722在 启动和捕获操作过程中有利地保持单个OR-门延迟对零输出的最坏情形延迟。 3-位环计数器1722通过激活专用环计数器1720的最显著位("MSB")以通 过逻辑1至0转变将输出信号设定为零信号1716而将延迟限制在OR (或)-门延迟。OR-门的链1724提供伪路径,因为没有转变可从最小显著位("LSB") 传播以直接确定零信号1716的零值。注意,当N是在本发明其它实施方式中 用于实现M-位环计数器的触发器的数目时,专用环计数器1720可计数达2N。 其它计数器也可结合在字符串发生器中。图17B的状态图1750包括用于描述 3-位环计数器1722的行为的状态图1770。
图18是示出根据本发明一实施方式的实现任何数量的可编程测试时钟控 制器以测试电子器件及其电路的概念性测试时钟控制结构的框图。测试时钟控 制结构1800包括任意数量N的可编程测试时钟控制器("PTCC"),其一被 示为PTCC 1810。测试时钟控制结构1800中的各个PTCC包括在诸如扫描时钟 ("SCLK" ) 1816的源时钟与功能时钟("PCLK[l..N]" ) 1806之一之间多 路复用的多路复用器("MUX" ) 1812。在该示例中, 一个或多个PLL电路 1802从锁相于PLL输出时钟1806的一个或多'个参考时钟("RefClk[l..M]") 1801产生功能时钟1806。此外,各个PTCC包括施加时钟命令信息("CCT") 以用来自测试时钟("CLK [l..N]" ) 1818的至少一个测试时钟驱动扫描链1820 中的一个或多个触发器和/或扫描链的逻辑1814。扫描链1820包括任意数目的 连续单元1820a,其一在图18中示出。在一实施方式中,连续单元1820a包括 多路复用器("mux" ) 1870和存储元件1872。多路复用器1870由SE2FF信 号1871 (扫描使能数据("SeD")控制信号1840的重新定时版)控制,以在 进入存储元件1872的输入1880 (例如作为来自待测试电路的结果数据)或扫 描链输入("SI" ) 1882 (来自上一连续单元)之间切换。存储元件被配置成 提供作为输出1884的数据(例如作为待测试电路的刺激数据)和/或通过扫描 输出("SO" ) 1886提供给下一连续单元。
在该示例中,PTCC 1810从控制链1830的至少一个部分接收时钟命令信 息。注意,在一些实施方式中,扫描链1820和/或控制链1830各自可包括单个 链(例如串行移位数据)或扫描链任意数目的部分(例如并行移位数据)。在
一些实施方式中,ATE (未示出)产生SeD信号1840、 SeC信号1842、主扫 描时钟("ScanClk")信号1844和参考时钟1801。在至少一个实施方式中, 这些ATE产生的信号是全局信号。S卩,它们被施加于测试时钟控制结构1800 中的PTCC。在一些实施方式中,可添加任选的为测试设计("DFT")的块 1850。 DFT块1850包括由SeD信号1840和时钟域使能("CDEn")信号1852 控制的多个触发器("SeFF" ) 1860。通常,在例如大系统(例如芯片上系统) 中,确保SeD信号1840的时序限制的SeFF 1860满足上次移位启动测试协议。 当逻辑1814包括影响启动和/或捕获操作的时钟命令信息时,CDEn信号1852 基于编程到相应PTCC中的内容调节SeFF 1860的内容。CDEn信号1852的状 态在使能时钟域中保持SeFF 1860的内容并在禁用时钟域中重置SeFF 1860。 因此,仅仅使能时钟域可参与上次移位启动测试而其它时钟域可被禁用或可以 功能模式操作。
图19是根据本发明一实施方式的实现可编程测试时钟控制器以测试不同 域中电路的测试时钟控制结构的示图。测试时钟控制结构1900 (或其一部分) 包括分别与时钟域1902a、 l卯2b和1902c交互作用的可编程测试时钟控制器 ("PTCC" ) 1910、 1920和1930。各个时钟域1902包括一个或多个扫描链 1904 (或其部分)和待测试电路1906。在该示例中,时钟域1902中的扫描链 1904并行,因为一个或多个扫描链部分1904可进行例如卸载/加载操作而其它 部分不能。此外, 一个或多个时钟域可通过相同或不同的测试协议实施,而其 它时钟域则保持空闲或参与其它测试。例如,考虑分别加载在PTCC 1910和 1920中的时钟命令信息("CCI" ) 1912和1922导致时钟域1920a中的启动 操作和时钟域1920b中的捕获操作,从而实现域间测试。这可在时钟域1902c 的扫描链部分1904进行加载/卸载操作、或例如作为PTCC 1930响应于CCI 1924禁用域1902c的结果而未激活(例如进行静态测试)时发生。由于测试时 钟控制结构1900提供并行测试一个或多个时钟域1902的灵活性,因此减小了 时钟域之间的连续相关性,这又减小了自动测试图产生的复杂性。测试时钟控 制结构1900中并行域的实现有利地可通过减少扫描加载/卸载操作的次数而减 少总的测试时间和测试数据量。虽然图19将域1902示为时钟域,但是它们可 被表征为任意其它类型的域,诸如功率域。上述相关的测试时钟控制结构1900 也适用于以下图23和24。
图20是示出根据本发明一实施方式的共享初级输入2020和初级输出2022
以减少测试接入点的控制链2002和扫描链2004的示图。在该示例中,SeC信 号2001使多路复用器2006选择从控制链2002或扫描链2004移位的数据,而 SeD信号2003使多路复用器2008选择从链或从功能输出移位的数据。
图21示出根据本发明一实施方式被配置成执行域间测试的测试时钟控制 结构。测试时钟控制结构2100包括用于调整两个时钟域的延迟测试的可编程 测试时钟控制器("PTCC" ) 2111和PTCC 2121。时钟域2102和时钟域2104 分别包括电路2103和2105,两者都被设计成以独立时钟频率运行。这样,PTCC 2111可使用功能时钟PCLK[i] 2110来产生第一时钟速率,而PTCC 2121可使 用功能时钟PCLK[j] 2120来产生第二时钟速率。根据本发明的不同实施方式, PTCC 2111和2121中的时钟脉冲控制器2130可通过控制链2140编程为分别 执行仅启动和仅捕获操作一相对同步一以测试域间区域2150中的接口电路等。 为了协调多周期路径测试操作(包括仅启动和仅捕获操作),被配置成用作自 动测试图发生器("ATP发生器")的计算器件可产生使用于实现域间测试的 PTCC2111和2121操作同步以检测域间区域2150中故障的测试图。例如,ATP 发生器可使用公共参考时钟("RefClk" ) 2160来建立时序参考点。在其它实 施方式中,ATP发生器也可使用彼此不同步的不同参考时钟来执行域间测试。 注意,在一些实施方式中,术语"多周期路径测试"通常指域间测试或者域内 测试,或者是指两者。
图22A和22B示出根据本发明不同实施方式的使用一个或多个时序参考点 计算时间距离以实现域间测试的不同技术。图22A示出公共参考时钟 ("RefClk[k]" ) 2216如何用来提供时序参考点2220,以确定将由一个或多 个可编程测试时钟控制器("PTCC")执行的操作延迟多个时钟周期。PTCC 可在对SeC信号2218进行采样之后延迟启动操作或获取操作。PTCC相对于在 其特定时域中的测试时钟延迟操作。考虑域间(例如时钟域间)测试可被设计 成实现从一个时钟域[i]进入发生捕获的另一时钟域[j]的启动。这样,时钟域[i] 的启动时钟脉冲可在对SeC信号2218进行采样之后延迟4个PCLK[i]时钟周 期。此外,时钟域LJ]的捕获操作可延迟1个PCLK[j]时钟周期。注意,RefClk[k] 时钟2216的相位与至少PCLK[i] 2212和PCLK[j] 2214锁定。"时间距离"是 相对于诸如PCLK[i] 2212或PCLK[j] 2214的某一时钟的多个周期的延迟。这 样,ATP发生器可通过对从参考时钟沿2220开始到指定启动(或捕获)时钟 沿的PCLK[i] 2212的下降沿数目计数来计算时间距离。ATP发生器可基于时间
距离形成测试图。然后,ATE可将时间距离编程到PTCC的时钟脉冲控制器以 及字符串发生器中以提供多周期测试。
图22A的示图2230示出用于启动时钟域[i]的转变、并在时钟域U]将其捕 获的经计算时间距离2232和2234。所以输入转变可从RefClk[k] 2216的上升 沿2220开始在PCLK[i] 2212的第5上升沿2217 —在4个下降沿的延迟(例如 时间距离2232为4)之后一开始。该转变在一个下降沿延迟(例如时间距离 2234为1)之后在时钟PCLK[j] 2214的第2上升沿2219处捕获。示图2240示
出用于从启动该转变(与示图2230反向)的时钟域m将转变捕获到时钟域[i] 中的经计算时间距离2242和2244。这样,转变可在PCLK[j] 2214的第2上升 沿2219(例如,在为1的时间距离2244之后)启动,且转变可在延迟了6个 下降沿(例如时间距离2242为6)之后在PCLK[i] 2212的第7个上升沿2221 处捕获。
图22B示出在参考时钟和测试时钟不同相的情形中时间距离的计算。该示 图示出了用于时钟域间测试的时序,其中时钟域对应于不同相且不同步的功能 时钟。在该示例中,PCLK[i] 2262和PCLK[j] 2264分别源自不同步的参考时钟 RefClk[k] 2266和RefClk[l] 2268。这样,时间距离的计算是就多个时间参考点 而言的。例如,参考点2267和2269提供不同的基础,并由此确定时间距离。 图22B的示图2280示出分别用于从时钟域[i]启动转变并在时钟域[j]将其捕获 的经计算时间距离2282和2284。所以,输入转变可从RefClk[k] 2266的上升 沿2267开始在PCLK[i] 2262的第5个上升沿2277处一在延迟了 4个下降沿(例 如时间距离2282为4)之后一启动。该转变在时钟PCLK[j] 2264的1个下降 沿的延迟(例如时间距离2284为l)之后的第2上升沿2279处捕获。示图2290
示出用于从启动该转变的时钟域[j]将转变捕获到时钟域[i]中的经计算时间距离 2292和2294。这样,转变可在PCLK[j] 2264的第2上升沿2279处(例如在为 1的时间距离2294之后)启动,且该转变可在延迟了 7个下降沿(例如时间距 离2292为7)之后的PCLK[i] 2262的第8上升沿2281处捕获。在一些实施方 式中,可结合多个SeC信号2270以允许对时钟域间测试的灵活实现。多个SeC 信号2270 (未示出)可增加对参考时钟的沿选择的可控性,从而通过选择参考 时钟的期望开始沿而减小一个或多个字符串发生器的大小。例如,SeC[m]信号 和SeC[m+l]信号可将开始沿选择成第t个周期和t+h个周期的下降沿或上升沿 以使字符串发生器的大小最小化。
图23示出根据本发明一实施方式的被配置成执行域内测试的测试时钟控
制结构。测试时钟控制结构2300包括各自用于控制相应子域2302的可编程测 试时钟控制器("PTCC" ) 2304。域2301被划分成许多更小的域、或子域2302。 如果域2301是时钟域,则PTCC 2304共同使用一公共功能时钟PCLK 2306来 测试作为子时钟"时钟"域的子域2302。
图24示出根据本发明一实施方式的被配置成使用简化可编程测试时钟控 制器来执行域内测试的测试时钟控制结构。在本示例中,测试时钟控制结构 2400包括用于控制多个子时钟域2403的扫描测试的简化可编程测试时钟控制 器的装置2401。如本文中所使用的,在一些实施方式中术语"时钟域广义化" 是指将一时钟域划分成一个子时钟域2403集的过程,由此简化可编程测试时 钟控制器的装置2401在具有广义化时钟域时比具有预划分的初始时钟域的结 构时更加灵活。例如,简化可编程测试时钟控制器的装置2401在嵌入电路中 的功率域可被分割成子域2403并进行检测时也很有用。由于功率电路的性能 可影响功率域内的系统延迟,因此可期望将各个功率域形成为单独的子域2403 并在延迟测试过程中独立地控制。注意,时钟域广义化在检测例如子时钟域中 的故障触发器而不干扰其它子时钟域测试的硅调试中也很有用。由于装置2401 允许用户在任一时钟域中编程扫描加载/卸载,因此在包含子时钟域2403的时 钟域中仅选择的扫描链需要在诊断过程中加载/卸载。
装置2401被配置成使用功能时钟PLK[i] 2405来驱动"m"个子时钟域 2403。装置2401包括母PTCC 2402以及子PTCC 2406和2408。母PTCC 2402 运行以向子PTCC 2406和2408传播可编程数目的测试时钟脉冲2407,子PTCC 2406和2408的任一个可被编程为使用测试时钟脉冲2407或者不使用。虽然 PTCC 2406和2408可具有与母PTCC 2402相同的结果和/或功能,但是在本示 例中,它们由简化可编程测试时钟控制器("SPTCC")构成。作为SPTCC 的PTCC 2406和2408有利地需要较少的硬件资源来实现。如图所示,SPTCC 包括简化时钟脉冲控制器("SCPC")和时钟域广义化("CDG")单元。 在此,PTCC 2406包括SCPC 2410和CDG单元2420,而PTCC 2408包括SCPC 2430和CDG单元2440。在一些实施方式中,SCPC 2430和CDG单元2440可 分别被描述为母PTCC 2402的CPC和TCG(都未示出)的简化版。在操作中, SCPC 2410和SCPC 2430的输出与测试时钟脉冲2407在门2470处逻辑与,以 产生子域时钟CLK[i,l]、 CLK[i,j]、直到例如CLK[i,m]。还要注意,禁用母PTCC
2402导致禁用所有子时钟域。还要注意,门2490和门2492产生时钟域使能信 号("CEDN[i,l]" ) 2496和("CEDN[i,m]" ) 2498以分别激活时钟域2403a 和2403c的操作。
此外要注意,SPTCC的结构可对各个子时钟域的特定测试要求进行优化。 例如,如果测试时钟脉冲2407通过或被阻挡,则SPTCC可包括含有控制时钟 CLK[i,l]的单个触发器("CO" ) 2472的SCPC 2410。在本情形中,SCPC 2410 可使用ICLK[i] 2411加载并在启动和/或捕获操作过程中保持不变。在一些实施 方式中,ICLK[i] 2411可使用信号CPCen 1240、 PCLK 1252和TCLK 1210产 生,如图12所示。对于启动和/或捕获操作,SCPC2410可加载有逻辑值1 (例 如加载到元件("CO" ) 2472),以及母PTCC 2402中的母CPC (未示出) 加载有控制图以产生CLK[i](例如从字符串发生器等)。如果局部测试时钟 CLK[i,j]与母测试时钟CLK[i] 2407相同,则PTCC 2406和2408被激活。如果 子时钟域2403的测试需要例如在不同时钟周期中执行延迟的仅启动或仅捕获, 则SPTCC可包括具有由元件("CO" ) 2476和("C1" ) 2433构成的2-位局 部移位寄存器(与母PTCC 2402相似)的SCPC 2430。有利地,诸如SCPC 2430 的SCPC的2-位实现便于测试时间和测试容量的减少。
图25A至25D示出根据本发明一实施方式的被配置成便于使用可编程测 试时钟控制器的域间测试和域内测试的测试时钟控制结构。在图25A中,测试 时钟控制结构2500便于电路的域间测试或域内测试,或两者一不管域或子域 2510和2530的多个部分是并行还是串行实施以测试电路2520。由于可编程测 试时钟控制器可被编程为将各域的内部交互限制在各个时钟域的边界内,域的 接口可与其余域独立地控制。因此, 一个或多个域接口 (和子域接口)可在与 域(或子域)的其它部分的测试并行或串行的基于扫描测试中实现。因此,单 独的PTCC可用于控制子域的选择部分,诸如扫描链部分、电路等。
为了进行说明,考虑子域2510的PTCC 2512和2514各自用相同的功能时 钟工作,该功能时钟具有与子域2530的PTCC 2522和2524所使用的功能时钟 不同的时钟速率。首先考虑PTCC 2514和2524被编程为在某一时间Tl激活测 试时钟控制结构2500的一部分2502。例如,PTCC 2514和2524可被编程为执 行启动和捕获操作或一些其它操作,诸如扫描链加载或卸载操作。这样,该部 分2502可与时钟控制结构2500的其它部分独立地控制。此外,对于本示例, 考虑PTCC 2512和2522可被编程为与部分2502的测试并行或串行地执行域内 (或子域内)动态和/或静态测试。然后,考虑在时刻T2,可禁用PTCC 2514 和2524,而其它PTCC被激活以参与测试部分2504的动态(例如宽面、上次 移位启动、域间、域内等)和/或静态测试。注意,在一些实施方式中,测试时 钟控制结构2500和伴随电路通常定义由PTCC 2512、 2514、 2522和2524构成
的结构。
图25B至25D示出根据本发明另一实施方式的被配置成便于使用可编程测 试时钟控制器的域间测试和域内测试的测试时钟控制结构的再一示例。测试时 钟控制结构2550便于域间测试或域内测试、或两者。由于可编程测试时钟控 制器可被编程为将内部交互限定在各个时钟域的边界内,因此域的接口可与其 余域独立地控制。这种接口的示例包括输入寄存器和/或输出寄存器。因此,一 个或多个域接口 (和子域接口)可与该域(或子域)其它部分的测试并行和/ 或串行的基于扫描测试中实现。因此,独立的SPCP可用于控制子域的选择部 分,诸如扫描链部分、电路等。
例如,图25B示出子域2560的SPCP 2564和2566各自通过相同的功能 时钟工作,两者都可具有分别与子域2520和2580的SPCP 2571和2581所使 用的功能时钟不同的时钟速率。首先,考虑SPCP 2571和2564被编程为激活 时钟域间测试以测试电路部分2530中的逻辑2572和/或逻辑2474,而SPCP 2566和2581被编程为激活时钟域间测试以测试电路部分2531中的逻辑2582 和/或逻辑2584。所有SPCP 2571、 2564、 2566和2581可被编程为在某一时刻 Tl操作。注意,寄存器2559可表示子域("域r" ) 2580的输出寄存器。因 此,SPCP 2571和2564可被编程为分别执行启动(例如从子域2570)和捕获 操作(例如进入子域("域q" ) 2560)或者其它操作,诸如扫描链加载或卸 载操作。注意,寄存器2589可表示子域("域p" ) 2570的输入寄存器。类 似地,SPCP 2566和2581可被编程为分别进行例如启动(例如从子域("域q") 2560)和捕获操作(例如进入子域("域r" ) 2580)或者一些其它操作,诸 如扫描链加载或卸载操作。因而电路部分2530和2531可与时钟控制结构2550 的其它部分独立地(例如独立于子域2560的逻辑2561、逻辑2562和逻辑2563) 控制。此外,对于本示例,考虑SPCP 2564、 2565和2566可被编程为与图25B 的部分电路部分2530和2531的测试并行或串行地执行域内(或子域内)动态 和/或静态测试。图25C示出在时刻T2, SPCP 2571和2581可被禁用(例如保 存寄存器2559和2589的内容),而SPCP 2564和2565可被配置成参与动态
(例如宽面、上次移位启动、域间、域内测试等)和/或静态测试以测试包括系
统组合逻辑2561的一部分以及可包含内部寄存器和逻辑的另一部分2562的电 路部分2590。类似地,图25D示出在时刻T3, SPCP 2565和2566可被激活以 参与动态和静态测试,以便于测试包括电路的其它部分2562和逻辑2563的电 路部分2591。
图26示出根据本发明一实施方式的使用实现可编程测试时钟控制器 ("PTCC")的测试时钟控制器结构来测试电路的微观流程示例。流程2600 通常用于具有2-位移位寄存器且不具有补充时钟命令源的PTCC。在一些情形 中,在流程2600中,SeFF在扫描加载/卸载操作开始之前被初始化。SeFF的 示例在图18中称为SeFF 1860。流程2600以通过在2601断言测试模式激活信 号而激活扫描测试模式开始。在2602,控制加载/卸载操作被初始化以访问控 制链。然后,PTCC在2604被编程为激活或禁用测试时钟作为扫描时钟SCLK 的传播。然后,扫描加载/卸载操作在扫描路径被激活时在2606处开始。在2608, 将扫描数据加载到扫描链部分或从其卸载,之后PTCC在2610进入程序模式。 可任选地,SeFF可通过在2612之前将一个SCLK时钟脉冲应用到所有SeFF 而初始化。 一旦在程序模式中,PTCC可根据在2612加载其中的时钟命令信息 进行配置。例如,PTCC可被配置成参与启动和/或捕获操作、仅启动操作、仅 捕获操作、静默操作等中的一个或多个。在2614, PTCC可进入静默状态操作。 可任选地,它可进行静态测试,诸如IDDQ泄漏测试。如果这样,ATE可在2618 施加(或强加)输入,随后在电源或接地终端处进行参数IDDQ测量。然后, PTCC在2620进入功能测试模式以执行与启动和/或捕获关联的动态测试。 PTCC在2622进行经编程的启动或/和捕获。在2624, ATE例如确定是否所有 域已被测试,并且如果没有,则下一步行动是什么。如果一个或多个附加时钟 域需要检测,则流程2600在PTCC可编程为改变其功能以进一步测试电路而 无伴随扫描加载/卸载操作时进行到2612。但是,如果需要扫描加载/卸载操作, 则流程2600进行到2604。在2630, ATE继续测试直到实现测试图。
虽然流程2600列出使用控制链的PTCC的两个编程步骤,但是与在2604 和2610处的操作相关联的测试时间和测试数据量相对于扫描加载和卸载操作 对总测试时间和数据量的影响小得多。此外,整个时钟域不需要参与扫描加载 和卸载操作直到实施该时钟域。通常,测试时钟控制结构被设计成仅在实施的 时钟域内在扫描链上进行扫描加载和卸载。流程2600有利地提供相对于更经
常加载和卸载扫描链的常规基于扫描测试减小的总测试时间。
虽然流程2600描述了如何使用在每个配置或构建级实现测试的测试时钟 控制结构的一个示例,但是本发明的其它实施方式涉及使用本文阐述的测试时 钟控制结构的宏观测试流程。根据一实施方式,用于实现基于扫描测试的测试 时钟控制结构的方法可描述如下。该方法可执行域内测试,以实施实现动态故 障检测测试图的多个电路的第一域子集。该方法可进一步继续执行诸如域间测 试的另一测试,以实施实现动态故障检测测试图的多个电路的第二域子集。这 些动态故障检测测试图可包括上次移位启动测试图和宽面测试图,以及其它动 态测试图。在一些实施方式中,这些域是时钟域。在一些情形中,该方法还包 括在与进行域间测试的电路分隔的电路部分上进行诸如固定型测试和动态测 试的域间测试。
然后,该方法可将不同的可编程测试时钟控制器配置成实质上并行地测试 不同的时钟域。通常,这减少了在测试不同时钟域时加载一个或多个扫描链的 次数。注意,可编程测试时钟控制器可包括不同子时钟域以测试不同子时钟域。 在一些实施方式中,域内测试的执行可与用固定型测试执行的时钟域间测试交 叉进行。例如,时钟域内和时钟域间测试图可组合成单个测试图,从而有利地 增加每次扫描链操作的测试覆盖面。注意,可在执行时钟域内测试之后进行域 间测试。域间测试的执行也可包括执行静态故障检测测试图。例如,故障检测 测试图可与用于域间测试的动态故障检测测试图基本上并发地加载到扫描链
中。ATE也可与域间测试过程中的静态故障测试基本上并发地执行上次移位启 动测试。
在一些实施方式中,该方法的域间测试的执行包括计算时间距离、以及基 于该时间距离初始化两个域之间的启动和捕获序列。在至少一个实施方式中, 该方法包括根据包括一个或多个控制链和一个或多个扫描链的特定测试时钟 控制结构的自动测试图产生("ATPG")流程来产生动态故障检测测试图。 以下描述ATPG流程的一个示例。
图27示出根据本发明一实施方式的使用执行可编程测试时钟控制器 ("PTCC")的测试时钟控制器结构来测试电路的宏观流程示例。具体地, 流程2700是用于产生执行测试时钟控制结构的测试图的ATPG流程。在流程 2700中,时钟域内和时钟域间测试可分开以减少扫描加载/卸载操作的次数。 在时钟域内和时钟域间测试中,上次移位启动测试的实速测试首先用以下的宽面进行。宽面之前的上次移位启动的定位尝试优化总的测试覆盖率、测试数据 量和ATPG运行时间。此外,测试图可通过将使用宽面的延迟测试图添加到使
用上次移位启动的图上得到。注意,流程2700中用于固定型测试的ATPG可 在时钟域间测试中执行。这是因为包括在延迟测试图中的固定型测试图在延迟 测试过程中没有实际作用,但是它们可减少要产生的固定型测试图的数目。
这样,流程2700在2710通过产生实现对时钟域内逻辑的延迟测试的测试 图开始自动测试图产生。这可包括在2720使用上次移位启动产生延迟故障的 测试图,以及在2730使用宽面产生2720中未检测到的故障的测试图。注意, 在一些实施方式中,时钟域间测试图可包括在2722处的上次移位启动测试的 测试图产生中,以及在2732处的宽面测试的测试图产生中。流程2700进行到 2740,在此流程产生用于时钟域间逻辑的延迟测试图。在2750, ATPG流程使 用上次移位启动产生用于延迟故障的测试图,最后在2760使用宽面产生用于 在2750未检测到的故障的测试图。例如,在一些情形中使用上次移位启动产 生延迟测试图之后可使用宽面测试协议进行同样的测试,以便于检测从使用上 次移位启动的测试中逃脱的故障。在一些实施方式中,用于检测时钟域内逻辑 的固定型图可包含在2752处的上次移位启动测试的测试图产生中,以及在2762 处的宽面测试的测试图产生中。这样,流程2700可产生用于与动态测试并行 地进行静态测试的固定型测试图。在2780, ATPG流程可对在2710与2740之 间产生的测试图样执行故障模拟,以检测固定型故障。这之后是2780处步骤3 中产生用于未检测到的固定型故障的测试图。这包括在2792处产生用于时钟 域内逻辑的测试图和在2794处产生时钟域间逻辑的测试图。以功能速度执行 固定型测试图可增强测试质量以及简化测试过程,因为无需考虑固定型测试协 议。在2796,流程2700将在2792处产生的固定型测试图与在2720处产生的 延迟测试图集成。在2798,流程2700通过将在2794处产生的固定型测试图与 在2750处产生的延迟测试图集成而继续。在2799,所得宽面测试图可添加于 上次移位启动图以形成最终测试图。
本发明一实施方式涉及使用其上具有用于执行各种计算机实现操作的计 算机编码的计算机可读介质的计算机存储产品。该介质和计算机编码可以是为 本发明目的具体设计和构建的,或者它们可以是计算机软件领域中技术人员公 知或可用的种类。计算机可读介质的示例包括,但不限于磁性介质,诸如硬 盘、软盘和磁带;光学介质,诸如CD-ROM和全息设备;磁光介质,诸如光磁
软盘;以及具体配置成存储和执行程序代码的硬件设备,诸如专用集成电路 (ASIC)、可编程逻辑电路(PLD)以及ROM和RAM设备。计算机编码的 示例包括诸如由编译器产生的机器码和包含由计算机使用翻译器执行的含有 高级编码的文件。例如,本发明的一个实施方式可使用Java、 0++或其它面向 对象的编程语言和开发工具实现。本发明的另一实施方式可用硬件电路代替机 器可执行软件指令或者与其结合来实现。
为说明目的,上述描述使用特定术语以提供对本发明的透彻理解。然而, 对本领域技术人员显而易见的是为了实践本发明这些具体细节并非是必需的。 实际上,本说明书不应被解读为将本发明的任何特征和方面限制于任一实施方 式;相反, 一个实施方式的特征和方面可容易地与其它实施方式互换。例如, 虽然域间和域内测试通常就时钟域进行了描述,但是普通技术人员应该理解这 些测试可应用任何其它类型的域,诸如功率域。
因此,以上对本发明具体实施方式
的描述是为了说明和描述目的而呈现 的。它们并不旨在穷尽本发明或将本发明限制于所公开的精确形式;显然,考 虑到以上示教,有可能进行多种更改和变化。这些实施方式被选择和描述以最 好地解释本发明的原理及其实际应用;从而,它们使本领域其它技术人员能通 过适于期望特定用途的各种更改来最好地利用本发明和各个实施方式。注意, 本发明的各个实施方式无需实现本文描述的每个益处;相反,任何一个特定实 施方式可提供上述优点的一个或多个。旨在由所附权利要求书及其等效方案限 定本发明的范围。
权利要求
1.一种用于实现测试时钟控制结构以实现多个电路的基于扫描测试的方法,所述方法包括执行域内测试以运用实现动态故障检测测试图的所述多个电路的第一域子集;以及执行域间测试以运用实现动态故障检测测试图的所述多个电路的第二域子集,其中所述动态故障检测测试图包括上次移位启动测试图和宽面测试图。
2. 如权利要求1所述的方法,其特征在于,所述域是时钟域。
3. 如权利要求2所述的方法,其特征在于,还包括配置不同的可编程测试时 钟控制器基本上并行地测试不同时钟域。
4. 如权利要求3所述的方法,其特征在于,基本上并行地测试所述不同时钟 域还包括在测试所述不同时钟域时,减少一个或多个扫描链被重新加载的次数。
5. 如权利要求l所述的方法,其特征在于,还包括实现静态故障检测测试图, 所述实现包括基本上与所述静态故障检测测试图并发地将所述动态故障检测测试图加载到 扫描链;以及基本上与所述静态故障检测并发地使用所述动态故障检测测试图来执行动态 测试。
6. 如权利要求1所述的方法,其特征在于,执行所述域内测试还包括 基本上与时钟域间测试图并发地将时钟域内测试图加载到扫描链;以及 在不用重新加载扫描链的所述域内测试期间,执行时钟域内测试和时钟域间测试。
7. 如权利要求l所述的方法,其特征在于,执行所述域间测试还包括 基本上与时钟域内测试图并发地将时钟域间测试图加载到扫描链;以及 在不用重新加载扫描链的所述域间测试期间,执行时钟域间测试和时钟域内测试。
8. 如权利要求1所述的方法,其特征在于,所述域间测试还包括对所述多个 电路的与所述域间测试隔离的部分执行域内测试。
9. 如权利要求l所述的方法,其特征在于,还包括 配置可编程测试时钟控制器的第一子集以加载扫描链;根据指定是否激活所述扫描链的加载的时钟命令信息来将扫描数据加载到所述扫描链;配置所述可编程测试时钟控制器的第一子集中的一个可编程测试时钟控制 器,以响应于指定是否检测故障的附加时钟命令信息生成测试时钟;以及 根据所述附加时钟命令信息生成所述测试时钟以测试一个或多个电路。
10. —种用于多个电路的基于扫描测试的装置,所述装置包括 被配置成加载扫描链的可编程测试时钟控制器的第一子集;以及 所述可编程测试时钟控制器的第一子集中的一个可编程测试时钟控制器,它被配置成响应于指定是否检测故障的附加时钟命令信息生成测试时钟;其中根据指定是否激活加载所述扫描链的时钟命令信息将扫描数据加载到所 述扫描链中,并且根据所述附加时钟命令信息生成所述测试时钟来测试一个或多个 电路。
11. 如权利要求IO所述的装置,其特征在于,生成所述测试时钟还包括 使用上次移位启动测试和宽面测试检测动态故障,或者使用固定型测试检测静态故障,或者两者。
12. 如权利要求11所述的装置,其特征在于,生成所述测试时钟还包括并行 地生成用于所述可编程测试时钟控制器之一的测试时钟和用于其它所述可编程测 试时钟控制器的测试时钟,由此并行地测试多个域。
13. 如权利要求IO所述的装置,其特征在于,配置每个可编程测试时钟控制 器还包括执行以下之一启动和捕获操作;仅启动操作;仅捕获操作;以及禁用测 试时钟操作。
14. 一种用于实现测试时钟控制结构以实现多个电路的基于扫描测试的计算 机可读介质,所述计算机可读介质包括多个可执行指令,用于生成控制层时钟信号(TCLK)来用时钟命令信息编程可编程测试时钟控制器以 便测试电路;生成用于在扫描速度下驱动一些所述扫描链的扫描层时钟信号(SCLK); 加载与所述可编程测试时钟控制器的第一子集相关联的扫描链;以及 生成测试时钟,以执行域内测试以测试实现一种或多种类型的动态故障检测测试的所述电路的第一子集;执行域间测试以测试实现一种或多种类型的动态故障检测测试的所述电 路的第二子集,以及执行对其它电路的固定型测试, 其中所述域内测试、所述域间测试和所述固定型测试的两个或多个基本上并行地执行。
15.如权利要求14所述的计算机可读介质,其特征在于,加载所述扫描链的所述可执行指令还包括多个可执行指令,用于将所述扫描数据的的第一部分扫描数据位和第二部分扫描数据位基本上同时地加载到扫描链部分,所述第一部分和所述第二部分分别包括N位和N-l位。
全文摘要
公开了使用一个或多个测试时钟控制结构的来执行基于扫描测试的方法和计算机可读介质。在一个实施例中,方法包括执行域内测试以运用实现动态故障检测测试图的多个电路的第一域子集。它也包括执行域间测试以运用实现动态故障检测测试图的多个电路的第二域子集。此故障检测测试图可包括例如上次移位启动测试图和宽面测试图。在各个实施例中,该方法可包括配置不同的可编程测试时钟控制器来基本上并行地测试不同域。
文档编号G01R31/3183GK101097244SQ20071012792
公开日2008年1月2日 申请日期2007年6月26日 优先权日2006年6月27日
发明者C·苏尔 申请人:晶像股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1