Viterbi-IP核纠错性能的验证
2012-03-21陈艳玲
郭 勇,陈艳玲
(南京北方电子信息科技集团有限公司产品研发中心,南京 211153)
1 引 言
Viterbi译码[1-2]是针对卷积码的纠错性能最好的译码算法,由于对产品设计的时效性和可靠性的要求,众多实际的产品采用IP核设计。Altera公司的Viterbi-IP核使用广泛,传统的对Viterbi纠错性能的验证仅限于对Matlab中Viterbi译码函数进行BER计算,对Viterbi-IP核纠错性能的验证目前的文献介绍不多,文献[3]仅介绍该核的使用方法,文献[4]仅介绍了一帧数据的纠错性能验证,且错误形式单一。本文介绍一种基于对文件进行输入输出操作的方法。该方法仿真处理的数据量大,能尽可能真实地验证该IP核实际的纠错性能,同时通过在Matlab中修改误码形式,能快速地仿真不同错误形式下的纠错性能。本文对使用该IP核得到的BER曲线与采用Matlab的Viterbi译码函数Vitdec()得到的理论上的BER曲线进行比较,以验证该IP核的纠错性能。
2 Viterbi-IP核的使用方法
在IP核生成界面上选择Viterbi核,输出文件设为Viterbi1.v。以下是对于Viterbi-IP核的设置,采用parallel结构,连续译码;编码多项式为(171,133);采用硬判决,因此 Sofebits设为 1;时钟频率设为50MHz,因此时钟周期为20 ns;回溯深度为42。遵照产品帧结构的要求,IP核每个块包含的比特数为84个,设该IP核的SNR=10dB。生成的Viterbi-IP核如图1所示[5]。
由Viterbi-IP核的使用手册可知,需要设计一个输入模块,产生握手信号,才能把编码数据输入到Viterbi译码器中,因此设计了shuruct这个模块。整个电路框图如图2所示。

图1 生成的Viterbi-IP核模块Fig.1 The module of Viterbi-IP core

图2 Viterbi译码模块图Fig.2 Module diagram of decoding by Viterbi algorithm
当sink-rdy信号为高(有效)时,在下一个时钟,sink-val信号有效,在 sink-val信号有效时,din[1..0]信号输入到Viterbi译码器中,输入的仿真波形如图3所示。……
