一种基于fpga的参数化多标准高吞吐率译码器的制造方法_3

文档序号:8945459阅读:来源:国知局
时重构译码器结构。首先,译码器在启动时,首先读取外部参数值,并将参数传输到译 码器内部,对相应的参数进行赋值,译码器则根据相应的参数值选择相应的选择器选项,从 而得到相应的译码器结构。由于在线配置方式是在协议切换时进行实时读取,同时译码器 的设计逻辑保持不变,所以协议的切换工作并不需要硬件逻辑进行二次综合,提高了工作 效率。
[0049] 具体的参数配置如下:码率R用来重构所述分支度量计算单元2和可重构分支度 量网络3。译码器中总共例化64个分支度量计算单元2,译码器在64个分支度量计算单元 2中选择其中的4R个;并且根据R选择分支度量计算中的第三个码字;约束度K用来重构 可重构分支度量网络3、基4加比选单元4、归一化判断单元5、可重构路径度量网络6。译 码器根据码率R和约束度K重构可重构分支度量网络3的互联结构,根据约束度K重构可 重构路径度量网络6的互联结构。译码器中总共例化256个基4加比选单元4,译码器根据 码率R在256个基4加比选单元4中选择其中的2K1个。译码器采用截断译码的方式,截 断长度根据输入的截断长度L来决定,在实时可重构时送入控制单元8和回溯译码单元7, 流水实现截断长度L的3点译码算法,在约束度不同的情况下,利用截断长度L配置,可以 有效地实现译码精度和译码延迟的折中。
[0050] 图3所示为本发明基4分支度量单元的结构示意图。所述分支度量计算单元2根 据输入码字转化的无符号整数计算基4网格图中每个分支度量值,可支持多码率。码率的 变化会改变分支度量计算单元2中输入的分支度量的数量。码率为1/2时,总共有4 2= 16 种可能的分支度量;码率为1/3时,总共生成43 = 64中可能的分支度量。由于基4网格中 一个时间节点的某个分支度量值是基2网格中连续两个时间节点相应的网格分支度量值 之和,所以在分支度量的计算时,得首先计算出基2状态下相应两个时间节点的分支度量 值。如图3(1) (2)所示,码率为1/2时,输入的码字信息为两个3比特码字,总共可以形成4 个基2分支度量;码率为1/3时,输入的码字信息为三个3比特码字,总共可以形成8个基2 分支度量。一般地,当输入比特为〇时,度量为码字本身,用SxO表示;当输入比特为1时, 度量为码字补码,用Sxl表示。基4Viterbi算法中t-2次迭代到t次迭代间的所有可能 的分支度量可以通过基2Viterbi算法中t-1次迭代到t次迭代间的分支度量An-IX入n 的笛卡尔积的集合来生成。如图3(3) (4)所示,码率为1/2时,总共有42= 16种可能的分 支度量;码率为1/3时,总共生成43 = 64中可能的分支度量。译码器中设置64个分支度 量计算模块,集中计算分支度量,减少资源的利用,提高面积效率。集中计算的分支度量可 以利用可重构分支度量网络3根据约束度变化将其分布到合适的基4加比选单元4中。
[0051] 如图2所示,所述分支度量计算单元2的结构由两个选择器和三个加法器组成,可 以根据码率变化改变结构。选择器根据码率R选择相应的输入码字数量。如果码率为1/2, 则选择两个输入码字;如果码率为1/3,则选择三个输入码字。然后,加法器将两个或者三 个无符号整数形式的输入码字输入相加,得到基2的分支度量;再通过图3(3) (4)的结构, 计算相应的基4分支度量。所述分支度量计算单元2采用了流水结构,其中t-1时刻和t 时刻两个基2分支度量同时计算。这里需要注意的是,由于译码器采用软输入输出方式,码 字为3比特,所以基2分支度量为5比特,基4分支度量为6比特。
[0052] 图4所示为本发明可重构分支度量网络3的结构示意图,所述可重构分支度量网 络3用于将集中计算的分支度量分布到每个基4加比选单元4中,可支持多码率和多约束 度,码率R和约束度K的变化使得分支度量和加比选计算模块的映射关系发生变化。所述 可重构分支度量网络3可以根据码率R和约束度K的变化形成相应的映射关系。多种码率 R和约束度K形成排列组合,针对每个组合设计一个固定结构,然后利用选择器将这些固定 结构进行整合。当接收到约束度K和码率R后,可重构分支度量网络3利用选择器和相应 的参数来选择合适的互联结构。如图4所示,在码率分别为1/2和1/3下,约束度5, 7,9都 有对应固定的互联结构。由于可重构分支度量网络3采用流水实现,使得这部分逻辑不会 成为逻辑瓶颈。
[0053] 所述基4加比选单元4用于计算路径度量。可支持多约束度,约束度K的变化会 导致基4加比选单元4中加比选计算模块数量的变化。给定约束度为K,基4加比选单元 4总共有2K1个基4加比选计算模块。译码器支持的最大约束度为9,所以译码器总共例化 了 256个加比选计算模块。当约束度K输入后,译码器在256个基4加比选计算模块中选 择前面2K1个,屏蔽其余的基4加比选计算模块。这样就可以根据约束度K的变化实时可 重构加比选计算模块的数量。
[0054] 图5所示为本发明可重构路径度量网络6的结构示意图,所述可重构路径度量网 络6用于连接连续两个时间节点每个状态的路径度量值,可支持多约束度,约束度K变化主 要引起所述可重构路径度量网络6中相邻两个状态间路径度量的互联关系。所述可重构路 径度量网络6可以根据约束度K的变化选择合适的互联结构,实现基4网格图相邻时刻状 态间的互联关系。基2网格中的相连相邻时刻状态间的互联关系如图5 (1)所示,2i状态和 2i+l状态的输入路径度量等于i状态和i+2K2状态的输出路径度量。由于相邻时刻的基4 子网格可以由连续两个时刻的基2子网格构成,所以将t-2时刻到t时刻的基2子网格中 两个时刻的网格图合并,可得基4网格中相邻时刻状态间的互联关系。如图5(2)所示,4i状态、4i+l状态、4i+2状态、4i+3状态的输入路径度量等于i状态、i+2K3状态、i+2K2状态、 i+3X2K3状态的输出路径度量。根据这样的互联关系,本发明构造了如图5(3)所示的可重 构路径度量网络6 (CPMN)。CPMN接收参数约束度,实时变换相应的互联结构,正确连接相邻 时刻的路径度量值,实现路径度量的迭代计算。
[0055] 图6所示为本发明无符号运算的基4加比选单元4的结构示意图,所述基4加比 选单元4完成加比选操作。目前,较普遍的两种基4加比选单元的设计是两级级联比较结 构和一级比较结构。两级级联比较结构是指用两级比较结构来完成4个输入求最大值的过 程,其设计简单,但是由于具有两级比较结构是级联的,从而增长了关键路径。为了缩短加 比选单元的逻辑路径,本发明采用一级比较结构。单个状态的加比选计算结构如图7所示。 利用四个加法器将4输入的路径度量值和分值度量值相加,然后将4个加法结果送入6个 比较器进行两两比较;将比较的结果送入选择逻辑,得到幸存比特;利用选择逻辑再4个加 法结果中选择最大值最为最后的路径度量输出。基4加比选单元采用组合逻辑实现,传统 的实现结构都是采用带符号数补码形式的比较和加法,必须考虑到符号的相关操作,如图 6 (1)所示,有符号的比较器将待比较的两个数的非符号位减法结果,与两个符号位进行异 或,从而得到最后的比较结果,使得组合逻辑电路复杂;而本发明的设计度量值为无符号 整数,所以比较器直接采用无符号比较器就可以实现,如图6(2)所示。相比较,比较器的关 键路径降低了 4个门延迟,基4加比选单元的关键路径从8个门延迟降低为4个门延迟,简 化了实现逻辑。
[0056] 图7所示为本发明归一化判断单元5的结构示意图,所述归一化判断单元5是为 了防止路径度量值的溢出而将所有状态度量值都减去一个固定值。目前,归一化的方法主 要有以下几种:复位为状态〇方法、减去最小值方法、MSB位置零法、模归一化方法以及最高 位清零方法。其中,最高位清零法速度最快、功耗最低、面积最小。本设计采用最高位清零 法。和以往直接在加比选单元后进行组合逻辑归一化不同的是,本发明将归一化判断逻辑 和加比选单元分离。本发明利用如图8所示的两级与逻辑来判断所有路径度量值最高位是 否为1。若最高位都为1,下一个时钟周期再对所有度量度量值的最高位进行清零。判断逻 辑采用两级流水,有效降低逻辑延迟。这样设计的好处就将归一化判断逻辑延迟排除在关 键路径之外。归一化判断单元只取前2K1最高位进行与操作。
[0057] 图8所示为本发明三点译码算法流水线的结构示意图。Viterbi译码器一般两种 回溯实现方式:寄存器交换法和回溯法。寄存器交换法虽然实现简单,但是逻辑量过于庞 大,其复杂的交换网络也会对频率造成一定的影响。相对而言,回溯法实现虽占用了一定的 存储资源,但是具有低复杂度和高频率的优点。本发明采用回溯法。Viterbi算法在回溯 时,不论从哪个状态开始回溯,当达到某个特定长度之后,其回溯状态将汇集到某个固定的 状态;然后可以再从这个固定状态往前回溯最终得到译码比特。根据Viterbi算法的上述 特点,一个块的操作主要分三部分:前向计算、回溯、译码。前向计算包括分支度量计算和加 比选计算。三部分操作采用流水实现。每个矩形块对应一个截断长度的前向计算、回溯、译 码操作。其特征在于流水线包括三个阶段:前向计算、回溯、译码。流水线实现了三个计算 阶段的全流水操作,三个阶段实现延迟隐藏。每个阶段的长度为L,作为参数输入到译码器 中。不同通信标准最合适的截断长度是不同的,小于这个长度译码精度就会造成一定的损 失,大于这个长度其译码延迟会相应增大。为了找到译码精度和译码延迟的折中,我们将截 断长度作为参数化输入,这样对于每种通信标准,我们都能找到两者最佳平衡点。截断长度 L变化通过将控制器中的计数器上限值设为L来实现。流水线的延迟为4L,当经过4L的时 钟延迟之后,开始译出第一个块的比特。设计的流水线可以实现每个时钟周期译码两个比 特。
[0058] 实验验证和性能比较
[0059] 本发明所述的译码器的实验平台采用自行研发的FPGA开发平台,采用了新一代 大
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1