用于维特比解码器的高速加比选的制作方法

文档序号:15742236发布日期:2018-10-23 22:29阅读:188来源:国知局
用于维特比解码器的高速加比选的制作方法
本公开总地涉及通信系统领域,并且更具体地,涉及通信系统中的维特比解码领域。
背景技术
:在数据通信、数据记录、数字信号处理等领域中,维特比算法通常用于解码卷积编码信号。例如,在通信系统中,可以对从发送器发送的数据符号进行卷积编码,以提高传输可靠性。在传输过程中,信号可能有噪声和由信道失真引入的码间干扰(ISI)。相应地,在接收器处执行纠错解码过程来解码卷积编码的数据符号,并抵消码间干扰(ISI)。一种解码过程包括将接收到的数据序列与理论上可能的传输数据序列持续地进行比较。匹配的级别用作根据最大似然序列估算(MLSE)的决定的基础。更具体地,格子图用于描述编码规则。接收器中的维特比解码器计算度量,以确定格子图中具有最佳路径度量的最佳路径,例如,最高或最低路径度量,这取决于维特比解码器的配置。维特比解码器使用该所选最佳路径来确定经解码的数据序列,并接着将其传递到数据接收器(datasink)。根据维特比算法,导向特定状态的路径的每个路径度量包括在时间上的先状态的路径度量和从这一在先状态导向该特定状态的分支的分支度量。至此为止,为每个状态确定了具有最佳路径度量的路径,在此处称为“幸存路径(survivalpath)”。在每个时间步骤期间,存在与多个不同状态相对应的多个这种幸存路径。因此,路径度量取决于经由一个分支连接至该状态的在先时间步骤的路径度量。一般地,维特比解码器包括用于计算分支度量的分支度量电路、用于计算作为分支度量的函数的路径度量的路径度量电路,以及用于从路径度量集合中选择最佳路径度量的加比选(Add-Compare-Select,ACS)单元。图1示出了根据现有技术的ACS单元中的比选电路100的配置。ACS单元包括用于计算路径度量(或状态度量值)x1-x4的加法器(未示出),用于比较路径度量x1-x4的比较器101-103以及用于基于比较结果输出x1-x4的最小值的多工器111-113。更具体地,第一级别比较器101和102比较不同的对中的状态度量值x1-x4并输出决策信号s1和s2,每个决策信号指示相应对的较小值。决策信号s1和s2直接用作用于第一级别多工器111和112的选择控制信号。因此,每个第一级别多工器111或112输出相应对(x1,x2)或(x3,x4)的较小的路径度量u1或u2。接着,在第二级别比较器103处比较u1或u2,其产生决策信号u3,用于控制第二级别多工器113以输出u1和u2中较小的一个,或min(x1,x2,x3,x4)。根据这一配置,为了输出4个状态度量x1-x4中的最小值,第一级别比较器101-102、第一级别多工器111-112、第二级别比较器103和第三级别多工器113必须按顺序操作。这一比选算法的顺序性质导致了ACS单元中的不受欢迎的长延迟。一般地,ACS单元是维特比解码器中从计算方面讲最密集的部分,并被认为是解码速度上的主要瓶颈。进一步地,这种ACS单元也占据了最大的芯片面积,并且在解码器中消耗最多的功率。如图1所示,ACS单元的复杂性会以指数形式增加以及增加用于信道编码的各个代码的复杂性。发明概要因此,提供具有降低的处理延迟和简单的电路设计的加比选(ACS)单元也将是有利的,并且对于高速维特比解码来说是非常适用的。因此,本公开的实施例采用由对比较器决策信号进行布尔操作所得到的选择控制信号来控制ACS单元中的多工器结构。由比较器阵列比较所有可能的输入值集合对来并行生成决策信号。布尔操作被预定义并且能够通过布尔代数来导出,所述布尔代数使用决策信号作为变量并且遵守由选择标准施加的限制,例如,所述选择标准用于选择输入值集合中的最小值或最大值。布尔操作由使用由AND、OR和NOT组成的基本逻辑门实现的逻辑模块来执行。结果是,接收输入值集合的多工器结构能够响应于选择控制信号根据选择标准来输出最佳值。与如图1所示的传统配置相比,根据本公开的ACS单元使用第一级别的额外的比较器,其与逻辑单元结合,有效地降低或消除对于ACS单元中的高级别的比较-多工的需求。因为所有可能的输入值集合对都被并行比较,所以比较决策信号可以为逻辑单元提供充分的信息以产生选择控制信号,用于使多工器结构输出来自输入值集合的最佳值。由此,序列处理并且因此ACS单元中的全部处理延迟可以显著地并有利地减少。由于简化的设计,ACS单元中的门数目也可以减少。在一些实施例中,逻辑单元被配置为生成用于控制ACS中的多工器结构的所有选择线的选择控制信号。在一些其他实施例中,第一级别多工器用于根据比较决策信号从输入值集合直接输出候选值。与此同时,对决策信号执行布尔操作,以生成用于控制较高级别(upperlevel)多工器的选择控制信号,较高级别多工器相应地从候选值中选择最佳值。由于第一级别多工器和逻辑单元之间的并行操作,ACS单元处的总体延迟也可以进一步减少。此外,由于候选值的数目比输入值小,因此逻辑单元也可以相对简单。在本公开的一个实施例中,一种从以维特比解码的多个状态度量值中选择状态度量值的方法包括:成对地比较多个状态度量值,以产生多个第一决策信号。各个第一决策信号指示来自对应的状态度量值对的所选状态度量值。第一选择信号是通过对多个第一决策信号执行布尔操作来生成的。结果状态度量值是基于第一选择信号从多个状态度量值中选择的。前述为概要,并且因此必然包括简化、概括和省略细节;因此,本领域技术人员将领会到,概要仅是示例性的,并且不意图以任何形式限制。其他的方面、发明特征以及本发明的优点,如权利要求所单独地定义的,将在下文阐述的非限制性详细描述中变得显而易见。详细描述现在将对本发明的优选实施例进行详细的参考,其例子在附图中例示。虽然本发明将结合优选实施例进行描述,可以理解的是,它们并不意图将本发明限制于这些实施例。与此相反,本发明意图覆盖改变、修改和等同物,其将被包括在如所附的权利要求书所限定的本发明的精神和范围内。此外,在以下本发明的实施例的详细描述中,阐述了许多具体的细节,以提供本发明的全面了解。然而,本领域技术人员将认识到,本发明可以在没有这些具体细节的情况下实践。在其他情况下,没有详细描述众所周知的方法、过程、组件和电路,以免非必要地模糊本发明的实施例的方面。虽然为了清晰的目的,方法可以被描述为一系列编号的步骤,但是编号并不一定决定步骤的顺序。应该理解的是,某些步骤可以跳过、并行执行、或不需要保持序列的严格顺序执行。示出本发明实施例的附图是半图解的,并且不按比例,特别地,一些维度是为了展示的清晰,并在图中被放大示出。同样,虽然附图中的视图为了便于描述的目的示出了相似的方位,图中的这一描绘大部分是任意的。一般来说,本发明可以在任何方位上进行操作。附图说明通过阅读下面的详细描述,结合附图,本发明的实施例将被更好地理解,附图中相似的参考字符指定相似的元件,并且其中:图1例示了根据现有技术的加比选(ACS)单元中的比选元件;图2A例示了根据本公开的实施例的被配置为从四个输入值中选择最小值的示例性比选组件200的配置;图2B是根据本公开的实施例的描绘了根据预定义的标准从N个状态度量值中比较和选择的示例性方法的流程图;图3A例示了根据本公开的实施例的被配置为从四个输入值中选择最小值的另一示例性比选组件的配置;图3B是根据本公开另一实施例的描绘了根据预定义的标准从N个状态度量值中比较和选择的示例性方法的流程图;图4例示了根据本公开的实施例的被配置为从16个输入值中选择最小值的示例性比选组件的配置;图5A例示了根据本公开的实施例的被配置为从16个输入值中选择最小值的另一示例性比选组件的配置;图5B是根据本公开另一实施例的描绘了从N个状态度量值中比较和选择某值的示例性方法的流程图;图6例示了根据本公开的实施例的具有低延迟ACS单元的示例性维特比解码器。用于维特比解码器的高速加比选总的来说,本公开的实施例提供了用于维特比解码的比选机制,其利用由在一组比较器决策信号上的预定义的布尔操作所导致的选择控制信号。比较器决策信号可以通过比较一组例如状态度量值(或路径度量)的输入值的所有可能的对来生成。受控于选择控制信号,接收输入值组作为输入值的多工器结构能够输出符合选择标准的最佳值。图2A例示了根据本公开实施例的配置为从四个输入值x1-x4中选择最佳值的示例性比选组件200的配置。例如,比选组件200配置在维特比解码器中的加比选单元中。然而,本公开不限于这一配置。在这个示例中,比选组件200配置为输出4个状态度量x1-x4的最小值。比选组件200包括单一级别的比较器201-206、逻辑模块210和多工器221。比较器的阵列直接在输入x1-x4上操作,并且并行比较输入x1-x4的所有可能的对。具有4个输入,6(=3×4/2)个比较器足以在所有可能的对之间进行比较,没有冗余。例如,通过使用额外的反相器,xl>x2和x2<xl可以共享同一比较器。逻辑单元210在比较器201-206输出的决策信号上执行预定义的布尔操作并产生由s0(MSB)和s0(LSB)组成的2位的选择控制信号s0。如图2A所示,s0(MSB)和s0(LSB)是决策信号y1、y2、y3、y5、y6、y9的布尔函数。布尔函数的来源将在下文进行更详细地描述。4∶1多工器221在其输入上接收x1-x4和在其选择线上接收控制信号s0,并且因此输出x1-x4的最小值。可以理解的是,多工器221可以包括单层或多层的多工器,其可以以本领域所熟知的任意配置实施。与图1所示的传统配置相比,根据本公开的ACS单元在第一级上使用额外的比较器,其与逻辑单元结合,有效地降低或消除对ACS单元中额外级别的比较-多路传输的需求。因为输入值组的所有可能的对都被并行比较,比较决策信号为逻辑单元提供充足的信息,以产生选择控制信号,用于使多工器结构从输入值组中输出最佳(例如最小)值。具体地,没有第二级别的比较器需要等到第一级别的比较器完成其任务。由此,连续的处理以及ACS单元中的全部处理延迟能够显著地和有利地降低。由于简化的设计,ACS单元中的门数也能够降低。此处,在布尔代数表达式中,符号“+”表示“OR”,符号“*”表示“AND”,并且符号“’”表示“NOT”。可以理解的是,本公开不限于用于产生特定多工器选择信号的任何特定的布尔函数。其也不限于派生该函数的方法。实现布尔操作的逻辑单元210可以如下文派生而来。更具体地,6个比较器201-206的输出信号(或决策信号)代表:a.y1=x1<x2b.y2=x1<x3c.y3=x1<x4y4=y1’=e.y5=x2<x3f.y6=x2<x4y7=y2’=y8=y5’=i.y9=x3<x4y10=y3’=y11=y6’=y12=y9’=注意删除掉的表达式对应冗余的比较器,因为其将只产生在反相相关比较器的结果以后已经可用的信息。例如,y4=x2<x1可用作y1=x1<x2,所以y4=y1’。最小函数的输出s0,其中s0=0∶3,可以经由下式计算:s0=0(00),当y(1∶3)=1//x1小于其他的(x2,x3,x4)s0=1(01),当y(4∶6)=1//x2小于其他的(x1,x3,x4)s0=2(10),当y(7∶9)=1//x3小于其他的(x1,x2,x4)s0=3(11),当y(10∶12)=1//x4小于其他的(x1,x2,x3)布尔代数可以用于导出用于s0的两个输出比特的表达式。最重要的比特(MSB)可以由下式给出:s0(MSB)=y7*y8*y9+y10*y11*y12或s0(MSB)=y2’*y5’*y9+y3’*y6’*y9’式1可以看出s0(MSB)可以简化为:s0(MSB)=y2’*y5’+y3’*y6’式2s0(LSB)由下式给出:s0(LSB)=y4*y5*y6+y10*y11*y12s0(LSB)=y1’*y5*y6+y3’*y6’*y9’式3图2B是根据本公开的实施例的描绘了根据预定义的标准从N个状态度量值中比较和选择的示例性方法250的流程图。例如,当N等于4时,方法250可以被图2A中的比选组件200执行。在251,N个状态度量值被以所有可能的对进行比较,以生成比较决策信号,每个决策信号指示该对中的较小值。在252,对决策信号执行布尔操作以生成用于多路传输N个状态度量值的选择信号。布尔操作基于选择标准而被定义,例如,选择N个状态度量值中的最小值。在253,发送选择信号至多工器结构,以控制从N个状态度量值中的选择。在254,多工器结构响应于选择信号而输出N个状态度量值中的最小值。在图2A所示的实施例中,多工器221完全由布尔逻辑产生的选择控制信号控制,并且因此多路传输操作在逻辑单元输出选择控制信号以后开始执行。在一些其他的实施例中,通过比较不同对(x1,x2)和(x3,x4)以及在这些对中的每一对上应用单独的多工器(第一级别多工器),多路传输操作可以更早开始。接着,另一层多工器(第二级别多工器)用于选择第一级别多工器的输出的最小值。图3A示出了根据本公开的实施例的被配置为从四个输入x1-x4中选择最小值的另一示例性比选组件300的配置。比选组件300包括单一级别的比较器301-306、逻辑单元310和由第一级别中的321和322以及第二级别中的331组成的两级多工器。类似于图2A的实施例,比较器301-306的阵列直接在输入x1-x4上操作,并且并行比较输入x1-x4中的所有可能的对。具有四个输入时,6个比较器足以在所有可能的对之间进行比较,没有冗余。逻辑单元310对从比较器301-306输出的决策信号执行预定义的布尔操作,并产生2比特选择控制信号s0,包括s0(MSB)和s0(LSB)。与图2A中的实施例不同,图3A示出了第一级别多工器321和322,其直接使用来自相关比较器301和306的原始决策信号y1(=s1)和y9(=s2)来多路传输两个不同的对(x1,x2)和(x3,x4)。因此来自第一级别多工器321和322的输出u1和u2是两个不同的对中较小的一个,或是两个“候选值”中较小的一个。接着u1和u2经受第二级别多工器331进行的多路传输。在这一配置中,第一级别多工器312和322无需等待,直到逻辑单元310处理决策信号和产生选择信号,这有利地有助于进一步降低加比选处理中的延迟。更具体地,并行于第一级别多工器321和322进行的多路传输,逻辑单元310处理决策信号以产生用于第二级别多工器331的选择控制信号s3。因此,可以从仅4个比较器输出中获取s3,而非从全部的6个比较器(y1,y2,y3,y5,y6,y9),因为对(x1,x2)和(x3,x4)已经被比较过了。因此,布尔逻辑310可以比图2A中的布尔逻辑210简单。第二级别多工器331在其输入处接收u1和u2并在其选择线上接收s3,并且相应地输出u1和u2中的较小值(=v),其是x1-x4中的最小值。图3A中的选择信号s3可以基于下列表达式而得到:s3=1,其中最小值是x1或x2,当y(2∶3)=1或y(5∶6)=1s3=0,其中最小值是x3或x4,当y(7∶8)=1或y(10∶11)=1因此,s3表示为(只用于它是1时):s3=y2*y3+y5*y6式4对于s1方程式为:s1=1,其中最小值是x1,当y(1)=1s1=0,其中最小值是x2,当y(4)=1s1=y1式5对于s2:s2=1,其中最小值是x3,当y(9)=1s2=0,其中最小值是x4,当y(12)=1s2=y9式6s0的信号(LBS和MSB)可以由式1和2所示的相同布尔函数得到。表1示出了第二种通过使用s1、s2、s3的计算值获取s0的第二种方法。mins1s2s3s0x11x100x20x101x3x1010x4x0011表1基于已经计算的MUX选择s1、s2、s3用于s0(MSB和LSB)的方程式可以由下式给出:s0(MSB)=s1*s3’+s1’*s3’=(s1+s1’)*s3’=s3’或s0(LSB)=s1’*s3+s2’*s3’图3B是根据本公开另一实施例的描绘了根据预定义的标准从N个状态度量值中比较和选择的示例性方法350的流程图。例如,当N等于4时,方法350可以由图3A中的比选组件300执行;并且当N等于16时,方法350可以由图4中所示的比选组件360执行,如下所述。在351,N个状态度量值被以所有可能的对进行比较以生成决策信号,其中每个决策信号指示该对中的较小值。接着通过两个并行路径处理决策信号。在352,来自一组所选比较器的决策信号直接用于控制根级别多工器。在图3A和图4所示的例子中,该组所选比较器与不同对的N个状态度量值相对应,并且因此由N/2个比较器组成。然而,本公开不限于这一实现方式。在354,响应于决策信号,从根级别多工器输出候选值,其中每个候选值是不同对中的各个对的最小值。候选值接着经受较高级别的多路传输。更具体地,并行于352和354处的根级别多路传输,对决策信号执行布尔操作以在353处生成选择信号。在355,在355处将选择信号发送至较高级别多工器结构。在356,响应于选择信号,较高级别多工器结构输出候选值中的最小值,其是N个状态度量值中的最小值。可以理解的是,较高级别多工器结构可以包括以本领域中熟知的任何合适的配置布置的单层或多层。布尔操作和选择信号可以随着较高级别多工器结构的配置而变化。在一些更复杂的维特比解码器中,ACS单元需要找出16个输入值中的最小值。参考图3B描述的处理可以应用于从16个值中选择。图4例示了根据本公开实施例的被配置为从16个输入x1-x16中选择最小值的示例性的比选组件360的配置。比选组件360包括单一级别的比较器(例如,361-364),其直接对输入x1-x16进行操作,并且并行比较输入x1-x16的所有可能的对。所有可能的对之间的可能比较器的总数可以是15×15=225。然而,具有16个输入时,120(=16×15/2)个比较器足以在所有可能的对之间进行比较,而没有冗余。比选组件360进一步包括8个根级别多工器(例如371、372和373),布置为层次的较高级别多工器(例如381、382、391、392和393),以及逻辑单元370。根级别多工器以8个不同的对多路传输16个输入,得到8个候选值(例如u11、u12、u41和u42)。接着将8个候选值发送至较高级别多工器,用于输出min(x[1∶16])。在这个例子中,根级别多工器由耦连至不同对的8个比较器的决策信号(例如s11、s12、s41和s42)直接控制,然而较高级别多工器由从逻辑单元370产生的选择信号(例如s13、s43、s51、s52和s6)控制。去往较高级别多工器的选择信号基于对输入x1-x16的若干进行操作的比较器并行计算。所需的比较器的部分列表为:○y1,1=x1<x2○y1,2=x1<x3○y1,3=x1<x4○y1,4=x1<x5○y1,5=x1<x6○y1,6=x1<x7○y1,7=x1<x8○y1,8=x1<x9○y1,9=x1<x10○y1,10=x1<x11○y1,11=x1<x12○y1,12=x1<x13○y1,13=x1<x14○y1,14=x1<x15○y1,15=x1<x16○y2,1=y1,2’=○y2,2=x2<x3○y2,3=x2<x4○y2,4=x2<x5○y2,5=x2<x6○y2,6=x2<x7○y2,7=x2<x8○y2,8=x2<x9○y2,9=x2<x10○y2,10=x2<x11○y2,11=x2<x12○y2,12=x2<x13○y2,13=x2<x14○y2,14=x2<x15○y2,15=x2<x16○y3,1=y1,3’=○y3,2=y2,3’=○y3,3=x3<x4○y3,4=x3<x5○y3,5=x3<x6○y3,6=x3<x7○y3,7=x3<x8○y3,8=x3<x9○y3,9=x3<x10○y3,10=x3<x11○y3,11=x3<x12○y3,12=x3<x13○y3,13=x3<x14○y3,14=x3<x15○y3,15=x3<x16○y4,1=y1,4’=○…为了减少延迟,多路传输过程可以通过使用各对x(1,2)、x(3,4)、x(5,6)、x(7,8)、x(9,10)、x(11,12)、x(13,14)和x(15,16)的8个比较器立即开始。在这8个多工器处理输入信号时,基于对部分输入x(1:16)进行操作的比较器并行计算下一级别的多工器的选择控制。组件360包括产生4个输出(即v1、v2、v3和v4)的4个子块(块A-D)。每个子块从4个输入中产生最小值。接着,经由3个多工器391、392和393获得v1到v4的最小值。在这个实施例中,为了减少延迟,基于比较输入x1-16的结果计算最后3个多工器s51、s52和s6的选择控制。在一些其他实施例中,可以基于比较v1-v4的结果计算s51、s52和s6(如参照更详细地描述)。输入x(1∶16)被划分为4组,其中每组具有4个输入,x1到x4,x5到x8,x9到x13,以及x13到x16。每组首先被子块处理。可以使用参照图2A在4个输入x1-x4的情况下描述的技术找出每4个输入值的最小值。第一组的输出为:u11=min(x1,x2)u12=min(x3,x4)从比较器输出x1<x2和x3<x4,快速地获得选择s11和s12。接着,在后处理比较器输出以后,获得第二级别多工器381的选择控制s13。类似于上文所提供的,s13表示为:s13=y2*y3+y5*y6式7以及,○y1=x1<x2○y2=x1<x3○y3=x1<x4y4=y1’=○y5=x2<x3○y6=x2<x4y7=y2’=y8=y5’=○y9=x3<x4y10=y3’=y11=y6’=y12=y9’=同样的操作应用于另外3个子块,其中找出了下列4个最小值:●v1=min(x1,x2,x3,x4)●v2=min(x5,x6,x7,x8)●v3=min(x9,x10,x11,x12)●v4=min(x13,x14,x15,x16)接着是找出min(v1,v2,v3,v4)并获得高多工器选择信号s51、s52和s6的值。一种找出min(v1,v2,v3,v4)的方法是以与用于找出min(x1,x2,x3,x4)相同的方法找出v1,v2,v3和v4的最小值。然而,这一方法具有相对较高的延迟,因为它只能在v1到v4可用以后开始计算。在这个实施例中,为了找出s51、s52和s6,比较器可以立即开始处理输入x(1∶16),并且无需等到获得v1到v4。可以如下所述推导出选择信号s51。注意在这一步骤中,无所谓最小值是否是x1,x2,x3或x4。所以x1和x2,x3或x4之间的关系无所谓,因为min(x1,x2,x3,x4)已经被选择了。w1是x1到x8的最小值,当:x1<x2=y1(x1与x2之间的关系无所谓,因此忽略这个要求)x1<x3=y2(x1与x3之间的关系无所谓,因此忽略这个要求)x1<x4=y3(x1与x4之间的关系无所谓,因此忽略这个要求)x1<x5x1<x6x1<x7x1<x8类似的处理应用于x2、x3和x4。因此,s51表示为:s51=x1<x5*x1<x6*x1<x7*x1<x8+x2<x5*x2<x6*x2<x7*x2<x8+x3<x5*x3<x6*x3<x7*x3<x8+x4<x5*x4<x6*x4<x7*x4<x8s52可以类似于s51被推导出,通过在s51的方程式的所有指数上加8:s52=x9<x13*x9<x14*x9<x15*x9<x16+x10<x13*x10<x14*x10<x15*x10<x16+x11<x13*x11<x14*x11<x15*x11<x16+x12<x13*x12<x14*x12<x15*x12<x16如下所述推导出选择s6=(w1<w2)。注意无所谓最小值是否是x1到x8。所以x1和x2到x8之间的关系无所谓,因为w1=min(x1到x8)已经被选择了。x1是x1到x16的最小值,当:x1<x2=y1(x1与x2之间的关系无所谓,因此忽略这个要求)x1<x3=y2(x1与x3之间的关系无所谓,因此忽略这个要求)x1<x4=y3(x1与x4之间的关系无所谓,因此忽略这个要求)x1<x5(x1与x5之间的关系无所谓,因此忽略这个要求)x1<x6(x1与x6之间的关系无所谓,因此忽略这个要求)x1<x7(x1与x7之间的关系无所谓,因此忽略这个要求)x1<x8(x1与x8之间的关系无所谓,因此忽略这个要求)x1<x9x1<x10x1<x11x1<x12x1<x13x1<x14x1<x15x1<x16同样的处理应用于x2到x8。因此,s6表示为:s6=x1<x9*x1<x10*x1<x11*x1<x12*x1<x13*x1<x14*x1<x15*x1<x16+x2<x9*x2<x10*x2<x11*x2<x12*x2<x13*x2<x14*x2<x15*x2<x16+x3<x9*x3<x10*x3<x11*x3<x12*x3<x13*x3<x14*x3<x15*x3<x16+x4<x9*x4<x10*x4<x11*x4<x12*x4<x13*x4<x14*x4<x15*x4<x16+x5<x9*x5<x10*x5<x11*x5<x12*x5<x13*x5<x14*x5<x15*x5<x16+x6<x9*x6<x10*x6<x11*x6<x12*x6<x13*x6<x14*x6<x15*x6<x16+x7<x9*x7<x10*x7<x11*x7<x12*x7<x13*x7<x14*x7<x15*x7<x16+x8<x9*x8<x10*x8<x11*x8<x12*x8<x13*x8<x14*x8<x15*x8<x16可以如下所述推导出min(x1到x16)的指数s0,其中s0=0到15(4比特)。s0(bit0=LSB)=?s0(bit1)=?s0(bit2)=?s0(bit3=MSB)=?s0=0000,当x1是最小值时,或当下列15个比较器是“1”时:x1<x2x1<x3x1<x4x1<x5x1<x6x1<x7x1<x8x1<x9x1<x10x1<x11x1<x12x1<x13x1<x14x1<x15x1<x16s0=0001,当x2是最小值时,或当下列15个比较器是“1”时:x2<x1x2<x3x2<x4x2<x5x2<x6x2<x7x2<x8x2<x9x2<x10x2<x11x2<x12x2<x13x2<x14x2<x15x2<x16s=0010,当x3是最小值时,或当下列15个比较器是“1”时:等等…直到s=1111,当x16是最小值时,或当下列15个比较器是“1”时:…图5A例示了根据本公开的实施例中的被配置为从16个输入x1-x16中选择最小值的另一示例性比选组件500的配置。与图4中所示的实现方式相比,这一实施例突出了更加简单的但有额外延迟的配置。如图所示,比较器531和532的第二阶段用于简化选择信号的生成,并减少比较器的总数,因为第一级别比较器(例如501、502和503)不需要比较全部可能的对。更具体地,比选组件500包括5个子块(块A-E),每个子块用于找出4个值中的最小值,例如min(x(1∶4))和min(v(1∶4))。对比图6所示的实施例,比较器的总数降低了,因为无需比较属于两个不同组的4个输入的2个值。由于能够在第一阶段的输出可用之后应用的额外阶段的比较器,延迟增加了。每个子块的第二多工器的选择,例如s13=(u11<u12),只取决于该子块的4个输入,例如x(1∶4)。s13=(x1<x3)*(x1<x4)+(x2<x3)*(x2<x4)如上文所示,当x1是最小值或x2是最小值时,选择s13是1,其确保x1小于x3和x4。x1和x2之间的关系无所谓,因为u11是min(x1,x2)。类似地,如果x2是最小值,x2与x3和x4进行比较,并且x1和x2之间的关系不相关。当选择u11或当x1或x2是最小值时,s13=1:x1是最小值,当:x1<x2=y1(x1与x2之间的关系无所谓,因此忽略这个要求)x1<x3=y2x1<x4=y3x2是最小值,当:x2<x1=y1’(我们不在乎x1与x2之间的关系,因此忽略这个要求)x2<x3=y5x2<x4=y6因此,s13表示为:s13=y1*y2*y3+y1’*y5*y6可以经由多工器实现s13,其中选择是基于y1的。因为最小值是否是x1或x2无所谓,因此可以忽略y1。因此s13=y2*y3+y5*y6可以应用同一原则来获取s51,其中:s51=(v1<v2)s52=(v3<v4)。图5B是根据本公开另一实施例的描绘了从N个输入状态度量值中比较和选择的示例性方法550的流程图。如果N等于16,可以由图5的比选组件500执行方法550。在551,成对比较N个状态度量值,以生成第一决策信号,每个第一决策信号识别该对中的较小值。在一些实施例中,N个状态度量值被划分为M个块。可以对每个块内的全部可能的对执行该第一阶段比较,而不比较不同块之间的值。在两个路径中并行处理第一决策信号。在552,第一决策信号直接用于控制第一级别多工器,以输出所选对中的每对中的较小值。所选对可以由每个块内的不同对组成。在554,从第一级别多工器中输出第一候选值,并将其发送到第二级别多工器。与552和554处的第一级别多路传输同时地,对第一决策信号执行布尔操作以在553处生成第一选择信号。在555,将第一选择信号输出到第二级别多工器。在556,响应于第一选择信号,从第二级别多工器输出第二候选值。例如,每个第二候选值是4个输入状态度量值中的最小值。在557,成对比较第二候选值,以生成第二决策信号,其中每个第二决策信号指示每对第二候选值中较小的一个。接着,在两个路径558和559中并行处理第二决策信号。在558,第二决策信号直接用于控制第三级别多工器,以输出每对第二候选值中较小的一个。在559,对第二决策信号执行布尔操作,以生成第二选择信号。在540,响应于第二选择信号,第三级别多工器输出N个输入中的最小值。图6例示了根据本公开实施例的具有低延迟ACS单元的示例性维特比解码器600。以一种基本的形式,维特比解码器600包括分支度量单元610、ACS单元620、幸存路径解码器630和路径度量单元640。根据本公开的实施例,ACS单元620包括低延迟和低门数比选组件,如参照图2A至图5B所详细描述的。在维特比解码器600的输入处接收的信号是卷积编码的。分支度量单元610计算指示所接收的数据信号和理想数据信号之间的距离的分支度量。分支度量被馈送入ACS单元620,所述ACS单元620为每个可能的状态转换递归地计算路径度量并输出路径选择决策比特。决策比特被读出以获取幸存路径解码器630的最大可能性决策,以沿着最终幸存路径解码源比特。当前迭代的路径度量被存储在路径度量单元(PMU)640中。接着,将解码的数据比特发送到数据接收器(未图示)以进行进一步的数据处理。维特比解码器600中所示的组件可以执行本领域中所熟知的各种其他功能。进一步地,可以理解的是,根据本公开的维特比解码器可以包括本领域中所熟知的各种其他组件。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1