0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用RAM分区循环移位法来实现DVB-C解交织器的设计

电子设计 来源:郭婷 作者:电子设计 2018-11-28 08:27 次阅读

卷积交织和解交织原理简介

在DVB-C系统当中,实际信道中的突发错误往往是由脉冲干扰、多径衰落引起的,在统计上是相关的,所以一旦出现不能纠正的错误时,这种错误将连续存在。因此在DVB-C系统里,采用了卷积交织来解决这种问题。它以一定规律扰乱源符号数据的时间顺序,使其相关性减弱,然后将其送入信道,解交织器按相反规律恢复出源符号数据。

DVB-C的卷积交织和解交织原理为:交织由I=12(I为交织深度)个分支构成。每个分支的延时逐渐递增,递增的单元数M=n/I=204/12=17(M为交织基数)。这里的数据单位为字节。0支路无延时,1支路延时17个符号周期,11支路则延时l7×11个符号周期。输入端有一开关随着时间推移依次连接各个延时支路,输出端有一开关与输入端一一对应,同步连接各延时支路。

解交织器的实现

解交织器的FPGA实现原理

本文采用RAM分区循环移位法来实现,因为RAM里面暂存一位数据,只需要用一个逻辑门大小的资源,比基本寄存器暂存一位数据需要12个逻辑门大小的资源要优化很多。用RAM分区循环移位法来实现解交织器,就是把RAM分成11个区。

每个区的大小为(单位为字节):

Ni=M*(I-i-1)(i=0,1,2, …,(I-1))

这里i为RAM所分区的区号。

因为11支路不需要延时,所以 RAM的11分区大小即N11为0。本文在RAM前面设置一个地址控制器,这是解交织器关键的一步。RAM每区有一个首地址和区内偏移地址,分别用一个寄存器来存储。在地址控制器里产生每区的首地址和区内偏移地址,从而进一步产生RAM的读写地址。

解交织器的FPGA实现

把解交织器的深度I和基数M设成参数,以增强程序的通用性。如果以后设计的解交织器的系数I和M需要改动,只要把参数值重新设置一下就可以了,不需要改动程序。由前面的计算可知,解交织器总共需要延时的比特数,也就是RAM的大小应该为8976比特。

可以用下面一段程序实现首地址的初始化:

FirstAddr[0]=0;

for(i=1;i《(I-1);i=i+1)

FirstAddr[i]=(I-i)*M+FirstAddr[i-1];

也就是说0~11支路的首地址在RAM中分别为0,187,357,510,646,765,867,952,1020,1071,1105。

RAM每区的字节数可以由参数来表示,即为(I-i-1)*M,i为分支号。

每区内偏移地址SectAddr[i]初始化为0,每写入一个数据,递增1并与由参数表示的每区的字节数进行比较,若两数相等,则SectAddr[i]重新设为零,保证区内偏移地址在每区内循环移动。

由上可知,RAM每区的读写地址为:FirstAddr[i]+SectAddr[i](i为RAM分区号)

图1所示的就是由Altera MegaWizard工具配置的双口RAM。RAM每区的读写地址相同,也就是先读出给定地址单元的数据后,再写入新的数据。这里要同时发生读写操作,所以要使用双口RAM。每隔一个时钟周期,RAM读写指针就跳到下一个RAM区,这样读写指针在RAM的11个区循环移动,实现解交织。

采用RAM分区循环移位法来实现DVB-C解交织器的设计

图1 解交织器的实现框图

图2为解交织器在Mentor公司的Modelsim SE环境下的逻辑仿真图。Clk为时钟信号,Reset为异步复位信号,ClkEn为时钟使能信号,高电平有效,FrameFirstIn为帧同步信号,高电平有效。DeinterleaverIn为输入数据。设计时要注意数据同步问题,要不然会造成数据错位,导致设计的失败。DeinterleaverIn为了在selector模块输入时和RAM的输出数据q保持同步,要作相应的延时,同步延时后DataIn4,同理,对应地RAM的输入数据DataIn1,selector模块的使能信号ClkEn4等也是经过同步处理得到。Flag为selector模块的选择控制信号,当Flag信号为0~10时,选择RAM的输出数据q作为输出,而当Flag=11时,则选择DeinterleaverIn经过同步处理后的数据DataIn4作为输出,从而保证在解交织器的11支路实现无延时输出。在解交织器的最前面输出的字节有些是无效的,加一个DataEffect模块是为了等全部字节都有效时,才把FrameFirstOut信号置高,告诉后面的模块数据开始全部有效。

采用RAM分区循环移位法来实现DVB-C解交织器的设计

图2 解交织器的Modelsim仿真图

从资源利用方面考虑,使用RAM分区循环移位法来实现DVB-C解交织器比全部用基本寄存器或用配置FIFO的方法来实现要优化得多。

为了更好地验证,本文把设计在synopsys 公司的synplifypro软件环境下进行综合,选用Altera公司的Cyclone EP1C12Q240C8器件。因为使用了软核IP,所以再把生成的*.vqm文件导入synopsys公司的QuartusII 软件进行再综合,选择同样的器件类型和型号,结果说明采用双口RAM设计所使用的逻辑单元较少,而且使用的8976比特RAM资源占用了Cyclone器件中的3个M4K,只有全部存储资源的3%。

