通用串行总线物理层收发器嵌入式自我测试的方法及装置的制作方法

文档序号:7629463阅读:192来源:国知局
专利名称:通用串行总线物理层收发器嵌入式自我测试的方法及装置的制作方法
技术领域
本发明涉及一种通用串行总线物理层收发器嵌入式自我测试的方法及采用该测试方法的装置。
背景技术
在通用串行总线(USB)2.0的设计中对USB物理层收发器(phy)的测试是通过物理层收发器嵌入式自我测试(phy build in self test,简称phybist)来完成。物理层收发器嵌入式自我测试的测试向量(pattern)由测试台提供。测试台通过检测返回的物理层收发器嵌入式自我测试故障(phybist-fail)信号来检测物理层收发器的好坏。
图1是现有技术的物理层收发器嵌入式自我测试模式的结构示意图。如图1所示,以TSMC USB2.0物理层收发器为例,测试台向物理层收发器提供24MHz PLL参考时钟phy_r_clk,并将物理层收发器嵌入式自我测试启动信号phybist_on置成高使得芯片处于物理层收发器嵌入式自我测试模式。当测试台通过物理层收发器复位信号phy_reset复位完物理层收发器以后,通过测试管脚向物理层收发器输入测试向量,并且在这个过程中检测phybist-fail信号。在现有技术的物理层收发器嵌入式自我测试方法中,由于测试台向物理层收发器输入的是24MHz时钟,所以向物理层收发器输入的数据也是基于该24MHz时钟产生的。而物理层收发器是用它自身产生的30MHz时钟clkusb(未图示)的下降沿来采集输入数据,所以物理层收发器的输入实际上是异步的。所以,现有方法用8个24MHz时钟周期为单位来输入数据,8个24MHz时钟周期输入数据变一次相当于10个30MHz时钟周期数据变一次。
现有方法存在以下缺点1)不能完全解决异步问题。由于物理层收发器的30MHz时钟是从PLL分频而来,所以与输入的24MHz时钟有着不固定的偏移,不同批次的芯片可能有很大的不同,所以不同的批次的芯片测试向量都需要调整,费时费力;2)为了使测试向量在测试台上易于调试,往往不能使用很复杂的测试向量,物理层收发器嵌入式自我测试的测试覆盖率降低;3)另外,现有方法中测试向量是由测试台提供,占用较多的测试管脚使得物理层收发器嵌入式自我测试必须单独进行而不能和其他测试合成。

发明内容
本发明的目的在于提供一种新的物理层收发器嵌入式自我测试方案,消除物理层收发器嵌入式自我测试中存在的异步时序问题,降低调试难度;并且可以增加物理层收发器嵌入式自我测试测试向量的复杂程度,提高覆盖率;最后能够减少物理层收发器嵌入式自我测试所占用的测试管脚,使得物理层收发器嵌入式自我测试能够和其他测试组合起来,减少测试时间。
根据第一方面,本发明提供一种通用串行总线物理层收发器进行嵌入式自我测试的方法,所述方法包括所述物理层收发器输出内部的数据采集时钟给测试向量产生单元;所述测试向量产生单元基于该采集时钟,产生测试向量;所述测试向量产生单元将测试向量输入物理层收发器。
优选地,所述输入步骤在物理层收发器发出传输开始信号之后进行。
根据第二方面,提供一种通用串行总线物理层收发器进行嵌入式自我测试的测试装置,包括物理层收发器和测试向量产生单元,物理层收发器向测试向量产生单元输出其内部数据采集时钟,测试向量产生单元基于该内部数据采集时钟,产生测试向量,并且将其输入物理层收发器。
在第一和第二方面中,优选地,所述测试向量包括一组M个连续的1与N组连续的6个1加一个0的测试向量,这里M是大于7的整数,N是大于1的整数。
优选地,每一个所述测试向量分为连续的P部分,同一部分的数据依次从0累加到溢出,并且循环Q次,P为大于0的整数,Q是大于1的整数。


