卷积码Viterbi译码器中的级联加比选单元及其数据处理方法 【技术领域】
本发明属于通信信道编解码领域,具体地说,是指一种卷积码Viterbi译码器中的级联加比选单元设计方法。
背景技术
卷积码,在深空通信等领域有很大的应用。卷积码的译码目前应用最广泛的是Viterbi译码算法,目前对于Viterbi译码算法的研究主要集中在集成电路的设计与FPGA实现上,其中高速译码的研究占主要部分,主要包括译码器幸存路径的快速处理与加比选的快速计算方面,其中对于加比选计算的研究主要有对于将网格图合并后的基2
n运算结构的研究等。基2
n运算算法可以提高译码速度,但是其硬件资源的增长是呈指数增长的。
【发明内容】
本发明为了解决现有技术中存在的不足,提供一种卷积码Viterbi译码器中加比选单元ACSU的设计方法,用以解决使用低硬件资源消耗进行高速译码的问题。本发明将加比选计算用组合逻辑级联的形式在一个时钟周期内进行处理,比普通的全并行结构译码器有着更快的译码速度,与基2
n结构译码器的译码速度相当,但由于本发明所设计的加比选单元ACSU的硬件资源增长是呈线性的,比基2
n结构的译码器更节省硬件资源,并且可以实现在低速时钟下的高速译码。
对于(2,1,m)卷积码,其中m为卷积码约束长度,本发明提供的加比选单元ACSU采用级联的方式,加比选单元ACSU包括n(n=2,3,4,…)个单级2
m‑1状态加比选单元GACSU,上述单级2
m‑1状态加比选单元GACSU包括:2
m‑1个单状态加比选单元SACSU。GACSU输入为支路度量单元BMU得到的支路度量值和上一次2
m‑1状态加比选单元GACSU计算得到的状态值。此2
m‑1个单状态加比选单元SACSU依次按1~2
m‑1的顺序编号。其中单状态加比选单元SACSU包括两个加法器和一个比较器。
其中单状态加比选单元SACSU中每个加法器的输入分别为1个支路度量值和1个上次GACSU计算得到的状态值,比较器的输入为两个加法器的计算结果,取两者中的小值作为该状态的状态值输出。
根据前述的加比选单元ACSU,其数据处理方法步骤如下:
第一步骤:支路度量值分组
将前一个时钟周期计算得到的支路度量值进行分组,对于n级级联而成的ACSU结构需要n组支路度量值。对于(2,1,m)卷积码,每组支路度量值为由2bits输入数据计算得到的4个支路度量值bm
00、bm
01、bm
10、bm
11。这里将首先输入的2bits数据得到的4个支路度量值作为第一组支路度量值bm
00‑1、bm
01‑1、bm
10‑1、bm
11‑1,即数据流中的第一和第二比特得到的支路度量值为第一组支路度量值,同理数据流中的第三和第四比特得到的支路度量值为第二组支路度量值bm
00‑2、bm
01‑2、bm
10‑2、bm
11‑2,数据流中的第五和第六比特得到的支路度量值为第三组支路度量值bm
00‑3、bm
01‑3、bm
10‑3、bm
11‑3,数据流中的第七和第八比特得到的支路度量值为第四组支路度量值bm
00‑4、bm
01‑4、bm
10‑4、bm
11‑4,依次类推。
第二步骤:加比选计算
在当前时钟周期内,按照相应的输入进行第一级2
m‑1状态加比选单元GACSU中所有加法器和比较器的运算,与此同时,将第一级加比选计算的结果pm和第二组支路度量值bm作为输入,进行第二级2
m‑1状态加比选单元GACSU中所有加法器和比较器的运算,当使用n级加比选单元ACSU时,需要同时计算n级2
m‑1状态加比选单元GACSU中的加法器和比较器运算。
第三步骤:计算结果输出
将最后一级2
m‑1状态加比选单元GACSU计算得到的状态值寄存输出,以便用于下一次的加比选计算,同时将n级2
m‑1状态加比选单元GACSU计算得到的幸存路径值寄存输出。
其中每组支路度量值中的4个数据表示为bm
00、bm
01、bm
10、bm
11分别代表BMU的输入数据与00,01,10,11四组数据的支路度量值,bm
00~bm
11与各加法器的连接关系由(2,1,m)卷积码的网格图确定。网格图中的转换后状态对应的00路经的输入为bm
00,01路经的输入为bm
01,10路经的输入为bm
10,11路经的输入为bm
11。每级2
m‑1状态加比选单元GACSU计算得到的状态值共2
m‑1个数据为1组,每组数据分别对应网格图转换前状态的状态值,根据网格图的转换关系,将数据送入相应地加法器中。
本发明的优点在于:
(1)应用本发明提供的级联加比选单元ACSU设计方法,可以在一个时钟周期内进行n(n=2,3,4,…)次加比选计算,使译码速度提高;
(2)本发明可以使得在低速时钟下获得高速的译码速度,且硬件资源的消耗是呈线性增长的。
【附图说明】
图1为本发明所涉及的(2,1,7)卷积码的编码器示意图;
图2为本发明设计的级联加比选单元ACSU连接图;
图3为本发明设计的2
m‑1状态加比选单元GACSU内部结构图;
图4为本发明以(2,1,7)卷积码中一个SASU为例设计的单状态加比选单元SACSU内部结构图;
图5为本发明以(2,1,7)卷积码第一级64状态加比选单元GACSU为例设计的2
m‑1状态加比选单元GACSU内部具体结构图;
图6为本发明设计的2级加比选单元ACSU连接图;
图7为本发明设计的3级加比选单元ACSU连接图;;
图8为本发明设计的4级加比选单元ACSU连接图;
图9为本发明所涉及的(2,1,3)卷积码的编码器示意图;
图10为本发明所涉及的(2,1,3)卷积码的网格图。
【具体实施方式】
下面参照附图和实施例对本发明的具体实施方式进行解释说明。
本发明提供的卷积码Viterbi译码器中的级联加比选单元及其数据处理方法,针对(2,1,m)卷积码,译码器中加比选单元ACSU采用级联的方式,如图2所示,加比选单元ACSU包括n(n=2,3,4,…)个单级2
m‑1状态加比选单元GACSU1、GACSU2、……GACSUn,上述每个单级2
m‑1状态加比选单元GACSU包括:2
m‑1个单状态加比选单元SACSU1、SACSU2、……SACSU2
m‑1,如图3。GACSU输入为支路度量单元BMU得到的支路度量值和上一次第n个单级2
m‑1状态加比选单元GACSUn计算得到的状态值,如图2所示,第一个单级2
m‑1状态加比选单元GACSU1的输入为支路度量单元BMU得到的支路度量值bm
00‑1~bm
11‑1和上一次第n个单级2
m‑1状态加比选单元GACSUn计算得到的状态值
![]()
第二个单级2
m‑1状态加比选单元GACSU2的输入为支路度量单元BMU得到的支路度量值bm
00‑2~bm
11‑2和上一次第1个单级2
m‑1状态加比选单元GACSU1计算得到的状态值
![]()
第n个单级2
m‑1状态加比选单元GACSUn的输入为支路度量单元BMU得到的支路度量值bm
00‑n~bm
11‑n和上一次第n‑1个单级2
m‑1状态加比选单元GACSUn‑1计算得到的状态值
![]()
每个GACSU中的2
m‑1个单状态加比选单元SACSU1、SACSU2......SACSU2
m‑1依次按1~2
m‑1的顺序编号。其中每个单状态加比选单元SACSU包括两个加法器和一个比较器,如图4,第一个单状态加比选单元SACSU1包括两个加法器add1‑1、add2‑1和一个比较器comp1‑1;每级2
m‑1个单状态加比选单元SACSU中所有的加法器和比较器按单状态加比选单元SACSU的编号顺序递增编号,命名为add1‑1、add2‑1……、add2
m‑1,比较器命名为comp1‑1、comp2‑1……、comp2
m‑1‑1,如图5。
其中单状态加比选单元SACSU中每个加法器的输入分别为1个作为本级GACSU输入的支路度量值和1个上次GACSU计算得到的状态值,比较器的输入为两个加法器的计算结果,取两者中的小值作为该状态的状态值输出。
n(n=2,3,4,…)级2
m‑1状态加比选单元ACSU,其中的2
m‑1状态加比选单元GACSU为全并行结构的加比选单元。2级加比选单元ACSU,为将2
m‑1状态加比选单元GACSU的输出结果pm与第二组支路度量值bm作为输入级联得到的加比选单元ACSU。3级加比选单元ACSU为在2级加比选单元ACSU的基础上将2级加比选单元ACSU的输出结果pm与第三组支路度量值bm作为输入级联得到的加比选单元ACSU。4级加比选单元ACSU为在3级加比选单元ACSU的基础上将3级加比选单元ACSU的输出结果pm与第四组支路度量值bm作为输入级联得到的加比选单元ACSU。
根据前述的加比选单元ACSU,其数据处理方法步骤如下:
第一步骤:支路度量值bm分组;
将前一个时钟周期计算得到的支路度量值进行分组,对于n级级联而成的ACSU结构需要n组支路度量值。对于(2,1,m)卷积码,每组支路度量值为由2bits输入数据计算得到的4个支路度量值bm
00、bm
01、bm
10、bm
11。这里将首先输入的2bits数据得到的4个支路度量值作为第一组支路度量值bm
00‑1、bm
01‑1、bm
10‑1、bm
11‑1,即数据流中的第一和第二比特得到的支路度量值为第一组支路度量值,同理数据流中的第三和第四比特得到的支路度量值为第二组支路度量值bm
00‑2、bm
01‑2、bm
10‑2、bm
11‑2,数据流中的第五和第六比特得到的支路度量值为第三组支路度量值bm
00‑3、bm
01‑3、bm
10‑3、bm
11‑3,数据流中的第七和第八比特得到的支路度量值为第四组支路度量值bm
00‑4、bm
01‑4、bm
10‑4、bm
11‑4,依次类推。
对于2级级联的加比选单元ACSU,将第一组支路度量值bm
00‑1、bm
01‑1、bm
10‑1、bm
11‑1送入第一个2
m‑1状态加比选单元GACSU,将第二组支路度量值送入第二个2
m‑1状态加比选单元GACSU。
对于3级级联的加比选单元ACSU,在2级级联的基础上,将第三组支路度量值送入第三个2
m‑1状态加比选单元GACSU。
对于4级级联的加比选单元ACSU,在3级级联的基础上,将第三组支路度量值送入第四个2
m‑1状态加比选单元GACSU。
第二步骤:加比选计算;
在当前时钟周期内,按照相应的输入进行第一级2
m‑1状态加比选单元GACSU中所有加法器和比较器的运算,与此同时,将第一级加比选计算的结果
![]()
和第二组支路度量值bm
00‑2、bm
01‑2、bm
10‑2、bm
11‑2作为输入,进行第二级2
m‑1状态加比选单元GACSU中所有加法器和比较器的运算,当使用n级加比选单元ACSU时,需要同时计算n级2
m‑1状态加比选单元GACSU中的加法器和比较器运算。对于2级级联的加比选单元ACSU,第二级的加比选计算完毕后计算即结束。对于3级级联的加比选单元ACSU,还需要在第一和第二级计算的同时将第二级加比选计算的结果pm和第三组支路度量值bm作为输入,进行第三级2
m‑1状态加比选单元GACSU中所有加法器和比较器的运算。对于4级级联的加比选单元ACSU,还需要在第一、第二和第三级计算的同时将第三级加比选计算的结果和第四组支路度量值作为输入,进行第四级2
m‑1状态加比选单元GACSU中所有加法器和比较器的运算。
第三步骤:计算结果输出;
将最后一级2
m‑1状态加比选单元GACSU计算得到的状态值寄存输出,以便用于下一次的加比选计算,同时将n级2
m‑1状态加比选单元GACSU计算得到的幸存路径值寄存输出。
其中每组支路度量值中的4个数据表示为bm
00、bm
01、bm
10、bm
11分别代表BMU的输入数据与00,01,10,11四组数据的支路度量值,bm
00~bm
11与各加法器的连接关系由(2,1,m)卷积码的网格图确定。网格图中的转换后状态对应的00路经的输入为bm
00,01路经的输入为bm
01,10路经的输入为bm
10,11路经的输入为bm
11。每级2
m‑1状态加比选单元GACSU输入的共2
m‑1个数据为1组,每组数据分别对应网格图转换前状态的状态值,根据网格图的转换关系,将数据送入相应地加法器。比较器的输入为同状态两个加法器的计算结果,comp(1‑1)的输入分别为add(1‑1)和add(2‑1)的计算结果,comp(2‑1)的输入分别为add(3‑1)和add(4‑1)的计算结果,依次类推,comp(j‑i)的输入分别为add(2
i‑1‑j)和add(2
i‑j)的计算结果。
实施例1:(2,1,7)卷积码2级加比选单元ACSU的实施例。
首先描述用于实施例的卷积码,如图1所示的编码器结构,本实施例中使用的是符合CCSDS标准的(2,1,7)卷积码,生成多项式为(171,133),此卷积码在译码时为每2bits为1组输入译码器。
译码器输入的数据在支路度量单元BMU中计算支路度量值,如图2,级联ACSU每级的输入为支路度量值bm和各状态的状态值pm,输出为各状态新的状态值和幸存路径值。
进行加比选计算时先将各状态对应的支路度量值与状态值相加,选出对应各状态最小的值作为新的状态值。此过程由加法器和比较器实现。
如图6所示,本发明中的2级加比选单元ACSU要求前级译码输入为4bits,支路度量单元BMU给出的支路度量值有8个数据,分为两组。本实施例中2级加比选单元ACSU由2级64状态加比选单元GACSU级联得到。
下面描述加比选单元ACSU的计算过程。
下面将结合附图对加比选单元ACSU的计算过程进行说明:
第一步骤:支路度量值bm分组;
将前一个时钟周期计算得到的支路度量值bm进行分组以便分配给加比选单元ACSU,将首先输入的2bits数据得到的4个支路度量值作为第一组支路度量值bm
00‑1、bm
01‑1、bm
10‑1、bm
11‑1,即数据流中的第一和第二比特得到的支路度量值为第一组支路度量值,数据流中的第三和第四比特得到的支路度量值为第二组支路度量值bm
00‑2、bm
01‑2、bm
10‑2、bm
11‑2。
如图1,将第一组支路度量值bm
00‑1、bm
01‑1、bm
10‑1、bm
11‑1送入第一个64状态加比选单元GACSU 1,将第二组支路度量值bm
00‑2、bm
01‑2、bm
10‑2、bm
11‑2送入第二个64状态加比选单元GACSU2。
第二步骤:加比选计算;
在当前时钟周期内,按照相应的输入进行第一级64状态加比选单元GACSU1中所有加法器和比较器的运算,即加法器将两输入相加,同一单状态加比选单元SACSU中的比较器将两加法器的结果进行比较,取小值作为该状态的状态值输出。如果为首次计算,则输入中的状态值为全0值,如果不是首次运算,则输入的状态值,为上一周期中第n级64状态加比选单元GACSU的状态值计算结果,这里n=2,即输入为上一周期中第2级64状态加比选单元GACSU2的状态值计算结果pm
0‑2~pm
63‑2。与此同时,将第一级64状态加比选单元GACSU1的计算结果pm
0‑1~pm
63‑1和第二组支路度量值bm
00‑2~11‑2作为输入,进行第二级64状态加比选单元GACSU2中所有加法器和比较器的运算,同样将加法器的两输入相加,同一单状态加比选单元SACSU中的比较器将两加法器的结果进行比较,取小值作为该状态的状态值输出。对于2级级联的加比选单元ACSU,全部两级的加比选计算完毕后计算即结束。
第三步骤:计算结果输出
将第2级64状态加比选单元GACSU2计算得到的状态值寄存输出,以便用于下一次的ACSU计算,同时将第一和第二级64状态加比选单元GACSU1、GACSU2计算得到的幸存路径值寄存输出。
其中每组支路度量值中的4个数据表示为bm
00、bm
01、bm
10、bm
11分别代表输入数据与00,01,10,11四组数据的支路度量值,且bm
00作为add1、add5、add10、add14、add18、add22、add25、add29、add36、add40、add43、add47、add51、add55、add60、add64、add66、add70、add73、add77、add81、add85、add90、add94、add99、add103、add108、add112、add116、add120、add123、add127的输入;bm
01作为add3、add7、add12、add16、add20、add24、add27、add31、add34、add38、add41、add45、add49、add53、add58、add62、add68、add72、add75、add79、add83、add87、add92、add96、add97、add101、add106、add110、add114、add118、add121、add125的输入;bm
10作为add4、add8、add11、add15、add19、add23、add28、add32、add33、add37、add42、add46、add50、add54、add57、add61、add67、add71、add76、add80、add84、add88、add91、add95、add98、add102、add105、add109、add113、add117、add122、add126的输入;bm
11作为add2、add6、add9、add13、add17、add21、add26、add30、add35、add39、add44、add48、add52、add56、add59、add63、add65、add69、add74、add78、add82、add86、add89、add93、add100、add104、add107、add111、add115、add119、add124、add128的输入。每级64状态ACSU计算单元计算得到的状态值共64个数据为1组,分别命名为pm
0~pm
63,其中pm
0作为add1和add65的输入;pm
1作为add2和add66的输入,依次类推,pm
(i)作为add(i+1)和add(i+65)的输入,pm
63作为add64和add128的输入。比较器comp1的输入分别为add1和add2的计算结果,comp2的输入分别为add3和add4的计算结果,依次类推,comp(i)作为add(2i‑1)和add(2i)的输入,comp64的输入分别为add127和add128的计算结果。
实施例2:(2,1,7)卷积码3级加比选单元ACSU的实施例;
如图7所示,本发明中的3级加比选单元ACSU要求前级译码输入为6bits,支路度量单元BMU给出的支路度量值有12个数据,分为三组。本实施例中3级加比选单元ACSU由3级64状态加比选单元GACSU级联得到。
3级加比选单元ACSU的计算过程与2级加比选单元ACSU的计算过程基本相同,只是在第一步骤中的支路度量值需要3组,在第二步骤中需要同时进行3级64状态加比选单元GACSU的计算。
下面描述加比选单元ACSU的计算过程。
下面将结合附图对3级加比选单元ACSU的计算过程进行说明。
第一步骤:支路度量值bm分组;
将前一个时钟周期计算得到的支路度量值进行分组以便分配给加比选单元ACSU,将首先输入的2bits数据得到的4个支路度量值作为第一组支路度量值bm
00‑1、bm
01‑1、bm
10‑1、bm
11‑1,即数据流中的第一和第二比特得到的支路度量值为第一组支路度量值,数据流中的第三和第四比特得到的支路度量值为第二组支路度量值bm
00‑2、bm
01‑2、bm
10‑2、bm
11‑2,数据流中的第五和第六比特得到的支路度量值为第三组支路度量值bm
00‑3、bm
01‑3、bm
10‑3、bm
11‑3。
将第一组支路度量值送入第一个64状态加比选单元GACSU1,将第二组支路度量值送入第二个64状态加比选单元GACSU2,将第三组支路度量值送入第三个64状态加比选单元GACSU3。
第二步骤:加比选计算;
在当前时钟周期内,按照相应的输入进行第一级64状态加比选单元GACSU1中所有加法器和比较器的运算,即加法器将两输入相加,同一单状态加比选单元SACSU中的比较器将两加法器的结果进行比较,取小值作为该状态的状态值输出。如果为首次计算,则输入中的状态值为全0值,如果不是首次运算,则输入的状态值,为上一周期中第n级64状态加比选单元GACSU的状态值计算结果,这里n=3,即输入为上一周期中第3级64状态加比选单元GACSU3的状态值计算结果pm
0‑3~pm
63‑3。与此同时,将第一级64状态加比选单元GACSU1的计算结果pm
0‑1~pm
63‑1和第二组支路度量值作为输入,进行第二级64状态加比选单元GACSU2中所有加法器和比较器的运算,将第二级64状态加比选单元GACSU2的计算结果pm
0‑2~pm
63‑2和第三组支路度量值作为输入,进行第三级64状态加比选单元GACSU3中所有加法器和比较器的运算,同样将加法器的两输入相加,同一单状态加比选单元SACSU中的比较器将两加法器的结果进行比较,取小值作为该状态的状态值输出。对于3级级联的加比选单元ACSU,全部3级加比选计算完毕后计算即结束。
第三步骤:计算结果输出;
将第3级64状态加比选单元GACSU3计算得到的状态值寄存输出,以便用于下一次的加比选计算,同时将第一、第二和第三级64状态加比选单元GACSU计算得到的幸存路径值寄存输出。
实施例3:4级加比选单元ACSU的实施例:
如图8,本实施例中的4级加比选单元ACSU要求前级译码输入为8bits,支路度量单元给出的支路度量值有16个数据,分为四组。本实施例中4级加比选单元ACSU由4级64状态加比选单元GACSU级联得到。
4级加比选单元ACSU的计算过程与3级加比选单元ACSU的计算过程基本相同,只是在第一步骤中的支路度量值需要4组,在第二步骤中需要同时进行64状态加比选单元GACSU的计算。
下面描述加比选单元ACSU的计算过程。
下面将结合附图对加比选单元ACSU的计算过程进行说明:
第一步骤:支路度量值bm分组;
将前一个时钟周期计算得到的支路度量值进行分组以便分配给加比选单元ACSU,将首先输入的2bits数据得到的4个支路度量值作为第一组支路度量值bm
00‑1、bm
01‑1、bm
10‑1、bm
11‑1,即数据流中的第一和第二比特得到的支路度量值为第一组支路度量值,数据流中的第三和第四比特得到的支路度量值为第二组支路度量值bm
00‑2、bm
01‑2、bm
10‑2、bm
11‑2,数据流中的第五和第六比特得到的支路度量值为第三组支路度量值bm
00‑3、bm
01‑3、bm
10‑3、bm
11‑3,数据流中的第七和第八比特得到的支路度量值为第四组支路度量值bm
00‑4、bm
01‑4、bm
10‑4、bm
11‑4。
将第一组支路度量值送入第一个64状态加比选单元GACSU1,将第二组支路度量值送入第二个64状态加比选单元GACSU2,将第三组支路度量值送入第三个64状态加比选单元GACSU3,将第四组支路度量值送入第四个64状态加比选单元GACSU4。
第二步骤:加比选计算;
在当前时钟周期内,按照相应的输入进行第一级64状态加比选单元GACSU中所有加法器和比较器的运算,即加法器将两输入相加,同一单状态加比选单元SACSU中的比较器将两加法器的结果进行比较,取小值作为该状态的状态值输出。如果为首次计算,则输入中的状态值为全0值,如果不是首次运算,则输入的状态值,为上一周期中第n级64状态加比选单元GACSU的状态值计算结果,这里n2=4,即输入为上一周期中第4级64状态加比选单元GACSU4的状态值计算结果pm
0‑4~pm
63‑4。与此同时,将第一级64状态加比选单元GACSU 1的计算结果pm
0‑1~pm
63‑1和第二组支路度量值作为输入,进行第二级64状态加比选单元GACSU2中所有加法器和比较器的运算,将第二级64状态加比选单元GACSU2的计算结果pm
0‑2~pm
63‑2和第三组支路度量值作为输入,进行第三级64状态加比选单元GACSU3中所有加法器和比较器的运算,将第三级64状态加比选单元GACSU3的计算结果pm
0‑3~pm
63‑3和第四组支路度量值作为输入,进行第四级64状态加比选单元GACSU4中所有加法器和比较器的运算,同样将加法器的两输入相加,同一单状态加比选单元SACSU中的比较器将两加法器的结果进行比较,取小值作为该状态的状态值输出。对于4级级联的加比选单元ACSU,全部4级加比选计算完毕后计算即结束。
第三步骤:计算结果输出
将第4级64状态加比选单元GACSU4计算得到的状态值寄存输出,以便用于下一次的加比选计算,同时将第一、第二、第三和第四级64状态加比选单元GACSU计算得到的幸存路径值寄存输出。
实施例4:(2,1,3)卷积码2级加比选单元ACSU的实施例。
本实施例中使用的是(2,1,3)卷积码,生成多项式为(7,5)。编码器结构如图9所示,此卷积码的在译码时为每2bits为1组输入译码器。
本发明中的2级加比选单元ACSU要求前级译码输入为4bits,支路度量单元BMU给出的支路度量值有8个数据,分为两组。本实施例中2级加比选单元ACSU由2级4状态加比选单元GACSU级联得到。
(2,1,3)卷积码2级加比选单元ACSU的计算过程与(2,1,7)卷积码2级加比选单元ACSU的计算过程基本相同,数据之间的连接关系稍有不同,此连接关系可以根据该编码的网格图得到,与普通的全并行加比选单元的连接关系类似。
下面描述加比选单元ACSU的计算过程。
下面将结合附图对加比选单元ACSU的计算过程进行说明。
第一步骤:支路度量值bm分组;
将前一个时钟周期计算得到的支路度量值进行分组以便分配给加比选单元ACSU,将首先输入的2bits数据得到的4个支路度量值作为第一组支路度量值bm
00‑1、bm
01‑1、bm
10‑1、bm
11‑1,即数据流中的第一和第二比特得到的支路度量值为第一组支路度量值,数据流中的第三和第四比特得到的支路度量值为第二组支路度量值bm
00‑2、bm
01‑2、bm
10‑2、bm
11‑2。
将第一组支路度量值送入第一个4状态加比选单元GACSU1,将第二组支路度量值送入第二个4状态加比选单元GACSU2。
第二步骤:加比选计算;
在当前时钟周期内,按照相应的输入进行第一级4状态加比选单元GACSU1中所有加法器和比较器的运算,即加法器将两输入相加,同一单状态加比选单元SACSU中的比较器将两加法器的结果进行比较,取小值作为该状态的状态值输出。如果为首次计算,则输入中的状态值为全0值,如果不是首次运算,则输入的状态值,为上一周期中第n级4状态ACS计算单元的状态值计算结果,这里n=2,即输入为上一周期中第2级4状态加比选单元GACSU2的状态值计算结果pm
0‑2~pm
3‑2。与此同时,将第一级4状态加比选单元GACSU1的计算结果pm
0‑1~pm
3‑1和第二组支路度量值作为输入,进行第二级4状态加比选单元GACSU2中所有加法器和比较器的运算,同样将加法器的两输入相加,同一单状态加比选单元SACSU中的比较器将两加法器的结果进行比较,取小值作为该状态的状态值输出。对于2级级联的加比选单元ACSU,全部2级的加比选计算完毕后计算即结束。
第三步骤:计算结果输出
将第2级4状态加比选单元GACSU2计算得到的状态值寄存输出,以便用于下一次的加比选计算,同时将第一和第二级4状态加比选单元GACSU计算得到的幸存路径值寄存输出。
其中每组支路度量值中的4个数据表示为bm
00、bm
01、bm
10、bm
11分别代表输入数据与00,01,10,11四组数据的支路度量值,且bm
00作为add1、add4的输入;bm
01作为add6、add7的输入;bm
10作为add5、add8的输入;bm
11作为add2、add3的输入。每级4状态加比选单元GACSU计算得到的状态值共4个数据为1组,分别命名为pm
0~pm
3,其中pm
0作为add1和add3的输入;pm
1作为add5和add7的输入,pm
2作为add2和add4的输入,pm
3作为add6和add8的输入。比较器comp1的输入分别为add1和add2的计算结果,comp2的输入分别为add3和add4的计算结果,comp3的输入分别为add5和add6的计算结果,comp4的输入分别为add7和add8的计算结果。此连接关系可由此编码的网格图导出,此编码网格图如图10所示。