发明内容
因此,本发明的一个目的是提供一种基于事件的半导体测试系统,用来直接从事件存储器中的事件数据生成测试信号和测试选通脉冲以鉴定半导体装置。
本发明的另一个目的是提供一种基于事件的半导体测试系统,其中,由距预定基准点的时间长度来定义每个事件的定时。
本发明的又一个目的是提供一种基于事件的半导体测试系统,其中,由距最后一个事件的时间长度来定义每个时间的定时。
本发明的再一个目的是提供一种基于事件的半导体测试系统,其中,结合基准时钟周期的整数倍数和基准时钟周期的分数倍数来定义事件之间的时间长度。
本发明的再一个目的是提供一种基于事件的半导体测试系统,该系统通过按比例因子(scaling factor)的比例更改当前事件的延迟时间来缩放(scaling)能够产生当前事件的定时数据。
本发明的再一个目的是提供一种基于事件的半导体测试系统,该系统结合了用来在事件存储器中存储事件数据的数据压缩和解压缩技术,以减少事件存储器的容量。
本发明的再一个目的是提供一种基于事件的半导体测试系统,该系统在被测试的半导体装置的设计阶段中就能够直接使用由CAD系统的测试台产生的数据来生成测试信号和选通脉冲。
本发明是一种基于事件的测试系统,用于通过向电子待测器件提供一测试信号,并在选通信号的定时处评价该待测器件的输出来测试待测器件,该系统包括:
一个事件存储器,用来存储事件数据,其中该事件数据是由定时数据和事件类型数据构成,其中每个事件的定时数据是由作为整数部分数据的基准时钟周期的整数倍数和作为分数部分数据的该基准时钟周期的分数倍数形成,所述事件类型数据代表要由所述基于事件的测试系统产生的每个事件的类型,所述定时数据是当前事件和预先设定的基准点之间的时间差,其中事件定义为用于测试待测器件的测试信号的逻辑状态的任何变化;
一个地址序列器,用来产生用于访问所述事件存储器以从中读出所述定时数据的地址数据;
一个定时计数逻辑电路,用来产生一被延迟的事件启动信号,所延迟的时间为该整数部分数据与该基准时钟周期相乘而得的时间;
一个事件产生单元,其根据用于确定所述测试信号或选通信号的来自所述定时计数逻辑电路的事件启动信号和来自所述事件存储器的该事件类型数据和该分数部分数据来产生每个事件;和
一个主机,用于控制所述基于事件的测试系统的整个操作。
另外,本发明提供一种基于事件的测试系统,通过向电子被测试装置提供一测试信号并在一选通信号的定时处评价该待测器件的输出来测试待测器件,其特征在于该系统包括:
一个事件存储器,用于存储由定时数据和事件类型数据构成的事件数据,其中每个事件的定时数据是由作为整数部分数据的基准时钟周期的整数倍数和作为分数部分数据的该基准时钟周期的分数倍数形成,所述事件类型数据代表要由所述基于事件的测试系统产生的每个事件的类型,所述定时数据是两个相邻事件之间的时间差并以压缩形式被存储在所述事件存储器中,其中事件定义为用于测试半导体待测器件的测试信号的逻辑状态的任何变化;
一个地址序列器,用于产生用于访问所述事件存储器以从中读出所述定时数据的地址数据;
一个解压缩单元,用于再现来自所述事件存储器的所述定时数据;
一个定时计数逻辑电路,用于求得来自所述解压缩单元的所述定时数据的和以产生一个事件启动信号,该事件启动信号从前一事件启动信号起被延迟,所延迟的时间为该整数部分数据与微调数据和与基准时钟周期相乘所得的时间,其中该微调数据和是指前面事件的分数部分数据之和,所述定时计数逻辑电路包括一个延迟装置,该延迟装置用于每当所述分数部分数据的和超过所述基准时钟周期时,就向所述事件启动信号提供一个基准时钟周期的附加延迟;
一个事件产生单元,用于基于用来形成所述测试信号和选通信号的来自所述定时计数逻辑电路的所述事件启动信号和所述微调数据和来产生一个当前事件,所述当前事件在由相关于所述事件启动信号的所述微调数据和所延迟的定时处产生;和
一个主机,用于通过一测试程序来控制所述基于事件的测试系统的整个操作。
在本发明的另一方面中,事件存储器包括一个事件计数存储器,用来存储每个事件的定时数据的整数部分数据;一个微调存储器,用来存储每个事件的定时数据的分数部分数据;和一个事件类型存储器,用来存储代表对应于事件计数存储器和微调存储器中的定时数据的每个事件类型的数据。
在本发明的另一方面中,该基于事件的测试系统还包括一个在事件存储器和定时计数逻辑电路之间的解压缩单元,用于从存储在事件存储器中的被压缩的事件数据再现事件数据,定时计数逻辑电路包括按比例因子的比例更改来自事件存储器的事件数据的一个比例逻辑电路。
在本发明的另一方面中,事件产生单元包括一个去多路复用器,用来基于来自事件存储器的事件类型数据来选择性地提供来自定时计数逻辑电路的事件启动信号;多个可变延迟电路,用来接收来自去多路复用器的事件启动信号,其中每个可变延迟电路提供一个由来自定时计数逻辑电路的微调和数据定义的附加延迟;和用来产生测试信号间的可变偏移延迟的装置。
根据本发明,基于事件的半导体测试系统能够基于存储在事件存储器中的事件数据来产生测试信号和选通脉冲以鉴定半导体装置。由距一公共基准点(绝对时间)或距最后事件(时间增量)的时间长度差来定义每个事件的定时。基于其距前一事件的时间增量由结合基准时钟同期的整数倍数和基准时钟周期的分数倍数定义的事件信息来产生测试信号和选通脉冲。
具体实施方式
图3是表示本发明的基于事件的测试系统的结构示例的示意图。基于事件的测试系统包括一个主机22和一个总线接口23,它们都与系统总线24相连,一个内部总线25、一个地址序列器28、一个故障存储器27、一个事件存储器30、一个解压缩单元32、一个定时计数和比例逻辑电路33、一个事件产生单元34和一个管脚电子设备36。该基于事件的测试系统鉴定测试下的半导体装置(DUT)38,该装置典型的是连接至管脚电子设备36的存储器IC、微处理器IC或ASIC。
主机22的一个例子是工作站。主机22用作一个用户接口以使用户能在主机内指示测试的启动和停止操作,装入测试程序和其它测试条件,或进行测试结果分析。主机22通过系统总线24和总线接口23与一个硬件测试系统连接。虽然图中未示,但主机22最好连接至一通信网站以发送或接收来自其它测试系统或计算机网站的测试信息。
内部总线25是硬件测试系统中的一个总线,并通常被连接到大部分功能块,例如地址序列器28、故障存储器27、解压缩单元32、定时计数和比例逻辑电路33和事件产生单元34。地址序列器28的一个示例是硬件测试系统专用的测试处理器,并且不能被用户访问。该地址序列器28基于来自主机22的测试程序和条件向测试系统内的其它功能块提供指令。故障存储器27在由地址序列器28定义的地址中存储测试结果,如DUT38的故障信息。存储在故障存储器27中的信息被用于待测器件的故障分析阶段。
地址序列器28的一个任务是如图3所示的向事件存储器30提供地址数据。在实际的测试系统中,将提供多个事件存储器30,它们中的每一个都可对应于测试系统的一个测试管脚(测试信道)。事件存储器30存储用于测试信号和选通信号的每个事件的定时数据。如下面将详细描述的那样,事件存储器30分别以两种方式来存储事件数据,一个方式是存储为一个基准时钟周期的整数倍数的定时数据,另一个方式是存储为一个基准时钟周期的分数倍数的定时数据。在本发明中,每个事件的定时数据由将在下面详细描述的距一公共基准点(绝对时间)或最后事件(时间增量(delta time))的时间差来表示。
最好是,压缩事件存储器30中的定时数据以减少所需的存储容量。解压缩单元32接收来自事件存储器30的压缩数据,并通过一个解压缩过程来再现定时数据。
定时计数和比例逻辑电路33产生整个定时数据,该数据基于来自事件存储器30的时间增量数据直接产生一个当前事件。这种整个定时数据的一个示例是一个事件启动信号和一个自事件启动信号的延迟时间的结合。一方面,产生这种整个定时数据的过程包括和运算,其中,多个分数(微调)定时数据被相加。在求定时数据的和的过程中,在定时计数和比例逻辑电路33进行分数数据(偏移至整数数据)的进位操作。另一方面,产生整个定时数据的过程不包括该求和过程。
定时计数和比例逻辑电路33还用来按比例因子的比例更改定时数据。定时数据的这种缩放运算(scaling operation)包括用一个比例因子乘定时数据(每个时间增量或绝对时间)。例如,用一个比例因子“2”来缩放所示系统(基准)时钟为“1.5”的定时数据意味着结果定时数据为1.5*2=3.0个系统时钟。通常,对于由如上述事件计数和事件微调定义的定时数据(延迟时间)而言,该乘法包括(事件计数+事件微调)*(比例因子)=经缩放的延迟。
软件可以执行上述提到的求和和缩放运算。然而,变换大数据库的延迟所需的时间以及将该数据重新装入基于事件的测试器的时间将会很长,可直接用硬件完成较快的求和和缩放运算。多种缩放技术在基于事件的测试系统中都是可行的。
事件产生单元34基于来自定时计数和比例逻辑电路33的整个定时数据来实际产生事件。这样产生的事件(测试信号和选通信号的上升和下降点)通过管脚电子设备36被提供给DUT38。基本上,该管脚电子设备36包括多个用来连接半导体测试系统和被测试的半导体装置的接口电路。例如,每个接口电路由如图1所示的一驱动器、一比较器以及一开关形成,以建立关于该驱动器、比较器和DUT38的输入和输出关系。
图4是表示一半导体集成电路的设计阶段和该半导体集成电路的测试阶段之间的整个关系的示意图。该示例表示在电子设计自动(EDA)环境51下设计如片上系统(SoC)53的大规模集成电路(LSI)的情形。
在EDA环境51下设计半导体集成电路53后,获得设计数据文件55和测试数据文件63。通过不同的数据转换过程,该设计数据被转换成代表所设计的半导体集成电路中的每个栅的物理电平数据(physical level data)。基于该物理电平数据,在半导体集成电路生产过程(硅处理)中生产一实际集成电路59。
用半导体测试系统60来测试这样生产的集成电路。通过使用从集成电路的设计阶段导出的测试数据由测试台64执行一逻辑模拟,产生表示集成电路中输入-输出关系的数据文件65。这种数据文件的一个示例是Verilog的VCD(值改变堆(Value Change Dump))。
在半导体测试系统是如常规技术中的基于周期的情况下,转换软件67进行一格式转换处理,使得以基于事件的格式描述的VCD数据文件65被转换成基于周期的格式的测试信号。结果,该基于周期的测试图形被存储在半导体测试系统60中的文件68内。硬件测试器69向待测器件59提供该测试图形以测试该装置功能等。本发明的基于事件的测试系统能够通过将VCD数据存储在图3中的事件存储器30中而直接利用该VCD数据文件65。
图5A-5K表示用于基于事件数据产生事件的操作的一个示例。图6是表示定时计数和比例逻辑电路33的结构的一个示例的电路图,该电路33用于基于来自事件存储器30的相对于一公共基准点,即绝对时间的定时数据产生事件启动信号和微调数据。图7是表示定时计数和比例逻辑电路33的结构的另一个示例的电路图,该电路33基于来自事件存储器30的相对于前一事件,即时间增量的定时数据产生事件启动信号和微调数据。图6的示例不具有求和功能,而图7的示例包括用来求微调数据的和和产生进位信号的功能。值得注意的是,为了说明的简化,图6和7的电路结构没有示出用于比例逻辑电路的电路图。
在图6和7中,地址序列器28向事件存储器30提供地址数据。如上所述,地址序列器28可能是一个具有微处理器的测试处理器。然而,在最简单的情况下,地址序列器28是一个地址计数器。该地址计数器从零开始计数并连续地以加一直至检测到一个事先设定的停止地址。位宽度依赖于被支持的事件存储器的深度,然而,在实际操作中,16位是最小的要求。
在图6的示例中,事件存储器30由时钟计数RAM71、微调RAM72和一个事件类型RAM73构成。时钟计数RAM71存储定时数据的整数部分,即基准时钟间隔的整数倍数。微调RAM72存储定时数据的分数部分(微调),即基准时钟间隔的分数倍数。事件类型RAM73存储用来选择事件类型的数据。该事件类型为将测试器输出管脚信号(测试信号)设置为逻辑“1”、“0”或“高阻抗”,或设置用于在选通信号的定时处锁存来自DUT38的响应信号的期望数据的类型的一个选择。
为了用图6的定时计数和比例逻辑电路来生成图5I-5K示例中的事件,存储在事件存储器30中的数据被显示在图10A的数据表中。如上所述,定时存储器30中的定时数据描述相对于一公共基准点的每个事件的定时。换言之,定时数据表示自预先设定时间点产生的事件的绝对时间。因此,图6的定时计数和比例逻辑电路不包括求和功能。
在图5A-5K的示例中,事件1的定时为如图5I所示距离基准(启动)点1(3/16)ns(纳秒)。对于事件1而言,时钟计数RAM71中的定时数据为“1”,而微调RAM72中的数据为“3/16”。事件2的定时为如图5J中所示距离基准点2(10/16)ns。这样,时钟计数RAM71中的定时数据为“2”,而微调RAM72中的分数数据为10/16。因为事件3的定时为如图5K所示距离的基准点4(2/16)ns(纳秒),所以,时钟计数RAM71中的定时数据为“4”,而微调RAM72中的分数数据为“2/16”。
时钟计数RAM71中的数据(整数部分)表示在执行关联事件,即一个事件启动信号的定时之前所等待的基准(系统)时钟计数的数。在微调RAM72中,为微调部分分配的位数决定每小时的分数单元的数量,即在事件启动信号后产生的事件的定时。在上述示例中,分数单元的数量对于基准时钟的每一周期而言为“16”。
由图6的定时计数和比例逻辑电路来接收来自事件存储器30的事件数据。在该示例中,图6的电路图仅包括一个倒计数基准时钟脉冲(图5A)数的倒计数器75。来自时钟计数RAM的数据事先设定倒计数器74,使得倒计数器75计数基准时钟并当事先设定的数据到达零时生成一终端计数(事件启动信号)。来自微调RAM72的微调数据和来自事件类型RAM的事件类型数据被直接提供给事件产生单元34。
这样,在图5A-5K的示例中,如图5B所示的事件启动信号和表示图5C中的分数时间差的微调数据被提供给事件产生单元34,由产生图5I的事件1。接着,当计数为两个时钟脉冲时产生图5D的事件启动信号,并和表示图5E的分数时间差10/16的微调数据一起被提供给事件产生单元34,由此产生图5J的事件2。当计数为四个时钟脉冲时,产生图5G的事件启动信号,并同表示图5H的分数时间差2/16的微调数据一起被提供给事件产生单元34,由此产生图5K的事件3。
图7的示例具有被用来处理表示距前一事件,即时间增量的每个事件的时间差的事件数据的求和功能。在该情况下,事件存储器30中的当前事件的定时数据用距前一事件的延迟时间来表示。这样,对于图5I的事件1而言,时钟计数RAM71中的定时数据为“1”,而微调RAM72中的数据为3/16。事件2的定时是距离事件1为1(7/16)ns,如图5J所示。这样,时钟计数RAM71中的定时数据为“1”,而微调RAM72中的分数数据为7/16。因为事件3的定时为在事件2之后1(8/16)ns,如图5K所示,因此,时钟计数RAM71中的定时数据为“1”,而微调RAM72中的分数数据为8/16。
时钟计数RAM71中的数据(整数部分)表示在执行相关的事件前所等待的基准(系统)时钟的计数。微调RAM72中的数据(分数部分)表示在整数时钟计数结束(事件启动)后为执行该事件所等待的微调单元的个数。分配给微调部分的位数决定每时钟的分数单元的数目。在上述示例中,对于基准时钟的每个周期的分数单元的数目为“16”。
图10B的表中的微调和表示前一事件和当前事件的分数数据的和。例如,事件2的微调和为“10/16”,它是事件1中的微调计数“3/16”和事件2中的微调计数“7/16”的和。事件3的微调和为“18/16”,它是事件1中的微调计数“3/16”、事件2中的微调计数“7/16”和事件3中的微调计数“8/16”的和。由于该求和运算,所以当时钟计数被加1时,产生事件3的微调和2/16。
图10B右栏中的总时间表示对应于图5中的启动(基准)点“0”的事件的整个定时。通过求定时数据的整数部分和定时数据的分数部分的和来产生这一总时间。当分数部分的和超出基准时钟的单元时间间隔时,整数部分中的数据相应增加。事件1的总时间为距离基准点1(3/16)ns。事件2的总时间为距离基准点2(10/16)ns,而事件3的总时间为距离基准点4(2/16)ns。因此,每个事件1-3的事件启动信号和微调和以参照图6所述的相同方法被提供给事件产生单元34。
图7的定时计数和比例逻辑电路33包括倒计数器75、锁存器76、触发器77、多路复用器78和加法器79。该倒计数器75接收来自时钟计数RAM71的定时数据的整数部分。该加法器79接收来自微调RAM72的定时数据的分数部分。
例如,来自RAM71的整数部分数据被事先设置在倒计数器75中,该倒计数器75用时钟基准CLK来倒计数该事先设置的值。当倒计数器75到达零时,产生提供给多路复用器78的一个输入端的输出信号(终端计数)。多路复用器78的另一个输入被提供有触发器77的输出,其产生被延迟了一个时钟周期的倒计数器75的输出信号。这样,多路复用器将一个附加的时钟延迟计数插入到来自时钟计数RAM71的整数部分数据。多路复用器78的输出被表示为是基准时钟计数值的个数的一事件启动信号。该事件启动信号被提供给事件产生单元34和地址序列器28。
来自微调RAM72的分数部分数据被提供给加法器79的一个输入端。加法器79的另一个输入端通过锁存器76被提供了前一事件中的微调数据。这样,加法器79将所有来自微调RAM72的分数部分数据相加。当分数数据的和超出一个时钟计数,即为在上述提到的图5和10A中事件3的示例中所示的16/16时,产生一个进位给多路复用器78。当接到该进位时,多路复用器78选择触发器79的输出,由此将该事件启动信号延迟了一个基准时钟计数。这样,在图10B的示例中,分数数据的和对于事件3而言为“18/16”,向多路复用器78提供一个进位以在事件启动中引起一个时钟计数的附加延迟。在加法器79的输出产生作为微调和的剩余数据“2/16”。
在上述基础上,用图7的电路产生图5I-5K的事件1-3的过程如下所述。因为事件1的整数部分数据为“1”,所以倒计数器75通过计数图5A的基准时钟的一个脉冲来产生图5B的一个脉冲(终端计数)。图5B的终端计数在多路复用器78的输出被作为事件启动信号输出。图5C表示要被加到事件产生单元34中的时间启动信号的在加法器79的输出处的微调和,由此产生图5I的事件1。
因为事件2的整数部分数据也为“1”,所以倒计数器75通过计数一个时钟脉冲产生一个脉冲(终端计数)。在图5B的前一终端计数之后的一个周期产生倒计数器75的终端计数,因此,在多路复用器78的输出处产生如图5D所示的事件启动信号。图5E表示在加法器79的输出处的一个微调和,其要被加入到在事件产生单元34中的图5D的事件启动信号中。因为事件1的分数数据为“3/16”,并且事件2的分数数据为“7/16”,所以加法器79的输出处的图5E的微调和为“10/16”,它被加到图5D的事件启动信号,由此产生图5J的事件2。
对于事件3,因为事件3的整数部分数据也为“1”,所以倒计数器75通过计数一个时钟脉冲产生一个脉冲终端计数。倒计数器75的终端计数被发送给多路复用器78,它位于图5F,即从基准点延迟了三个时钟计数的定时中。然而,因为前一事件中的微调和“10/16”被加法器79加到事件3的分数数据“8/16”,事件3的分数数据的和为“18/16”。因此,向多路复用器78提供一个进位以选择触发器77的输出,其将一个时钟计数的附加延迟表示为图5G中所示的事件启动信号。在加法器79的输出处产生作为如图5H中所示的微调和的剩余数据“2/16”。这样,通过将图5H的微调和加到图5G的事件启动信号上来生成图5K的事件3。
事件产生单元34中的电路结构的一个示例如图8的电路图中所示。如前面简要提到的,图8的事件产生单元34基于由图6或7的定时计数和比例逻辑电路提供的事件启动信号和微调和来产生测试信号和选通信号。
图8的电路图包括去多路复用器82、比较器83、可变延迟电路85-87、异或电路88、SR触发器91和92、管脚驱动器93、可变延迟电路95-97、触发器102-104、异或电路105和触发器106。可变延迟电路85-87和95-97可通过相应事件处理器(图中未示)而被实现,以便用来自图6或7的电路图的微调(微调和)来选择经校准的延迟时间。为了方便说明,管脚93和比较器83也包括在图8中,虽然这些元件在实际应用中更可能会包括在图3的管脚电子设备36中。
当DUT管脚为一输入管脚时,管脚驱动器93的输出向DUT管脚提供一个测试信号。由管脚驱动器93产生测试信号的期望振幅和转换速度。当DUT管脚为输出管脚时,比较器83接收DUT的响应输出。比较器83提供一模拟功能,以将被连接的DUT管脚的模拟电平与事先设置的电压范围进行比较,并决定DUT管脚位于何范围内。三个可能的范围为如图8中所示的“高”电平、“低”电平和高阻抗“Z”。在该示例中,这些范围中一次仅有一个范围是有效的。
去多路复用器82接收来自图6或7的定时计数和比例逻辑电路的事件启动信号和来自事件存储器30中的事件类型RAM73的事件类型数据。该事件类型数据被提供给去多路复用器82的选择终端。于是,该事件启动信号被去多路复用到具有由事件类型指定的可变延迟电路的相应事件处理器。
当事件类型数据表示当前事件(事件1)为“驱动DUT管脚为高”时,该事件启动信号被发送至可变延迟器85,其中,它被由微调和(vernier sum)定义的时间所延迟。这样,可变延迟电路的输出(如图5I中所示的事件1)设置SR触发器91。这将使得管脚驱动器93驱动连接的DUT管脚至逻辑一。
当事件类型数据表示当前事件(事件2)为“驱动DUT管脚为低”时,该事件启动信号被发送至可变延迟器86,其中,它被由微调和定义的时间所延迟。这样,可变延迟电路的输出(如图5J中所示事件2)复位SR触发器91。这将使得管脚驱动器93驱动连接的DUT管脚至逻辑零。
当事件类型数据表示当前事件为“关闭对DUT的驱动”时,该事件启动信号被发送至可变延迟器87,其中,它被由微调和定义的时间延迟。这样,可变延迟电路的输出复位SR触发器92。这将使与DUT管脚相连的管脚驱动器93置于高阻抗状态,以由比较器83接收DUT管脚的输出。
当管脚驱动器93处于高阻抗模式以由比较器83接收来自DUT管脚的信号时,该事件典型地被用来产生选通信号以锁存比较器输出的逻辑值。例如,当事件类型数据表示当前事件为“测试高阻抗下的DUT”时,事件启动信号被传送至可变延迟器95,其中,它被由微调和定义的时间所延迟。比较器83比较DUT管脚的电压电平与预编程的高阻抗电平。如果没有达到最小高阻抗电平,则比较器83的结果输出被来自触发器102中的可变延迟电路95的选通信号(事件3)锁存。该数据表示DUT故障,并经OR电路105和触发器106选通,输出为“错误”。
当事件类型数据表示当前事件为“测试低电平下的DUT”时,事件启动信号被传送至可变延迟器96,其中,它被由微调和定义的时间所延迟。比较器83比较DUT管脚的电压电平和经预编程的低电平。如果没有达到最小高阻抗值,则比较器83的结果输出在来自触发器103中的可变延迟电路96的选通信号的定时处被锁存。该数据表示DUT故障,并经OR电路105和触发器106选通,输出为“错误”。
当事件类型数据表示当前事件为“测试高电平下的DUT”时,事件启动信号被传送至可变延迟器97,其中,它被由微调和定义的时间所延迟。比较器83比较DUT管脚的电压值与经预编程的高电平。如果没有达到最小高阻抗值,则比较器83的结果输出在来自触发器104中的可变延迟电路97的选通信号的定时处被锁存。该数据表示DUT故障,并经OR电路105和触发器106选通,输出为“错误”。
图9是表示用来将事件数据装入多个管脚中的本发明的基于事件的测试系统的系统构造示意图。管脚卡1511-151n通过管脚总线113被连接,这里每个管脚卡115可分别由管脚总线控制器112来设定地址。管脚总线控制器112连接到运行测试控制器软件的主机111。管脚总线控制器112提供启动、停止、测试结果、事件数据装入经过全局的管脚总线信号将和管脚排序在一起的服务。该结构允许建立一个“N”管脚测试系统。
图11-13说明本发明的基于事件的测试系统中引入的压缩和解压缩技术。该技术的更详细的说明已在本发明的同一受让人所拥有的美国专利申请09/259,402中给出。图11是表示由时钟计数数据和微调数据组合的定时数据定义的事件系列T0-T10的时序图。如上所述,时钟计数数据表示事件的基准时钟周期的整数倍数,而微调数据表示该相应事件的基准时钟周期的分数倍数。
图12A是表示用于定义不使用压缩技术的图11的事件T0-T10的事件存储器中的定时数据的数据表。如图6和7所示,该事件存储器被分成时钟计数存储器(RAM)71和微调存储器(RAM)72。用于时钟计数存储器71的数据可以是从0至N的基准时钟周期的任何个数,其中,N是基于事件的测试系统被期望支持的基准时钟周期的最大个数值。
例如,在本发明的受让人设计的一个基于事件的测试系统中,时钟计数存储器71可支持达134,217,728个时钟周期。对于每个事件计数存储器位置而言,需要总共27个数据位。这样,这种情况下的事件计数存储器的总尺寸为M乘以27位,其中,M为该测试系统中的矢量数(测试图形长度)。
如上所述,微调数据存储器72存储指定基准时钟周期的分数倍数的精确的延迟(定时)数据。于是,微调数据小于一个基准时钟周期。依赖于测试系统支持的精确的阶跃延迟,微调数据存储器的宽度需要足够大以包含一个完全的基准时钟周期。例如,在一个具有小至0.2ns的定时分辨能力的测试系统中,当基准时钟周期为32ns时,微调数据存储器需要具有至少8个数据位。在上述图2A的示例中,微调存储器72具有10位的数据宽度,这样,整个存储器尺寸为矢量M乘以10位。
因为测试矢量的尺寸大至几兆字节或几十兆字节,所以,如果定时数据需以图12A的表中所示方法存储在事件存储器中,则事件存储器的整个尺寸会变得非常大。例如,用来描述事件T0-T10的时钟计数数据的位数为297,用于事件T0-T10的微调数据的位数为110,结果得到的总数为407位。
因此,本发明的基于事件的测试系统采用压缩和解压缩技术来减少事件存储器的容量。图12B是表示描述图11的事件T0-T10的压缩定时数据的一个示例的数据表。用于事件T0-T10的时钟计数数据的位数为88,而用于微调数据的位数为110,结果得到总数为198位,与图12A中的407位大不相同。在该示例中,时钟计数数据用字(8位)为单位表示,其中,依据基准时钟的个数所使用的字数达到4个(32位)。每个字的详细结构表示在如上述提到的美国专利申请09/259,402中。
在图11和12的示例中,假设事件T0的时钟计数数据可用一个字表示,事件T1为两个字,事件T2为三个字,事件T4为四个字,事件T7为一个字。还假设图11中的事件T3、T5、T6、T8、T9和T10中的每一个都小于基准时钟周期。因此,通过分配表达时钟计数数据所需的最小字数,可减少时钟计数存储器中的整个存储区域。另外,对于需要小于一个基准时钟周期的事件而言,用于这些事件的时钟计数数据为零。则有可能通过不给这些事件分配任何存储区域而在微调数据存储器72中组合微调数据中用于这些事件的微调数据,减少时钟计数存储器71的存储器尺寸。
在图12B的示例中,微调数据存储器72在每一时钟计数存储位置存储四(4)个微调数据。这样,微调数据存储器72具有40位宽度。当一个测试矢量包含多个小于一个基准时钟周期的事件时,该方法可能有用。另外,组合两个或更多事件的微调数据使得该测试系统以比系统时钟频率更快的频率工作。这是因为在每次访问(时钟)事件存储器时,基于微调数据可在同一时间产生两个或更多的事件。因为每个事件计数数据的第一个字包含将要产生的事件的个数,所以有可能识别当前事件的正确的微调数据。
解压缩单元32中的电路结构的一个示例如图13所示。解压缩单元32解压缩从事件存储器接收的由本发明的压缩技术压缩的定时数据。在该示例中,所有压缩和解压缩过程由系统软件执行。下面是对解压缩单元32的简要描述。更详细的描述已在上述提到的美国专利申请09/259,402中给出。
图13的解压缩单元32包括一个时钟计数状态机121、一个装入/倒计数器122、一个微调控制状态机123和一个存储和选择电路126。该存储和选择电路126的该示例包括寄存器131-134和多路复用器135-137。来自时钟计数存储器71的时钟计数数据被提供给时钟计数状态机121和装入/倒计数器122。如参考图11-12所述,在该最佳实施例中,使来自存储器71的时钟计数数据配置有一、二、三或四个数据字,每个字具有8位的结构,即一个字节。来自微调数据存储器72的微调数据被提供给存储和选择电路126中的寄存器131和132。如上所述,在该最佳实施例中,微调数据由40个位形成,用来描述高达四个微调事件。
在接收到时钟计数数据时,时钟计数状态机121通过抽样时钟计数数据的最高有效位来确定每个事件的数据位数。基于这一确定,状态机121将来自时钟计数存储器71的数据位装入装入/倒计数器122的正确位置。每个数据字为8位,而且数据字中被分配的数据位在第一个字与第二至四个字间是不同的。再现的事件计数数据被传送至定时计数和比例逻辑电路33。
存储和选择电路126接收来自微调数据存储器72的微调数据。在图12B的表中所示的上述示例中,微调数据存储器72的每个存储位置由用于四(4)个微调数据的40个位构成。来自存储器72的微调数据交替地每次被置于寄存器131和132中的一个。尽管访问微调数据存储器72的速度低,但这种交叉操作使定时计数和比例逻辑电路33能够使用足够的数据。
寄存器131和133将指定的微调数据并行发送给多路复用器135的,以便多路复用器135能够以连续的方式向多路复用器137传输正确的微调数据。类似地,寄存器132和134将指定的微调数据并行发送给多路复用器136,以便多路复用器136能够以连续的方式向多路复用器137传输正确的微调数据。这种选择寄存器131-134和多路复用器135-137中的微调数据的操作在微调控制状态机123的控制下进行。该被选择的微调数据被发送至事件计数和比例逻辑电路33。
图14-16表示本发明的基于事件的测试系统中引入的缩放技术。更详细的描述在由本发明的同一受让人拥有的美国专利申请09/286,226中给出。图14是表示事件计数和比例逻辑电路33中的比例逻辑电路的基本结构示例的示意图。该缩放的目的是按比例因子的比例扩大或缩小定时数据而不改变事件存储器中的定时数据。
图14的基本构造包括一个事件求和逻辑电路142和一个事件延迟比例电路(Event Delay Scaling)146。基本上,事件求和逻辑电路142对应于图7的电路图,用来求得多个事件的微调数据增量的和。事件求和逻辑电路142包括事件计数延迟143和事件微调延迟144。事件计数延迟143基本上是一个倒计数器,当在该倒计数器中预置的事件计数数据为零时,计数基准时钟以产生一终端计数。事件微调延迟144例如是一个用来求得微调数据和的累加器并当该和超过一个基准时钟周期时,向事件计数延迟143提供一个进位信号,由此在该事件计数延迟中加入一个基准时钟。来自事件计数延迟143的终端计数信号和来自事件微调延迟144的微调和(余数)被提供给事件延迟比例电路146。
乘法器148接收来自事件计数延迟逻辑电路143的合成的整数延迟值。该整数延迟值在乘法器148中被乘以比例因子。乘法器149接收来自事件微调延迟电路144的合成微调延迟值。该微调延迟值在乘法器149中被乘以比例因子。由加法器147将两个乘法器148和149的缩放的结果相加。微调比例的结果中的整数必需由加法器147加到整数部分延迟上。接着,加法器147输出处的整数部分延迟和分数部分延迟被提供给事件产生单元34。
图15表示使用比例因子去乘定时数据的比例逻辑电路的一个特定示例。下面简要说明图15的实现。更详细的描述在上述提到的美国专利申请09/286,226中给出。事件计数状态机151部分对应于图14的事件求和逻辑电路142中的事件计数延迟电路143。该事件计数状态机151基于从所有在先事件累加出来的延迟数据的整数部分产生一个有效的数据使能。寄存器152存储该比例因子。
图15的实施例基本上由一个事件计数比例电路、一个事件微调比例电路和一个事件比例输出电路形成。该事件计数比例电路大致对应于图14的乘法器148,事件微调比例电路大致对应于图14中的乘法器149。另外,事件比例输出电路大致对应于图14中的加法器147。基于累加的事件计数数据而由状态机151产生的有效数据使能通过寄存器159和触发器161被传送至事件比例输出电路,由此产生该事件的一个事件启动信号。事件比较输出也产生表示为相对于该事件启动信号的延迟定时的事件的分数部分的事件微调数据(微调和)。
来自寄存器152的比例因子被提供给图15中的事件计数比例电路和事件微调比例电路。该事件计数比例电路包括一个比例计数器153,一个由加法器154和一个寄存器155形成的累加器。事件微调比例电路包括一个乘法器157和一个寄存器158。该事件比例输出电路包括一个加法器162、一个触发器163和一个状态机164。虽然未特别显示,但通常向图15的每个电路部分提供基准时钟。
在该示例中,在事件计数比例电路中,比例因子的分数部分被提供给加法器154,而比例因子的整数部分被提供给比例计数器153。在事件微调比例电路中,比例因子的全部值(full scale)(整数和分数部分)被提供给乘法器157。来自事件微调存储器的微调数据被提供给乘法器157,以被该比例因子相乘。
比例因子的整数部分复位比例计数器153,使得每当计数值达到事先设定的值时,比例计数器153就产生一个终端计数(TC)脉冲。例如,当比例因子的整数部分显示为“3”时,每当计数三个基准时钟脉冲时,比例计数器153就产生终端计数脉冲。终端计数脉冲作为一个时钟使能信号被提供给事件计数状态机151,以便当终端计数脉冲的数量达到状态机151中指定的累加事件计数值时,产生该有效数据使能。
来自比例计数器153的终端计数脉冲也被提供给寄存器155和158。如上所述,因为寄存器155和加法器154形成累加器,所以,每当寄存器155接收该终端计数脉冲时,比例因子的分数部分就被加到前一分数部分。在累加的分数部分超过一个整数,例如“1”,即一个基准时钟周期的情况下,由比例计数器153接收一个结果进位信号,以在由此产生终端计数脉冲之前,加入一个基准时钟周期的额外延迟。
在事件微调比例电路中,寄存器158将比例因子与微调数据相乘所得的微调值传输至事件比例输出电路中的加法器162。这样,事件比例输出电路中的加法器162将来自寄存器(累加器)155的累加分数部分加到来自寄存器158的比例微调数据。在求和的结果产生溢出,即一个整数时,表示这一整数的最高有效位(MSB)被提供给状态机164以加一个由整数定义的额外延迟。基于由该额外延迟定义的定时,状态机164发出提供给事件产生单元134的有效数据使能或事件启动信号。由事件比例输出电路产生的比例事件微调的分数部分也提供给事件产生单元34。
根据本发明,基于事件的半导体测试系统能够基于存储在事件存储器中的事件数据产生测试信号和选通脉冲以鉴定该半导体装置。每个事件的定时由距一公共基准点(绝对时间)或距最后事件(时间增量)的时间长度差来定义。基于事件信息产生测试信号和选通脉冲,其距前一事件的时间增量由基准时钟周期的整数倍数和基准时钟周期的分数倍数的结合来定义。
本发明的基于事件的半导体测试系统能够直接使用事件存储器中的定时数据产生测试信号和选通脉冲。本发明的基于事件的半导体测试系统在被测试的半导体装置的设计阶段中就能够直接使用由的CAD系统的测试台产生的数据,以生成测试信号和选通脉冲。
虽然这里仅说明和描述了特定的最佳实施例,但应该明白,在不脱离本发明的实质和预期的范围时,在上述示教的启发下和附加的权利要求的范围内,可能对本发明进行许多更改或变化。