CN106209119A - 一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法 - Google Patents
一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法 Download PDFInfo
- Publication number
- CN106209119A CN106209119A CN201510227929.2A CN201510227929A CN106209119A CN 106209119 A CN106209119 A CN 106209119A CN 201510227929 A CN201510227929 A CN 201510227929A CN 106209119 A CN106209119 A CN 106209119A
- Authority
- CN
- China
- Prior art keywords
- drm
- unit
- path
- viterbi decoder
- acs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种DRM/DRM+接收机的Viterbi解码器的硬件设计方法,特点是由四个加-比较-选择单元组成4-ACS并行流水线架构,采用分组交叉存储方式的状态路径度量存储单元,幸存路径信息读写控制器与片外ddr高速数据交互,回溯输出四个主要硬件模块所组成,在时钟频率48MHZ条件下,DRM/DRM+能够满足实时解码,片上RAM与逻辑资源消耗几乎最少,DRM/DRM+接收机方案成本几乎最低。Viterbi解码器的硬件设计采用定点运算器来实现,与采用32位单精度浮点算法器回溯输出比特流结果完全一致,不仅降低了计算复杂度,又节省了片上逻辑资源,更有利于硬件来实现。
Description
技术领域
本发明涉及一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法,主要针对最复杂的HMMIX(64-QAM多级映射方式)信道编码方式的MSC(主服务信道)的DRM信道,尤其是DRM+移动电视广播的信道。
背景技术
DRM(Digital Radio Mondiale:全球数字无线广播)是原来AM广播的数字化标准,用于30MHz以下频段的长波、中波和短波音频广播。2001年9月,国际电信同盟(International Telecommunications Union,ITU)、国际电子技术委员会International Electro technical Committee,IEC)和欧洲无线电通讯标准学会(European Telecommunications Standards Institute,ETSI)共同发布了DRM(Digital Radio Mondiale)数字广播标准,从而规范了全球在30MHz以下数字音频广播。欧洲无线电通讯标准学会(ETSI)并不满足于30MHz以下频段的音频广播,在2005年3月,他们开始将DRM系统的频段扩充到VHF(甚高频)频段,高达108MHz,这就是所谓的DRM+,在2009年8月31日,DRM+已经成为欧洲电信标准协会的官方广播标准。这个名字是ETSI ES 201 980 V3.1.1,这实际上是新版本的DRM标准,即DRM+标准,它增加了额外的模式,使得工作频段从30MHz提高到174MHz,更宽的带宽将被使用,这将允许广播电台使用更高的比特率,从而提高音频广播的质量。一个可能的信道带宽为50kHz将允许DRM+提供接近CD的音质。而100kHz信道带宽的DRM+信道有足够的能力进行一个低清晰度0.7Mb/s比特率的移动电视广播,而且在DRM+部署的移动电视广播要比DMB或DVB-H简单。
DRM/DRM+数字广播标准即将成为中国调幅短波数字广播标准,市场上对DRM接收机有巨大的需求。目前,成熟的商用DRM接收机价格居高不下,主流方案主要是ARM+DSP或DSP的软件接收方案。本文提出的一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法,面向DRM/DRM+专用解码芯片的Viterbi解码器设计,为高性能、低成本、低功耗的DRM/DRM+专用解码芯片研制成功提供了一种硬件设计方案。
在硬件实现方式中,Viterbi硬件解码器设计架构分为串行与并行两种架构。串行架构,数据处理速度慢,数据吞吐量小,这种架构适合低码率的解码情况,但是,占用的资源少;并行架构数据处理速度快,数据吞吐量大,这种架构适合高码率的解码情况,但是,占用的面积大。本文所设计的Viterbi硬件解码器采用串并结合的架构,计算状态 路径度量与路径信息由四个ACS单元流水线加速处理,这属于并行结构;Viterbi解码器内部模块由主控制器进行异步串行控制方法,这属于串行结构,很好地解决了面积与速度的关系,符合IC设计的折衷原则。
在计算路径度量与路径信息单元设计中,ACS一般都是采用浮点运算器的流水线方式,需要的流水线级数较长,消耗的逻辑单元也较多;本文采用定点运算器八级流水线方式,片上逻辑资源做到尽量少,选择四个ACS并行和合理调度发射,提高了硬件利用率和数据处理吞吐量。
在Viterbi解码运算过程中,有大量64位幸存路径信息需要保存与读取,数据通常都是上千个,在DRM+移动电视广播标准中甚至有上万个,全部存储在片上单口RAM中,会增加芯片的面积与功耗;要是存储在片外的SRAM,由于成本的原因,也不切实际。本文通过幸存路径信息读写控制器的设计,Viterbi解码过程中产生的庞大的幸存路径信息数据量与片外ddr进行高速数据交互,既保证Viterbi解码器解码速度不受影响,又大大减少了芯片的面积。
Viterbi硬件解码器的硬件设计中,一般都是32位单精度浮点算法器来保证运算精度,本文采用定点算法器来实现,回溯输出的比特流结果与32位单精度浮点算法器完全一致。
发明内容
本发明所要解决的技术问题是提供一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法,在时钟频率48MHZ条件下,DRM/DRM+能够满足实时解码,片上RAM与逻辑资源消耗几乎最少,DRM/DRM+接收机方案成本几乎最低。
本发明解决上述问题所采用的技术方案为:一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法,包括以下主要的硬件设计方法:
1、一个ACS单元由两个无符号定点加法器、一个无符号定点比较器、一个无符号选择器组成八级流水线方式来处理连续输入序列的两个前向状态路径度量与两个分支度量信息,经过八个时钟周期,输出序列的当前状态路径信息连续写回路径信息存储单元,同时,输出序列的当前状态路径度量连续写回路径度量存储单元。
2、由四个ACS单元组成4-ACS并行架构的流水线调度方式,结合状态路径度量存储单元的分组交叉存储方式,有效避免了同一状态下对路径度量存储单元读写操作的冲突,只需二十五个时钟周期完成当前状态路径度量与路径信息的计算与存储功能。
3、针对4-ACS并行架构的流水线调度方式,状态路径度量存储单元采用分组交叉的存储方式,A组用4个18X8的双口RAM,B组用4个18X8的单口RAM。
4、幸存路径信息读写控制器的设计,使Viterbi解码过程中产生的庞大的幸存路径 信息数据量快速与片外ddr进行高速数据交互,实现了计算所有接收到比特流的状态路径信息单元工作结束到回溯输出单元开始工作的无延时切换控制,同时,保证回溯输出单元完成最大似然路径的扫描输出速度不变。
所述的一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法,整个Viterbi解码器硬件设计中所设计的运算器都是采用定点运算器,与采用32位单精度浮点算法器回溯输出比特流结果完全一致。
与现有技术相比,本发明的优点在于:
1)本发明方法采用八级流水线方式的定点ACS单元所需逻辑资源,不到采用32位单精度浮点多级流水线ACS单元所需逻辑资源的50%。
2)本发明方法采用分组交叉存储方式的路径度量存储单元所需片上RAM资源,不到普通存储方式所需片上RAM资源的25%。
3)本发明方法的幸存路径信息高速读写控制器的设计,取代了现有技术将所有的幸存路径信息存放到片上64位宽、几万深度的片上单口RAM或片外SRAM方案,并保证Viterbi解码器解码速度不受影响。
4)本发明方法所设计的Viterbi硬件解码器采用串并结合的架构,计算状态路径度量与路径信息由四个ACS单元并行流水线加速处理,Viterbi解码器内部模块由主控制器进行异步串行控制方法,很好地解决了面积与速度的关系,符合IC设计的折衷原则,既满足了实时解码的要求,又使所需逻辑资源不超过完全串行结构所需逻辑资源的20%。
附图说明
图1为八级流水线方式ACS结构图
图2为4-ACS流水线调度方式图
图3为交叉分组的路径度量存储单元结构图
图4为幸存路径信息读/写控制器的读写控制流程图
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
1、图1所示,一个ACS单元由两个18位无符号定点加法器、一个18位无符号定点比较器、一个18位无符号选择器组成,一个8位的移位寄存器作为流水线的控制与调度,第1~3级是计算两条路径的前向状态路径度量与分支距离之和;第4~6级是比较两条路径;第7级是选择一条最小路径的状态路径度量与路径信息;第8级是保存最小路径的路径信息与状态路径度量。经过8个时钟周期,输出序列的当前状态路径信息连续写回路径信 息存储单元,同时,输出序列的当前状态路径度量连续写回路径度量存储单元。
2、由四个ACS单元组成4-ACS并行架构的流水线调度方式,结合状态路径度量存储单元的分组交叉存储方式,有效避免了同一状态下对路径度量存储单元读写操作的冲突。通过图2的4-ACS流水线调度方式,到第16个时钟周期所有的状态路径度量都被读出,这时候读出的状态路径度量为:30、62和31、63,最小状态是30,如果状态30在第17个时钟周期被更新,则读、写状态路径度量刚好错开。因此,把ACS单元设计成8级流水线结构,也就是ACS单元有8个时钟周期的延时,就能把读、写状态路径度量刚好错开。每时钟周期发射四个ACS操作。同样,由于访存的延时,ACS单元从第2个时钟周期开始工作,第10个时钟周期开始写当前状态路径度量,第17个时钟周期状态发射完毕,第25个时钟周期写当前状态路径度量与路径信息完毕。
3、针对4-ACS并行架构的流水线调度方式,路径度量存储单元采用分组交叉的存储方式,如图3所示,由分成A和B两组,组内划分为四个小组,A组用4个18X8的双口RAM组成,B组用4个18X8的单口RAM组成,地址线为6位的状态路径度量存储单元的地址:0-1位组内选择,0为A0或B0,1为A1或B1,2为A2或B2,3为A3或B3;2-4位:各小组的具体地址线;5位:A组和B组选择,0为A组,1为B组。从表1中发现,从第1~16个时钟周期,进行读操作,每个时钟周期从状态路径度量存储单元读取四个数据,每次读操作(RD0、RD1、RD2、RD3)4个数据在小组内的地址都是一样,因此可以通过对地址线的选择,从而选择合适的数据;从第10~25个周期,进行写操作(WR0、WR1、WR2、WR3),组内(A组或B组)顺序地把当前状态路径度量写回到路径度量存储单元;从第10~16个时钟周期,对A组的RAM有即读又写的操作,则A组用4个双口的RAM;从第18~25个时钟周期,对B组的RAM只有写操作,则B组用4个单口的RAM。(注:A0_0:A0单口RAM的0地址;B2_2:B2双口RAM的2地址)
4、幸存路径信息读写控制器的设计,使Viterbi解码过程中产生的庞大的幸存路径信息数据量快速与片外ddr进行高速数据交互,取代了需要片上64位宽、几万深度的单口RAM或者片外SRAM实现方案,实现了计算所有接收到比特流的状态路径信息单元工作结束到回溯输出单元开始工作的无延时切换控制,同时,保证回溯输出单元完成最大似然路径的扫描输出速度不变,如图4所示,具体设计方法与过程如下:
1)、当Viterbi硬件解码器接收到CPU开始命令信号,根据CPU发送的ddr存储物理地址与回溯深度,先判断回溯深度的奇偶性,计算写操作中wr_ddr(写地址)的首次写操作地址与回溯输出单元需要的fd_ddr_len(实际ddr存储长度),当偶数时,wr_ddr的首次写操作地址=ddr存储物理地址+(回溯深度>>1)+1,fd_ddr_len=ddr存储物理地址+(回溯深度>>1)-2;当奇数时,wr_ddr的首次写操作地址=ddr存储物理地址+(回溯深度>>1)+2,fd_ddr_len=ddr存储物理地址+(回溯深度>>1)-1。
2)、当计算与保存2次幸存路径信息后,幸存路径信息读写控制器向ddr控制器发送写请求与长度为1的命令,当ddr控制器响应后发送ddr_ack为1时,先写入64位当前状态幸存路径信息,再写入64位前向状态幸存路径信息。向ddr控制器发送写请求信号,ddr控制器对ddr bank激活、预充电等操作后,ddr控制器响应后发送ddr_ack信号,不会超过16个时钟周期,所以向ddr写一次长度为1的操作,保证不会多于计算并保存一次64位幸存路径信息的时钟周期。
3)、当写完2次幸存路径信息到ddr后,如果wr_addr不等于CPU发送的ddr存储物理地址,wr_addr减1,继续等待步骤2);如果wr_addr等于CPU发送的ddr存储物理地址,则完成ddr写操作,开始进行ddr读操作步骤4)中,为回溯输出单元回溯扫描顺序来读取ddr存储的幸存路径信息,计算与保存当前状态路径信息单元继续工作。当回溯深度为偶数时,计算与保存最后2次幸存路径信息,不经过ddr存储,直接发送回溯输出单元,主控制器发送开始信号给回溯输出单元,回溯输出单元从当前状态幸存路径信息、再前向状态幸存路径信息进行回溯,最后从backup_64x16_fifo依次读取幸存路径信息,直至回溯输出完成;当回溯深度为奇数时,计算与保存最后1次幸存路径信息,不经过ddr存储直接发送给回溯输出单元开始回溯,后面操作与偶数时完全一致。
4)、最后一次wr_addr作为第一次读操作的读地址(rd_addr),当backup_64x16_fifo的wr_count(写端口数据计数器)小于8,幸存路径信息读写控制器向ddr控制器发送读请求,length(读长度)一般都是4,如果fd_ddr_len不能被4整除,则最后一次length(fd_ddr_len与4求余,即fd_ddr_len[1:0]),当ddr控制器响应后发送ddr_ack为1时,连续读取(length*2)个64位幸存路径信息,按从ddr读取数据的先后顺序,把幸存路径信息连续写入FIFO,整个读操作发送请求信号到写FIFO结束,时钟周期不会超过24个时钟周期。
5)、当回溯输出单元回溯完不经过ddr存储的幸存路径信息后,当backup_64x16_fifo非空时,直接从fifo读取幸存路径信息,整个回溯输出设计每3个周期回溯出1个比特位,8个幸存路径信息完成需要24个周期,当backup_64x16_fifo的wr_count(写端口数据计数器)小于8,已经开始读操作,backup_64x16_fifo不会出现读空等待的状态,所以保证了回溯输出单元完成最大似然路径的扫描输出速度不变。
表
1
Claims (2)
1.一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法,包括以下主要的硬件设计方法:
1)、一个ACS单元由两个无符号定点加法器、一个无符号定点比较器、一个无符号选择器组成八级流水线方式来处理连续输入序列的的两个前向状态路径度量与两个分支度量信息,经过八个时钟周期,输出序列的当前状态路径信息连续写回路径信息存储单元,同时,输出序列的当前状态路径度量连续写回状态路径度量存储单元。
2)、由四个ACS单元组成4-ACS并行架构的流水线调度方式,结合状态路径度量存储单元的分组交叉存储方式,有效避免了同一状态下对路径度量存储单元读写操作的冲突,只需二十五个时钟周期完成当前状态路径度量与路径信息的计算与存储功能。
3)、针对4-ACS并行架构的流水线调度方式,状态路径度量存储单元采用分组交叉的存储方式,A组由4个18X8(位宽18、深度为8)的双口RAM组成,B组由4个18X8的单口RAM组成,其特征在于所需片上RAM资源做到最少,利用率最高。
4)、幸存路径信息读写控制器的设计,使Viterbi解码过程中产生的庞大的幸存路径信息数据量快速与片外ddr进行高速数据交互,取代了需要片上64位宽、几万深度的单口RAM或者片外SRAM(静态随机存取存储器)实现方案,实现了计算所有接收到比特流的状态路径信息单元工作结束到回溯输出单元开始工作的无延时切换控制,同时,保证回溯输出单元完成最大似然路径的扫描输出速度不变,其特征在于既保证Viterbi解码器解码速度不受影响,又大大减少了芯片的面积。
2.根据权利要求1所述的一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法,整个Viterbi解码器硬件设计中所设计的运算器都是采用定点运算器,与采用32位单精度浮点算法器回溯输出比特流结果完全一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510227929.2A CN106209119A (zh) | 2015-05-02 | 2015-05-02 | 一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510227929.2A CN106209119A (zh) | 2015-05-02 | 2015-05-02 | 一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106209119A true CN106209119A (zh) | 2016-12-07 |
Family
ID=57459773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510227929.2A Pending CN106209119A (zh) | 2015-05-02 | 2015-05-02 | 一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106209119A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768412A (zh) * | 2018-05-30 | 2018-11-06 | 佛山华芯微特科技有限公司 | 一种低延时Viterbi译码方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1830151A (zh) * | 2003-07-25 | 2006-09-06 | 松下电器产业株式会社 | 维特比解码器 |
CN101217285A (zh) * | 2007-12-28 | 2008-07-09 | 宁波中科集成电路设计中心有限公司 | 一种适用于DRM标准的Viterbi解码器 |
CN102142849A (zh) * | 2011-02-15 | 2011-08-03 | 无锡物联网产业研究院 | 一种维特比译码方法及维特比译码器 |
CN102761342A (zh) * | 2011-04-27 | 2012-10-31 | 索尼公司 | 维特比译码器和维特比译码方法 |
-
2015
- 2015-05-02 CN CN201510227929.2A patent/CN106209119A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1830151A (zh) * | 2003-07-25 | 2006-09-06 | 松下电器产业株式会社 | 维特比解码器 |
CN101217285A (zh) * | 2007-12-28 | 2008-07-09 | 宁波中科集成电路设计中心有限公司 | 一种适用于DRM标准的Viterbi解码器 |
CN102142849A (zh) * | 2011-02-15 | 2011-08-03 | 无锡物联网产业研究院 | 一种维特比译码方法及维特比译码器 |
CN102761342A (zh) * | 2011-04-27 | 2012-10-31 | 索尼公司 | 维特比译码器和维特比译码方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768412A (zh) * | 2018-05-30 | 2018-11-06 | 佛山华芯微特科技有限公司 | 一种低延时Viterbi译码方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101800619B (zh) | 一种基于块交织的交织或解交织方法及其装置 | |
CN100499380C (zh) | 交织编解码的装置和方法 | |
CN101510819B (zh) | 速率匹配方法及装置 | |
CN102176750B (zh) | 高性能自适应二进制算术编码器 | |
CN101489135B (zh) | 一种方便ldpc长码在fpga实现的编码器及编码方法 | |
CN103905067B (zh) | 多模译码器实现方法及装置 | |
CN108092738A (zh) | 一种解交织解速率匹配的方法和装置 | |
CN107506329A (zh) | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 | |
CN104461966B (zh) | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 | |
CN104021097A (zh) | 数据传输方法、装置及直接存储器存取 | |
CN102111163B (zh) | Turbo编码器及编码方法 | |
CN111274171B (zh) | 一种数据传输装置及方法 | |
CN113222129B (zh) | 一种基于多级缓存循环利用的卷积运算处理单元及系统 | |
CN106209119A (zh) | 一种DRM/DRM+接收机中的Viterbi解码器的硬件设计方法 | |
CN101938330A (zh) | 一种多码率Turbo码译码器及其存储资源优化方法 | |
CN111030780B (zh) | 一种可配置并行比特分组交织器及交织方法 | |
CN106547707B (zh) | 阵列处理器中簇内存储并行访问局部优先交换电路 | |
CN102201817B (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
CN111600681A (zh) | 基于fpga硬件加速的下行链路比特级处理方法 | |
CN103905066A (zh) | Turbo码译码装置和方法 | |
CN103986477A (zh) | 矢量viterbi译码指令及viterbi译码装置 | |
CN102469307B (zh) | 解码器及码流解析装置 | |
CN101540656B (zh) | 用于ctcs点式应答器的解码装置和解码方法 | |
CN101472184A (zh) | Ldpc前向纠错解码器及其降低功耗的方法 | |
CN101154957A (zh) | Turbo码交织器及交织地址传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161207 |
|
WD01 | Invention patent application deemed withdrawn after publication |