测试电路及其增加芯片电路扫描覆盖率的方法

文档序号:6145860阅读:209来源:国知局
专利名称:测试电路及其增加芯片电路扫描覆盖率的方法
技术领域
本发明是有关于集成电路的扫瞄,特别是有关于电路的扫瞄覆盖率。
背景技术
于芯片生产时,为了维持最终产出的芯片的质量,避免生产过程中的瑕疵所导致 的坏片流入终端客户手中,必须于生产结束时对产出的芯片进行测试,以筛选坏片。进行测 试时,是以自动测试向量(automatic test pattern)输入至芯片,以对芯片进行扫瞄,从而 测试芯片是否动作正确无误。因此,必须事先安插扫描电路至芯片,以供输入自动测试向量 至芯片进行扫描。 扫描电路可对芯片内的多个节点进行扫描。此外,扫描电路一般由计算机程序自 动安插至芯片的网表(netlist)档。当扫描电路安插至芯片后,并不一定能完全的对芯片 的所有节点均进行扫描。芯片中未能扫描到的节点称之为未覆盖点。芯片中的未覆盖点愈 多,表示芯片中无法确认生产瑕疵的节点愈多,因而扫描愈不完全。未覆盖点的数目与芯片 所有节点的数目的比率称之为未覆盖率。因此,通常必须确保未覆盖率低于一界限值,或是 覆盖率高于一界限值,例如9x%,以保证大多数的芯片节点都可被扫描到。
当覆盖率低于界限值时,有必要采取方法来提升芯片的覆盖率。现有技术采用插 入观察点法,以提高扫瞄过程的覆盖率。图1A显示插入观察点法所运用的观察电路100。 观察电路100包括多个控制寄存器(controlregister) 112 116、输出寄存器106、以及多 路选择器(multiplexer) 104。假设一芯片网表经模拟分析存在多个未覆盖点。为了增加 电路的扫描覆盖率,增加观察电路100以提高对于未覆盖点P1 P8的覆盖率(这里P1 P8可以指部分未覆盖点,也可以指全部未覆盖点)。 控制寄存器112、114、116具有两数据输入端D、SI及一数据输出端D。控制寄存器 112、114、116的功能等效于图IB所示,多路选择器(multiplexer) 152加一D型正反器(D flip-flop) 154。 D型正反器154依据频率信号CLK的触发以输入值D更新其内储存值后输 出于输出端Q。多路选择器152依据扫描激活信号SE选取数据输入D与自动测试向量SI 其中之一作为D型正反器154的输入值D。因此,图1A中的相串接的控制寄存器112、114、 116可于扫瞄过程中储存自动测试向量SI的连续三个位值,并输出至多路选择器104。
多路选择器104的输入端分别耦接至未覆盖点PI P8,并依据控制寄存器112、 114U16的输出值选取未覆盖节点PI P8于扫描过程中的逻辑值以输出至输出寄存器 106。输出寄存器106则储存多路选择器104的输出值并输出为信号S0。如此则观察电路 100可检测未覆盖点P1 P8于扫描过程中的信号值,以核对是否在这些测试点上存在制造 缺陷,从而增加芯片的扫描覆盖率。 然而,当芯片逻辑电路包含庞大数量的未覆盖点(例如10000个)时,为了有效提 高测试覆盖率,需要增加大量的测试电路,而导致芯片面积增大,从而增加芯片成本。同时 需要相当数量额外的测试向量来覆盖这些未覆盖的点及新增的测试电路,导致测试成本的 增加。因此,需要一种方法,能有效增加受测电路覆盖率,但同时并不会显著增加芯片面积,
4同时降低对测试向量数量的需求,进而减少测试成本。