下面以举例的方式将参照附图对本发明的实施方案进行更详细的说明,其中图1是一种现有技术的物理层收发器嵌入式自我测试的结构示意图;
图2是根据本发明的物理层收发器嵌入式自我测试的结构示意图;图3是图2所示的物理层收发器嵌入式自我测试的时序图;图4是图2所示的物理层收发器进行内部校验的结构示意图。
具体实施例方式
图2是根据本发明的物理层收发器嵌入式自我测试的结构示意图。如图2所示,待测试的芯片包括物理层收发器和测试向量生成单元。测试模块主要功能由测试向量生成单元完成。测试向量生成单元的时钟使用物理层收发器输出的30MHz时钟clkusb,另外物理层收发器输出的传输开始信号txready被引入所述测试向量生成单元用于控制测试向量的传输。测试向量生成单元输出一组,每组物理层收发器数据输入信号utmidatain可以是16比特,另外所述测试向量生成单元还输出物理层收发器嵌入式自我测试结束信号phybist_finish。
由测试台提供测试使能信号phybist_on、物理层收发器复位信号phy_reset和为物理层收发器提供的输入时钟phy_r_clk。
测试台监控着物理层收发器输出的phybist_fail信号来检测物理层收发器是否工作正常,测试台还监控着测试向量生成单元输出的phybist_finish信号来控制物理层收发器嵌入式自我测试的结束。
图3是图2所示的物理层收发器嵌入式自我测试的时序图。当物理层收发器的复位完成时,物理层收发器的txready信号将变高,表示可以向物理层收发器提供测试向量,测试向量生成单元则使用物理层收发器提供的30MHz时钟clkusb生成物理层收发器的输入测试向量。当在传输过程中传输开始信号txready变低时,测试向量生成单元会保持住数据,等到txready重新变高后再继续送测试向量。当测试向量产生单元的所有测试向量都输送完毕后,phybist_finish信号会被置高,表示物理层收发器嵌入式自我测试已经完成。
图4是图2所示的物理层收发器进行内部校验的内部结构示意图。如图4所示,测试芯片上电后向物理层收发器提供参考时钟phy_r_clk。接着通过phy_reset(未图示)对物理层收发器进行复位。然后,测试台将phybist_on设成1,使物理层收发器进入物理层收发器嵌入式自我测试模式。这时,物理层收发器将通过锁相环PLL产生30MHz时钟clkusb和480MHz时钟。由外部提供的测试向量由utmidatain输入。物理层收发器使用clkusb将数据采集下来,分为两路,一路送到延迟单元做延时。另一路送到480MHz发送单元,使用480MHz时钟将16位30MHz并行数据转化为480MHz串行差分信号,并且在检测到连续6个1时插入填充比特stuff-bit。480MHz接收单元使用480MHz时钟将480MHz串行差分信号转化为16位30MHz并行信号,并送到数据比较模块。480MHz串行差分信号就是USB数据DP和DM信号,这是一组双向差分数据信号。数据比较模块将接收后的数据与延时后的数据进行比较。如果不相同,则将phybist_fail置成1。
在物理层收发器嵌入式自我测试中,测试向量的生成并没有很多特殊的要求。一般根据例如TSMC提供的建议可以选择USB传输中的几种特定数据结构进行测试,比如说高速传输模式(high-speed)包头同步(SYNC),数据包的PID(packet ID,包头标识),CRC16和CRC5校验码,以及包结束(EOP)等。另外,本发明还根据物理层收发器嵌入式自我测试的一些特点加入了一些自定义的测试向量。下文将对此进行描述。
物理层收发器进行嵌入式自我测试主要是为了检测物理层收发器中数字电路部分是否存在断路短路故障(stack-at)等错误,检测填充比特功能是否正常,也可以测试物理层收发器中的模拟部分是否正常工作,例如物理层收发器中PLL是否能正确锁定,会不会发生时钟相位漂移等等。
A.为了检测数字部分逻辑是否有stack-at错误以及检查数字部分逻辑是否存在时序问题(物理层收发器的高频部分工作在480MHz),本发明优选选择一组很高翻转率的测试向量。例如,保持数据的每一个比特在每一个时钟周期都翻转,可以检测出stack-at错误,而且如果高频部分时序有问题也很容易查出来。
B.根据USB2.0协议,物理层收发器会有一种添加填充比特的功能,即如果传输数据是连续的1,则物理层收发器会每隔6个连续的1插入一个0(stuff bit,填充比特)。这个功能是为了防止在发送和接收过多连续的1的时候由于时钟不准等原因造成的计数错误,这个比特起同步作用,没有实际传输意义。
为了检测这个功能,本发明设计了一组测试向量,这个测试分两步,用尽量简单的方法测试填充比特功能。
第一步采用一组M个连续的1,用于物理层收发器自身校验填充比特功能。M可以是大于7的整数,优选是21或28。由于在这一组数据中连续传输数据1,物理层收发器的数据发送单元会插入填充比特,物理层收发器的接收单元会去除填充比特,使得填充比特功能得到验证。如果在这个过程中没有出错,则说明物理层收发器插入和去除填充比特的功能正常。但是在数据是连续的1的情况下,有可能发生计数问题,即实际上从插入和取出填充比特的位置可能有问题,例如发送单元计数到6然后插入一个填充比特,但是接收单元计数到7,才发现一个0,并将它去除。因此还需要第二个测试。
第二步采用N组连续的6个1加一个0的测试向量。这里,N是大于1的整数,优选是3或4。加入一个0是为了检测物理层收发器在自身校验时对1计数是否准确。这样,如果发送单元和接收单元计数有差异,会出现序列中0的个数不同,而被检测出来。
此处,连续的1和0的概念指的是物理层收发器的发送和接收单元的数据(物理层收发器发送和接收的是1比特的串行差分信号),而对应着的数据输入是将每一个16比特的输入数据从低位到高位排列起来的序列。
C.为了检测物理层收发器的PLL能不能正常锁定,其产生的时钟是否发生了漂移的错误,本发明设计了一组依次累加的测试向量。举例而言,将输入的16比特数据utmidatain分为4部分,utmidatain[15:12],utmidatain[11:8],utmidatain[7:4],utmidatain[3:0]。每一部分使用一个加法器从0000累加到1111,并且循环数次。需要指出,比特数据utmidatain还可以按其它方式划分,比如划分为2部分或8部分,也可以不做划分。
由于每一个时钟周期数据都累加一次,所以如果时钟抖动(jitter)比较大(30MHz的抖动较大,则480MHz时钟收发时可能采错数),或者发生漂移(480MHz相对于30MHz的漂移),物理层收发器用以比较的数据发生错位。因此这种累加的办法可以很容易查出这种错误。
本发明方案的优点在于第一,使用物理层收发器提供的30MHz时钟提供测试向量可以完全消除不同时钟之间数据传输可能造成时序问题,从而使得在测试台上调试起来十分容易。第二,由于使用30MHz时钟来提供数据,所以无需象传统做法那样用10个24MHz时钟周期数据跳变一次的办法来避免异步时钟间数据传输出错的问题,可以每一个30MHz时钟数据跳变一次,从而使得测试向量的密度增加到原来的8倍,提高覆盖率。第三,在测试模式下和原有方案相比可以减少16个数据输入管脚,从而使得物理层收发器嵌入式自我测试可以方便地与其他测试向量组合起来测试。例如,可以和ROM嵌入式自我测试(rombist),RAM嵌入式自我测试(rambist),还有USB功能测试等结合起来,从而减少单独测试的时间,节约成本。
显而易见,在此描述的本发明可以有许多变化,这种变化不能认为偏离本发明的精神和范围。因此,所有对本领域技术人员显而易见的改变,都包括在本权利要求书的涵盖范围之内。
权利要求
1.一种通用串行总线物理层收发器进行嵌入式自我测试的方法,所述方法包括所述物理层收发器输出内部的数据采集时钟给测试向量产生单元;所述测试向量产生单元基于该采集时钟,产生测试向量;所述测试向量产生单元将测试向量输入物理层收发器。
2.如权利要求1所述的嵌入式自我测试的方法,其特征在于所述输入步骤包括物理层收发器发出传输开始信号,基于该信号,所述测试向量产生单元将测试向量输入物理层收发器。
3.如权利要求1所述的嵌入式自我测试的方法,其特征在于包括分别产生一组M个连续的1与N组连续的6个1加一个0的测试向量,并且先后输入物理层收发器,这里M是大于7的整数,N是大于1的整数。
4.如权利要求1所述的嵌入式自我测试的方法,其特征在于每一个所述测试向量分为连续的P部分,同一部分的数据依次从0累加到溢出,并且循环Q次,P为大于0的整数,Q是大于1的整数。
5.如权利要求4所述的嵌入式自我测试的方法,其特征在于P为4。
6.一种通用串行总线物理层收发器进行嵌入式自我测试的测试装置,包括物理层收发器和测试向量产生单元,物理层收发器向测试向量产生单元输出其内部数据采集时钟,测试向量产生单元基于该内部数据采集时钟,产生测试向量,并且将其输入物理层收发器。
7.如权利要求6所述的测试装置,其特征在于所述物理层收发器包括一个控制信号输出端,用于向测试向量产生单元输出传输开始信号,以便控制测试向量产生单元输出测试向量。
8.如权利要求6所述的测试装置,其特征在于所述测试向量包括一组M个连续的1与N组连续的6个1加一个0的测试向量,这里M是大于7的整数,N是大于1的整数。
9.如权利要求6所述的测试装置,其特征在于每一个所述测试向量分为连续的P部分,同一部分的数据依次从0累加到溢出,并且循环Q次,P为大于0的整数,Q是大于1的整数。
10.如权利要求6所述的测试装置,其特征在于P为4。
全文摘要
本发明提供一种通用串行总线物理层收发器进行嵌入式自我测试的方法和测试装置。所述方法包括所述物理层收发器输出内部的数据采集时钟给所述测试向量产生单元;所述测试向量产生单元基于该采集时钟,产生测试向量;所述测试向量产生单元将测试向量输入物理层收发器。采用本发明,可以消除物理层收发器嵌入式自我测试中存在的异步时序问题,降低调试难度,物理层收发器嵌入式自我测试测试向量的复杂程度,提高覆盖率,能够减少物理层收发器嵌入式自我测试所占用的测试管脚,使得物理层收发器嵌入式自我测试能够和其他测试组合起来,减少测试时间。
文档编号H04L12/26GK1794671SQ20051013277
公开日2006年6月28日 申请日期2005年12月26日 优先权日2005年12月26日
发明者张 浩, 李国新, 陈志华, 李晓强, 腰健勋 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1