具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种高速信号测试方法、装置和系统。以下分别进行详细说明。
实施例一、
本实施例将从高速信号测试装置的角度进行描述。
一种高速信号测试方法,适用于第一器件和第二器件之间的高速串行互连链路测试,包括:初始化第一器件的发送端参数和第二器件的接收端参数,或者,初始化第二器件的发送端参数和第一器件的接收端参数,并进行环回(Loopback)误码率测试,得到环回测试结果;若环回测试结果表明从第一器件到第二器件方向的信号的误码率不满足预置要求时,进行从第一器件到第二器件方向的信号质量和误码率测试;若环回测试结果表明从第二器件到第一器件方向的信号的误码率不满足预置要求时,进行从第二器件到第一器件方向的信号质量和误码率测试;
其中,第一器件使用随路时钟采样模式进行数据采样,第二器件使用CDR采样模式进行数据采样。该第一器件具体可以为专门目的而设计的集成电路(ASIC,Application Specific Integrated Circuit)或者其他使用随路时钟采样模式进行数据采样设备,第二器件具体可以为现场可编程门阵列(FPGA,FieldProgrammable Gate Array)或者其他使用CDR采样模式进行数据采样设备。
参见图1a,具体流程可以如下:
101、初始化第一器件的发送端参数和接收端参数,以及初始化第二器件的发送端参数和接收端参数,并进行环回误码率测试,得到环回测试结果;若环回测试结果表明从第一器件到第二器件方向的信号的误码率不满足预置要求时,则执行步骤102;若环回测试结果表明从第二器件到第一器件方向的信号的误码率不满足预置要求时,则执行步骤103;例如,具体可以如下:
将第一器件的发送端参数和第二器件的接收端参数设置为初始值(即默认值),然后由第一器件发送测试码流给第二器件,进行环回误码率测试,得到环回测试结果;或者,
将第二器件的发送端参数和第一器件的接收端参数设置为初始值(即默认值),然后由第二器件发送测试码流给第二器件,进行环回误码率测试,得到环回测试结果。
其中,环回误码率测试具体可参见现有技术,比如,如果是以第一器件为起点的话,则该环回误码率测试为:由第一器件发送测试码流给第二器件,然后由第二器件将测试码流转发回第一器件;或者,
如果是以第二器件为起点的话,则该环回误码率测试为:由第二器件发送测试码流给第一器件,然后由第一器件将测试码流转发回第二器件。
需说明的是,在进行环回测试时,在第一器件和第二器件中都需要进行误码率统计(Error counter),以第一器件为ASIC,第二器件为FPGA为例,参见图1b,当ASIC发送测试码流给FPGA时,FPGA进行误码率统计,然后FPGA再将测试码流转发给ASIC,此时ASIC也会进行误码率统计;或者,当FPGA发送测试码流给ASIC时,ASIC进行误码率统计,然后ASIC再将测试码流转发给FPGA,此时FPGA也会进行误码率统计。
其中,第一器件使用随路时钟采样模式进行数据采样,第二器件使用CDR采样模式进行数据采样。
此外,需说明的是,本发明所有实施例中所提及的预置要求具体可以根据实际场景进行设置,此后不再赘述。
102、在环回测试结果表明从第一器件到第二器件方向的信号的误码率不满足预置要求时,进行从第一器件到第二器件方向的信号质量和误码率测试;例如,具体可以如下:
(1)设置第一器件的发送端参数和第二器件的接收端参数;
比如,可以将第一器件的发送端参数和第二器件的接收端参数都设置为初始值,即默认值。
(2)由第一器件发送测试码流给第二器件,以进行信号质量测试;
比如,第一器件可以发送PRBS23码流给第二器件。
(3)确定测试码流的信号质量是否满足预置要求;
若信号质量满足预置要求,则将当前的第一器件的发送端参数,以及对应的第二器件的接收端参数作为一组参数组合,然后调整第二器件的接收端参数,返回执行确定测试码流的信号质量是否满足预置要求步骤;
若信号质量不满足预置要求,则判断是否遍历完第一器件中所有的发送端参数;
若已遍历完,则选择信号质量最优的发送端参数,以及对应的第二器件的接收端参数作为一组参数组合,然后调整第二器件的接收端参数,返回执行确定测试码流的信号质量是否满足预置要求步骤;
若尚未遍历完,则保持第二器件的接收端参数不变,调整第一器件的发送端参数,返回执行确定测试码流的信号质量是否满足预置要求的步骤。
也就是说,在得到当前第二器件的接收端参数所对应的信号质量最优的第一器件的发送端参数之后,还需要调整第二器件的接收端参数,重复上述步骤(即步骤(3)),以确定该调整后第二器件的接收端参数所对应的信号质量最优的第一器件的发送端参数,直至遍历完第二器件中的所有的接收端参数。
这是因为,第一器件可能具有多组发送端参数,而第二器件也可能存在多组接收端参数,但是,并不知哪一组发送端参数对应哪一组接收端参数,可以得到好的信号质量,所以,可以通过在第二器件的接收端中观察信号质量,然后调整第一器件中的发送端参数,来选择当前接收端参数最匹配(即可以得到最好的信号质量)的发送端参数。其中,在本发明实施例中,将该最匹配的第二器件的接收端参数和第一器件的发送端参数称为参数组合。
(4)根据参数组合进行误码率测试。例如,具体可以如下:
从所有参数组合中选择一组作为当前参数组合;根据该当前参数组合设置第一器件的发送端参数和第二器件的接收端参数;由第一器件发送测试码流给第二器件,并由第二器件扫描采样窗口宽度;判断是否遍历完所有参数组合,若尚未遍历完,则选择下一组参数组合作为当前参数组合,返回执行根据当前参数组合设置第一器件的发送端参数和第二器件的接收端参数的步骤;若已遍历完毕,则选择采样窗口宽度最大的N组参数组合进行长时间误码率测试,若误码率满足预置要求,则从第一器件到第二器件方向的测试结束,若误码率不满足预置要求,则表明需要优化从第一器件到第二器件的链路信号质量。
需说明的是,其中,N为大于1的正整数,N的具体取值可以根据实际应用的需求进行设置,比如,如果N为3,则第二器件可以将扫描得到的采样窗口宽度按从大到小的顺序进行排序,然后取排序靠前的前三个采样窗口宽度所对应的参数组合作为进行长时间误码率测试的参数组合,以此类推,等等。
103、在环回测试结果表明从第二器件到第一器件方向的信号的误码率不满足预置要求时,进行从第二器件到第一器件方向的信号质量和误码率测试。例如,具体可以如下:
(1)将第一器件的接收端参数设置为初始值(即默认值),以及设置第二器件的发送端参数;
比如,可以将第一器件的发送端参数和第二器件的接收端参数都设置为初始值,即默认值。
(2)由第二器件发送测试码流给第一器件,以进行信号质量测试;
比如,第二器件可以发送PRBS23码流给第一器件。
(3)确定测试码流的信号质量是否满足预置要求;
若信号质量满足预置要求,则将当前的第二器件的发送端参数作为信号质量最优的发送端参数,根据信号质量最优的发送端参数进行误码率测试;
若信号质量不满足预置要求,则判断是否遍历完第二器件中所有的发送端参数;
若已遍历完,则在确定第一器件具有用于对线路损失进行补偿的均衡参数时,选择信号质量最优的发送端参数,根据该信号质量最优的发送端参数进行误码率测试;
若尚未遍历完,则保持第一器件的接收端参数不变,调整第二器件的发送端参数,返回执行确定测试码流的信号质量是否满足预置要求的步骤。
由于第一器件的接收端参数不一定可以进行调整,所以与步骤102中不同的是,此时并不需要遍历第一器件中的所有接收端参数,而是仅仅只需确定当前的第一器件的接收端参数所对应的信号质量最优的第二器件的发送端参数即可。
(4)在确定第一器件具有用于对线路损失进行补偿的均衡参数时,根据该信号质量最优的发送端参数进行误码率测试。例如,具体可以如下:
将得到的信号质量最优的发送端参数设置为第二器件的发送端参数,将第一器件的接收端参数设置为初始值;由第二器件发送测试码流给第一器件,以进行误码率测试,若误码率符合预置要求,则从第二器件到第一器件方向的测试结束;若误码率不符合预置要求,则在确定第一器件的接收端参数能够进行调整时,遍历第一器件中的所有接收端参数,返回执行进行误码率测试步骤;若遍历完第一器件中的所有接收端参数后,误码率仍不符合预置要求,则表明需要优化从第二器件到第一器件的链路信号质量。
需说明的是,如果确定第一器件不具有用于对线路损失进行补偿的均衡参数,则表明需要优化从第二器件到第一器件的链路信号质量。
此外,还需说明的是,在步骤101之前,还需要对第一器件的电源和输入时钟信号质量,以及第二器件的电源和输入时钟信号质量进行测试,在确定第一器件的电源和输入时钟信号质量,以及第二器件的电源和输入时钟信号质量符合要求时,才执行步骤101。其中,电源和输入时钟信号质量的测试具体可参见现有技术,在此不再赘述。
由上可知,本实施例采用通过对使用随路时钟采样模式进行数据采样的第一器件和使用CDR采样模式进行数据采样的第二器件进行环回误码率测试,若发现从第一器件到第二器件方向的误码率不满足要求,则进一步进行从第一器件到第二器件方向的信号质量和误码率测试,若发现从第二器件到第一器件方向的误码率不满足要求,则进一步进行从第二器件到第一器件方向的信号质量和误码率测试,该方案可以适用于不同数据信号采样模式应用在同一高速互连系统的场景。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以第一器件具体为ASIC,第二器件具体为FPGA为例进行说明。
如图2所示,该图为ASIC和FPGA之间进行高速串行互连的场景示意图,其中,ASIC接收时钟发生链路发送的CPU系统输入时钟,并使用随路时钟采样模式进行数据采样,而FPGA则接收时钟发生链路发送的FPGA系统输入时钟,并使用CDR采样模式进行数据采样。在该场景下所进行的高速信号测试方法具体可以如下:
首先,需要对ASIC的电源和输入时钟信号质量,以及FPGA的电源和输入时钟信号质量进行测试,参见图3,具体可以如下:
201、高速信号测试装置对ASIC的供电和FPGA的供电进行测试,若供电均符合要求,则执行步骤A202,若有一方以上的供电不符合要求,比如ASIC的供电不符合要求,或FPGA的供电不符合要求,或ASIC和FPGA的供电均不符合要求,则表明需要解决电源问题,在解决了电源问题之后,再返回执行对ASIC的供电和FPGA的供电进行测试的步骤。
202、高速信号测试装置对ASIC的输入时钟信号质量和FPGA的输入时钟信号质量进行测试,若输入时钟信号质量均符合要求,则表明电源和输入时钟信号质量的测试完毕,流程结束,若有一方以上的输入时钟信号质量不符合要求,比如ASIC的输入时钟信号质量不符合要求,或FPGA的输入时钟信号质量不符合要求,或ASIC和FPGA的输入时钟信号质量均不符合要求,则表明需要解决输入时钟的信号质量问题,在解决了输入时钟的信号质量问题之后,返回执行对ASIC的输入时钟信号质量和FPGA的输入时钟信号质量进行测试的步骤。
其中,电源问题和输入时钟信号质量问题的解决方法具体可参见现有技术,在此不再赘述。
在解决了ASIC和FPGA的供电问题和输入时钟信号质量问题之后,就可以开始测试ASIC和FPGA之间的数据通道的数据传输可靠性。参见图4,具体流程可以如下:
301、高速信号测试装置初始化ASIC的发送端参数和接收端参数,以及初始化FPGA的发送端参数与接收端参数,并进行环回误码率测试,得到环回测试结果,以定位ASIC和FPGA之间的高速信号链路上哪个方向的信号质量存在致命缺陷,导致误码率的增加。
如果环回测试结果表明从FPGA到ASIC方向(即FPGA->ASIC)的信号的误码率不满足预置要求,则表明需要对从FPGA到ASIC方向的信号进行信号质量测试和误码率测试,于是执行步骤302。
如果环回测试结果表明从ASIC到FPGA方向(即ASIC->FPGA)的信号的误码率不满足预置要求,则表明需要对从ASIC到FPGA方向的信号进行信号质量测试和误码率测试,于是执行步骤303。
如果两个方向(即ASIC->FPGA和FPGA->ASIC)的误码率测试都满足要求,则表明当前的ASIC发送端参数和接收端参数,以及FPGA的发送端参数与接收端参数均可使用。
302、当确认FPGA->ASIC方向上误码率过高时,说明FPGA发送的高速数据信号的信号质量过差,比如眼高过窄,眼宽过小等,此时可以进行FPGA->ASIC方向的信号质量和误码率测试,以调整FPGA的发送端参数和ASIC的接收端参数。
需说明的是,高速串行信号一般测试眼图,信号质量好坏主要取决于眼高、眼宽、RJ,DJ以及在某一误码率下的TJ,因为ASIC采用随路时钟采样模式,所以其接收信号质量的主要因素为眼高和眼宽,而RJ、DJ及TJ的参数则不是主要影响因素,所以对FPGA->ASIC方向的误码率测试的重点在于FPGA发送端参数的调整,即调整FPGA的预加重及摆幅,使其输出的高速数据信号可以满足ASIC接收要求的眼高及眼宽。也就是说,因为ASIC采用随路时钟采样模式进行数据采样,所以在满足眼高、眼宽信号质量要求的前提下,只要保证FPGA发送的随路时钟跳变沿在FPGA发送的数据眼宽的中心位置,就可以满足误码率的要求。
其中,FPGA->ASIC方向的信号质量和误码率测试具体可以如下:
(1)FPGA->ASIC方向的信号质量测试;
参见图5a,FPGA->ASIC方向的信号质量测试的流程具体可以如下:
A3021、高速信号测试装置控制FPGA进入测试模式,初始化FPGA的发送端参数和ASIC的接收端参数。
例如,可以将FPGA的发送端参数设置为默认值,以及将ASIC的接收端参数设置为默认值。
A3022、高速信号测试装置控制FPGA发送适用于ASIC的测试码流给ASIC,比如,FPGA可以发送PRBS23码流给ASIC。
A3023、利用高速示波器在ASIC的接收端对测试码流进行测试,并存储相应的测试数据,然后用ASIC专用的信号质量测试软件,比如英特尔(Intel)的信号测试(sigtest)软件进行分析,以确定测试码流的信号质量是否符合预置要求,若信号质量满足预置要求,则将当前的FPGA的发送端参数作为信号质量最优的FPGA发送端参数,然后执行步骤A3027;若信号质量不满足预置要求,则执行步骤A3024。
需说明的是,如果ASIC没有专用的测试软件,比如没有英特尔的sigtest软件,那么可以使用高速示波器自带的信号质量测试软件进行ASIC接收数据的眼高和眼宽信号质量分析,以确定满足ASIC接收信号质量要求的FPGA发送端参数。
A3024、高速信号测试装置判断是否遍历完FPGA中所有的发送端参数,若已遍历完,则执行步骤A3035;若尚未遍历完,则执行A3026。
A3025、确定ASIC是否具有用于对线路损失进行补偿的均衡参数,若是,则在测试过的所有FPGA的发送端参数中选择信号质量最优的发送端参数,作为信号质量最优的FPGA发送端参数,然后执行步骤A3027,当然,此时同时也可以优化从FPGA到ASIC的链路信号质量;若否,则说明线路硬件有问题,需要优化从FPGA到ASIC的链路信号质量。
A3026、保持ASIC的接收端参数不变,调整FPGA的发送端参数,返回执行确定测试码流的信号质量是否满足预置要求的步骤,即返回执行A3023。
A3027、根据信号质量最优的FPGA发送端参数进行误码率测试,具体可参见图5b流程。
(2)FPGA->ASIC方向的误码率测试;
参见图5b,FPGA->ASIC方向的误码率测试的流程具体可以如下:
B3021、ASIC和FPGA进入测试模式,高速信号测试装置将FPGA的发送端参数设置为经过上述信号质量测试所得到的信号质量最优的FPGA发送端参数,并将ASIC的接收端参数设置为初始值。
B3022、高速信号测试装置控制FPGA发送测试码流给ASIC,比如,FPGA可以发送PRBS23码流给ASIC。
B3023、ASIC进行误码率统计(Error counter),如果误码率满足预置要求,则从ASIC->FPGA方向的测试结束;如果误码率不满足预置要求,则执行步骤B3024。
B3024、高速信号测试装置确定ASIC的接收端参数是否能够进行调整,若能够进行调整,则执行步骤B3025,若不能进行调整,则表明需要优化从FPGA到ASIC的链路信号质量。
B3025、高速信号测试装置判断是否已经遍历完ASIC中的所有接收端参数,若是,则表明需要优化从FPGA到ASIC的链路信号质量,若否,则调整ASIC中的接收端参数,并返回执行进行误码率测试步骤,即返回执行步骤B3023。
也就是说,在确定ASIC的接收端参数能够进行调整时,可以遍历ASIC的接收端参数,如果在遍历ASIC的接收端参数的过程中,发现某一ASIC的接收端参数的误码率可以满足预置要求,则该FPGA->ASIC方向的误码率测试可以结束。但是,如果遍历完第一器件中的所有接收端参数后,误码率仍不符合预置要求,则表明需要优化从FPGA到ASIC的链路信号质量。
303、当确认ASIC->FPGA方向上误码率过高时,则说明ASIC发送的高速数据信号的信号质量不满足FPGA的接收要求。此时可以进行ASIC->FPGA方向的信号质量和误码率测试,以调整ASIC的发送端参数和FPGA的接收端参数。
需说明的是,因为FPGA采用CDR数据采样模式,且FPGA接收端的均衡调整能力很强,所以ASIC->FPGA单方向信号质量测试,测试重点不在于眼高、眼宽的信号质量要求(虽然眼高、眼宽的信号质量也要满足FPGA的接受要求),而是要重点关注RJ、DJ及TJ的参数是否满足FPGA的接收要求,否则即使ASIC发送数据的眼高、眼宽信号质量满足FPGA的接收要求,但如果ASIC发送高速数据的RJ大于FPGA的接收抖动容忍度要求,其ASIC->FPGA线路上的误码率也不能满足线路要求。
其中,ASIC->FPGA方向的信号质量和误码率测试具体可以如下:
(1)ASIC->FPGA方向的信号质量测试;
参见图6a,ASIC->FPGA方向的信号质量测试的流程具体可以如下:
A3031、高速信号测试装置控制ASIC进入测试模式,初始化ASIC的发送端参数和FPGA的接收端参数。
例如,可以将ASIC的发送端参数设置为默认值,以及将FPGA的接收端参数设置为默认值。
A3032、高速信号测试装置控制ASIC发送测试码流,比如PRBS23码流给FPGA。
A3033、利用高速示波器在FPGA的接收端对测试码流进行测试,并存储相应的测试数据,然后用高速示波器自带的信号质量测试软件对FPGA所接收到的测试数据的眼高和眼宽进行信号质量分析,以确定测试码流的信号质量是否符合预置要求,若信号质量满足预置要求,则将当前的ASIC的发送端参数,以及对应的FPGA的接收端参数作为一组参数组合,然后执行步骤A3034;若信号质量不满足预置要求,则执行步骤A3035。
A3034、高速信号测试装置确定FPGA的接收端参数是否已遍历完,若是,则执行A3037,若否,则高速信号测试装置调整FPGA的接收端参数,返回执行确定测试码流的信号质量是否满足预置要求步骤,即返回执行步骤A3033;
A3035、高速信号测试装置判断是否遍历完ASIC中所有的发送端参数,若已遍历完,则选择信号质量最优的发送端参数,以及对应的FPGA的接收端参数作为一组参数组合,然后执行步骤A3034;若尚未遍历完,则执行步骤A3036。
A3036、保持FPGA的接收端参数不变,调整ASIC的发送端参数,返回执行确定测试码流的信号质量是否满足预置要求步骤,即返回执行步骤A3033。
A3037、根据得到的参数组合进行误码率测试,具体可参见图6b流程。
(2)ASIC->FPGA方向的误码率测试;
参见图6b,ASIC->FPGA方向的误码率测试的流程具体可以如下:
B3031、ASIC和FPGA进入测试模式,从所有参数组合中选择一组作为当前参数组合;根据该当前参数组合设置ASIC的发送端参数和FPGA的接收端参数;
例如,可以根据硬件仿真或经验从所有参数组合中选择一组来设置ASIC发送端的加重参数(例如EQ参数)和FPGA接收端的补偿参数(例如EQ参数)。
B3032、高速信号测试装置控制ASIC发送测试码流,如PRBS23码流给FPGA。
B3033、在FPGA的接收端扫描采样窗口宽度,遍历所有参数组合(即前面得到的ASIC发送端参数和FPGA接收端参数的组合),挑选采样窗口最大的几组参数组合进行长时间误码率测试,具体可以如下:
在FPGA的接收端扫描采样窗口宽度,并判断是否遍历完所有参数组合,若否,则选择下一组参数组合作为当前参数组合,返回执行根据当前参数组合设置ASIC的发送端参数和FPGA的接收端参数的步骤,即返回执行步骤B3031;若是,则选择采样窗口宽度最大的N组参数组合进行长时间误码率测试,参见步骤B3034。
其中,这里所说的在FPGA的接收端进行采样窗口宽度扫描具体采用如下方式:
首先,要明确ASIC发送的测试码型,在FPGA内部实现对这种码型的误码检测,其次,在上层软件设置可编程器件内部接收模块的采样点位置,然后,待测试码流稳定后,对误码检测模块清0,并开始计时,测试一段时间,例如1秒后,读取误码检测模块的误码个数,其中,连续误码为0的采样点个数就是采样窗口宽度。
B3034、根据采样窗口宽度最大的N组参数组合进行长时间误码率测试,若误码率满足预置要求,则ASIC->FPGA方向的测试结束,若误码率不满足预置要求,则表明需要优化从ASIC到FPGA的链路信号质量,其中,N为大于1的正整数,比如,N可以为3、4或5,等等。
由上可知,本实施例采用通过对使用随路时钟采样模式进行数据采样的ASIC和使用CDR采样模式进行数据采样的FPGA进行环回误码率测试,若发现从ASIC到FPGA方向的误码率不满足要求,则进一步进行从ASIC到FPGA方向的信号质量和误码率测试,若发现从FPGA到ASIC方向的误码率不满足要求,则进一步进行从FPGA到ASIC方向的信号质量和误码率测试,该方案可以适用于不同数据信号采样模式应用在同一高速互连系统的场景。
实施例三、
为了更好地实施以上方法,本发明实施例还提供一种高速信号测试装置,如图7所示,该高速信号测试装置包括环回测试单元701、第一单向测试单元702和第二单向测试单元703。
环回测试单元701,用于初始化第一器件的发送端参数和第二器件的接收端参数,或者,初始化第二器件的发送端参数和第一器件的接收端参数,并进行环回误码率测试,得到环回测试结果;其中,第一器件使用随路时钟采样模式进行数据采样,第二器件使用CDR采样模式进行数据采样;例如,具体可以如下:
环回测试单元701将第一器件的发送端参数和第二器件的接收端参数设置为初始值(即默认值),然后由第一器件发送测试码流给第二器件,进行环回误码率测试,得到环回测试结果;或者,
环回测试单元701将第二器件的发送端参数和第一器件的接收端参数设置为初始值(即默认值),然后由第二器件发送测试码流给第二器件,进行环回误码率测试,得到环回测试结果。
第一单向测试单元702,用于在环回测试结果表明从第一器件到第二器件方向的信号的误码率不满足预置要求时,进行从第一器件到第二器件方向的信号质量和误码率测试;
第二单向测试单元703,用于在环回测试结果表明从第二器件到第一器件方向的信号的误码率不满足预置要求时,进行从第二器件到第一器件方向的信号质量和误码率测试。
其中,第一单向测试单元702可以包括第一参数设置子单元、第一码流发送子单元、第一信号质量测试子单元和第一误码率测试子单元;
第一参数设置子单元,用于设置第一器件的发送端参数和第二器件的接收端参数;比如,可以将第一器件的发送端参数和第二器件的接收端参数都设置为初始值,即默认值。
第一码流发送子单元,用于控制第一器件发送测试码流,如PRBS23码流给第二器件,以进行信号质量测试;
第一信号质量测试子单元,用于确定测试码流的信号质量是否满足预置要求;若信号质量满足预置要求,则将当前的第一器件的发送端参数,以及对应的第二器件的接收端参数作为一组参数组合,然后调整第二器件的接收端参数,返回执行确定测试码流的信号质量是否满足预置要求步骤;若信号质量不满足预置要求,则判断是否遍历完第一器件中所有的发送端参数,若已遍历完,则选择信号质量最优的发送端参数,以及对应的第二器件的接收端参数作为一组参数组合,然后调整第二器件的接收端参数,返回执行确定测试码流的信号质量是否满足预置要求步骤;若尚未遍历完,则保持第二器件的接收端参数不变,调整第一器件的发送端参数,返回执行确定测试码流的信号质量是否满足预置要求的步骤;
第一误码率测试子单元,用于根据第一信号质量测试子单元得到的参数组合进行误码率测试。
例如,具体可以从所有参数组合中选择一组作为当前参数组合,然后根据该当前参数组合设置第一器件的发送端参数和第二器件的接收端参数,由第一器件发送测试码流给第二器件,并由第二器件扫描采样窗口宽度,选择采样窗口宽度最大的N组参数组合进行长时间误码率测试,若误码率满足预置要求,则从第一器件到第二器件方向的测试结束,若误码率不满足预置要求,则表明需要优化从第一器件到第二器件的链路信号质量。即:
第一误码率测试子单元,具体可以用于从所有参数组合中选择一组作为当前参数组合;根据所述当前参数组合设置第一器件的发送端参数和第二器件的接收端参数;控制第一器件发送测试码流给第二器件,并控制第二器件扫描采样窗口宽度;判断是否遍历完所有参数组合;若否,则选择下一组参数组合作为当前参数组合,返回执行根据所述当前参数组合设置第一器件的发送端参数和第二器件的接收端参数的步骤;若是,则选择采样窗口宽度最大的N组参数组合进行长时间误码率测试,若误码率满足预置要求,则从第一器件到第二器件方向的测试结束,若误码率不满足预置要求,则表明需要优化从第一器件到第二器件的链路信号质量,其中,N为大于1的正整数。
其中,第二单向测试单元703具体可以包括第二参数设置子单元、第二码流发送子单元和第二测试子单元;
第二参数设置子单元,用于将第一器件的接收端参数设置为初始值,以及设置第二器件的发送端参数;
第二码流发送子单元,用于控制第二器件发送测试码流,如PRBS23码流给第一器件,以进行信号质量测试;
第二测试子单元,用于若信号质量满足预置要求,则将当前的第二器件的发送端参数作为信号质量最优的发送端参数,根据信号质量最优的发送端参数进行误码率测试;若信号质量不满足预置要求,则判断是否遍历完第二器件中所有的发送端参数,若已遍历完,则在确定第一器件具有用于对线路损失进行补偿的均衡参数时,选择信号质量最优的发送端参数,根据所述信号质量最优的发送端参数进行误码率测试;若尚未遍历完,则保持第一器件的接收端参数不变,调整第二器件的发送端参数,返回执行确定测试码流的信号质量是否满足预置要求的步骤。
其中,根据信号质量最优的发送端参数进行误码率测试具体可以如下:
将得到的信号质量最优的发送端参数设置为第二器件的发送端参数,将第一器件的接收端参数设置为初始值,然后由第二器件发送测试码流给第一器件,以进行误码率测试,若误码率符合预置要求,则从第二器件到第一器件方向的测试结束;若误码率不符合预置要求,则判断第一器件的接收端参数是否能够进行调整,若不能调整,则从第二器件到第一器件方向的测试结束,表明需要优化从第二器件到第一器件的链路信号质量;若可以调整,则遍历第一器件中的所有接收端参数,返回执行进行误码率测试步骤;若遍历完第一器件中的所有接收端参数后,误码率仍不符合预置要求,则表明只能优化从第二器件到第一器件的链路信号质量,即只能从硬件上改善从第二器件到第一器件的链路信号质量,从第二器件到第一器件方向的测试结束。即:
第二测试子单元,具体可以用于将所述信号质量最优的发送端参数设置为第二器件的发送端参数,将第一器件的接收端参数设置为初始值;控制第二器件发送测试码流给第一器件,以进行误码率测试;若误码率符合预置要求,则从第二器件到第一器件方向的测试结束;若误码率不符合预置要求,则在确定第一器件的接收端参数能够进行调整时,遍历第一器件中的所有接收端参数,返回执行进行误码率测试步骤;若遍历完第一器件中的所有接收端参数后,误码率仍不符合预置要求,则表明需要优化从第二器件到第一器件的链路信号质量。
此外,还需说明的是,在对第一器件和第二器件之间的链路进行信号质量和误码率测试之前,还需要对第一器件的电源和输入时钟信号质量,以及第二器件的电源和输入时钟信号质量进行测试,在确定第一器件的电源和输入时钟信号质量,以及第二器件的电源和输入时钟信号质量符合要求时,才对第一器件和第二器件之间的链路进行信号质量和误码率测试。也就是说,该高速信号测试装置具体还可以包括电源和时钟测试单元;
电源和时钟测试单元,用于对第一器件的电源和输入时钟信号质量,以及第二器件的电源和输入时钟信号质量进行测试,在确定第一器件的电源和输入时钟信号质量,以及第二器件的电源和输入时钟信号质量符合要求时,触发环回测试单元701开始工作(即初始化第一器件的发送端参数和第二器件的接收端参数,或者,初始化第二器件的发送端参数和第一器件的接收端参数,并进行环回误码率测试,得到环回测试结果)。其中,电源和输入时钟信号质量的测试具体可参见现有技术,在此不再赘述。
其中,第一器件具体可以为ASIC或者其他使用随路时钟采样模式进行数据采样设备,第二器件具体可以为FPGA或者其他使用CDR采样模式进行数据采样设备。该高速信号测试装置具体可以为内置有该高速信号测试方法代码的芯片。
具体实施时,以上各个单元可以作为独立的实体实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例所提供的高速信号测试装置中的环回测试单元701可以对使用随路时钟采样模式进行数据采样的第一器件和使用CDR采样模式进行数据采样的第二器件进行环回误码率测试,若发现从第一器件到第二器件方向的误码率不满足要求,则进一步由第一单向测试单元702进行从第一器件到第二器件方向的信号质量和误码率测试,若发现从第二器件到第一器件方向的误码率不满足要求,则进一步由第二单向测试单元703进行从第二器件到第一器件方向的信号质量和误码率测试,该方案可以适用于不同数据信号采样模式应用在同一高速互连系统的场景。
实施例三、
相应的,本发明实施例还提供一种通信系统,包括本发明实施例提供的任一种高速信号测试装置,其中,高速信号测试装置具体可以参见前面实施例,在此不再赘述。
该通信系统还可以包括第一器件和第二器件;
第一器件,用于与第二器件进行高速串行互连,并接受高速信号测试装置的高速信号测试;其中,高速信号测试的方法具体可参见前面实施例,在此不再赘述。
第二器件,用于与第一器件进行高速串行互连,并接受高速信号测试装置的高速信号测试;其中,高速信号测试的方法具体可参见前面实施例,在此不再赘述。
其中,该通信系统具体可以为高速信号测试系统。该高速信号测试装置具体可以为内置有该高速信号测试方法代码的芯片。第一器件具体可以为ASIC或者其他使用随路时钟采样模式进行数据采样设备,第二器件具体可以为FPGA或者其他使用CDR采样模式进行数据采样设备。
以上各个设备的实施具体可参见前面实施例,在此不再赘述。
由上可知,本实施例的通信系统中的高速信号测试装置采用通过对使用随路时钟采样模式进行数据采样的第一器件和使用CDR采样模式进行数据采样的第二器件进行环回误码率测试,若发现从第一器件到第二器件方向的误码率不满足要求,则进一步进行从第一器件到第二器件方向的信号质量和误码率测试,若发现从第二器件到第一器件方向的误码率不满足要求,则进一步进行从第二器件到第一器件方向的信号质量和误码率测试,该方案可以适用于不同数据信号采样模式应用在同一高速互连系统的场景。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种高速信号测试方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。