在一个译码周期里,数据前缀译码结束,从数据段(即图3所示start state)开始,每2个时钟往SPRAM里写1次这两个时钟分别产生的幸存分支,共128 b,如图5所示,即顺序写入数据R0R1,R2R3,R4R5,……,往SPRAM里写数据共需192个时钟。在达到译码深度后,开始回溯,读出SPRAM里幸存分支,每个时钟读出两个连续幸存分支,进行回溯指针的操作,在回溯深度后就会合并为一条幸存路径,直到回溯完成,共需96个时钟。在回溯的同时,如有数据输入译码器,开始下一个周期的译码,在回溯操作从SPRAM读数据的96个时钟里,用来译码数据前缀,在数据段开始时往SPRAM里写数据,同时回溯操作的读数据也已完毕。
从SPRAM里读出的数据R(DL+5)~R6(DL为数据长度)中的幸存路径,即为译码比特,输出到输出缓存中。根据系统需要,译码比特输出到输出缓存完成后,一次将最终的译码数据输出。
4 FPGA验证
该设计采用Verilog HDL语言编写代码,使用QUARTus 9.0综合,并在ALTEra公司的StratixⅢEP3SL340F151713型号的FPGA上验证,该设计的译码器能达到135.78 MHz的速度,使用FPGA资源为4 992个ALUTs。
5 结语
本文设计的译码器,利用Tail-biting卷积码的循环特性,采用固定延迟的算法与维特比算法结合,使其硬件实现更简单,采用并行结构以及简单的回溯存储器方法,显著提高译码器速度。在设计各个子模块时,优化了硬件结构,减少占用资源和降低功耗,使其整体性能更优。
本文设计的译码器在FPGA上实现和验证,能达到135.78 MHz时钟,该译码器达到了LTE系统所要求的122.88 MHz时钟要求,达到了LTE系统所要求的整体性能,并已应用到ASIC芯片设计中。
本文关键字:译码器 编、解码-加、解密电路,单元电路 - 编、解码-加、解密电路