Viterbi解码器RTL级设计优化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Viterbi解码器RTL级设计优化
喻希
【摘要】当今芯片产业竞争激烈,速度低、面积大、功耗高的产品难以在市场中占有一席之地.Viterbi解码器作为一种基于最大后验概率的最优化卷积码解码器,被广泛应用于多种数字通信系统中,却由于其较高算法复杂程度,给芯片设计带来了挑战.针对芯片的速度、面积和功耗,通过对Viterbi解码器RTL级设计的若干优化方法进行研究和讨论,实现了一个应用于DVB-S系统的面积约为2万门的Viterbi解码器.
【期刊名称】《现代电子技术》
【年(卷),期】2006(029)023
【总页数】4页(P137-139,142)
【关键词】卷积码;Viterbi解码器;寄存器传输级;数字通信系统
【作者】喻希
【作者单位】同济大学,通信软件及专用集成电路设计中心,上海,200092
【正文语种】中文
【中图分类】TN764
1 引言
当今芯片产业发展依然遵循摩尔定律,工艺节点不断减小,复杂程度不断增加,设计周期不断缩短,同时市场竞争也进一步加剧。

为了占领市场,实现商业价值,芯
片设计就必须尽可能地提高性能、降低成本。

RTL(寄存器传输级)设计阶段属于芯片设计的前端设计阶段,是门级和更底层后端设计的基础。

与门级设计相比,RTL 设计更专注于系统结构和功能实现,而且由于其设计环境简单,相应的EDA软件运行速度更快,因此在RTL设计阶段进行优化往往能获得更好的效果。

Viterbi解码器作为一种基于最大后验概率的卷积码解码器,被广泛应用于多种数字通信系统中,如IEEE 802.11无线局域网,IS-95,3GPP,DVB(数字视频广播)标准等。

虽然Viterbi解码器具有接近最优的卷积码解码性能,但是由于其计算强度随着卷积编码约束长度的增大而迅速增加,如果不根据实际应用进行合理设计和相应优化,很难达到芯片在速度、面积和功耗上的要求。

2 Viterbi解码器的结构和参数
如果把卷积码编码器中移位寄存器组的值作为状态,就可以把卷积编码过程看作一个离散马尔可夫过程。

Viterbi算法就是通过计算所有可能状态的转移分支的度量(Branch Metric),选择度量较小的分支进行累加获得路径度量(Path Metric),将累积度量最小的路径判定为幸存路径并输出相应解码数据的过程。

Viterbi解码器主要由分支度量计算单元(Branch Metric Unit)、加比选计算单元(Add-Compare-Select Unit)和幸存路径管理单元(Survivor Management Unit)三部分组成,如图1所示。

图1 Viterbi解码器结构框图
在实际应用中,卷积编码器多采用7~9的较大约束长度。

随着约束长度的增加,卷积编码的性能提高显著,但是Viterbi算法的计算强度也以指数速度增长,当约束长度大于10时,Viterbi译码算法的硬件实现失去实用价值。

不同的应用对Viterbi解码器的速度要求是不同的,如在3GPP中400 kb/s的译码速度已完全满足系统要求,而在DVB-S系统中要求Viterbi译码最高速度达到45 Mb/s。

对于低速Viterbi解码器设计,应尽可能地复用相同功能的模块,如采
用串行ACSU,所有状态复用一个ACS,这样就能较大程度地减小芯片面积。


对于中高速Viterbi解码器设计,为了达到译码速度的要求,串并结合和全并行设计成为主流设计方案。

DVB-S系统的卷积编码采用(2,1,7)编码方式,约束长度为7,生成多项式为G1 = 171,G2 = 133,编码速率有未经过删余(puncture)的1/2和删余后得到的2/3,3/4,5/6,7/8五种。

考虑到避免芯片时钟过高而给后端布局布线带来困难,采
用了90 MHz的芯片工作频率,因此Viterbi解码器必须每2个时钟周期内完成1个输入符号的译码。

3 Viterbi解码器的优化
3.1 分支路径单元
根据输入BMU的符号量化级数不同,Viterbi解码器可分为硬判决和软判决两种。

软判决算法除BMU模块外与硬判决算法完全相同,但却能比硬判决获得2~3 dB 的性能增益,因此在实际应用中为提高Viterbi解码器的性能,多采用软判决算法。

随着软判决输入符号的量化级数的增加,软判决算法的精度进一步提高,Viterbi
解码的性能也就越好,但是随之而来的是BMU输出分支度量的数据宽度的增加,ACSU为了进行这些更长宽度数据的计算并暂存计算的结果,必将占用更大的面积,产生更大的功耗,组合逻辑产生时延的增加也将降低芯片的运行速度。

