专利名称:为电子电路的基于扫描测试产生测试时钟的系统、装置和方法
技术领域:
本发明一般涉及电子设备和用于扫描测试电路的时钟架构,尤其涉及用于产生便于例如基于扫描的实速(at-speed)测试以至少检测延迟相关故障的可配置测试时钟波形的系统、结构和方法。
技术背景电子器件制造商使用纳米级半导体制造工艺来制造几何尺寸减小的集成电 路,从而在单位面积上提供更多的晶体管和互连资源。但是制造几何形状不断减小 的器件也增加了导体相关故障和电阻型缺陷的出现。导体相关故障通常源于降低金 属互连质量的工艺偏差,从而导致例如不一致的接触电阻。电阻缺陷导致受影响的电路节点处的信号转变更缓慢地上升和下降。但是由于常规的固定型(stuck-at) 和参数泄漏电流(例如IDDQ测试)测试方法不能有效地检测这些类型的故障,电 子器件制造通常依赖于延迟测试方法来筛选出这种故障模式。然而,结构延迟测试 比诸如固定型测试的常规测试方法昂贵得多。例如,实现延迟测试的数据量比常规 固定型测试的数据量大得多。在一些情形中,延迟测试需要比固定型测试多三到五 倍的数据。此外,固定型测试检测诸如"固定"在逻辑值为l或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。具体地, 扫描链部分IOO使用慢时钟140来驱动扫描数据通过扫描链,并且使用快时钟150 来对电路102执行实速功能测试。虽然ATE可用作测试时钟发生器,但是诸如芯 片上锁相回路("PLL")电路的芯片上功能时钟电路可以较低成本提供高速测试时 钟信号。但是常规测试时钟发生电路是复杂和昂贵的,尤其是在待测试器件 ("DUT")包含许多时钟域时,诸如20至IOO个时钟域或者更多。图2示出因使用单个扫描使能("SE")信号来在常规扫描链结构中实现常规 实速延迟测试而产生的时序不确定度。通常用于检测动态故障的实速延迟测试的一 个示例是"上次移位启动(last-shift-launch)"测试。在该技术中,为第一测试图移 位到扫描链中的上次扫描数据位在再一次移位之后变成第二测试图的输入。时序图 200示出进行常规上次移位启动测试的图1的测试时钟120和扫描使能104的信号。 具体地,第一测试图在扫描模式中使用慢时钟140移位到扫描链中,且上次扫描数 据位移位到扫描链中作为启动沿(launch edge) 210。为了执行实速延迟测试,扫 描使能104改变状态,并且将快时钟150施加到扫描链以捕获功能测试结果。使用 单个扫描使能信号104来执行实速延迟测试的缺点是捕获沿220的检测必须在限定 时段内,从而施加了实速时序限制202。因此,扫描使能104必须在实速时序限制 202内从一个状态转变成下一个状态,以充分检测捕获沿220。但是,很难期望扫 描使能104能随着实速时序限制202持续变窄以适应更小几何形状上的延迟测试而 充分转变状态。图3示出使用传统测试时钟控制技术影响实速延迟测试的典型扫描链结构 300。如图所示,扫描链结构300包括具有扫描输入310和扫描输出312的扫描链 320,以及内部时钟发生器330 (例如一个或多个PLL电路)和内部测试时钟控制 器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") 402到第二时钟域("j") 420的输入寄存器("InReg")启动从逻辑0到1的转变 (或相反)。时钟("CLK[i]") 412驱动从输出寄存器402经由域间组合逻辑306 到输入寄存器404的转变,输入寄存器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之后的捕获脉冲延迟一时延562以例如进行域间测试。 该方法的一个缺点是内部测试时钟控制器502包括除了多路复用器534之外还包含 附加电路元件的测试功能时钟路径530。这些附加元件536在进行启动和捕获操作 时使实速功能时钟信号510不利地偏斜,从而导致捕获脉冲570的时序中产生不确 定度580。通常延迟562需要时钟平衡以确保路径530上测试模式的实速功能时钟 能在不包括附加元件536的路径532上模拟处于运行模式(例如当禁用测试模式或 TM时)的功能时钟510。图6A和6B分别示出宽面(broadside)和上次移位启动(last-shift-launch)测 试协议的常规实现。图6A包括含有不同寄存器级612的扫描链610。对于如示图 600所示的宽面协议测试,期望转变从先前寄存器级612b启动以传播通过组合电 路620b,然后在寄存器级612c的寄存器630中捕获。这直接或间接地测试了组合 电路620a和620b。在启动沿,寄存器632锁定逻辑0,从而通过组合电路620b 启动1到0的转变。寄存器630在捕获沿捕获逻辑0。注意,逻辑O的出现取决于 先前从寄存器634中的值的转变601,由此测试组合电路620a。在该技术中,整个 扫描链通过以测试模式将数据低速移进以及随后通过功能模式中的两个实速时钟 脉冲(例如启动和捕获沿)而加载数据。然后, 一旦捕获到值,该数据可以测试模 式缓慢移出。尽管使用宽面协议的延迟测试可检测到否则不可检测的延迟故障,但 宽面协议的测试图大小通常大于上次移位启动协议的测试图。此外,宽面的测试图 本质上是连续的且因此更难产生。图6B包括含有不同寄存器级672的扫描链660。对于上次移位启动协议测试, 转变662从寄存器级672b中的扫描加载或卸载序列期间的上次移位启动。然后, 它被捕获到下一寄存器级672c的寄存器680中。由于输入转变690从上次移位661 启动,因此上次移位启动的测试图大小可比宽面的更小并更容易产生,因为连续测 试图比组合图更难压縮。但是上次移位启动协议具有上述的缺点。由于宽面和上次 移位启动两者具有互斥的优点和缺点,大多数设计者只实现其一。根据上述观点,期望提供最小化上述缺点、并提供基于扫描的实速测试以至 少检测延迟相关故障的系统、结构和方法。发明内容公开了用于产生扫描链测试时钟以实现电子电路的基于扫描测试的系统、结
构和方法。在一实施方式中,测试时钟控制结构包括可编程测试时钟控制器。该可 编程测试时钟控制器包括用于产生可配置测试时钟的测试时钟发生器。它还包括用 该可配置测试时钟驱动扫描链部分的扫描层接口、以及配置成访问用于控制该扫描 链部分的控制信息的控制层接口。可编程测试时钟控制器也可包括与控制链的一部 分连接的控制逻辑。因此,该控制逻辑可基于该控制信息选择性地将扫描数据加载 到该扫描链部分。在不同实施方式中,控制链是与扫描链不同的通道,从而便于控 制信息与扫描数据的传输独立地传输到可编程测试时钟控制器。这样的优点是减少 扫描加载和卸载序列,从而减少测试时间。在一些情形中,控制逻辑可便于实现两 个或多个扫描测试协议,以使用来自扫描链的基本相同数据测试电路。在另一实施方式中,可编程测试时钟控制器包括时钟脉冲控制器和测试时钟 发生器。时钟脉冲控制器根据时钟指令信息产生时钟控制信号。在一些实例中,时 钟脉冲控制器可保持该时钟命令信息。测试时钟发生器根据时钟命令信息的一部分 产生测试时钟。时钟命令信息指定是否将诸如具有实速时钟速率的测试时钟的功能 时钟信号施加到扫描链。在再一实施方式中, 一种方法实现基于扫描的电路测试。该方法包括执行至 少一次域内测试以及执行实现动态故障检测测试图的至少一次域间测试,该测试图 可包括上次移位启动测试图和宽面测试图。注意,这些域可以是不同的功率域或不 同的时钟域,或者两者。在一些情形中,该方法还包括将可编程测试时钟控制器配 置成基本上并行地测试不同的时钟域。这样的优点是在测试不同时钟域时减少一个 或多个扫描链加载的次数。在其它实施方式中,术语域一般可指与另一部分和另一 电路比较具有不同工作特性的任一电路或其一部分,无论这些特性就时钟、功耗等 而言是否不同。在再一实施方式中, 一种方法实现了完成基于扫描的电路测试的测试时钟控 制结构,该方法包括将可编程测试时钟控制器的第一子集配置成加载扫描链,以及 根据指定扫描链加载的时钟命令信息将扫描数据加载到扫描链中。该方法通过将可 编程测试时钟控制器的第一子集中的可编程测试时钟控制器配置成响应于指定故 障检测的附加时钟命令信息产生测试时钟来继续。此外,该方法可包括根据测试一 个或多个电路的附加时钟命令信息产生测试时钟。根据一些实施方式,可编程测试时钟控制器和所附随的测试时钟控制结构提 供成本相对较低的实速延迟测试。可编程测试时钟控制器实际上可插入到时钟树网络(例如功能芯片上的PLL树内)的任何地方并可通过ATE编程。测试时钟控制
结构可通过对可编程测试时钟控制器编程来处理相对大量的时钟域。可编程测试时 钟控制器使得同一芯片上能使用上次移位启动测试协议和宽面测试协议,从而在减 少测试时间和测试数据量(例如通过减少测试器件的扫描加载/卸载序列的数量) 的同时增强了测试覆盖面。
根据本发明的不同实施方式,测试时钟控制结构提供了减少测试时间和测试 数据量的有效测试改进和测试流。这种减少很重要,尤其是由于延迟测试比仅仅固 定型测试实施起来要昂贵约3至5倍。而且,在常规延迟测试中,占用了测试时间
和测试数据量的是扫描加载和卸载操作。通常, 一秒钟的ATE使用耗费约5-10美 分。因此,常规实现的延迟测试的增加ATE时间会将相当的测试成本额外开支添 加到低价消费电子器件的价格上。一个或多个实施方式通过将可编程性引入到测试 时钟结构中、通过并发或几乎并发地实现多个测试协议、以及通过并行测试多个域 (例如时钟域)等等而减少了扫描加载和卸载操作的数量。
结合附图,通过以下的详细描述本发明可得到更全面地理解,在附图中
图1是示出通常用于实现待测试电路的常规延迟测试的扫描链的一部分的示
图2示出在常规扫描链结构中使用单个扫描使能("SE")信号执行实速延迟 测试的时序不确定度;
图3示出使用常规测试时钟控制技术实现实速延迟测试的典型扫描链结构;
图4示出使用图3的扫描链结构对域间逻辑进行的测试;
图5是示出具有使实速时钟信号偏斜的测试功能时钟路径的常规内部测试时 钟控制器的框图6A和6B分别示出宽面和上次移位启动测试协议的常规实现;
图7是示出根据本发明至少一个特定实施方式的用于测试电路的测试时钟控 制结构的框图8是示出根据本发明至少一个特定实施方式的可编程测试时钟控制器的框
图9是示出根据本发明一实施方式的可编程测试时钟控制器的一个功能示例 的示图10是示出根据本发明一实施方式的可编程测试时钟控制器的一个示例的示
图;图11是示出根据本发明一实施方式的可编程测试时钟控制器的基于多个扫描使能控制信号的操作状态的表格;图12A和12B分别示出根据本发明不同实施方式的扫描时钟解码器和可编程 测试时钟控制器的具体实现;图13示出根据本发明一实施方式的适于实施用于对特定时钟域编程的图12B 的可编程测试时钟控制器的时钟脉冲控制器的状态图;图14A和图14B根据本发明的不同实施方式分别示出将可编程测试时钟控制 器配置成构建启动和捕获各操作的测试时钟、以及禁用与其对应的时钟域的信号时 序;图15示出根据本发明一实施方式的包括简化时钟脉冲控制器和简化测试时钟 发生器的可编程测试时钟控制器;图16示出根据本发明一实施方式的包括补充时钟命令源的可编程测试时钟控制器;图17A和17B分别示出根据本发明不同实施方式的实现成字符串发生器 (string generator)的补充时钟命令源及相应状态图;图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提供扫描时钟902与功能时钟904之间的安全切换,使 得例如负载循环保持不变且短时干扰最小。在一实施方式中,可编程测试时钟控制 器900使用多路复用器910来在扫描时钟902和功能时钟904之间多路复用而无需 实速时钟产生路径中的附加逻辑元件。这样,可编程测试时钟控制器卯0可避免对 于为了时钟选通目的而使用附加逻辑元件的一些常规测试时钟发生器普遍的时钟 偏斜。可编程测试时钟控制器900可将测试时钟930配置成提供宽面计时的时钟 926或者提供上次移位启动计时的时钟946。这样,可编程测试时钟控制器900可 有利地实现宽面和上次移位启动协议。为了实现宽面计时920,可编程测试时钟控 制器900操作以在扫描模式中将N个扫描数据位移进扫描链中,之后在功能模式 中提供实速的启动时钟沿922和捕获时钟沿924。为了实现上次移位启动计时940, 可编程测试时钟控制器900操作以在扫描模式中移位N-1个扫描数据位。在第N-l 位之后,在扫描模式中提供启动时钟沿942作为第N个时钟沿,之后在功能模式 中捕获沿944作为第N+l个时钟捕获时钟沿。图10是示出根据本发明一实施方式的可编程测试时钟控制器的一个示例的示 图。可编程测试时钟控制器1000包括被配置成根据编程到时钟脉冲控制器1002 中的时钟命令信息("CCD 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操作以将可编程测试时钟控制器IOOO配置成数据传输模式或测试执行 模式。此外,测试构建和执行控制器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测试)或 实速启动和/或捕获状态工作。注意,图IO的可编程测试时钟控制器略去了扫描时 钟解码器以简化讨论。图11是示出根据本发明一实施方式的基于多个扫描使能控制信号的可编程测 试时钟控制器的操作状态的表格。表1100示出扫描使能数据("SeD")控制信 号1101和扫描使能时钟("SeC")控制信号1103建立了可用于实现根据本发明不 同实施方式的可编程测试时钟控制器的期望功能的信号状态(或测试模式)集合 1105。在静默状态1102期间,待测试电路的所有时钟被关闭,而在启动/捕获状态1104中实速功能时钟被施加到扫描链以执行延迟测试。在扫描加载/卸载链状态 1106中,扫描链被加载或卸载,且在控制加载/卸载状态1108中,可对编程测试时 钟控制器编程。通常,扫描使能数据控制信号1101的值确定可编程测试时钟控制 器以数据传输模式或测试执行模式工作。当SeD控制信号1101具有值l时,可编 程测试时钟控制器使用来自诸如ATE器件的外部源的扫描时钟参与相对低速的数 据传输操作。然后,如果SeC控制信号1103具有值0,则可编程测试时钟控制器 加载或卸载扫描链以将电路的内部寄存器初始化到已知状态。相反,SeC控制信号 1103的值1导致用时钟命令信息对可编程测试时钟控制器进行编程。在静默状态 1102,可编程测试时钟控制器不施加时钟脉冲以产生到待测试电路的域的转变。在 该状态中,ATE可强加初级输入("PI")以测量初级输出("PO")或测量从电源 到接地的IDDQ泄漏电流。注意,当SeD控制信号1101具有值0时,可编程测试 时钟控制器可参与实速测试以使用功能时钟在相对高速下启动输入转变或捕获测 试响应或两者。图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包含可分别通过控制扫描 输入("CSr)终端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具有0值,则 源时钟脉冲被抑制。否则,源脉冲被传递以形成测试时钟1254的一部分。此外, 测试时钟发生器1250抑制可能的时钟偏斜,该偏斜源于通过在初始化启动和/或捕 获操作时选择处于稳态相("关闭"或处于低逻辑值)的扫描时钟("SCLK") 1208
而用功能时钟路径进行逐位-逻辑与操作。稳态相的一个示例是图9的稳态相908。在图12B所示的示例中,测试时钟发生器1250包括采样和保持寄存器 ("SHR") 1270以及时钟选择寄存器("CSR,,) 1272。采样和保持寄存器1270使 用参考时钟("RefClk[k]") 1262对SeC信号1260进行采样,并且向时钟脉冲控制 器1230提供时钟脉冲控制器使能("CPCEn")信号1240用于选择测试时钟速率。 如果CPCEn信号1240具有值l,则多路复用器1242选择功能时钟("PCLK")1252。 具有值0时,多路复用器1242选择控制层时钟("TCLK") 1210以将时钟命令信 息位移进和移出。如果SeD信号1258具有值0且SeC信号1260具有值1,则采 样和保持寄存器1270产生逻辑值1。否则,采样和保持寄存器1270的输出1271 保持在逻辑O。在一些实施方式中,采样和保持寄存器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"符号标记该转变。注意,由于排除使用补充时钟命 令源的输入限制(即Sgenln=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指示"无需考虑"。但是如 果内容是"0x",则扫描时钟禁用且没有脉冲沿施加到扫描链。注意,TCEn信号 的值通常在扫描加载/卸载过程中不变。在一实施方式中,如果所有扫描链要一次 性加载而非选择性地加载,则SCLK路径中的与门可去除。图14A和14B分别示出根据本发明不同实施方式的将可编程测试时钟控制器 配置成构建用于进行启动和捕获操作以及用于禁用与其对应的时钟域的测试时钟 的信号时序。图14A的时序图1400示出可编程测试时钟控制器如何使用扫描时钟("SCLK")信号和功能时钟("PCLK")信号1402来产生启动和/或捕获操作的可 配置测试时钟波形("CLK") 1410。考虑其它信号1420被初始化成如图所示的状 态。CPCEn信号1406在扫描加载或卸载操作后设定成逻辑值0。 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"(即SR41)。 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,逻辑值0移位进入到移位寄存器中(例如通过设定为逻辑0的Sgenln输入)。 当移位寄存器达到禁用状态(即其内容包括值"OO")时,则TCEn信号1404被禁 用并在沿1421降为逻辑值O。此夕卜,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的 逻辑值O。结果,时钟选择寄存器产生具有逻辑值1的CSR输出信号1458,从而 选择扫描时钟("SCLK[i]") 1462作为测试时钟1460。因此,对于测试时钟,没有 扫描脉冲或功能脉冲产生。图15示出根据本发明一实施方式的包括简化时钟脉冲控制器和简化测试时钟 发生器的可编程测试时钟控制器。可编程测试时钟控制器1500包括简化时钟脉冲 控制器1502和简化测试时钟发生器1520,两者与图12B中类似命名的信号交互作 用。虽然可编程测试时钟控制器1500与图12B的可编程测试时钟控制器作用类似, 但是它被特别地配置成提供启动和/或捕获操作以及连续测试能力。在该情形中, 简化时钟脉冲控制器1502包括用于存储和提供单个位的1-位移位寄存器 ("CPCR") 1504。例如,可编程测试时钟控制器1500可提供相应的TCEn信号 1506值的流,诸如1["00]或0[x1,其中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包含补充逻辑值。此外,乂011-门1718引入额外反转以使寄存器1704的内容保持不变。然后,考虑零信号1716 具有逻辑值O,从而将位保持单元1710配置为2-位移位寄存器。注意,X0R-门1718 在零信号1716具有逻辑值1时用作反相器,否则作为缓冲器工作。因此,在零信 号1716达到值0之后有两个功能时钟循环,各个寄存器1702和1704包含逻辑值 0。基于来自寄存器1702和1704两者的内容SGenEn信号1719产生,以表示字符 串发生器1700是否被激活。如果寄存器1702和1704分别包含逻辑值0和0,则 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产生的信号是全 局信号。即,它们被施加于测试时钟控制结构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、 1902b和1902c交互作用的可编程测试时钟控制器("PTCC") 1910、 1920和1930。各个时钟域1902包括一个或多个扫描链1904 (或其部分) 和待测试电路l卯6。在该示例中,时钟域1902中的扫描链l卯4并行,因为一个 或多个扫描链部分1904可进行例如卸载/加载操作而其它部分不能。此外, 一个或 多个时钟域可通过相同或不同的测试协议实施,而其它时钟域则保持空闲或参与其
它测试。例如,考虑分别加载在PTCC 1910和1920中的时钟命令信息("CCD 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,两者都被设计成以独立时钟频率运行。这样,PTCC2111可使用 功能时钟PCLK[i] 2110来产生第一时钟速率,而PTCC 2121可使用功能时钟 PCLK[j] 2120来产生第二时钟速率。根据本发明的不同实施方式,PTCC 2111和 2121中的时钟脉冲控制器2130可通过控制链2140编程为分别执行仅启动和仅捕 获操作一相对同步一以测试域间区域2150中的接口电路等。为了协调多周期路径 测试操作(包括仅启动和仅捕获操作),被配置成用作自动测试图发生器("ATP 发生器")的计算器件可产生使用于实现域间测试的PTCC 2111和2121操作同步 以检测域间区域2150中故障的测试图。例如,ATP发生器可使用公共参考时钟 ("RefClk") 2160来建立时序参考点。在其它实施方式中,ATP发生器也可使用 彼此不同步的不同参考时钟来执行域间测试。注意,在一些实施方式中,术语"多 周期路径测试"通常指域间测试或者域内测试,或者是指两者。图22A和22B示出根据本发明不同实施方式的使用一个或多个时序参考点计 算时间距离以实现域间测试的不同技术。图22A示出公共参考时钟("RefClk[k]") 2216如何用来提供时序参考点2220,以确定将由一个或多个可编程测试时钟控制
器("PTCC")执行的操作延迟多个时钟周期。PTCC可在对SeC信号2218进行采 样之后延迟启动操作或获取操作。PTCC相对于在其特定时域中的测试时钟延迟操 作。考虑域间(例如时钟域间)测试可被设计成实现从一个时钟域[i]进入发生捕获 的另一时钟域[j]的启动。这样,时钟域W的启动时钟脉冲可在对SeC信号2218进 行采样之后延迟4个PCLK[i]时钟周期。此外,时钟域[j]的捕获操作可延迟1个 PCLK[j]时钟周期。注意,RefClk[k]时钟2216的相位与至少PCLK[i] 2212和PCLK[j] 2214锁定。"时间距离"是相对于诸如PCLK[i] 2212或PCLK。] 2214的某一时钟 的多个周期的延迟。这样,ATP发生器可通过对从参考时钟沿2220开始到指定启 动(或捕获)时钟沿的PCLK[i] 2212的下降沿数目计数来计算时间距离。ATP发 生器可基于时间距离形成测试图。然后,ATE可将时间距离编程到PTCC的时钟 脉冲控制器以及字符串发生器中以提供多周期测试。图22A的示图2230示出用于启动时钟域[i]的转变、并在时钟域[j]将其捕获的 经计算时间距离2232和2234。所以输入转变可从RefClk[k] 2216的上升沿2220 开始在PCLK[i] 2212的第5上升沿2217 —在4个下降沿的延迟(例如时间距离2232 为4)之后一开始。该转变在一个下降沿延迟(例如时间距离2234为1)之后在时 钟PCLK[j] 2214的第2上升沿2219处捕获。示图2240示出用于从启动该转变(与 示图2230反向)的时钟域[j]将转变捕获到时钟域[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]启动转变并在时钟域m将其捕获的经计算时间距离2282 和2284。所以,输入转变可从RefClk[k] 2266的上升沿2267开始在PCLK[i] 2262 的第5个上升沿2277处一在延迟了4个下降沿(例如时间距离2282为4)之后一 启动。该转变在时钟PCLK[j] 2264的1个下降沿的延迟(例如时间距离2284为1) 之后的第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 可具有与母PTCC2402相同的结果和/或功能,但是在本示例中,它们由简化可编 程测试时钟控制器("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[ij]、直到例 如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所示。对 于启动和/或捕获操作,SCPC 2410可加载有逻辑值1 (例如加载到元件("CO") 2472),以及母PTCC 2402中的母CPC (未示出)加载有控制图以产生CLK[i](例 如从字符串发生器等)。如果局部测试时钟CLK[i,j]与母测试时钟CLK[i] 2407相同, 则PTCC 2406和2408被激活。如果子时钟域2403的测试需要例如在不同时钟周 期中执行延迟的仅启动或仅捕获,贝U SPTCC可包括具有由元件("CO") 2476和 ("CI") 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的其它部分独立地控制。此外,对于本示例,考虑PTCC2512 和2522可被编程为与部分2502的测试并行或串行地执行域内(或子域内)动态和 /或静态测试。然后,考虑在时刻T2,可禁用PTCC 2514和2524,而其它PTCC 被激活以参与测试部分2504的动态(例如宽面、上次移位启动、域间、域内等) 和/或静态测试。注意,在一些实施方式中,测试时钟控制结构2500和伴随电路通 常定义由PTCC2512、 2514、 2522和2524构成的结构。图25B至25D示出根据本发明另一实施方式的被配置成便于使用可编程测试 时钟控制器的域间测试和域内测试的测试时钟控制结构的再一示例。测试时钟控制 结构2550便于域间测试或域内测试、或两者。由于可编程测试时钟控制器可被编 程为将内部交互限定在各个时钟域的边界内,因此域的接口可与其余域独立地控 制。这种接口的示例包括输入寄存器和/或输出寄存器。因此, 一个或多个域接口 (和子域接口)可与该域(或子域)其它部分的测试并行和/或串行的基于扫描测 试中实现。因此,独立的SPCP可用于控制子域的选择部分,诸如扫描链部分、电 路等。例如,图25B示出子域2560的SPCP 2564和2566各自通过相同的功能时 钟工作,两者都可具有分别与子域2520和2580的SPCP2571和2581所使用的功 能时钟不同的时钟速率。首先,考虑SPCP2571和2564被编程为激活时钟域间测 试以测试电路部分2530中的逻辑2572和/或逻辑2474,而SPCP 2566和2581被 编程为激活时钟域间测试以测试电路部分2531中的逻辑2582和/或逻辑2584。所 有SPCP 2571、 2564、 2566和2581可被编程为在某一时刻Tl操作。注意,寄存 器2559可表示子域("域r") 2580的输出寄存器。因此,SPCP2571和2564可被 编程为分别执行启动(例如从子域2570)和捕获操作(例如进入子域("域q")2560) 或者其它操作,诸如扫描链加载或卸载操作。注意,寄存器2589可表示子域("域 p") 2570的输入寄存器。类似地,SPCP 2566和2581可被编程为分别进行例如启 动(例如从子域("域q") 2560)和捕获操作(例如进入子域("域r") 2580)或 者一些其它操作,诸如扫描链加载或卸载操作。因而电路部分2530和2531可与时 钟控制结构2550的其它部分独立地(例如独立于子域2560的逻辑2561、逻辑2562 和逻辑2563)控制。此外,对于本示例,考虑SPCP2564、 2565和2566可被编程
为与图25B的部分电路部分2530和2531的测试并行或串行地执行域内(或子域 内)动态和/或静态测试。图25C示出在时刻T2, SPCP2571和2581可被禁用(例 如保存寄存器2559和2589的内容),而SPCP 2564和2565可被配置成参与动态
(例如宽面、上次移位启动、域间、域内测试等)和/或静态测试以测试包括系统 组合逻辑2561的一部分以及可包含内部寄存器和逻辑的另一部分2562的电路部分 2590。类似地,图25D示出在时刻T3, SPCP2565和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和全息设备;磁光介质,诸如光磁软盘(floptical disk); 以及具体配置成存储和执行程序代码的硬件设备,诸如专用集成电路(ASIC)、可 编程逻辑电路(PLD)以及ROM和RAM设备。计算机编码的示例包括诸如由编
译器产生的机器码和包含由计算机使用翻译器执行的含有高级编码的文件。例如,
本发明的一个实施方式可使用Java、 0++或其它面向对象的编程语言和开发工具实
现。本发明的另一实施方式可用硬件电路代替机器可执行软件指令或者与其结合来 实现。
为说明目的,上述描述使用特定术语以提供对本发明的透彻理解。然而,对 本领域技术人员显而易见的是为了实践本发明这些具体细节并非是必需的。实际
上,本说明书不应被解读为将本发明的任何特征和方面限制于任一实施方式;相反,
一个实施方式的特征和方面可容易地与其它实施方式互换。例如,虽然域间和域内 测试通常就时钟域进行了描述,但是普通技术人员应该理解这些测试可应用任何其 它类型的域,诸如功率域。
因此,以上对本发明具体实施方式
的描述是为了说明和描述目的而呈现的。
它们并不旨在穷尽本发明或将本发明限制于所公开的精确形式;显然,考虑到以上
示教,有可能进行多种更改和变化。这些实施方式被选择和描述以最好地解释本发
明的原理及其实际应用;从而,它们使本领域其它技术人员能通过适于期望特定用 途的各种更改来最好地利用本发明和各个实施方式。注意,本发明的各个实施方式 无需实现本文描述的每个益处;相反,任何一个特定实施方式可提供上述优点的一 个或多个。旨在由所附权利要求书及其等效方案限定本发明的范围。
权利要求
1.一种用于产生测试时钟以实现电子电路的基于扫描测试的测试时钟控制结构,所述测试时钟控制结构包括用于测试电路的可编程测试时钟控制器,所述可编程测试时钟控制器包括测试时钟发生器,它被配置成产生可配置测试时钟;扫描层接口,它被配置成用所述可配置测试时钟驱动扫描链的扫描链部分;以及控制层接口,它被配置成访问用于控制所述扫描链部分的控制信息。
2. 如权利要求1所述的测试时钟控制结构,其特征在于,所述可编程测试时 钟控制器包括与控制链的一部分连接的控制逻辑,所述控制逻辑被配置成基于所述 控制信息将扫描数据选择性地加载到所述扫描链部分。
3. 如权利要求2所述的测试时钟控制结构,其特征在于,所述控制链是与所 述扫描链不同的通道,由此便于独立于所述扫描数据的传输向所述可编程测试时钟 控制器传输所述控制信息。
4. 如权利要求1所述的测试时钟控制结构,其特征在于,所述控制逻辑被配 置成在扫描时钟与功能时钟之间多路复用,以在所述扫描时钟和所述功能时钟的基 本稳态部分期间形成所述可配置测试时钟。
5. 如权利要求1所述的测试时钟控制结构,其特征在于,所述可编程测试时 钟控制器还包括被配置成接收共同代替常规单个扫描使能信号的多个扫描使能控 制信号的多个输入端。
6. 如权利要求1所述的测试时钟控制结构,其特征在于,所述可编程测试时 钟控制器包括时钟脉冲控制器,它被配置成根据编程到所述时钟脉冲控制器中的时钟命令 信息产生时钟控制信号;以及其中可配置测试时钟与所述时钟命令信息的一部分相关, 其中所述时钟命令信息指定是否将功能时钟信号施加于扫描链。
7. 如权利要求6所述的测试时钟控制结构,其特征在于,所述可编程测试时 钟控制器还包括 被配置成使多个控制时钟信号同步的扫描时钟解码器,所述多个控制时钟信 号包括用于至少向所述时钟脉冲控制器提供所述时钟命令信息的至少一个控制 层时钟信号,以及用于驱动所述扫描链的扫描层时钟信号。
8. 如权利要求6所述的测试时钟控制结构,其特征在于,所述时钟脉冲控制 器包括时钟控制信号发生器,它被配置成产生所述时钟控制信号的单独时钟沿;以及时钟速率选择器,它被配置成设定各个所述单独时钟沿的时钟循环周期, 其中所述时钟速率选择器在表示用于实速测试的第一时钟速率的第一周期与 表示用于至少驱动所述扫描链的第二时钟速率的第二周期之间选择。
9. 一种用于产生扫描链的测试时钟波形以实现对包括多个电路的电子器件的 基于扫描测试的方法,所述方法包括将可编程测试时钟控制器配置成以数据传输模式运行,在所述数据传输模式 中时钟命令信息与所述可编程测试时钟交换;确定是否将链时钟施加于与所述多个电路的一个电路相关联的扫描链部分;以及独立于将其它扫描时钟施加于其它电路,施加所述链时钟作为测试时钟以测 试所述电路。
10. 如权利要求9所述的方法,还包括将所述可编程测试时钟控制器配置成以 其中扫描数据与至少所述扫描链部分交换的另一数据传输模式运行,其中所述链时 钟的速度为移位时钟速率。
11. 如权利要求10所述的方法,还包括根据所述时钟命令信息将所述可编程 测试时钟控制器配置成以测试执行模式运行。
12. 如权利要求IO所述的方法,还包括以所述测试执行模式操作所述可编程 测试时钟控制器以将所述链时钟的所述速度设定为实速时钟速率,以进行动态测 试。
13. 如权利要求9所述的方法,还包括 基本上同时地将所述扫描数据的扫描数据位第一部分和扫描数据位第二部分 加载到所述扫描链部分,所述第一部分和所述第二部分分别包括N位和N-1位;将所述可编程测试时钟控制器配置成在所述N位的N个扫描时钟沿之后执行 宽面测试,所述时钟命令信息在所述N位之后以所述实速时钟速率提供启动时钟 沿和捕获时钟沿;以及将所述可编程测试时钟控制器配置成在所述N-1位的N-l个扫描时钟沿之后 执行上次移位启动测试,所述时钟命令信息提供作为第N时钟沿的开始时钟沿和 作为第N+1时钟捕获时钟沿的所述捕获时钟沿。
14. 一种包括用于产生测试时钟以实现基于扫描测试的测试时钟控制结构的 电子装置,所述电子装置包括多个电路,包括可以所述电子装置的功能模式操作的许多域,所述多个域中的至少一个域被细分成多个子域,用于以测试模式独立测试各个子域;以及 用于产生所述多个域的测试时钟信号的多个可编程测试时钟控制器,包括来 自所述多个可编程测试时钟控制器的可编程测试时钟控制器子集,所述多个可编程 测试时钟控制器被配置成在所述测试模式期间基本上并行测试所述子域中的一个 或多个。
15. 如权利要求14所述的电子装置,还包括一个或多个控制链,耦合于所述多个可编程测试时钟控制器以传输用于选择 哪个所述子域要作为选定子域进行测试的时钟命令信息;一个或多个扫描链,耦合于所述域和所述子域以与所述选定子域交换数据;以及测试时钟发生器,它被配置成根据所述时钟命令信息产生所述测试时钟信号 以控制所述数据的交换。
16. 如权利要求15所述的电子装置,其特征在于,将所述一个域细分成所述 多个子域便于通过选择性地加载或卸载所述数据作为相关于受所述测试时钟信号 控制的所述一个或多个扫描链的子集的刺激或结果数据来减少测试图量。
17. 如权利要求14所述的电子装置,还包括传送PWD信号以将所述多个电 路中的至少一部分置于低功率状态的功率下降("PWD")信号发生器,所述功率 下降信号发生器耦合于所述测试时钟发生器以停止一个或多个所述子域的操作。
全文摘要
公开了用于产生扫描链测试时钟以实现电子电路的基于扫描测试的系统、结构和方法。在一实施方式中,测试时钟控制结构包括可编程测试时钟控制器。该可编程测试时钟控制器包括用于产生可配置测试时钟的测试时钟发生器。它还包括用可配置测试时钟驱动扫描链部分的扫描层接口、和被配置成访问用于控制扫描链部分的控制信息的控制层接口。在另一实施方式中,一种方法执行电路的基于扫描测试。该方法包括使用包括上次移位启动测试图和宽面测试图的实现动态故障检测的测试图,执行至少一次域内测试并执行至少一次域间测试。
文档编号H03K5/19GK101127518SQ20071012792
公开日2008年2月20日 申请日期2007年6月26日 优先权日2006年6月27日
发明者C·苏尔 申请人:晶像股份有限公司