发明内容
有鉴于此,本发明的目的在于提供一种增加芯片中受测试电路节点的覆盖率的方 法,以解决现有技术存在的问题。首先,通过模拟得到该芯片的详细覆盖率分布报告。当该 覆盖率低于一界限值时,依据该覆盖率报告决定测试电路的插入点位置,每一测试电路将 原始电路分割成位于该插入点之前的第一电路以及位于该插入点之后的第二电路。在插入 测试电路后,重新对该芯片进行模拟得到新的覆盖率报告。 本发明提供一种测试电路,插入至一受测试(包含多个组合逻辑电路)电路的一
插入点,该组合逻辑电路包含位于该插入点前端的一第一电路以及位于该插入点后端的一
第二电路,其中该测试电路插入于该第一电路与该第二电路之间。于一实施例中,该测试电
路包括一第一寄存器、一第二寄存器、以及一多路选择器。该第一寄存器输出一第一储存
值为一第一信号,当一扫描激活信号激活时寄存该组合逻辑电路所接收的一自动测试向量
(automatic testpattern)为该第一储存值,而当该扫描激活信号未激活时寄存1为该第
一储存值。该第二寄存器输出一第二储存值为一第三信号,当该扫描激活信号激活时寄存
该第一信号为该第二储存值,而当该扫描激活信号未激活时寄存该第一电路输出的一第二
信号为该第二储存值。该多路选择器(multiplexer)输出一第四信号至该第二电路的输入
端,当该扫描激活信号激活时依据该第一信号选取该第二信号与该第三信号其中之一作为
该第四信号,而当该扫描激活信号未激活时选取该第二信号作为该第四信号。 数字逻辑电路由时序逻辑(寄存器与锁存器等等)和组合逻辑门(与门,或门与
非门等等)组成。通常组合逻辑电路包含了绝大部分电路节点,因为对于每个时序逻辑包
含的节点只是输入和输出的几个节点。所以,我们在后面篇幅着重说明对于组合逻辑电路
的分割来增加芯片整体的覆盖率。