经过仿真可以证明,当量化级数大于25后,Viterbi解码器性能提高已不明显。

为提高性价比,本文采用16级量化,即输入符号被量化成4 b。

若设定两路输入数据为din0和din1,i和j分别表示卷积编码器上路和下路的输出(i = 0,1;j = 0,1),根据欧几里德距离计算得到的分支度量为BM(i,j),则有:
BM(i,j)=|a-din0|2+|b-din1|2
(1)
其中,当i为0时,a为0;当i为1时,a为15。

当j为0时,b为0;j为1时,
b为15。

为了简化结构,可以用式(2)代替式(1),经仿真表明,式(2)的性能下降基本上可以忽略。

BM(i,j)=|a-din0|+|b-din1|
(2)
经过删余处理的编码数据,通过解删余模块在相应位置插入量化区间的中间值(在16级量化中取8)后,重新变为速率为1/2 的符号,输入BMU模块。

通常的做法是仍然使用式(2)的结构计算分支度量,但是通过仿真发现,如果采用忽略删余位的方法,即式(3)的方法,译码性能进一步提高,见图2。

BM(i,j)=c|a-din0|+d|b-din1|
(3)
其中,当din0为删余位时,c为0;否则c为1。

当din1为删余位时,d为0;否则d为1。

图2 速率为3/4的卷积码的Viterbi解码性能比较
3.2 加比选单元
ACSU是Viterbi解码器最重要的模块,负责路径度量的更新和幸存路径的选择。

若状态k的路径度量用PM(k)表示,根据卷积编码的参数,可以得到图3所示的状态转换关系。

图3 状态转换图
以状态S0为例,若下一个进入卷积编码器的数据为0,寄存器数据右移一位,则转移到状态同时,根据生成多项式G1和G2,可得到卷积编码器上路和下路输出分别为:
i=0⊕b5⊕b4⊕b3⊕b0
j=0⊕b4⊕b3⊕b1⊕b0
若下一个进入卷积编码器的数据为1,寄存器数据右移一位,转移到状态设卷积编码器上下路输出分别为m和n,同理有:
m=1⊕b5⊕b4⊕b3⊕
n=1⊕b4⊕b3⊕b1⊕
对于状态可能是由状态S0或者状态S1转移而来,根据Viterbi算法,应选择度量和较小的路径作为幸存路径,并进行路径度量的更新,见式(4)和式(5),式中min{}表示选择最小值操作,sign{}表示取符号位操作,表示转移到状态所选择的幸存路径。

若判定上一步状态为S0,则取0,若判定上一步状态为S1,则取1,可见的取值等于上一步状态值的最低位,SMU正是利用这一特性进行状态回溯的。

(4)
-PM(S0)-BM(i,j)}
(5)
可见,路径度量的更新不但与当前分支路径有关,还与前一状态的路径度量有关,而min{}计算是一个非线性计算,只有在当前所有状态的路径度量更新完毕之后,才能进行下一步状态的加比选计算,因此常规的流水线设计方法难以适用。

设ACS关键路径的时延为Tc,那么Viterbi解码器的译码速度就被限制在了1/Tc以下。

Peter J.Black和Teresa H.Meng提出的基4蝴形算法[3],Herhard Fettweis和Heirich Meyr提出的搏动矩阵算法[4]都可以突破ACSU的瓶颈,极大提高Viterbi译码速度,而且在芯片速度增长的同时,芯片面积只以接近于线性的速度增长。

但是DVB-S系统对Viterbi译码速度的要求为45 Mb/s,属于中等速度,
使用0.25 μm综合库时,ACS关键路径的时延尚未对译码速度形成瓶颈,使用简单的基2算法就能达到要求,也避免了不必要的面积增加。

同时,受芯片工作频
率的制约,为使ACSU在2个时钟周期内完成全部64个状态的路径度量更新,本设计采用全并行结构。

由于路径度量寄存器不可能取无限长度,随着分支度量的不断累加,路径度量寄存器必然会发生溢出,导致错误结果。

Andries P.Hekstra[5]指出,Viterbi算法的
输出只依赖于路径度量的差值,并且这个差值具有上界:
PMmax-PMmin≤(K-1)(BMmax-BMmin)
(6)
式中PMmax和PMmin分别表示任意同一时间T的路径度量的最大值和最小值,BMmax和BMmin分别为分支度量的最大值和最小值,K为约束长度。

在本设计中K为7,BMmax为30,BMmin为0,计算得出路径度量差值的上界为180。

因此常用的方法是取路径度量寄存器的长度为9 b,当所有状态的路径度量的最高位都为1时则将所有路径度量的最高位清零,等效于都减去256,这样在不影响Viterbi算法输出结果的前提下,起到了溢出保护的作用。

