背景技术
集成电路(IC),更具体地说,通信系统中使用的专用集成电路(ASIC)正变得日益复杂,并且以不断增长的数据率工作。因此,数据率的增加需要在日益严格的参数下测试通信电路的能力。
许多通信信道被构建来将并行数据转换成串行数据,以通过串行通信链路传输。与并行通信链路相比,串行通信链路具有多种优点,尤其对于长距离通信方法,例如长距离光纤通信系统和卫星通信系统。通常,并行数据被“串行化”,以通过串行通信链路传输,然后在接收机处被“解串行化”,以产生原并行数据。这种通信系统使用所谓的“SerDes”或者串行化器/解串行化器电路。
有多种因素影响传输质量。这些因素包括传输介质类型、距离(例如电缆的长度)、电干扰和通信介质的电屏蔽质量。此外,常常通过增加数据中逻辑“1”到逻辑“0”信号转换的数量来编码数据以进行传输。在接收机中的“时钟恢复”电路中,使用不同数据位之间的信号转换来使接收电路更容易地与所接收的数据保持同步。
已经开发了数种用于确定传输质量的测试方法。一种常用方法是使用被称作PRBS样式(pattern)的伪随机二进制序列。一种基于多项式“x6+x7+1”的PRBS样式被内置于多种SerDes电路中,其被称作PRBS-7测试样式发生器。它提供了一种每(2^7)-1=127位重复一次的样式。这种样式序列足够长,以致看上去相当具有随机性,但是还没有长到妨碍利用较少量电路的简单测试和生成的程度。PRBS-7测试样式对通信电路“加压”也比在一般使用中更有力,因为该样式序列的某些部分与正常数据传输期间一般使用的相比,具有较少的转换。该(2^7)-1样式(或PRBS-7样式)具有连续7个逻辑1的最大行程(run)和连续7个逻辑0的最大行程。没有位转换的连续位个数一般被称作行程长度。在这种通信电路中常常使用的“8b10b”(8位到10位)编码具有只有5位(1或者0)的最大行程长度,所以PRBS-7测试样式在通信电路上施加的压力比使用8b10b编码方案传送的数据更有力。
在先前的SerDes实现中,添加了允许测试长达10位的更长行程长度的附加样式模式。这是利用一个10位“用户”寄存器实现的,其可以加载所想要的任何10位值。发射机和接收机中的样式发生器都能够加载这个值。发射机发送这个值,接收机将所接收到的样式与先前加载的用户定义样式相比较。然而,重复地发送10位值只能测试长达9位的行程长度,这是因为如果所有10位都相同,则行程长度就超过10位。要测试长达10位的长度,可以使用“交替反转”模式。在这种模式中,将在发送10位字后发送该字的反转。这样,实际上生成了20位样式。这种20位样式的一个有用特性是该样式具有相等数目的1和0,因而是“平衡的”。如果所发送的数据不平衡,则某些通信电路可能是敏感的。因此,前述“8b10b”码也对数据编码,使得所传输的数据是平衡的。
随着数据需求持续增长,就希望找到更快地发送更多数据的方法。一种方法是增加数据速率。另一种方法是寻找更高效率的方法发送数据。前述“8b10b”码具有25%的效率开支,因为它使用10位来发送8位数据。一种提高效率的方法是使用具有较小开支的编码技术。然而,编码效率的提高一般导致较长的可能位行程长度。这些行程长度可能比用PRBS-7样式,甚至前面使用的10位测试能力所测试的那些还长。
因此,就希望有一种用于测试较高数据率的通信信道、同时又最小化测试电路量的方法。
附图说明
参考附图可以更好地理解具有自播种测试功能的多功能样式发生器和比较器。附图中的组件不是按比例的,相反,重点在于要清楚地图示所述系统和方法的原理。此外,在附图中,相同的标号表示所有不同视图中的对应的部分。
图1是图示具有自播种测试功能的多功能样式发生器和比较器在其中工作的通信环境的方框图。
图2是图示图1的样式发生器之一的方框图。
图3是图示图2的功能逻辑与选择元件的方框图。
图4是图示图2的寄存器和功能逻辑与选择元件的方框图,其在发射机中被配置来加载PRBS-31样式发生器数据。
图5是图示图2的寄存器和功能逻辑与选择元件的方框图,其被配置来“运行”在图4中所加载的数据。
图6是图示图2的寄存器和功能逻辑与选择元件的方框图,其在发射机中被配置来加载用户定义固定长度数据。
图7是图示图2的寄存器和功能逻辑与选择元件的方框图,其被配置来运行在图6中所加载的用户定义固定长度数据。
图8是图示在替换实施方式中的图2的寄存器和功能逻辑与选择元件的方框图,其可以被用在接收机样式发生器中。
图9是图示图2的寄存器和功能逻辑与选择元件的方框图,其在接收机中处于用户定义的40位“load to error”模式中,并且配置有图1的比较器。
图10是图示图2的寄存器和功能逻辑与选择元件的方框图,其在接收机中,被配置为以“load till error”模式运行PRBS-31样式数据。
具体实施方式
具有自播种测试功能的多功能样式发生器和比较器(将被称作多功能样式发生器)可以被实现并集成到现有的收发机集成电路(IC)上。此外,可以在单个集成电路上实现多功能样式发生器的多次重复(multipleiteration)。虽然下面将利用特定的硬件元件、模块和器件描述多功能样式发生器,但是可以利用多种不同的技术实现该多功能样式发生器。此外,虽然下面利用硬件实现描述多功能样式发生器,但是该多功能样式发生器的多个部分可以部分或者全部地用软件来实现。
图1是图示多功能样式发生器在其中工作的通信环境的方框图。通信环境100包括串行通信链路114,通过其在收发机110与收发机130之间交换通信数据。在图1所示的通信环境100中,数据从并串编码器(parallel to serial coder)112被发送出去,并且由串并解码器(serial toparallel decoder)116接收。然而,应当理解收发机110和130每个都包括发射机和接收机,每个都分别包括并串编码器和串并解码器,从而允许在与图1所示相反的方向上传输数据。通信环境100包括样式生成器200,其可以是PRBS样式生成器,并且可以在连接124上接收种子数据,在连接126上接收用户数据。样式发生器200的输出经由连接104,作为测试输入提供给复用器106。复用器106经由连接102接收发射数据。复用器106的输出经由连接108被耦合到并串编码器112。复用器106的输出是连接102上的发射数据还是连接104上的测试数据由提供给复用器106的控制信号(未示出)来确定。并串编码器112取出连接108上的并行数据,并将该数据串行化,以通过串行通信链路114传输。用粗箭头示出的连接124、126、104、102和108表示并行数据。
串并解码器116从连接114接收串行数据,并将其转换成连接120上的并行数据。连接120上的并行数据是收发机130的输出,也是到样式发生器350和比较器250的输入。发射路径中的样式发生器200与接收路径中的样式发生器350相似,但是,在下面将要描述,取决于其是在发射模式中还是在接收模式中工作,并且取决于样式发生器工作模式,样式发生器200可以被不同地配置。
样式发生器350经由连接128接收用户数据,并且经由连接120接收种子数据。换言之,串并解码器116的输出可以用来对接收机中的样式发生器350进行播种。样式发生器350在连接132上的输出被提供给比较器250。比较器250将样式发生器350的输出与连接120上的并行数据(即种子数据)相比较,并且在连接134上提供错误信号,其指示在连接120上所接收到的数据是否与由样式发生器350提供的期望数据匹配。错误计数器140保持由比较器250检测出的错误的计数。
图2是图示图1的样式发生器350的方框图。样式发生器350可以使用其当前状态和外部输入来生成接下来的样式位。收发机110中的样式发生器200被相似地配置。样式发生器350包括功能逻辑与选择元件300、控制逻辑210和寄存器400。并行样式数据用粗箭头示出,而控制信息用细箭头示出。经由连接120提供用于样式发生器350的种子数据,并且经由连接128提供用户数据。对于发射机中的样式发生器200,从连接124提供种子数据(图1),并且通过连接126提供用户数据(图1)。功能逻辑与选择元件300的输出是在连接214上的下一组样式数据,其被提供给寄存器400。
错误输入经由连接134、控制命令经由连接206被提供给控制逻辑210。时钟信号经由连接208被提供给控制逻辑210和寄存器400。控制逻辑210经由连接212将控制信号传送到功能逻辑与选择元件300,其操作将在图3中非常详细地描述。寄存器400的输出经由连接132,作为反馈被提供给功能逻辑与选择元件300,并且作为输入被提供给比较器250(图1)。如将在下面非常详细地描述的一样,在一种实施方式中,寄存器400包括四个10位寄存器,其可以用多种方式配置,这取决于想要的样式发生器350的功能。从寄存器400反馈回功能逻辑与选择元件300的信息允许使用最小逻辑来生成足够长度的样式,用以测试高数据速的通信信道。寄存器400的大小取决于将要生成的样式的类型。例如,要生成31位PRBS样式,即基于多项式“x31+x28+1”的PRBS样式,则寄存器400应当包括最小31位。
功能逻辑与选择元件300将来自多个源的数据(例如,连接120上的种子数据和连接128上的用户数据)汇集在一起,并且为所使用的样式序列生成下一组样式位。例如,连接214上的下一组样式数据可以是当前样式数据和正进来的“种子”数据的函数。
控制逻辑210确定样式发生器350将要生成的样式的类型,并且确定何时将要加载新的样式。例如,如果比较器250指示连接132上的样式与连接120上正进来的数据不再同步,则接收机中的样式发生器350可能使用连接134上的比较器250的结果,以重新加载样式发生器350,达到与发射机同步。
图3是图示图2中的功能逻辑与选择元件300的方框图。功能逻辑与选择元件300包括PRBS-7样式发生器302、PRBS-31样式发生器304和可编程用户数据元件306。也可以包括如模块308所表示的其他样式生成功能,其可以表示其他的PRBS功能或者不同的用户数据样式功能。
连接120上的种子数据和连接132上的样式数据被提供给功能逻辑与选择元件300的每个模块。连接128上的用户数据被提供给可编程用户数据元件306。功能模块308可以使用诸如种子数据、当前样式数据的多种输入,或者可以接收与可编程用户数据模块306相似的用户数据。来自图2的控制逻辑210的控制信号经由连接212被提供给每个元件。PRBS-7样式发生器302的输出经由连接312被提供给选择器330,连接314上PRBS-31样式发生器304的输出、连接316上可编程用户数据元件306的输出和连接318上其他功能模块308的输出都被提供给选择器330。选择器330经由连接212接收控制信号,并且确定将要把哪个输出作为连接214(见图2)上的下一组样式数据来提供。
图4到图10描述了在不同工作模式下工作的图2的寄存器400和功能逻辑与选择元件300的具体实施方式。例如,取决于其是位于发射机中还是接收机中,并且取决于想要的功能,可以有区别地配置图2的寄存器400和功能逻辑与选择元件300。例如,可以将寄存器400和功能逻辑与选择元件300配置为提供PRBS-31样式发生器,或者配置为加载任意固定长度的用户定义测试样式。图4到图10所示的实施方案在每次利用10位来串行化/解串行化数据的实现中是有用的。即,这种电路设计来以比位串行速率低10倍的频率工作。
图4是图示图2的寄存器400和功能逻辑与选择元件300的方框图,其在发射机中被配置为加载PRBS-31样式发生器数据。图4中的逻辑与寄存器410包括4个10位寄存器402、404、406和408。逻辑与寄存器410中的电路也包括多个复用器,其配置来基于各种控制信号加载寄存器。例如,连接124上的种子数据被提供给复用器412的第一输入端,而用户数据经由连接126被提供给复用器412的另一个输入端。取决于连接438上的“user_data_rdy”信号的值,种子数据或用户数据经由连接446被提供到复用器416的一个输入端。取决于连接464上的“load”信号的逻辑电平,复用器412的输出或者连接452上寄存器402的输出将经由连接456被提供给复用器422。类似地,取决于连接462上的“load_en”信号的逻辑电平,连接452上寄存器402的输出或者连接498上寄存器408的输出经由连接454将要被提供到复用器418。“load_en”信号是“load”信号和“enable”信号的逻辑“OR”,如OR门411所示。
取决于连接472上“prbs_mode & load_en”信号的逻辑电平,连接454上复用器414的输出或者连接466上复用器436的输出将经由连接474被提供到寄存器402。类似地,取决于连接482上“load_en”信号的逻辑电平,连接486上寄存器404的输出或者连接456上复用器416的输出将被提供到寄存器404。
类似地,取决于连接492上的“load_en”信号的逻辑电平,连接496上寄存器406的输出或者连接486上寄存器404的输出将要被提供到寄存器406。类似地,取决于连接458上的“load_en”信号的逻辑电平,连接498上寄存器408的输出或者连接496上寄存器406的输出将要被提供到寄存器408。
寄存器402的输出经由连接452被提供到复用器432的第一输入端。取决于连接428上的“load_en”信号的逻辑电平,寄存器402的输出或者连接124上的种子数据的值将被复用器432提供到异或(XOR)功能块434。虽然示作单个门,但是在本实施方式中,基于为10位寄存器402预测接下来10位的PRBS-7多项式,XOR功能块434包括10个2输入XOR门。类似地,连接486上寄存器404的输出、连接496上寄存器406的输出和连接498上寄存器408的输出都被提供到XOR功能块442。应当注意,XOR功能块442基于用于预测PRBS-31样式的接下来10位的PRBS-31多项式,被实现为10个2输入XOR门。
XOR功能块434的输出经由连接478被提供到复用器436,同时XOR功能块442的输出也经由连接488被提供到复用器436。取决于连接468上的“prbs_size_sel”信号的逻辑电平,XOR功能块434的输出或者XOR功能块442的输出经由连接466被提供到复用器418。
在图4中,使用经由连接124的非零值对逻辑与寄存器410,具体地说,对寄存器404进行播种。在本实施例中,寄存器404用值0x3FF来播种。PRBS-31样式发生器使用寄存器402、404、406和408中40个可用触发器的31个。为了预测接下来的10位,寄存器404、406和408的输出经由XOR功能块442,通过复用器436和418反馈回寄存器402。这样,逻辑与寄存器410基于当前所加载的值,按顺序产生下一样式。寄存器404和406中的数据通过复用器424和426,前馈到寄存器406和408。通过复用器412、416和422,用非零种子数据来加载寄存器404。假定种子值都是逻辑1,则在加载模式中的三个周期之后,上寄存器段(寄存器404、406和408)都被全逻辑1加载。这种情况预示着将要输入寄存器402的全是逻辑0。正是第一寄存器402的这种预示性质指示出最初将种子数据加载到第二寄存器404中,而不是第一寄存器402中。
粗箭头指示在每个时钟周期内数据在寄存器段(402、404、406和408)之间移动的方向。来自寄存器404的数据移动到寄存器406中。类似地,来自寄存器406的数据移动到寄存器408中。来自寄存器402和408的数据在使用之后不再被PRBS-31所需要,其在下个时钟周期就被简单地丢弃(即,发送到所谓的“bit_bucket”)。
图5是图示图2的寄存器400和功能逻辑与选择元件300的方框图,其被配置来“运行”在图4中所加载的数据。在图5中,一旦用非零值加载PRBS-31样式发生器,其就被切换到运行模式。这是通过移除“load”信号并设置“enable”信号实现的。当在PRBS-31样式生成模式中时,如连接寄存器402、404、406和408的粗箭头所指示,数据向右移位。寄存器404、406和408向XOR功能块442提供数据,以预测接下来的10位。应当注意,在运行模式中,因为不再由种子数据加载寄存器404,所以来自寄存器402的数据在下一个时钟周期被发送到寄存器404。对于发射样式发生器200,来自寄存器402的数据也被发送到并串编码器112(图1)。对于接收机样式发生器350,以相似的方式,电路用来自串并解码器116(图1)的数据来“播种”或者加载。在接收机样式发生器350已被加载之后,其可以被切换到运行模式,比较器250(图1)将能够把从串并解码器116进来的数据与来自样式发生器350的预测位进行比较。
图6是图示图2的寄存器400和功能逻辑与选择元件300的方框图,其在发射机中被配置来加载用户定义的固定长度的数据。虽然可以使用任何固定长度的用户定义数据,但是后面的实施例将使用40位用户数据。因为具有4个10位寄存器402、404、406和408,所以能够使用40位用户数据。用户数据经由连接126,作为4个10位字的序列而被加载到寄存器404中,如粗箭头所示。使用40位用户数据样式简化了研究数据样式灵敏度的任务。为了将电路数量最小化,在这个实施方案中每次10位地加载该40位用户定义数据。寄存器402被用来提供或者预测接下来的10位。10位寄存器402、404、406和408每次加入另外的10位时移位10位。当寄存器408中的数据被移位到寄存器402中时,重要的是在新数据出现时只得到一个“加载”周期。不然的话,在四个时钟周期之后,相同的新数据将会被加载到所有四个寄存器中。为了防止这种情况发生,当“user_data_rdy”信号为逻辑1时,附加的逻辑(未示出)应逻辑0到逻辑1的位转换而生成一个“加载”周期。这样,寄存器430加载到任意40位用户定义测试样式。
图7是图示图2的寄存器400和功能逻辑与选择元件300的方框图,其被配置来运行在图6中所加载的用户定义固定长度数据。在40位样式已被加载之后(图6),通过使“enable”信号为逻辑高,电路440被切换到运行模式中。在这种模式中,电路440实质上变成了每次移位10位的40位循环移位寄存器。来自寄存器402的10位被传送到并串解码器112(图1)。通过使用用户数据来将样式加载到发生器中,然后使该样式循环起来,从而与发射机样式发生器200相类似地,接收机样式发生器350可以被加载并使能。
图8是图示了在替换实施方式中的图2的寄存器400和功能逻辑与选择元件300的方框图,其可以被用在接收机样式发生器350中。图8所示的实施方式以类似于PRBS样式的方式来利用播种能力。不是通过user_data路径126载入数据,而是通过“seed”路径124将来自串并解码器116(图1)的数据提供给电路450,如从seed路径到寄存器404的虚线箭头所示。加载持续四个时钟周期之后,寄存器402、404、406和408将已加载有40位样式,其可以被用来比较接下来的40位是否准确匹配。在运行模式中,如寄存器402与404之间的虚线箭头所示,该40位样式将连续循环。
图9是图示了接收机中处于用户定义的40位“load to error”模式中的图2的寄存器400和功能逻辑与选择元件300的方框图,其配置有图1的比较器。在测试期间希望将连接120上进入的接收机输出数据“rxout”与所预测的字相比较。如图所示,10位寄存器404用连接120上来自串并解码器116(图1)的接收机输出数据“rxout”来播种。四个时钟周期之后,整个40位样式已被加载到这四个10位寄存器402、404、406和408中。该数据已被移位,使得加载到寄存器404中的第一个字位于寄存器402中,并且可以与下一个新字相比较(其应当与四个时钟周期前的字相同)。因此,如果由发射机样式发生器发送的样式是“ABCD…”,则接收机将加载有相同的样式,并且可以预测并检查进入的数据样式中的错误。这样,图9的电路460可以被自播种、加载并且用来将所接收的字与任意40位用户定义样式相比较。4个10位字通过寄存器402、404、406和408循环,然后在比较器250中与来自连接120的接下来的10个进入位相比较。
将上述自播种能力用于PRBS模式和40位用户定义数据模式,就允许在检测出错误时捕获所接收的数据。这被称作“加载直到错误(load-until-error)”特性。在这种模式中,用“rxout”数据连续地对图9的电路播种。当检测到错误时,寄存器402、404、406和408中的数据就暂停前进,并且可用来分析,以确定该错误的原因。加载直到错误特性导致在连接464上的“load”信号被保持为逻辑高,直到检测出错误,例如由数据比较器250检测出的数据不匹配。当检测出错误时,正进入的字被移位到寄存器404中,并且向错误计数器发送信号。在该错误被检测出之后,加载信号被从连接464移除,寄存器460停止循环。此时,可以从寄存器402、404、406和408中读出数据,并且可以确定在检测出错误时所接收到的最后四个字。加载直到错误特性的能力之所以存在,是因为用于PRBS模式和40位用户定义数据模式的自播种能力。在加载直到错误模式中,接收机样式发生器利用连接120上的输入被连续地播种,而不是播种然后利用回收数据。
图10是图示图2的寄存器400和功能逻辑与选择元件300的方框图,其在接收机中,被配置来以“load till error”模式运行PRBS-31样式数据。电路470使用3个时钟周期来对寄存器402、404、406和408进行播种。三个时钟周期过后,寄存器404、406和408将被加载。这三个寄存器被用来生成接下来的预测值,其被置于寄存器402中,如XOR功能块442的输出所示。
虽然描述了本发明的各种实施方式,但是本领域的普通技术人员应当清楚,在本发明的范围内可以有更多实施方式和实现。