图1A显示现有的插入观察点法所运用的观察电路; 图IB显示图1A的输入寄存器及输出寄存器的细部结构; 图2为一组合逻辑电路的示意图; 图3为于图2的组合逻辑电路的插入点插入依据本发明的一测试电路后的示意 图; 图4为依据本发明的增加组合逻辑电路的覆盖率的方法的流程图; 图5为一组合逻辑电路的实施例的区块图; 图6显示将依据本发明的测试电路插入图5的组合逻辑电路的区块图。 附图标号 104 多路选择器; 112、114、116、106 寄存器; 202、206 寄存器; 204 组合逻辑电路; 256 插入点;
310 测试电路; 312、314 寄存器; 316 多路选择器; 602、616 寄存器; 604、608、610、614 加f去器; 606 、612 乘法器; 600 组合逻辑电路; 650 测试电路; 652、654 寄存器; 656 多路选择器。
具体实施例方式
为了让本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举数较佳实 施例,并配合所附图示,作详细说明如下 图2为一芯片的部份受测电路200的示意图。于一实施例中,组合逻辑电路204耦 接至输入寄存器202以及输出寄存器206,以利依据自动测试向量SI对组合逻辑电路204 进行扫描。当扫瞄激活信号SE激活时,扫描过程便启动,将自动测试向量(automatic test pattern) SI输入组合逻辑电路204。输入寄存器202及输出寄存器206其中一种细部结构 类型可以如图IB所示,于扫瞄激活信号SE激活时依据频率信号CLK寄存SI端的输入值。 输入寄存器202依据频率信号CLK的触发运作,用以寄存并输出自动测试向量SI至组合逻 辑电路204。组合逻辑电路204接着依据自动测试向量SI运作,并输出一输出信号于节点 254。输出寄存器206接着于节点254,当初次扫描激活信号SE激活时(即扫描测试的第一 阶段),依据自动测试向量SI运作组合逻辑电路204输出一输出信号至输出寄存器206 ;当 扫瞄激活信号SE未激活时(即扫描测试的第二阶段),输出寄存器206接收并寄存组合逻 辑电路204的输出信号,也就是节点254的值;当扫瞄激活信号SE再次激活时(即进入扫 描测试的第三阶段),输出寄存器206串行送出上一阶段所捕获组合逻辑电路204的输出, 即决定其输出信号SO,于此阶段中也可以同时送入下一组测试向量SI于逻辑电路。于一实 施例中,该组合逻辑电路204为一数字逻辑电路。 假设组合逻辑电路204包含多个无法经由测试工具产生的测试向量覆盖的测试 点(此后表示为未覆盖点),因而无法于扫描过程验证有否误动作而找出生产过程的电路 瑕疵。为了提高组合逻辑电路204于扫描过程的覆盖率(Coverage rate),必须对组合逻辑 电路204的所述的未覆盖点进行进一步的处理。因此,本发明拟将一测试电路插入组合逻 辑电路204,以提高组合逻辑电路204于扫描过程的覆盖率。假设节点256为组合逻辑电 路204的其中之一节点(或用来把原组合逻辑电路分割为第一电路和第二电路的一系列节 点),并且被选取为依据本发明的测试电路的插入点。组合逻辑电路204依据节点256可分 为两部分,位于节点256前端的为第一电路212,而位于节点256后端的为第二电路214。
图3为于图2的组合逻辑电路204的插入点256插入依据本发明的一测试电路310 后的示意图。于一实施例中,该组合逻辑电路204依节点256被断开,而在第一电路212的 输出端257与第二电路214的输入端258之间插入测试电路310。于一实施例中,测试电路
6310包括寄存器312、314、以及多路选择器316。寄存器312及314于扫瞄激活信号SE激活时,依据频率信号CLK寄存输入端的值并将寄存值输出于输出端Q。当扫瞄激活信号SE激活时,寄存器312依据频率信号CLK储存输入寄存器202所输出的自动测试向量SI为寄存值,并输出该寄存值为信号 寄存器314的S工输入端耦接至寄存器312的输出端,而寄存器314的D输入端耦接至第一电路212的输出端257。图2的组合逻辑电路204的插入点256断开后形成图3的第一电路212的输出端257及第二电路214的输入端258。当扫瞄激活信号SE激活时,寄存器314依据频率信号CLK储存输入寄存器312所输出的信号S工为寄存值,并输出该寄存值为信号S3。当扫瞄激活信号SE失能时,寄存器314依据频率信号CLK储存第一电路212于节点257输出的信号S2为寄存值,并输出该寄存值为信号S3。多路选择器316耦接至寄存器312、314的输出端,以及第二电路214的输入端之间。多路选择器316依据寄存器312输出的信号S工选取第一电路的输出信号S2与寄存器314的输出信号S3其中之一作为其输出信号S4,并输出信号S4至第二电路214于节点258的输入端。
图3的组合逻辑电路300的插入点256已插入测试电路310。在正常工作模式(即非测试模式),寄存器312的输出SI (上电初值)会被设为1,因此多路选择器316会选取第一电路212的输出信号S2作为其输出信号S4输出至第二电路214于节点258的输入端。因此,当正常工作模式时,组合逻辑电路204仍可如图2未经插入测试电路310前的正常模式运作。因此于此模式下可忽略测试电路310的存在。 当芯片被置于测试模式。当扫瞄激活信号SE激活时,寄存器312的输出信号S工是由自动测试向量SI所决定。当自动测试向量SI为1时,寄存器312的输出信号S工的值为1。此时由于多路选择器316会依据信号S工的值1选取第一电路212的输出信号S2作为信号S4输出至第二电路214,因此受测电路300可如图2的受测电路200般运作。当自动测试向量SI为0时,寄存器312的输出信号S工的值为0。此时由于多路选择器316会依据信号S工的值0选取寄存器314的输出信号S3作为信号S4输出至第二电路214,而寄存器314的输出信号S3是依据自动测试向量SI的值决定,因此第二电路214会依据自动测试向量SI的值运作。这样可产生类似流水线的效果,减少寄存器间组合逻辑的深度。因此,这样的电路设计降低了扫描过程中产生自动测试向量SI的难度,减少了扫描过程所需要的自动测试向量SI的数目,从而大大提高测试点的覆盖率,并减少扫描过程所需的时间。因此,图2的受测电路200在于图3中插入测试电路310后可显著地提高覆盖率并降低测试成本。因此,本发明提供的图3的测试电路310显著优于现有技术的插入观察点法的图1的观察电路100。 此外,当扫描激活信号SE激活时,输入寄存器202寄存并输出该自动测试向量SI至第一电路212的输入端252及寄存器312的输入端。当扫描激活信号SE未激活时,输入寄存器202寄存并输出数据信号D至第一电路212的输入端252及寄存器312的输入端。另外,当扫描激活信号SE激活时,输出寄存器206寄存并输出寄存器314的输出信号S3。当扫描激活信号SE未激活时,输出寄存器206寄存并输出第二电路214的输出信号。
图4为依据本发明的增加组合逻辑电路的覆盖率的方法400的流程图。我们设计芯片通常使用RTL级描述(采用Verilog HDL语言或其他硬件描述语言)。然后我们需要使用EDA工具把RTL—级的描述转换成门级描述即网表(netlist)形式,并进行优化。在这一过程中,可以通过EDA工具把标准的flip-flop替换成可以扫描的flip-flop (scan flip-flop),并插入扫描链。这一扫描测试电路的插入是由EDA工具自动完成的。首先,使 用EDA工具将芯片寄存器传输级描述(register transfer level code, RTL)转换成网表 档(门级描述(步骤402)。接着,使用EDA工具自动插入扫描链电路(步骤404),其中该 扫描链电路用以输入自动测试向量(ATPG)至组合逻辑电路(如图2的输入寄存器202及 输出寄存器206)。接着,使用EDA工具对已插入扫描链的网表文件进行模拟,生成自动测试 向量,并得到覆盖率分布报告(步骤406)。若芯片整体覆盖率超过一界限值(步骤408), 则表示扫描过程可对芯片逻辑电路的大部分电路的生产瑕疵进行检验,因此此芯片的扫描 测试覆盖率可以被接受。 若芯片整体扫描覆盖率低于一界限值(步骤408),则依据覆盖率报告分析组合逻 辑电路的未覆盖点分布(步骤410)。接着,可执行412a或412b步骤。操作者可在寄存器 传输级描述(RTL)上增加插入测试电路的寄存器传输级(RTL)描述(步骤412a)。插入测 试电路的目的是为了提高测试覆盖率。测试电路在RTL上修改,但是在RTL到门级的转换 过程中EDA工具还会在此基础上完成扫描电路的替换和插入(替换flip-flop以及把他们 串成扫描链)。接着再重复执行步骤402至408,以检测插入本发明的测试电路后的覆盖率 是否提升至高过界限值。操作者也可在网表上修改并插入测试电路(步骤412b)。直接在 EDA工具插完扫描链的网表(netlist)上修改,此时就必须使用门级的描述,把新增的测试 电路与之前的扫描链串到一起。接着再重复执行步骤406至408,以检测插入本发明的测试 电路后的覆盖率是否提升至高过界限值。由于此时组合逻辑电路的未覆盖点已于步骤410、 412a/412b进行测试电路的插入,进行重新扫瞄时的覆盖率将大为增加。
图5为一包含大量组合逻辑电路的功能电路600的实施例的区块图。这一功能电 路600包括多个10位寄存器602,多个33位加法器604、608、610、及614,多个乘法器606, 33X 10位乘法器612,以及43位寄存器616。假设组合逻辑电路600已经经过模拟扫瞄,扫 描报告中指出,在扫描过程中组合逻辑电路600具有大量未覆盖点存在,而未覆盖点可随 机分布于组合逻辑电路600的各部位。又假设其中大量未覆盖点分布于33X 10位乘法器 612内部。为了增加组合逻辑电路600于扫描过程的覆盖率,必须于组合逻辑电路600中 插入依据本发明的测试电路。当然,测试电路的插入点可选择位于33X 10位乘法器612之 前,或位于33X 10位乘法器612之后,所需求的测试电路的数量会因插入点的不同而异,得 到了覆盖率也会不同,可由操作者视应用情况而灵活选择。 假设操作者选取33X 10位乘法器612的输出端与加法器614的输入端间的节点 635为插入点,而决定经由插入点635将测试电路插入组合逻辑电路600中。由于33X10 位乘法器612的输出端输出43个位,因此共有43个插入点,每点用以传递1位数据,每点 均须插入图6的测试电路650。图6显示将依据本发明的一测试电路650插入图5的组合 逻辑电路600的插入点635的区块图。如图所示,测试电路650如图3的测试电路310般, 包括寄存器652、654、及多路选择器656。当扫描激活信号SE未激活时,组合逻辑电路600 可如不存在测试电路650般正常运作。当扫描过程执行时,扫描激活信号SE被激活,使测 试电路650依据输入的自动测试向量SI运作,而提升组合逻辑电路600的覆盖率。因此, 本发明的测试电路可提高扫描过程中对组合逻辑电路的测试点的覆盖率,并减少对测试向 量的需求,从而有效降低测试时间,进而降低测试成本。
在上述实施例中共需插入43个测试电路,每一测试电路皆含有两个寄存器652、 654与一多路选择器656。而在另一实施例中,假设其受测电路与图6相同仍需插入43个受 测电路,则在此例中的测试电路仅需含有一寄存器与一多路选择器(如上述的寄存器654 与多路选择器656),而原先所使用的另一寄存器(如上述的寄存器652),在此例中则可利 用一或数个寄存器(小于43个)共享。 而在另一各实施例中,其每一测试电路还可以包含多个寄存器,以依据实际受测 试电路的复杂度而有所变动,不会因此失去弹性。 因此,可以知道本发明的测试电路具有一定的设计弹性,且其扫描链的顺序(也 就是每个寄存器SI端连到哪一个寄存器的Q端)也并非一定要如同上述的实施例所述,而 可以依照实际需要自行设定或是由工具自动设定,并非固定不变的。 在一芯片的受测试电路中会包含多个组合逻辑电路,因此上述实施例中虽然都以 组合逻辑电路作为说明,但这仅是为了解说方便而已,并不限定本发明的范围。也即表示在 受测试电路中只要是属于数字电路皆可以利用本发明的方法,在适当的位置插入测试电路 以提高电路覆盖率。 虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟习此项 技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范 围当视权利要求所界定者为准。
权利要求
一种增加受测试电路的覆盖率的方法,其特征在于,该方法包括辨别该受测试电路的一覆盖率是否低于一界限值;当该覆盖率低于一界限值时,分析所述的受测试电路以决定至少一个该受测试电路的插入点;以一测试电路插入所述的受测试电路的所述的插入点,其中该受测试电路因该测试电路插入而使该受测试电路包含位于该插入点之前的一第一电路以及位于该插入点之后的一第二电路;以及输入一自动测试向量至所述的测试电路及所述的受测试电路,以进行对该受测试电路进行扫瞄。
2. 如权利要求1所述的增加受测试电路的覆盖率的方法,其特征在于,该方法还包含 一步骤于辨别所述的受测试电路的一覆盖率是否低于一界限值步骤之前分析所述的受测试电路以产生一覆盖率报告,而得到该受测试电路的一覆盖率。
3. 如权利要求1所述的增加受测试电路的覆盖率的方法,其特征在于,当该覆盖率低 于一界限值时,分析所述的受测试电路以决定至少一个该受测试电路的插入点的步骤还包 含分析所述的受测电路以得到一覆盖点分布状态;以及依据所述的覆盖点分布状态以决定至少一个所述的受测试电路的插入点。
4. 如权利要求1所述的增加受测试电路的覆盖率的方法,其特征在于,所述的测试电 路的插入是以修改该受测试电路的寄存器传输级描述的方式进行。
5. 如权利要求1所述的增加受测试电路的覆盖率的方法,其特征在于,所述的测试电 路的插入是以修改该受测试电路的网表文件的方式进行。
6. 如权利要求1所述的增加受测试电路的覆盖率的方法,其特征在于,所述的测试电 路包括一第一寄存器, 一第二寄存器以及一多路选择器。
7. 如权利要求1所述的增加受测试电路的覆盖率的方法,其特征在于,所述的测试电 路是用以提升该受测试电路于所述的扫描过程的覆盖率。
8. 如权利要求1所述的增加受测试电路的覆盖率的方法,其特征在于,所述的覆盖率 是所述的扫描过程的覆盖点的数目与所述的受测试电路的所有节点数目的比率。
9. 一种测试电路,可应用至一芯片受测试电路中任一节点,其特征在于,该测试电路插 入于该受测试电路中,将该受测试电路分为一第一电路与一第二电路,该测试电路包括一第一寄存器,输出一第一储存值为一第一信号,当一扫描激活信号激活时寄存所述 的受测试电路所接收的一自动测试向量为所述的第一储存值,而当该扫描激活信号未激活 时寄存一第一数值为所述的第一储存值;一第二寄存器,输出一第二储存值为一第三信号,当所述的扫描激活信号激活时寄存 所述的第一信号为所述的第二储存值,而当该扫描激活信号未激活时寄存所述的第一电路 输出的一第二信号为所述的第二储存值;以及一多路选择器,输出一第四信号至所述的第二电路的输入端,依据所述的第一信号选 取所述的第二信号与所述的第三信号其中的一作为该第四信号。
10. 如权利要求9所述的测试电路,其特征在于,所述的多路选择器依据第一信号会选取所述的第二信号作为所述的第四信号,在一正常工作模式下。
11. 如权利要求9所述的测试电路,其特征在于,所述的测试电路还包括一输入寄存 器,当所述的扫描激活信号激活时寄存并输出所述的自动测试向量至所述的第一电路的输 入端及所述的第一寄存器的输入端,当所述的扫描激活信号未激活时寄存并输出一数据信 号至所述的第一电路的输入端及所述的第一寄存器的输入端。
12. 如权利要求9所述的测试电路,其特征在于,所述的测试电路还包括一输出寄存 器,当所述的扫描激活信号激活时寄存并输出所述的第三信号,当所述的扫描激活信号未 激活时寄存并输出所述的第二电路的输出信号。
13. 如权利要求9所述的测试电路,其特征在于,所述的测试电路还包括多个寄存器,可任意耦接于所述的第一寄存器或所述的第二寄存器,以增加所述的受测试电路的覆盖率。
全文摘要
本发明提供一种测试电路及其增加芯片电路扫描覆盖率的方法。该方法包括,辨别该受测试电路的一覆盖率是否低于一界限值;当该覆盖率低于一界限值时,分析所述的受测试电路以决定至少一个该受测试电路的插入点;以一测试电路插入所述的受测试电路的所述的插入点,其中该受测试电路因该测试电路插入而使该受测试电路包含位于该插入点之前的一第一电路以及位于该插入点之后的一第二电路;以及输入一自动测试向量至所述的测试电路及所述的受测试电路,以进行对该受测试电路进行扫瞄。
文档编号G01R31/3185GK101788645SQ20091000598
公开日2010年7月28日 申请日期2009年1月22日 优先权日2009年1月22日
发明者张志唅 申请人:扬智科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1