结语

虽然采用卷积交织会在刚开始传输数据的时候输出一些无效数据,在系统中引入一定的延时,但是它能把突发干扰造成的突发错误分散成随机错误,利于RS纠错,这样一权衡,有延时也是很值得的。本文利用EDA工具完成解交织器的设计,并且采用Verilog和原理图协同输入的设计方法,大大提高了设计效率。这里设计的解交织器具有通用性,如果要用不同深度I和基数M的解交织器,只要重设程序里的参数值就可以了,非常方便。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593566
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1322

    浏览量

    113722
  • 仿真
    +关注

    关注

    50

    文章

    3873

    浏览量

    132185
收藏 人收藏

    评论

    相关推荐

    为什么要进行交织处理?什么是分组交织?什么是卷积交织

    ?分组交织又称矩阵交织或块交织,如图所示,编码后的码字序列被按行填入一个大小为m× n 的矩阵,矩阵填满以后,再按列发出。同样,接收端的解交织
    发表于 05-30 16:13

    DVB-C标准及相关测量技术

    :电缆头端电缆分布连接(含同轴电缆和电缆信号放大器)从分布到用户的最后连接除了利用传统电缆还可以利用光纤传输数字电视信号。DVB-CDVB-S结构和标准相似,仅仅是最后一个阶段不
    发表于 10-20 10:24

    DVB-C有线电视传输标准规范

    共享DVB-C有线电视传输标准
    发表于 02-08 16:46

    请问谁有完整的DVB-C故障及解决方法?

    请问谁有完整的DVB-C故障及解决方法?有经验的请帮忙说下。
    发表于 02-13 08:58

    浅析8594Q QAM Analyzer DVB-C解决方案

    8594Q QAM Analyzer DVB-C解决方案产品概述
    发表于 04-04 08:42

    DVB-C解决方案产品说明

    DVB-C解决方案,产品说明
    发表于 04-11 10:18

    如何用查表移位实现流水灯?

    如何用查表移位实现流水灯?
    发表于 10-08 08:03

    基于Hi2011 的DVB-C 机顶盒设计与实现

    本文介绍了数字电视机顶盒基本原理,然后设计了以Hi2011 芯片为核心的DVB-C 机顶盒的硬件架构,并分析了机顶盒的软件实现问题,主要包括系统的软件结构、搜台算法的实现和数据库构
    发表于 06-17 08:49 39次下载

    DVB-C视频传输中SPI接口和ASI接口

        在目前的DVB-C系统设备的传输接
    发表于 04-16 20:04 1677次阅读

    DVB-C数字机顶盒的设计方案与实现方法

    DVB-C数字机顶盒的设计方案与实现方法  引言在我国,数字电视节目在许多省市已经开始试播,由于用户端使用的基本都是模拟电视机,无
    发表于 07-27 22:47 1121次阅读
    <b class='flag-5'>DVB-C</b>数字机顶盒的设计方案与<b class='flag-5'>实现</b>方法

    GX3001 面向DVB-C/DVB-S/DVB-T市场推出

    GX3001……MPEG2+CA (高性能标清解码) 产品描述:   GX3001是面向DVB-C/DVB-S/DVB-T市场推出的一款低成本高性能机顶盒解码芯片,内部集成
    发表于 09-24 08:30 1347次阅读

    DVB-C视频传输接口ASI的实现

    DVB-C视频传输接口ASI的实现 在目前的DVB-C广播电视系统的传输接口中,有两种MPEG-2视频传输接口标准:异步串行接口标准 ASI和同步并行接口SPI。SPI一共有11位有用信号,
    发表于 10-13 14:28 2467次阅读
    <b class='flag-5'>DVB-C</b>视频传输接口ASI的<b class='flag-5'>实现</b>

    一种交织器和解交织器的FPGA电路实现

    一种交织器和解交织器的FPGA电路实现 交织解交织是组合信道纠错系统的一个重要环节,交织器和
    发表于 02-08 23:21 1556次阅读
    一种<b class='flag-5'>交织</b>器和<b class='flag-5'>解交织</b>器的FPGA电路<b class='flag-5'>实现</b>

    DVB-C信道解调解码芯片GX1001的设计

    杭州国芯推出的GX1001系列就是一款颇具特色的DVB-C信道解调解码芯片。它集成了10位A/D转换器,采用直接中频信号输入,支持DVB-C下16QAM、32QAM、64QAM、128QAM和256QAM解调;支持可变符号率信
    发表于 06-23 16:08 43次下载
    <b class='flag-5'>DVB-C</b>信道解调解码芯片GX1001的设计

    FPGA如何使用RAM分区循环移位实现解交织

    本文分析了卷积交织解交织的基本原理,然后采用Altera 的FPGA器件,用RAM分区循环
    的头像 发表于 09-28 17:53 2412次阅读