【技术领域】
本发明涉及集成电路芯片技术领域,尤其涉及一种用于高速串行收发器的数据边界对齐方法及系统。
背景技术:
芯片中的高速串行收发器,如:fpga芯片中的hsst,既可单独作为高速通讯接口,也可以辅助作为pcie、sata、xaui等协议的物理层。它由pma(物理媒介子层,serdes)和pcs(物理编码子层)两部分构成,数据经过pma并-串和串-并转化后,数据的边界关系被打乱,导致接收到的数据与发送的数据不一致,需要在pcs接收端对数据进行对齐和重组,通常通过检测数据流中的comma字符找到接收数据的边界。
传统的pcs仅能实现简单的字符边界对齐功能,找到的只是字节边界,而并非数据的边界(数据通常由多个字节组成),经常会出现comma字符位置不确定、数据字节错位等问题,导致用户需要另外编写大量程序进行字节顺序调整和重组。
技术实现要素:
本发明的目的在于提供了一种用于高速串行收发器的数据边界对齐方法,以解决接收数据中comma字符位置不确定的问题。
为达到上述目的,本发明提供了一种用于高速串行收发器的数据边界对齐方法,所述数据边界对齐方法包括:
当待检测数据中检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据;
接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号;
接收所述指示信号和配置的k对象值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;或者,调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据。
优选的,所述当待检测数据中匹配到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据的步骤之前还包括,
接收输入数据,拼接组成待检测数据。
优选的,所述当待检测数据中检测到comma字符包括,
检测所述待检测数据中的comma字符,若未检测到comma字符则返回步骤接收输入数据拼接组成待检测数据,若检测到comma字符则重新确定数据字节的边界,输出字节边界对齐后的数据。
优选的,所述检测所述待检测数据中的comma字符包括,
根据逐比特比对方式,从所述待检测数据中检测与comma字符完全一致的字符。
优选的,所述数据边界对齐方法还包括:
接收所述反馈信号,当所述反馈信号为无效数据指示信号或数据极性错误指示信号,用于控制模式跳转并执行所述重新确定数据字节的边界,输出字节边界对齐后的数据的步骤。
优选的,所述数据边界对齐方法还包括:
接收所述边界对齐的数据并进行缓存,并输出至用户接口。
本发明还提供了一种用于高速串行收发器的数据边界对齐系统,所述数据边界对齐系统包括:
comma检测和字符对齐模块,用于当待检测数据中检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据;
8b10b解码器,用于接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号;
comma字符位置调整模块,用于接收所述指示信号和配置的k对象值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;
数据边界对齐模块,用于调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据。
优选的,所述数据边界对齐系统还包括:
数据处理模块,用于接收输入数据,拼接组成待检测数据。
优选的,所述数据边界对齐系统还包括:
字节对齐控制状态机,用于接收所述反馈信号,当所述反馈信号为无效数据指示信号或数据极性错误指示信号,用于控制模式跳转并执行所述重新确定数据字节的边界,输出字节边界对齐后的数据的步骤。
优选的,所述数据边界对齐系统还包括:
输出缓冲器,用于接收所述边界对齐的数据并进行缓存,并输出至用户接口。
本发明的有益效果在于:提供了一种数据边界对齐方法,其通过检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据,并进一步调整comma字符的位置并输出边界对齐的数据,从而解决接收数据中comma字符位置不确定,以及接收数据字节顺序错乱的问题。
【附图说明】
图1为本发明实施例一提供的数据边界对齐方法的流程图;
图2为本发明实施例二提供的数据边界对齐方法的流程图;
图3为本发明实施例三提供的数据边界对齐方法的流程图;
图4为本发明实施例三提供的场景一中数据边界对齐前的数据图;
图5为本发明实施例三提供的场景一中数据边界对齐后的数据图;
图6为本发明实施例三提供的场景二中数据边界对齐前的数据图;
图7为本发明实施例三提供的场景二中数据边界对齐后的数据图;
图8为本发明实施例五提供的数据边界对齐系统的示意图。
【具体实施方式】
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,本发明实施例一提供一种用于高速串行收发器的数据边界对齐方法,所述数据边界对齐方法包括:
s120、当待检测数据中检测到comma(逗点)字符,重新确定数据字节的边界,输出字节边界对齐后的数据;
s140、接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号;
s160、接收所述指示信号和配置的comma位置值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;或者,调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据。
本发明实施例的数据边界对齐方法,其通过检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据,并进一步调整comma字符的位置并输出边界对齐的数据,从而解决接收数据中comma字符位置不确定,以及接收数据字节顺序错乱的问题。
本实施例中,由于8b/10b编码中将k28.1、k28.5和k28.7作为k码的控制字符,称为“comma”;在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,因此comma字符用于指示帧的开始和结束标志。
在一实施方式中,步骤s120中,当待检测数据中检测到comma字符包括,检测所述待检测数据中的comma字符,若检测到comma字符则重新确定数据字节的边界,输出字节边界对齐后的数据。
进一步的,所述检测所述待检测数据中的comma字符包括,根据逐比特比对方式,从所述待检测数据中检测与comma字符完全一致的字符。其中,通过第一参数cfg_comma_reg0和第二参数cfg_comma_reg1设定待检测comma字符的正负值。第一参数cfg_comma_reg0和第二参数cfg_comma_reg1表示同一k字符(comma字符),仅极性不同。
在逐比特比对时,将第一参数cfg_comma_reg0、第二参数cfg_comma_reg1的每个比特位同时分别与待检测数据对应的比特位进行比对,比对顺序依次为bit0~bit9,所有比特均比对结束后,若10个比特均比对一致,则将指示信号拉高,表示comma字符检测成功;否则,若10个比特中有1个或多个比特比对不一致,则将指示信号拉低,表示comma字符检测未成功,继续检测下一组数据。
在一实施方式中,步骤s140、接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号之后还包括;
s150、接收所述反馈信号,当所述反馈信号为无效数据指示信号或数据极性错误指示信号,用于控制模式跳转并执行所述重新确定数据字节的边界,输出字节边界对齐后的数据的步骤。
在一实施方式中,步骤s160、接收所述指示信号和配置的comma位置值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;或者,调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据之后还包括:
s180、接收所述边界对齐的数据并进行缓存,并输出至用户接口。
如图2所示,本发明实施例二提供一种用于高速串行收发器的数据边界对齐方法,所述数据边界对齐方法包括:
s200、接收输入数据,拼接组成待检测数据;
s220、当待检测数据中检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据;
s240、接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号;
s260、接收所述指示信号和配置的comma位置值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;或者,调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据。
在一实施方式中,步骤s220中,当待检测数据中检测到comma字符包括,检测所述待检测数据中的comma字符,若未检测到comma字符则返回步骤s200、接收输入数据拼接组成待检测数据,若检测到comma字符则重新确定数据字节的边界,输出字节边界对齐后的数据。
进一步的,所述检测所述待检测数据中的comma字符包括,根据逐比特比对方式,从所述待检测数据中检测与comma字符完全一致的字符。其中,通过第一参数cfg_comma_reg0和第二参数cfg_comma_reg1设定待检测的comma字符的正负值。
在逐比特比对时,将第一参数cfg_comma_reg0、第二参数cfg_comma_reg1的每个比特位同时分别与待检测数据对应的比特位进行比对,比对顺序依次为bit0~bit9,所有比特均比对结束后,若10个比特均比对一致,则将指示信号拉高,表示comma字符检测成功;否则,若10个比特中有1个或多个比特比对不一致,则将指示信号拉低,表示comma字符检测未成功,继续检测下一组数据。
在一实施方式中,步骤s240、接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号之后还包括;
s250、接收所述反馈信号,当所述反馈信号为无效数据指示信号或数据极性错误指示信号,用于控制模式跳转并执行所述重新确定数据字节的边界,输出字节边界对齐后的数据的步骤。
在一实施方式中,步骤s260、接收所述指示信号和配置的comma位置值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;或者,调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据之后还包括:
s280、接收所述边界对齐的数据并进行缓存,并输出至用户接口。
如图3所示,本发明实施例三提供一种用于高速串行收发器的数据边界对齐方法,所述数据边界对齐方法包括:
s300、接收输入数据,拼接组成待检测数据。
在一实施方式中,步骤s300、接收输入数据,拼接组成待检测数据,包括:接收输入数据并打一拍,拼接组成待检测数据。具体的,接收外部的输入数据data_in[39:0]打一拍进行延迟,打一拍为将输入数据data_in[39:0]延迟一个时钟周期,以保证输入输出接口的时序正确。
在一实施方式中,步骤s300中,所述拼接组成待检测数据为,根据配置的位宽值拼接组成待检测数据。优选的,所述配置的位宽值包括20bit和40bit两种模式。
例如,当配置的位宽值为20bit模式时,将当前拍的20bit输入数据作为高位与上一拍的高9bit输入数据作为低位组成29bit的待检测数据,并将待检测数据根据位段划分成10组20bit的数据,其依次为data_in[19:0]、data_in[20:1]、…、data_in[28:9]。
s320、当待检测数据中检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据;当待检测数据中未检测到comma字符,重新执行步骤s300。
在一实施方式中,步骤s320中的检测为,根据逐比特比对方式,从所述待检测数据中检测与comma字符完全一致的字符。其中,通过第一参数cfg_comma_reg0和第二参数cfg_comma_reg1设定待检测的comma字符的正负值。进一步的,在逐比特比对时,将第一参数cfg_comma_reg0、第二参数cfg_comma_reg1的每个比特位同时分别与待检测数据对应的比特位进行比对,比对顺序依次为bit0~bit9,所有比特均比对结束后,若10个比特均比对一致,则将指示信号拉高,表示comma字符检测成功;否则,若10个比特中有1个或多个比特比对不一致,则将指示信号拉低,表示comma字符检测未成功,继续检测下一组数据。
在一实施方式中,步骤s320中的输出字节边界对齐后的数据为,将comma字符的位置信息、comma字符检测成功指示信号、字节边界对齐后的数据data_out一同输出。
s340、接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号。
具体的,在解码还原中,8b10b解码器将识别出数据的有效性、数据的极性以及数据的类型,数据的有效性包括数据有效和数据无效,数据的类型包括comma码和数据码,数据的极性包括数据极性正确和数据极性错误。
其中,8b10b解码器具有识别数据正误的功能,8b10b编解码为标准协议,不用在此赘述。
反馈信号包括,代码违例code_violation信号和代码类型code_type信号;其中,代码违例code_violation信号用以指示数据的有效性和数据的极性,代码类型code_type信号用以指示数据的类型。
指示信号包括,第一指示信号rxk、第二指示信号rdece和第三指示信号rdispe;第一指示信号rxk用于指示当前数据为comma码,第二指示信号rdece用于指示出现解码错误(数据无效)、第三指示信号rdispe用于指示出现数据极性错误。
在一实施方式中,s340、接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号的步骤之后还包括;
s350、接收所述反馈信号,当所述反馈信号为无效数据指示信号或数据极性错误指示信号,用于控制模式跳转并执行s320中的重新确定数据字节的边界,输出字节边界对齐后的数据的步骤。
其中,控制模式跳转包括1gb、10gb、rapidio以及outside。
进一步的,输出字节边界对齐后的数据data_out之前还包括,进行延迟等待后,根据指示输出字节边界对齐后的数据。
具体的,上述延迟等待由1gb、10gb、rapidio以及outside状态机决定的,其中,每种状态机的时间有差异,状态机根据上层协议决定,状态机将根据comma检测成功指示信号和控制信号进行跳转。
在一实施方式中,还包括s355、检测同步状态信号,若为同步已完成则执行步骤s360,否则重复执行步骤s355。
控制模式跳转完成后将输出同步状态信号lsm_synced,若同步已完成则输出高电平。
s360、接收所述指示信号和配置的comma位置值k_location,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;或者,调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据。
本实施例中,若输入的数据为32bit(共4个字节,依次为字节3~字节0),rxk[i]=1则表示字节i为comma字符,例如:rxk[0]=1则表示字节0为comma字符,k_location的取值范围为0~3,表示可将comma字符调整至字节0~字节3的位置。
在一实施方式中,步骤s360中,接收所述指示信号和配置的comma位置值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据包括,
s361、接收解码数据并打三拍进行寄存。
s362、接收所述指示信号和配置的comma位置值k_location,识别当前数据中comma字符的位置。具体的,根据输出的第一指示信号rxk[3:0]识别当前数据中comma字符的位置;若rxk[i]为1则表示当前(拍)数据的i字节为comma字符。
其中,上述步骤s361和s362可同步进行。
s363、根据comma位置值,计算comma字符的偏移字节数。具体的,根据comma位置值k_location-i计算得到comma字符的偏移字节数,若计算结果为正,则表示需将comma字符往高位移动,反之,则需将comma字符往低位移动。
s364、根据偏移字节数对寄存的解码数据进行数据重组和拼接,输出边界对齐的数据。
参见图4和图5,为对应场景一,数据重组前comma字符(comma码)位于byte0位置(对应图中的k,此时i=0),而配置的k_location=3,故需将comma码调整至byte3的位置,同时将d8、d9、d10移至下一拍数据低三字节处,其他数据进行类似的移动重组,如:将数据n+1的d14移至byte3的位置,将d11、d12、d13移至数据n+2的低三字节处。
参见图6和图7,为对应场景二,数据重组前comma字符(comma码)位于byte3位置(此时i=3),而配置的k_location=0,故需将comma码调整至下一拍数据的byte0位置,同时将d8、d9、d10移至当前拍的高三字节处,其他数据进行类似的移动重组,如:将数据n+1的d11移至数据n+2的byte0位置,将d12、d13、d14移至数据n+1的高三字节处。
其中,步骤s360中,接收所述指示信号和配置的comma位置值调整comma字符的位置,或者调整comma字符至字节0位置,根据选择对齐模式信号cfg_data_align选择调整comma字符的方式。
s380、接收所述边界对齐的数据并进行缓存,并输出至用户接口。
具体的,由于数据字符的位置已经发生变化,故将指示信号(第一指示信号rxk、第二指示信号rdece和第三指示信号rdispe)的位置进行相应的调整,使得它们的位置与数据位置保持一致,调整完毕后,将所述边界对齐的数据和指示信号进行合并,完成对齐后拉高data_synced信号,并将数据输出。
基于同一发明构思,本发明实施例四还提供一种用于高速串行收发器的数据边界对齐系统,如下面的实施例。由于用于高速串行收发器的数据边界对齐系统解决问题的原理与用于高速串行收发器的数据边界对齐方法相似,因此用于高速串行收发器的数据边界对齐系统的实施可以参见用于高速串行收发器的数据边界对齐方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“子模块”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
所述数据边界对齐系统包括:comma检测和字符对齐模块,8b10b解码器,comma字符位置调整模块和数据边界对齐模块。
comma检测和字符对齐模块,用于当待检测数据中检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据;8b10b解码器,用于接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号;comma字符位置调整模块,用于接收所述指示信号和配置的comma位置值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;数据边界对齐模块,用于调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据。
在一实施方式中,所述数据边界对齐系统还包括:数据处理模块,用于接收输入数据,拼接组成待检测数据。
在一实施方式中,所述数据边界对齐系统还包括:字节对齐控制状态机,用于接收所述反馈信号,当所述反馈信号为无效数据指示信号或数据极性错误指示信号,用于控制模式跳转并执行所述重新确定数据字节的边界,输出字节边界对齐后的数据的步骤。
基于同一发明构思,如图8所示,本发明实施例五还提供一种用于高速串行收发器的数据边界对齐系统,包括:数据处理模块,comma检测和字符对齐模块,8b10b解码器,comma字符位置调整模块,数据边界对齐模块和字节对齐控制状态机。
数据处理模块bit_slip_20b_40b,用于接收输入数据,拼接组成待检测数据;comma检测和字符对齐模块,用于当待检测数据中检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据;8b10b解码器,用于接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号;comma字符位置调整模块,用于接收所述指示信号和配置的comma位置值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;数据边界对齐模块,用于调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据;字节对齐控制状态机wordalign,用于接收所述反馈信号,当所述反馈信号为无效数据指示信号或数据极性错误指示信号,用于控制模式跳转并执行所述重新确定数据字节的边界,输出字节边界对齐后的数据。
可以通过状态机模式控制信号cfg_align_mode选择其所需的字节对齐控制状态机,总共有1gb、10gb、rapidio以及outside四种状态机,每种状态机实现字符对齐的条件有差异,具体根据所使用的协议确定。
在一实施方式中,接收输入数据,拼接组成待检测数据,包括:接收输入数据并打一拍,拼接组成待检测数据。具体的,接收外部的输入数据data_in[39:0]打一拍进行延迟,打一拍为将输入数据data_in[39:0]延迟一个时钟周期,以保证输入输出接口的时序正确。
所述拼接组成待检测数据为,根据配置的位宽值拼接组成待检测数据。优选的,所述配置的位宽值包括20bit和40bit两种模式。
例如,当配置的位宽值为20bit模式时,将当前拍的20bit输入数据作为高位与上一拍的高9bit输入数据作为低位组成29bit的待检测数据,并将待检测数据根据位段划分成10组20bit的数据,其依次为data_in[19:0]、data_in[20:1]、…、data_in[28:9]。
当待检测数据中检测到comma字符,重新确定数据字节的边界,输出字节边界对齐后的数据;当待检测数据中未检测到comma字符,重新执行接收输入数据,拼接组成待检测数据。
在一实施方式中,检测为,根据逐比特比对方式,从所述待检测数据中检测与comma字符完全一致的字符。其中,通过参数cfg_comma_reg0和参数cfg_comma_reg1设定待检测的comma字符的正负值。进一步的,在逐比特比对时,将第一参数cfg_comma_reg0、第二参数cfg_comma_reg1的每个比特位同时分别与待检测数据对应的比特位进行比对,比对顺序依次为bit0~bit9,所有比特均比对结束后,若10个比特均比对一致,则将指示信号拉高,表示comma字符检测成功;否则,若10个比特中有1个或多个比特比对不一致,则将指示信号拉低,表示comma字符检测未成功,继续检测下一组数据。
在一实施方式中,步骤s320中的输出字节边界对齐后的数据为,整合comma字符的位置和检测结果,输出字节边界对齐后的数据data_out。
具体的,在解码还原中将识别出数据的有效性、数据的极性以及数据的类型,数据的有效性包括数据有效和数据无效,数据的类型包括comma码和数据码,数据的极性包括数据极性正确和数据极性错误。
反馈信号包括,代码违例code_violation信号和代码类型code_type信号;其中,代码违例code_violation信号用以指示数据的有效性和数据的极性,代码类型code_type信号用以指示数据的类型。
指示信号包括,第一指示信号rxk、第二指示信号rdece和第三指示信号rdispe;第一指示信号rxk用于指示当前数据为comma码,第二指示信号rdece用于指示出现解码错误(数据无效)、第三指示信号rdispe用于指示出现数据极性错误。
在一实施方式中,接收所述字节边界对齐后的数据并进行解码还原,输出解码数据、反馈信号和指示信号之后还包括;
接收所述反馈信号,当所述反馈信号为无效数据指示信号或数据极性错误指示信号,用于控制模式跳转并执行重新确定数据字节的边界,输出字节边界对齐后的数据。
其中,控制模式跳转包括1gb、10gb、rapidio以及outside。
进一步的,输出字节边界对齐后的数据data_out之前还包括,进行延迟等待后,根据指示输出字节边界对齐后的数据。
在一实施方式中,还包括检测同步状态信号,若为同步已完成则执行调整comma字符的位置或者调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据。
控制模式跳转完成后将输出同步状态信号lsm_synced,若同步已完成则输出高电平。
接收所述指示信号和配置的comma位置值k_location,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据;或者,调整comma字符至字节0位置,以及接收所述解码数据并输出边界对齐的数据。
本实施例中,若输入的数据为32bit(共4个字节,依次为字节3~字节0),rxk[i]=1则表示字节i为comma字符,例如:rxk[0]=1则表示字节0为comma字符,k_location的取值范围为0~3,表示可将comma字符调整至字节0~字节3的位置。
在一实施方式中,接收所述指示信号和配置的comma位置值,调整comma字符的位置,以及接收所述解码数据并输出边界对齐的数据包括,
接收解码数据并打三拍进行寄存。
接收所述指示信号和配置的comma位置值k_location,识别当前数据中comma字符的位置。具体的,根据输出的第一指示信号rxk[3:0]识别当前数据中comma字符的位置;若rxk[i]为1则表示当前(拍)数据的i字节为comma字符。
根据comma位置值,计算comma字符的偏移字节数。具体的,根据comma位置值k_location-i计算得到comma字符的偏移字节数,若计算结果为正,则表示需将comma字符往高位移动,反之,则需将comma字符往低位移动。
根据偏移字节数对寄存的解码数据进行数据重组和拼接,输出边界对齐的数据。
场景一,数据重组前comma字符(comma码)位于byte0位置(对应图中的k,此时i=0),而配置的k_location=3,故需将comma码调整至byte3的位置,同时将d8、d9、d10移至下一拍数据低三字节处,其他数据进行类似的移动重组,如:将数据n+1的d14移至byte3的位置,将d11、d12、d13移至数据n+2的低三字节处。
场景二,数据重组前comma字符(comma码)位于byte3位置(此时i=3),而配置的k_location=0,故需将comma码调整至下一拍数据的byte0位置,同时将d8、d9、d10移至当前拍的高三字节处,其他数据进行类似的移动重组,如:将数据n+1的d11移至数据n+2的byte0位置,将d12、d13、d14移至数据n+1的高三字节处。
其中,接收所述指示信号和配置的comma位置值调整comma字符的位置,或者调整comma字符至字节0位置,根据选择对齐模式信号cfg_data_align选择调整comma字符的方式,具体的通过选择器xq实现。即,选择器xq根据选择对齐模式信号cfg_data_align选择comma字符位置调整模块或者数据边界对齐模块输出的信号并输出至输出缓冲器。
输出缓冲器,用于接收所述边界对齐的数据并进行缓存,并输出至用户接口。
具体的,由于数据字符的位置已经发生变化,故将指示信号(第一指示信号rxk、第二指示信号rdece和第三指示信号rdispe)的位置进行相应的调整,使得它们的位置与数据位置保持一致,调整完毕后,将所述边界对齐的数据和指示信号进行合并,完成对齐后拉高data_synced信号,并将数据输出。
以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。