专利名称:含有宏的半导体器件及其测试方法
技术领域:
本发明涉及一种含有多个电路块(宏)的半导体器件(如单片机)及一种用于测试该半导体器件的方法。
在现有技术中所用的单片机中,多个宏被由输入端与输出端之间的连接串联起来。为了测试这些连接,就需提供一条边界扫描路径。应该注意,边界扫描路径也被用于测试宏的功能。这将在后面进行详细说明。
但是,在上述现有技术中所用的单片机中,当宏的数目及其连接的数目增加时,就需要有一定的面积以用于边界扫描路径的硬件。因此,集成度就会被降低。另外,也不可能完全地测试这些连接。
本发明的一个目的是提供一种含有多个宏的半导体器件,它能够提高集成度并能完全测试宏的连接。
本发明的另一个目的是提供一种用于测试这种半导体器件的方法。
根据本发明,提供一种半导体器件,包括公共总线以及多个串联连接的宏。各个宏都由内部电路、连接在内部电路的输入端与公共总线之间的缓冲区、与公共总线相连的寄存器以及用于选择内部电路的输出信号与寄存器的输出信号之一的逻辑电路组成。
通过以下与先前工作进行比较的文字说明并参考附图,本发明将变得更加清晰易懂。在附图中
图1的电路框图显示出了现有技术中所用的单片机;
图2的电路框图显示出了本发明所述单片机的第一实施例;图3是图3所示宏的详细电路图;图4A,4B和4C的流程图显示了图3所示测试电路的工作步骤;图5的电路图是对图2所示电路的修改;图6的电路框图显示出了本发明所述单片机的第二实施例;图7是图6所示宏的详细电路图;在对本发明的优选实施例进行说明之前,首先将参考图1对现有技术中的单片机进行说明。
在图1中,宏101,102和103被串联连接在输入端IN0,IN1,IN2和IN3与输出端OUT0,OUT1,OUT2及OUT3之间。宏101,102和103受中央处理器(CPU)104的控制。
为了对输入端IN0,IN1,IN2和IN3与宏101之间的连接L00~L03,宏101与102之间的连接L10~L13,宏102与103之间的连接L20~L23以及宏103与输出端OUT0,OUT1,OUT2和OUT3之间的连接L30~L33进行测试,设置了一条边界扫描路径。应该注意,该边界扫描路径也被用于测试宏101,102和103的功能。
上述边界扫描路径由以下部分组成与输入端IN0,IN1,IN2和IN3连接的4位移位寄存器105,与宏101的输入连接的4位移位寄存器106,与宏101的输出连接的4位移位寄存器107,与宏102的输入连接的4位移位寄存器108,与宏102的输出连接的4位移位寄存器109,与宏103的输入连接的4位移位寄存器110,与宏103的输出连接的4位移位寄存器111,以及与输出端OUT0,OUT1,OUT2及OUT3连接的4位移位寄存器112。寄存器112,111,110,109,108,107,106和105被串联连接在数据输入端TDI与数据输出端TDO之间。
另外,为了控制这条边界扫描路径,还需提供与时钟端TCK和宏选择端TMS相连的测试访问端口(TAP)控制电路113,与输入数据端TDI相连的指令寄存器114,与输入数据端TDI相连的旁路寄存器115,用于选择边界扫描路径与指令寄存器114之一的选择器116,以及用于选择边界扫描路径与旁路寄存器115之一的选择器117。
在正常模式中,全部移位寄存器105至112都被CPU 104置于导通状态。其结果使得移位寄存器105至112不会对宏101,102和103的操作产生影响。
在用于对连接L00,L01,…,L33进行测试的测试模式中,当全部移位寄存器105至112被清零之后,各移位寄存器105,107,109和111将被设置成(1,1,1,1)。然后,移位寄存器105,107,109和111的数据将通过连接L00,L01,…,L33而被写入移位寄存器106,108,110和112。最后,全部的移位寄存器105至112被串联连接起来,从而使全部移位寄存器105至112的数据被从数据输出端TDO读出。读出的数据被与处于(1,1,…,1)情况下的预定数据进行比较,从而可判断出连接L00,L01,…,L33是导通还是断开。
但是,在图1所示的单片机中,当宏的数目和其连接的数目增加时,移位寄存器的数量和尺寸也要增加。还有,边界扫描路径也需要一定的面积。因此,电路的集成度将被降低。另外,也可以对宏(如102)与移位寄存器(如109)之间的连接(由图1中的X1表示)以及移位寄存器(如112)与输出端(如OUT0,OUT1,OUT2及OUT3)之间的连接(由图1中的X2表示)进行测试。
图2显示了本发明的第一实施例。宏1,2和3被串联连接在输入端IN0,IN1,IN2和IN3与OUT0,OUT1,OUT2和OUT3之间。宏1,2和3由CPU 4经公共总线5控制。
为了对输入端IN0,IN1,IN2和IN3与宏1之间的连接L00至L03,宏1与宏2之间的连接L10至L13,以及宏3与输出端OUT0,OUT1,OUT2和OUT3之间的连接L30至L33进行测试,公共总线5上还连接有一个测试电路6。应该注意,测试电路6还被用于测试宏1,2和3的功能。
这样,测试电路就可在不需CPU 4的情况下对宏1,2和3进行测试。
还应注意,测试电路6可产生复位信号R1,R2和R3并将它们分别传送给宏1,2和3,而且还可产生选择信号S1,S2和S3并将它们分别传送给宏1,2和3。
图3显示出了图2所示宏1,2和3的详细电路图。其中,宏1由一与图1所示宏101相对应且与连接L00,L01,L02和L03相连的内部电路11,连接在公共总线5与连接L00,L01,L02和L03之间的缓冲区12,与公共总线5相连的寄存器13以及与内部电路11和寄存器13及连接L10,L11,L12和L13相连的OR(或门)电路14组成。内部电路11由测试电路6发出的复位信号R1来复位,而寄存器13则由测试电路6发出的选择信号S1来选中。
还有,宏2由与图1所示宏102相对应且与连接L10,L11,L12和L13相连的内部电路21,连接在公共总线5与连接L10,L11,L12和L13之间的缓冲区22,与公共总线5相连的寄存器23以及与内部电路21和寄存器23及连接L20,L21,L22和L23相连的OR电路24组成。内部电路21由测试电路6发出的复位信号R2来复位,而寄存器23则由测试电路6发出的选择信号S2来选中。
另外,宏3由与图1所示宏103相对应且与连接L20,L21,L22和L23相连的内部电路31,连接在公共总线5与连接L20,L21,L22和L23之间的缓冲区32,与公共总线5相连的寄存器33,以及与内部电路31和寄存器33及连接L30,L31,L32和L33相连的OR电路34组成。内部电路31由测试电路6发出的复位信号R3来复位,而寄存器33则由测试电路6发出的选择信号S3来选中。
对图3的测试电路6的操作所做的说明是参考图4A,4B和4C进行的。应该注意的是,该测试电路6也由一个微电脑或类似装置构成,其任务是执行图4A,4B和4C所示的各个程序。
图4A中的流程图用于测试图3所示的连接L00,L01,L02和L03。
首先,在步骤401中,数据(1,1,1,1)被从外部提供给输入端IN0,IN1,IN2和IN3。
接下来,在步骤402中,通过公共总线5从缓冲区12中读出数据D1。
然后,在步骤403中,程序将判断数据D1是否与(1,1,1,1)相符。作为结果,如果D1=(1,1,1,1),则控制前进至步骤404。反之,控制将直接前进至步骤408,该步骤确定出连接L00,L01,L02和L03中有一些是异常的,即,是断开的。
另一方面,步骤404中,数据(0,0,0,0)被从外部提供给输入端IN0,IN1,IN2和IN3。
接下来,在步骤405中,数据D1通过公共总线5被从缓冲区12中读出。
然后,在步骤406中,程序将判断数据D1是否与(0,0,0,0)相符。作为结果,如果D1=(0,0,0,0),则控制前进至步骤407,该步骤确定出连接L00,L01,L02和L03是正常的。反之,控制将前进至步骤408,该步骤确定出连接L00,L01,L02和L03中有一些是异常的,即,断开的。
这样,就完成了对连接L00,L01,L02和L03的测试操作。
图4B中的流程图用于测试图3所示的连接L10,L11,L12和L13。
首先,在步骤411中,测试电路6产生一个复位信号R1以使内部电路11复位。在这种情况下,内部电路11的输出变为“0”。
接下来,在步骤412中,测试电路6产生一个选择信号S1以选中寄存器13,并将数据(1,1,1,1)写入寄存器13。
然后,在步骤413中,数据D2通过公共总线5被从缓冲区22中读出。
接下来,在步骤414中,程序将判断数据D2是否与(1,1,1,1)相符。作为结果,如果D2=(1,1,1,1),则控制前进至步骤415。反之,控制将直接前进至步骤419,该步骤确定出连接L10,L11,L12和L13中有一些是异常的,即,断开的。
另一方面,在步骤416中,测试电路6再次产生一个选择信号S1以选中寄存器13,并将数据(0,0,0,0)写入寄存器13。
然后,在步骤416中,数据D2通过公共总线5被从缓冲区22中读出。
接下来,在步骤417中,程序将判断数据D2是否与(0,0,0,0)相符。作为结果,如果D2=(0,0,0,0),则控制前进至步骤418,该步骤确定出连接L10,L11,L12和L13是正常的。反之,控制将前进至步骤419,该步骤确定出连接L10,L11,L12和L13中有一些是异常的,即,断开的。
这样,就完成了对连接L10,L11,L12和L13的测试操作。
应该注意,对连接L20,L21,L22和L23的测试操作与对图4B所示连接L10,L11,L12和L13的测试操作方法相同。
图4C中的流程图用于测试图3所示的连接L30,L31,L32和L33。
首先,在步骤421中,测试电路6产生一个复位信号R3以使内部电路31复位。在这种情况下,内部电路31的输出变为“0”。
然后,在步骤422中,测试电路6产生一个选择信号S3以选中寄存器33,并将数据(1,1,1,1)写入寄存器33。
接下来,在步骤423中,从外部读取输出端OUT0,OUT1,OUT2和OUT3上的数据。
然后,程序将判断输出端OUT0,OUT1,OUT2和OUT3上的数据是否与(1,1,1,1)相符。作为结果,如果(OUT0,OUT1,OUT2,OUT3)=(1,1,1,1),则控制前进至步骤424。反之,控制将直接前进至步骤427,该步骤确定出连接L30,L31,L32和L33中有一些是异常的,即,断开的。
另一方面,在步骤424中,测试电路6产生一个选择信号S3以选中寄存器33,并将数据(0,0,0,0)写入寄存器33。
然后,在步骤425中,输出端OUT0,OUT1,OUT2和OUT3上的数据被从外部读取。接下来,程序将判断输出端OUT0,OUT1,OUT2和OUT3上的数据是否与(0,0,0,0)相符。作为结果,如果(OUT0,OUT1,OUT2,OUT3)=(0,0,0,0),则控制前进至步骤426,该步骤确定出连接L30,L31,L32和L33是正常的。否则,控制将直接前进至步骤427,该步骤确定出连接L30,L31,L32和L33中有一些是异常的,即,断开的。
这样,就完成了对连接L30,L31,L32和L33的测试操作。
图5是对图3所示宏1,2和3的一个修改,在图5中,AND(与门)电路14′,24′和34′取代了图3中的OR电路14,24和34。在这种情况下,当内部电路11,21和31被测试电路6发出的复位信号R1,R2和R3复位时,内部电路11,21和31的输出将变为“1”。在图5中,测试电路6的操作步骤与图4A,4B和4C所示的步骤相同。
图6显示出了本发明的第二实施例。在图6中,由测试电路6将4位输入测试数据TDI1提供给图2和图3中宏1的内部电路11,4位输入测试数据TDI2被测试电路6提供给图2和图3中宏2的内部电路21,并且4位输入测试数据TDI3被测试电路6提供给图2和图3中宏3的内部电路31。另外,选择信号S1′,S2′和S3′也被测试电路6分别提供给宏1,2和3。
图7是图6所示宏1,2和3的详细电路图。在图7中,分别将选择器15,25和35增加到图3所示的宏1,2和3之中。
当对图7所示的连接L00,L01,…,L33进行测试时,测试电路6的操作步骤与图4A,4B和4C所示的步骤相同。
当对内部电路11,12和13之一的功能进行测试时,测试电路6将产生选择信号S1′,S2′和S3′之一,以控制选择器15、25或35。例如,当测试电路6产生选择信号S1′时,选择器15将选中其低侧输入。在这种情况下,由于测试电路6产生输入测试数据TDI1,从而从选择器15将测试数据TDI1提供给内部电路11。因此,内部电路11将根据测试数据TDI1执行预定的操作,并随即产生输出测试数据TDO1。输出测试数据TDO1被提供给测试电路6,从而完成对内部电路11的测试。
在上述各实施例中,尽管对连接L00,L01,…,L33所做的测试是由测试电路6来完成的,但也可利用CPU 4来执行这样的测试。
如上所述,根据本发明,即使当宏的数目以及其连接的数目增加时,由于不再需要一块区域以用于边界扫描路径,所以集成度就可得到提高。另外,它也能对所有从输入端经宏到达输出端的连接进行完全测试。
权利要求
1.一种半导体器件,其特征在于包括公共总线(5);以及多个由连接(L00,L01,…,L33)串联起来的宏(1,2,3),上述各个宏都由以下部分组成内部电路(11,21,31);缓冲区(12,22,32),它们连接于上述内部电路的输入端与上述公共总线之间;寄存器(13,23,33),它们与上述公共总线相连接;以及逻辑电路(14,24,34),它们与上述内部电路和上述寄存器相连,用于选择上述内部电路的输出信号与上述寄存器的输出信号之一。
2.如权利要求1所述的半导体器件,其特征在于上述逻辑电路含有一个或(OR)电路。
3.如权利要求1所述的半导体器件,其特征在于上述逻辑电路含有一个与(AND)电路。
4.如权利要求1所述的半导体器件,其特征在于上述各个宏都含有一个选择器(15,25,35),它们与上述内部电路的输入相连,用于为上述内部电路提供功能测试数据(TDI1,TDI2,TDI3)。
5.如权利要求1所述的半导体器件,其特征在于它还含有一个测试电路(6),它与上述公共总线相连,用于对上述连接进行测试。
6.如权利要求1所述的半导体器件,其特征在于它还含有输入端(IN0,…,IN3),它们与第一组上述连接(L00,L01,L02,L03)相连,该第一组连接(L00,L01,L02,L03)连接至上述宏的第一级输入;以及输出端(OUT0,…,OUT3),它们与第二组上述连接相连,该第二组所述连接与上述宏的最后一级输出相连。
7.如权利要求1所述的半导体器件,其特征在于它是一个单片机。
8.一种用于对半导体器件进行测试的方法,该半导体器件含有一公共总线(5)以及多个由连接(L00,L01,…,L33)串联起来的宏(1,2,3),上述各个宏都由以下部分组成内部电路(11,21,31);缓冲区(12,22,32),它们连接于上述内部电路的输入端与上述公共总线之间;寄存器(13,23,33),它们与上述公共总线相连接;以及逻辑电路(14,24,34),它们与上述内部电路和上述寄存器的输出相连,用于选择上述内部电路的输出信号与上述寄存器的输出信号之一,上述方法的特征在于包括以下步骤对上述宏中第一个宏的内部电路进行复位;在上述第一个宏的内部电路被复位之后,通过上述公共总线将测试数据写入上述第一个宏的寄存器;通过上述公共总线从与上述第一个宏的输出相连的上述第二个宏的缓冲区中读出数据;及将上述读出的数据与上述测试数据进行比较。
9.一种用于对半导体器件进行测试的方法,该半导体器件含有一公共总线(5)以及多个由连接(L00,L01,…,L33)串联起来的宏(1,2,3),上述各个宏都由以下部分组成内部电路(11,21,31);缓冲区(12,22,32),它们连接于上述内部电路的输入端与上述公共总线之间;寄存器(13,23,33),它们与上述公共总线相连接;以及逻辑电路(14,24,34),它们与上述内部电路和上述寄存器的输出相连,用于选择上述内部电路的输出信号与上述寄存器的输出信号之一,上述方法的特征在于包括以下步骤为上述输入端提供测试数据;通过上述公共总线从上述宏的第一级的缓冲区中读出数据;以及将上述读出的数据与上述测试数据进行比较。
10.一种用于对半导体器件进行测试的方法,该半导体器件含有一公共总线(5)以及多个由连接(L00,L01,…,L33)串联起来的宏(1,2,3),上述各个宏都由以下部分组成内部电路(11,21,31);缓冲区(12,22,32),它们连接于上述内部电路的输入端与上述公共总线之间;寄存器(13,23,33),它们与上述公共总线相连接;以及逻辑电路(14,24,34),它们与上述内部电路和上述寄存器的输出相连,用于选择上述内部电路的输出信号与上述寄存器的输出信号之一,上述方法的特征在于包括以下步骤对上述宏中最后一级宏的内部电路进行复位;在上述最后一级宏的内部电路被复位之后,通过上述公共总线将测试数据写入上述最后一级宏的寄存器;以及将上述输出端的数据与上述测试数据进行比较。
全文摘要
本发明所述的一种半导体器件包括一公共总线(5)以及多个由连接(L
文档编号G01R31/3185GK1276533SQ00109029
公开日2000年12月13日 申请日期2000年6月2日 优先权日1999年6月4日
发明者大塚重和 申请人:日本电气株式会社