首页 前向纠错技术中卷积交织器的FPGA实现

前向纠错技术中卷积交织器的FPGA实现

举报
开通vip

前向纠错技术中卷积交织器的FPGA实现 76 2009 年第 03 期,第 42 卷 通 信 技 术 Vol.42,No.03,2009 总第 207 期 Communications Technology No.207,Totally 前向纠错技术中卷积交织器的 FPGA 实现 覃永新, 陈文辉, 蔡启仲 ...

前向纠错技术中卷积交织器的FPGA实现
76 2009 年第 03 期,第 42 卷 通 信 技 术 Vol.42,No.03,2009 总第 207 期 Communications Technology No.207,Totally 前向纠错技术中卷积交织器的 FPGA 实现 覃永新, 陈文辉, 蔡启仲 (广西工学院 电子信息与控制工程系,广西 柳州 545006) 【摘 要】介绍了信道编码中所采用的前向纠错编码(FEC) 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 中的重要技术——卷积交织器和解交织器的原理,并在 此基础上提出了基于FPGA的卷积交织器的设计方案。文中对卷积交织器设计的关键部分,即读写地址的产生 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 进行了详细 分析,给出了一种新的地址计算方法,并通过对FPGA内部EAB资源的双口RAM的存储单元的读写操作的合理控制,实现了卷积 交织。该设计具有实现简单、占硬件资源少等优点。 【关键词】前向纠错编码;现场可编程门阵列;卷积交织; 双口 RAM 【中图分类号】TN914.3 【文献标识码】B 【文章编号】1002-0802(2009)03-0076-03 FPGA Implementation of Interleaver in Forward Error Correction Technique QIN Yong-xin, CHEN Wen-hui, CAI Qi-zhong (Electronic Information and Control Engineering Department, Guangxi University of Technology, Liuzhou Guangxi 545006, China) 【Abstract】This paper presents the theory of an important technology, that is, the interleaver and deinterleaver used in the forward error correction for channel coding, and proposes an interleaver design based on FPGA. The key point of the design——the way for reading and writing address, is analyzed in detail. A new method to calculate the address is given, and the implementation of interleaver is realized by properly controlling the operation of reading and writing of dual-port RAM, which is the EAB resource in FPGA chip. The design has advantages of easy realization and less resource consumption. 【Key words】FEC;FPGA;interleaver;dual-port RAM 0 引言 前向纠错技术(Forward Error Correction,简称FEC ),就 是在发送端按一定算法生成冗余码插入到要传输的数据流 中生成纠错编码,接收端按同样算法对接收到的数据流进行 解码,确定误码的位置并进行纠错。前向纠错技术由于实时 性好,数据的传输可靠性高等优点,被广泛应用于无线视频 传输、网络传输等系统中,如MPEG-2视频系统中采用了纠 错能力很强的缩短RS(204,188)编码。前向纠错编码能纠 正信道中发生的随机离散错误,但对于由脉冲干扰和信道衰 落等引起的突发错误则往往无能为力。突发错误的分布有很 强的相关性,相邻的信息单元同时出现差错的概率较大,当 成片的误码个数超出纠错码的纠错范围时,就可能造成严重 的误解码。通常采用纠错编码结合交织技术的FEC方案对付 突发错误。纠错编码进行交织,即将编码数据按照一定的规 则打乱,使得数据序列的相关性减弱,接收端通过解交织将 这些错误分散,使长串的比特差错变成短串差错,使得错码 在可以纠错的范围之内,从而对其纠正,这将大大降低突发 错误导致的危害,充分发挥纠错编码的作用。 本文根据卷积交织的设计思想,提出了一种新的基于 FPGA的交织实现方案,即按照卷积交织规则求出写地址和 读地址的计算方法,对FPGA芯片中自带RAM块进行存储空 间的分配和读写地址的控制来实现数据的卷积交织。本方案 较之传统卷积交织方案大大节省了存储单元,优化了资源分 配。前向纠错系统的整体结构如图1所示。 纠错 编码 卷积 交织 突发 信道 搜索同步 解交 织 纠错 译码 信息入 信息出 图1 前向纠错系统的整体结构 1 卷积交织和解交织的基本原理 交织技术通常分为分组交织和卷积交织。分组交织过程 收稿日期:2008-08-26。 作者简介:覃永新(1972-),女,讲师,硕士,主要研究方向为 EDA 技术及数据通信技术;陈文辉(1975-),实验师,主要研究方向为计算 机控制技术;蔡启仲(1952-),教授,主要研究方向为计算机控制技术。 77 是数据先按行写入,再按列读出;解交织过程是数据先按列 写入,再按行读出。其特点是结构简单,但数据延时时间长, 而且所需的存储器比较大。 卷积交织是基于 Forney 的方法。交织器的 M×B 个输入符 号数据,按顺序分别进入 B 条支路延时器,每一路延时不同 的符号周期。第一路无延时,第二路延时 M 个符号周期,第 三路延时 2M 个符号周期,⋯⋯,第 B 路延时(B-1)个符 号周期。交织器的输出端按输入端的工作节拍分别同步输出 对应支路经延时的数据。卷积交织每条支路符号数据的延时 节拍为 ( 1)id i MB= − , 1,2, ,i B= " 。解交织器的延时数与交 织器相反,即第 1 路延时(B-1)个符号周期,⋯⋯,第 B 路无延时。采用卷积交织器的方法,它可将时延减少一半[1]。 为了保证信息传输有较好的实时性,本设计针对缩短 RS(204,188,T=8)纠错编码采取了卷积交织方案:交织 深度 B=12、延迟单元 M=17。在卷积交织输出的序列中, 同一个纠错码字任意两个字节的最小距离为 12 字节, RS(204,188)码的最大纠错能力为 8 字节,加上卷积交织 以后,可以纠正 8 个突发长度为 12 字节的错误,即可纠正 的最大突发性干扰造成的错误字节长度为 8×12=96 字节, 从而使得系统的纠错能力大为提高[2]。 2 卷积交织与解交织的实现方法 2.1 设计方案 以往的卷积交织和解交织方案是设计出 12 个通道,每 个通道可以看成是存储器的不同存储空间,当数据需要读写 这个通道时,直接对这个存储器地址读写。存储器可以利用 FPGA 芯片内部自带的 RAM 核来实现,利用内部双口 RAM 来实现输入数据的时延,通过控制 RAM 的读写就能实现卷 积交织。举例如下:除了第一条通路不需要延时外,将 RAM 分为 B-1 个区,每区对应于一条通道。每区的大小为 ( 1)is i M= − ,其中 1,2, ,i B= " 。为了充分利用 RAM 的空间, 对于每区按“读+修改+写”方式进行循环操作,每区自己的 相对地址 ia 每更新一个单元按模 is 进行循环加 1,该区是每 隔 B 个符号数据节拍才更新一个单元,也就是 ia 每隔 B 个数 据才加 1。由此可得出每路数据延迟为 ( 1)i id s B i MB= = − ,其 中 1,2, ,i B= " ,满足卷积规则。整个 RAM 的第 n 个节拍的 写地址指针应为第 i 区的首地址加上每路的延迟数。在这个 方案中,需要分配给第 1 条支路 1 个存储单元,第 2 条支路 17+1=18 个存储单元,⋯⋯,第 11 条支路 17×11+1=188 个存储单元,总共所需存储单元 1+18+⋯+188=1134,相 应的地址总线为 11b。 为了使所用资源最优化,采用递推计算得到读写地址, 仍然利用双口 RAM 实现卷积。为了形象说明卷积交织的读 写规则,先将一个缩短 RS(204,188)码字按行排成 17× 12 的矩阵形式,再按照卷积交织的规则进行码字重排。输入 和输出矩阵具体形式如下: 0 1 2 11 12 13 14 23 24 25 26 35 192 193 194 203 17 12 x x x x x x x x x x x x x x x x × ⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦ " " " " " " " " " ⇒ 经过卷积交织后得到 0 193 182 83 12 1 194 95 24 37 2 107 192 181 170 71 17 12 x x x x x x x x x x x x x x x x × ⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦ " " " " " " " " " 。 从下面的矩阵可以看出,写地址的规律是:先是主对角 线上的 12 个地址,依次是下一行对角线的地址⋯⋯那么按 照时钟的输入节拍,写地址按照 0,13,26,39,52,⋯, 131 的顺序输出。通过递推分析,第 n 个节拍的数据的写地 址的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式如下: mod mod( )[ ( ) ] , 0,1,2, ,203wn B M BA n n B n×= + × = " 。 (1) 式(1)中的n表示第n个节拍的数据的原始地址,n按模M×B 循环计数; mod Bn 是n除以B的模值,表示交织数据对应的第i 条延迟支路(其中i 按模B 循环计数)。每来一个脉冲n加1, 依次计算出第n个节拍数据的写地址。双口RAM的读写可以 同时进行,对于其存储单元仍然采用“读+修改+写”的方 式,读指针比写指针相对滞后,按行读出时则产生相应读地 址是随时钟递增的。读地址的表达式为: , 0,1,2, ,203r nA n n= = " 。 (2) 在本系统中只利用了RAM中的204个存储单元,地址的 位线仅为8b。较之前面所述的传统的设计方案,大大地节省 了存储单元,极大地优化了资源的分配。 解交织的设计与交织器是个逆过程,即按照式(1)的 地址写入数据RAM后再按行读出数据;数据的延迟时间是 204个时钟。 3 卷积交织电路的 FPGA 实现 卷积交织器的 FPGA 实现电路如图 2 所示,主要是由 三个模块组成:读写地址发生电路 addgrat2、读写控制电路 wrcntl 和双口 RAM 电路 lpm_ram1。其中读写地址发生电路 产生读地址、写地址和码同步信号;读写控制电路解决双口 RAM 的读写冲突问题;双口 RAM 电路用于暂存交织的数 据。卷积交织电路的工作过程为:在一帧数据输入交织器时 输出同步信号;同时读写地址发生器中的计数器开始计数, 输出写地址和读地址送入双口 RAM 中;在读写控制电路中 交织电路的 实 电路图 2 交织电路的 FPGA 实现电路 78 判断写地址和读地址是否相同,若相同,数据不进入双口 RAM 而是直接送出交织器。 3.1 读写地址发生电路 addgrat2(如图 2) 读写地址发生电路是设计中的关键,要在使能信号 en、 复位信号 reset 和时钟信号 clock 控制下准确产生 8 位写地址 和读地址,才能正确地交织数据,其具体的实现电路如图 3 所示。读写地址按照式(1)和式(2)计算,通过两个计数 模分别是204和12的计数器 cout204和 cout12来生成。cout204 随时钟递增产生读地址,同时也是写地址中的 n 值; cout12 的计数值从 0 到 11 递增,相当于式(1)中的 mod Bn ,输入至 乘法器 chengfaqi 与常数 12 相乘,得到的乘积与 n 相加便得到 写地址。每当计满 204 个脉冲,输出一个正脉冲作为码同步 信号 tongbu,表示一个码字的结束或下一个码字的开始时刻。 图 3 读写地址发生电路 addgrat2 电路 3.2 双口 RAM 电路 LPM_RAM1 在本设计中采用参数可设置模块库的 LPM 宏单元 LPM_RAM_DP,有两套独立的输入输出端口,可以同时进行 读写。在软件 QUARTUSⅡ上定制 LPM_RAM_DP 的参数: 地址位宽 LPM_WIDTH=8;地址线位宽 LPM_WIDTHAD= 8;地址输入由时钟的上升沿锁入。写地址和读地址口线分别 连接地址读写控制电路 addgrat2 的两个地址输出,读允许端和 写允许端都与电路使能端相连,即始终处于同时读写状态。 4 本设计中的关键问题 4.1 读写冲突问题 卷积交织器的双口 RAM 的读允许和写允许端是同时有 效的,对于不同的地址单元可以同时进行读写操作;但是当 读地址和写地址相同时,就会发生读写冲突。这个问题在读 写控制电路 wrcntl 中解决,将写地址和读地址进行比较,当 两者相同时,则将输入数据直接送至输出端,而不经过双口 RAM 的暂存。 4.2 同步问题和清零问题 为了达到交织器与解交织器之间的同步必须加入同步 信息。本设计中在 RS 码的第一个字节进入交织器时发出一 个正脉冲信号 tongbu ,以表示一个有效 RS 码字的开始。在 解交织器中由搜索同步电路两次检测到 tongbu 信号的上升 沿,才判断为数据同步。 要实现同步,还要对解交织器的清零端进行控制,即在 有效码字到来之前对它清零,不进行任何读写操作,确保每 一个交织器的数据完整地存入解交织器的数据 RAM 内[3]; 在解交织器上,清零信号来自同步信号的输入端,只有搜索 到两个或两个以上的同步码时才认为系统同步,解交织器上 的清零信号失效,开始解交织操作。 5 仿真结果 5.1 卷积交织器的仿真图(如图 4) 假设卷积交织器中的单元暂存的数据随地址递增,即单 元 00H中的数据为 01H、单元 01H中暂存的数据为 02H⋯⋯。 则在时钟信号的控制下,在 204 字节的 RS 码交织完毕后读 出的数据的顺序为 1××××××××××××13 ,2,××××××××××25, 14,3×××××⋯(以十进制数表示),卷积交织器的输出仿真 图如图 4 所示。 图 4 卷积交织器的仿真 5.2 解交织器的仿真图(如图 5) 解交织器的输入为卷积交织器的输出数据 1×××××××× ××××13,2,××××××××××25,14,3×××××⋯,,经过先按行 写入再按卷积规则读出的,得到的数据为××××××××××××0, 1,2,3,⋯。解交织器的仿真结果如图 5 所示。 图 5 解交织器的仿真 经过仿真,验证了逻辑设计的正确性,最终的 VHDL 设计 代码进行编译后生成.sof文件通过电缆下载到EP1K30TC144芯 片中。综合的结果,交织器的 RAM 存储单元占用 1 632 bit, 卷 积交织器使用了 94 个 LE,解交织器使用了 115 个 LE;共占芯 片总资源的 11.72%,最高工作频率达到 80 MHz,实现了缩短 RS(204,188)编码的卷积交织与解交织。 6 结语 本文采用了地址计算法,利用 FPGA 内部 EAB 资源的 双口 RAM 存储单元的读写控制,实现了前向纠错技术中的 卷积交织和解交织。较传统的利用 RAM 实现的卷积交织器 和解交织器的方案,充分利用了 FPGA 自带 RAM 的功能, 极大地节省了硬件内部的资源,实现电路结构简单,具有设 计灵活、性能可靠、集成度高等优点。 参考文献 [1] 吴伟陵.信息处理与编码[M].北京:人民邮电出版社,2002:289-290. [2] 梁小萍.MPEG-2视频系统纠错编解码的FPGA实现[J].中国有线电 视,2004(22):6-9. [3] 范寒柏,宋文妙.数据通信中交织与解交织的 FPGA 实现[J].华北电 力大学学报,2002,29(2):84-87.
本文档为【前向纠错技术中卷积交织器的FPGA实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_328752
暂无简介~
格式:pdf
大小:206KB
软件:PDF阅读器
页数:3
分类:互联网
上传时间:2011-09-14
浏览量:27