此时,一个ACS需要2个9 b与4 b加法器、1个9 b与9 b比较器,1个9 b选择器。

本设计采用了另外一种溢出保护方法,即路径度量寄存器长度只取8 b,每当所有状态的路径度量大于32时则将所有路径度量的值减去32。

由于32的二进制表示为100 000,最低5位都为0,8 b数减去32的实现相当于8 b数的高3位减去1,硬件消耗较小。

此时一个ACS需要2个8 b与4 b加法器、1个8 b与8 b
比较器,1个8 b选择器。

图4是一个蝶形单元(包含2个ACS)的电路图。

仿真和综合结果显示,使用两种溢出保护的译码性能相同,但后一种方法能使ACSU的面积减少10%左右。

3.3 幸存路径管理单元
SMU模块的实现主要有寄存器交换法和回溯法两种。

寄存器交换法具有算法实现简单,输出延时小的优点,但其面积和功耗随着约束长度的增加呈指数速度增长,所以多用于约束长度小于5的Viterbi解码。

回溯法由于其算法可以基于RAM实现,有利于减小芯片面积和功耗,特别适合于大约束长度的Viterbi解码器。

图4 蝶形单元电路图
回溯深度是影响SMU性能的主要参数。

根据标准Viterbi算法,回溯深度应该达到整个编码序列长度时再输出所有的解码数据,但这对硬件实现是不现实的。

计算机仿真发现,当回溯到一定深度时,所有幸存路径会汇合到一条共同的路径上,在此时进行截断并输出解码数据就能保证译码结果的正确性。

对于速率为1/2的卷积编码,当回溯深度达到约束长度的3~5倍时,Viterbi解码器的性能下降已可以忽略不计。

但是在DVB-S系统中,卷积编码进行了删余处理,由于自由距离的减小,幸存路径需要更长的回溯深度才能汇合。

设Depth为回溯深度,Tk为存储回溯到时间k时的状态,Selk[L]为时间k时状态L的幸存路径。

回溯算法的实现过程就是以当前路径度量最小的状态为起点寻找Depth步时间之前的状态,并输出相应译码结果的过程,可以用式(7)来描述:Tk-1=(Tk≪1)Selk[Tk]
(7)
回溯的起点是所有状态中路径度量最小的状态,即需要从64个8 b无符号数中找到最小值,其硬件实现无论从面积上、速度上还是功耗上都是不现实的。

因此,本设计采取固定以某一个状态(如状态0)为回溯起点,以加长回溯深度来弥补Viterbi 解码器性能损失的方法。

经仿真证明,当回溯深度达到192时已基本满足最大编码速率为7/8的删余卷积码对Viterbi译码性能的要求,同时达到了芯片在性能和面积的权衡。

4 优化结果
本设计采用Top-Down设计方法,各模块由VerilogHDL语言进行RTL级描述,在Synopsys公司的VCS上进行了15 000 000个符号的功能仿真,并在FPGA 上进行了进一步的验证,仿真结果表明译码性能完全达到DVB-S系统的要求。

最后在Synopsys公司的Design Compiler上,使用台积电0.25 μm单元库,以90 MHz时钟约束进行综合,得到20 220门(不含RAM)的门级网
表。

Viterbi解码器各模块的面积参数在表1中给出。

表1 Viterbi解码器各模块的面积模块面积BMU385门ACSU16 749门SMU3 086门RAM4.5 kB
5 结语
由于芯片速度、面积和功耗的相互制约,Viterbi解码器的优化设计一直受到广泛关注。

本文以DVB-S系统为例,在满足速度要求的基础上,通过选择适用的优化方法,降低了Viterbi解码器的面积和功耗。

优化结果证明,针对应用进行合理设计是实现Viterbi解码器高性价比的关键。

参考文献
[1] 王新梅,肖国正.纠错码原理和方法[M].西安:西安电子科技大学出版社,1996.
[2] 王立宁,乐光新,詹菲.Matlab与通信仿真[M].北京:人民邮电出版社,2000.
[3] Peter J.Black,Teresa H.Meng.A 140M/s,32-state,Radix-4 Viterbi Decoder[J].IEEE Journal of Solid-State Circuits,1992.
[4] Gerhard Fettweis,Hernrich Meyr.High-Rate Viterbi Processor: A Systolic Array Solution[J].IEEE Journal on Selected Areas in Communications,1990.
[5] Andries P.Hekstra.An Alternative to Metric Rescaling in Viterbi Decoder[J].IEEE Transactions on Communications,1989.
[6] Bhasker J.Verilog HDL Synthesis:A Pratical Primer[M].Star Galaxy
Publishing,1998.。

相关文档
最新文档