维特比译码器(Viterbi Decoder)硬件架构(三)–硬件结构描述及RTL源代码

1. 综述

发展到现在,Viterbi译码器的硬件结构以及很成熟了。这里要描述的Viterbi译码器采用了一个成熟的规整化的硬件的硬件架构,可根据配置寄存器来对:

  • LTE,NB-IOT及GSM/GPRS/EDGE中使用的卷积码进行译码。
  • 支持tail-bits和tail-biting两种形式。
  • 前向回溯的滑窗技术可以减小幸存路径的缓存器深度.
  • 可配的网格结构支持约束长度为4~7,编码效率为1/2,1/3,1/4,1/5,1/6的卷积码译码。

该项目RTL源代码及验证的testcase已经在github上开源:
https://github.com/coole198669/viterbi_decoder

2. 硬件结构

在这里插入图片描述


包含的子模块:

  • BMU Branch Metric Unit, 对各个路径计算BM值。一共有64个BM模块。
  • ACS Add Compare Select, 加比选模块,用以产生当前状态的幸存路径(Surviving Path)及状态路径。当前时刻各状态对应的幸存路径拼接成64 bit宽的data 放入 PM buffer。其深度为64,即该译码器支持的最大回溯深度为64。
  • PM normalize block: 对PM 进行归一化处理,防止溢出。
  • Traceback:负责回溯时的地址产生及译码比特输出等
  • PM Register: 包含64各PM 寄存器用来存储各个状态的状态度量,是以原址计算的形式进行ACS操作。

3. 接口信号

viterbi decoder interface

2 Replies to “维特比译码器(Viterbi Decoder)硬件架构(三)–硬件结构描述及RTL源代码”

  1. 您的这个开源viterbi解码器很棒。看得出来博主您也是经验丰富的业内人士。

    我是openwifi项目的作者(https://github.com/open-sdr/openwifi)。现在openwifi使用的是xilinx的试用版viterbi解码器(每隔两三个小时就要过期)。我正在考虑是否用你的解码器替换掉它。但首先想问的是,您的开源viterbi解码器项目的license是什么?您可以选择一个license在github上吗?这样我们就可以知道是否可以集成。

    1. 1.我放了GNU LGPL声明在项目介绍里
      2.如果您的项目属于非商业用途,可以自由使用。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注