CN1298130C - 卷积交织器及其数据读写方法 - Google Patents
卷积交织器及其数据读写方法 Download PDFInfo
- Publication number
- CN1298130C CN1298130C CNB011391707A CN01139170A CN1298130C CN 1298130 C CN1298130 C CN 1298130C CN B011391707 A CNB011391707 A CN B011391707A CN 01139170 A CN01139170 A CN 01139170A CN 1298130 C CN1298130 C CN 1298130C
- Authority
- CN
- China
- Prior art keywords
- branch
- address
- write
- read
- ram
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及通信信道编译码的交织技术,公开了一种卷积交织器及对模块读写数据的方法,其中卷积交织器包括分支切换控制模块、RAM存储模块、分支地址产生模块、分支内读偏移地址产生模块和分支内写偏移地址产生模块,分支切换控制模块控制分支的切换时序使分支地址产生模块产生该分支在RAM中的起始地址,分支内读偏移地址产生模块根据所产生的起始地址在该分支内部产生相对于分支起始地址的读偏移地址,分支内写偏移地址产生模块根据所产生的读偏移地址产生写偏移地址,RAM存储模块根据所产生的读、写偏移地址,读写相应数据,该方法可使得读写操作在同一时钟沿同时进行,满足数据延迟深度要求,提高交织器工作速度,且占用资源少,实现成本低。
Description
技术领域
本发明涉及通信系统中信道编译码的交织技术,具体涉及一种在进行信道编译码时,克服突发错误的卷积交织器(convolution interleaver),本发明还涉及对上述卷积交织器进行读写数据的方法。
背景技术
在通信系统中,通常采用信道编码来纠正错误。信道编码一般作用是纠正信道中出现的随机错误,但在传输信道,往往会有突发错误产生,例如突发脉冲噪声干扰等,会造成信号出现突发的连续错误。为了提高系统抗突发错误的能力,同时减小系统信道编码器的复杂度,最常用的方法是在系统中采用交织器来克服突发错误。 交织器通常有两种实现形式,一种为块交织器(block interleaver),另一种为卷积交织器(convolutional interleaver)。卷积交织器和块交织器相比有延时小,同步简单的特点;
块交织器克服突发错误的原理是,假设码长为n的输入数据块,块交织器把输入数据块写入Dxn的存储内存中,D为交织深度。 数据横向写入,纵向读出。这样做使得连续出现的错误被分散到不同的数据块中,从而满足每个码子的纠错能力。
卷积交织器的结构如附图1所示,表明卷积交织器一般由1个分支构成,从0到I-1。每个分支的延迟单元数为0、J、2J、……(I-1)J。每个分支延迟单元数差J个,所以每个分支的延迟数并不一致,结果造成输入数据的延迟并不相同。
卷积交织器的实现方法很多,附图2所示为其中的一种,它的关键就是如何实现存储器的数据读写;从交织器的结构可以看出,如附图2所示,交织器的每个分支实际上是一个FIFO移位寄存器,深度为(I-1)*J个字节。输入数据由控制开关控制循环送入到每一个分支。输出也有开关控制选择一个分支的数据。输入和输出应该保持同步。在FPGA实现时,如果用FIFO来实现每个分支存储单元,那么需要占用非常大的存储单元。这是由于在FPGA中,每个存储单元的大小是一定的,不管存储单元的大小不同,都占用同样的存储单元大小。如果有I个分支,尽管每个分支的存储单元大小不同。但是仍然需要占用I-1个(I-1)J大小的存储单元;使得器件资源造成了非常大的浪费。
发明内容
本发明要解决的技术问题在于,提供一种卷积交织器,可在有限的存储容量内,在处理信道编译码中的突发错误时所占用的系统资源更少,工作效率高,纠错成本低;本发明还提供控制这种卷积交织器读写数据的方法,可使卷积交织器的读写速度更快,所占用的系统资源更少。
本发明提供的技术方案是,构造一种卷积交织器,其特征在于,包括分支切换控制模块、RAM存储模块、分支地址产生模块、分支内读偏移地址产生模块和分支内写偏移地址产生模块,所述分支切换控制模块控制分支的切换时序使分支地址产生模块产生该分支在RAM中的起始地址,所述分支内写偏移地址产生模块根据所产生的起始地址在该分支内部产生相对于分支起始地址的写偏移地址,所述分支内读偏移地址产生模块根据所产生的写偏移地址加一产生读偏移地址,所述RAM存储模块根据所产生的读、写偏移地址,写入和读出相应的数据。
提供一种卷积交织器读写数据的方法,其特征在于,包括如下步骤:
将统一编址的RAM存储模块按卷积交织器不同分支大小划分成I-1个存储块,其中第一个存储块大小为J+1,第二个为2J+1,依此类推,第I-1个存储块的大小为(I-1)J+1;
用状态机控制每一个分支的切换,每隔一个时钟周期,读写指针跳到下一个分支;
通过写地址产生器产生写RAM的地址;
在写地址的基础上加一得到读RAM的地址,使得在同一个时钟沿,产生不同的读和写RAM的地址;
RAM存储模块根据所产生的读、写偏移地址,写入和读出相应的数据。
在上述卷积交织器读写数据的方法中,所述用状态机控制每一个分支的切换步骤中,是先将分支切换模块置为状态0,即读写指针处于分支0,然后每一个时钟节拍,分支切换状态机切换到下一个状态,即切换到下一分支。
在上述卷积交织器读写数据的方法中,每个写计数器控制一个分支,当分支切换控制模块中分支切换到相应的分支时,写计数器加1,当达到每个计数器的长度时,下一个时钟周期清零。
在上述卷积交织器读写数据的方法中,当分支切换控制模块中分支切换到相应的分支时,读计数器的值为当前写地址加1,当达到每个计数器的长度时,下一个时钟周期清零,再重新开始。
在上述卷积交织器读写数据的方法中,所述通过写地址产生器产生写RAM的地址步骤中,所述写RAM地址由两部分构成,一部分为分支的起始地址,另一部分为分支内写偏移地址,把当前的分支起始地址和写地址产生器的值相加得到当前写RAM的地址。
在上述卷积交织器读写数据的方法中,所述在写地址的基础上加一得到读RAM的地址是在写偏移地址的基础上加一得到读偏移地址,再将当前的分支起始地址和读偏移地址相加得到当前读RAM的地址。
实施本发明提供的卷积交织器及读写数据的方法,通过将读RAM的地址在当前写地址的基础上加一得到,使得在同一个时钟沿,读和写RAM的地址是不同的,可以满足读写操作在同一时钟沿同时操作,而且满足数据延迟深度的要求,极大地提高了交织器工作的速度,并且占用资源少,实现成本低,本发明适合于采用FPGA和ASIC技术的卷积交织器,由于解卷积交织器是卷积交织器的逆结构,所以本发明同样也适合于解卷积交织器。
附图说明
图1为一种典型的卷积交织器原理框图;
图2为采用FIFO实现卷积交织原理框图;
图3为本发明提供的采用块RAM的卷积交织器的原理框图。
具体实施方式
图1示出了ITU-T J.83附件A中所采用的卷积交织器的结构原理,该卷积交织器交织深度I=12,交织器由12个分支构成,交织器的输入为MPEG-2帧数据,长度为204字节,由控制开关控制输入字节循环送入每一个分支。每个分支深度为(I-1)*J个字节(选取J=17)。为了有利于同步,使MPEG-2帧的同步字节总在分支0中通过。
从图1所示的卷积交织原理图可知,基本的实现方法比较容易得到。这种卷积交织器有12个分支,输入按字节切换输入到每个分支。每个分支可以用不同大小的存储器来实现。对于该卷积交织器,每个分支的存储大小分别为0、17×8、34×8、51×8、68×8、85×8、102×8、119×8、136×8、153×8、170×8、187×8比特。总容量为1122×8比特。显然,这么大的存储容量不能用D触发器来实现,对于XC2S150器件,共有864个CLB,每个CLB有两个Slice,每个Slice有两个D触发器,所以XC2S150除了I/O中的输入输出寄存器外,大约有432×8个寄存器。如果用寄存器来实现卷积交织器,那么一个15万门器件的容量也是不够的。
图2所示为用FIFO结构原理实现卷积交织的原理框图;在FPGA中,有一些专门的存储块,可以用来存储大容量的数据。这些存储单元可以实现RAM或者FIFO功能。卷积交织器的每个分支实际上就是一个FIFO,输入的数据经过一定数量的延时后输出。在FPGA中,这些存储单元的大小是固定的。 对于XC2S150器件,有12个Block,每个Block的大小为4K比特。每个Block可以配置成1×4096、2×2048、4×1024、8×512、16×256比特。在这里,由于输入数据位8比特,所以Block配置成8×512比特。另外,由于器件Block资源是有限的,所以对于12个分支,不可能每个分支都用Block来实现,可以把一部分分支用寄存器来实现。本发明规定把85×8以上的分支用Block来实现,而其它的用寄存器实现。实现卷积交织器除了占用存储单元以外,还有一部分控制逻辑,用来控制输入和输出分支单元的切换。
这种方法实现占用的总的资源如表一所示。从表中可以看到,虽然不同分支存储容量大小是不同的,但是由于Block的大小是固定的,即使如85×8大小的分支,也要占用一个Block,显然,这是非常浪费的。但是这种实现方法也有优点,就是控制电路简单。
从上述所提供的两个现有的卷积交织器实现原理中可知,用数字电路来实现的方法是多样的,但是哪种方法能取得最佳的效果值得深入研究。而采用FPGA的实现方法,适合于主流FPGA,如Altera和Xilinx;所以本发明以Xilinx的FPGA XC2S150为例来说明本发明具体的实施方式。
如图3所示,是本发明采用块RAM来实现卷积交织器的原理框图;包括分支切换控制模块、RAM存储模块、分支地址产生模块、分支内读偏移地址产生模块和分支内写偏移地址产生模块,分支切换控制模块控制分支的切换时序使分支地址产生模块产生该分支在RAM中的起始地址,分支内读偏移地址产生模块根据所产生的起始地址在该分支内部产生相对于分支起始地址的读偏移地址,分支内写偏移地址产生模块根据所产生的读偏移地址产生写偏移地址,RAM存储模块根据所产生的读、写偏移地址,写入和读出相应的数据。
本发明提供的读写方法,是将不同的分支大小的存储单元合成为一个大的、统一的Block RAM。对于1122×8比特大小的存储器,可以用3个512×8的Block来实现。但是这样做带来的最大困难就是如何对这1122个存储空间编址,如何很好地控制数据从这个模块中的写入和读出,是卷积交织器能否实现的关键。
根据本发明提供的模块结构,可把12个分支总的比特存储空间看成一个完整的Block RAM。根据每个分支的大小,把这个块RAM划成不同的存储区间,第一个分支的起始地址为0~17,第二个分支的起始地址为18~52,以此类推,第3、4、5、6、7、8、9、10、11分支的起始地址分别为53~104、105~173、174~259、260~362、363~482、483~619、620~773、774~944和945~1132。至于每个存储区间多占用一个地址,是为了使数据在存储区内存储到相应的时间,满足读数据和写数据控制的要求。
分支切换控制模块在由一个状态机控制下,在每个时钟周期,从一个状态切换到另一个状态,每个状态代表一个分支。分支地址计数器模块和分支内写偏移地址计数器模块根据这一时刻所处的分支,启动相应的计数器,分支地址计数器产生分支地址,分支偏移地址计数器产生存储区内偏移地址。把两个地址计数器的值相加,就得到这一时刻的写地址。例如,当分支第一次切换到分支2时,此时得到分支的起始地址为18,由于是第一次切换到该分支,所以分支内偏移地址计数器为0,此时得到的写入地址为18。当分支第十次切换到分支11时,此时得到的分支地址为945,由于是第十次切换到分支11,所以分支内偏移地址计数器为9,此时得到的写入地址为954。在产生写地址的同时,为了保持读地址和写地址正确的时序关系,这一时刻的读地址为写地址加1。这也是为什么每个存储区间的大小比实际多一个的根本原因。采用上述产生地址的方法后,读写地址的控制就比较简单。
读RAM的地址可以在当前写地址的基础上加1得到,也就是说在同一个时钟沿,读和写RAM的地址是不同的,以便满足读写操作在同一时钟沿同时操作,而且满足数据延迟深度的要求,极大提高了交织器工作的速度。
用这种方法实现占用的总的资源如下表一所示:
表一
实现方法 | Slices | Block | Equivalentgate |
基本方法 | 380 | 7 | 133320 |
块RAM方法 | 278 | 3 | 54162 |
从表一中可以看出,本发明提供的模块和读写方法仅占用3个Block,而且占用的Slices单元也减少了(此处,没有考虑上一种方法有一部分存储单元是用Slices来实现的),使得总的等价门数大大地减少了,大约仅占5万4千门。这种方法同样适合ASIC实现。
从以上所述的实施效果可知,本发明提供的实施方法是一种较好的实现卷积交织器方案。该方法非常适合FPGA和ASIC设计。由于卷积交织器在DVB等许多系统中都有应用,所以该方法有较高的应用价值。
Claims (7)
1、一种卷积交织器,其特征在于,包括分支切换控制模块、RAM存储模块、分支地址产生模块、分支内读偏移地址产生模块和分支内写偏移地址产生模块,所述分支切换控制模块控制分支的切换时序使分支地址产生模块产生该分支在RAM中的起始地址,所述分支内写偏移地址产生模块根据所产生的起始地址在该分支内部产生相对于分支起始地址的写偏移地址,所述分支内读偏移地址产生模块根据所产生的写偏移地址加一产生读偏移地址,所述RAM存储模块根据所产生的读、写偏移地址,写入和读出相应的数据。
2、一种卷积交织器读写数据的方法,其特征在于,包括如下步骤:
将统一编址的RAM存储模块按卷积交织器不同分支大小划分成I-1个存储块,其中第一个存储块大小为J+1,第二个为2J+1,依此类推,第I-1个存储块的大小为(I-1)J+1;
用状态机控制每一个分支的切换,每隔一个时钟周期,读写指针跳到下一个分支;
通过写地址产生器产生写RAM的地址;
在写地址的基础上加一得到读RAM的地址,使得在同一个时钟沿,产生不同的读和写RAM的地址;
RAM存储模块根据所产生的读、写地址,写入和读出相应的数据。
3、根据权利要求2所述卷积交织器读写数据的方法,其特征在于,所述用状态机控制每一个分支的切换步骤中,是先将分支切换模块置为状态0,即读写指针处于分支0,然后每一个时钟节拍,分支切换状态机切换到下一个状态,即切换到下一分支。
4、根据权利要求3所述卷积交织器读写数据的方法,其特征在于,每个写计数器控制一个分支,当分支切换控制模块中分支切换到相应的分支时,写计数器加1,当达到每个计数器的长度时,下一个时钟周期清零。
5、根据权利要求3所述卷积交织器读写数据的方法,其特征在于,当分支切换控制模块中分支切换到相应的分支时,读计数器的值为当前写地址加1,当达到每个计数器的长度时,下一个时钟周期清零,再重新开始。
6、根据权利要求2所述卷积交织器读写数据的方法,其特征在于,所述通过写地址产生器产生写RAM的地址步骤中,所述写RAM地址由两部分构成,一部分为分支的起始地址,另一部分为分支内写偏移地址,把当前的分支起始地址和写偏移地址产生器的值相加得到当前写RAM的地址。
7、根据权利要求6所述卷积交织器读写数据的方法,其特征在于,所述在写地址的基础上加一得到读RAM的地址是在写偏移地址的基础上加一得到读偏移地址,再将当前的分支起始地址和读偏移地址相加得到当前读RAM的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011391707A CN1298130C (zh) | 2001-12-19 | 2001-12-19 | 卷积交织器及其数据读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011391707A CN1298130C (zh) | 2001-12-19 | 2001-12-19 | 卷积交织器及其数据读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1427573A CN1427573A (zh) | 2003-07-02 |
CN1298130C true CN1298130C (zh) | 2007-01-31 |
Family
ID=4675096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011391707A Expired - Fee Related CN1298130C (zh) | 2001-12-19 | 2001-12-19 | 卷积交织器及其数据读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1298130C (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1309175C (zh) * | 2004-02-03 | 2007-04-04 | 上海奇普科技有限公司 | 数字传输中的一种卷积交织与去交织的方法 |
CN101436160B (zh) * | 2007-11-16 | 2011-05-11 | 瑞昱半导体股份有限公司 | 解交叉单元的数据存取方法 |
CN101662336B (zh) * | 2009-09-16 | 2012-08-15 | 北京海尔集成电路设计有限公司 | 一种可配置的交织解交织方法及其装置 |
CN102006087B (zh) * | 2010-11-11 | 2012-12-19 | 福州大学 | 基于sram的卷积交织方法及其装置 |
JP2012253600A (ja) * | 2011-06-03 | 2012-12-20 | Kddi Corp | インタリーブ装置および無線通信システム |
CN103795425A (zh) * | 2014-01-27 | 2014-05-14 | 中国电子科技集团公司第十研究所 | 码率兼容rs码译码器 |
EP3001572A1 (en) * | 2014-09-29 | 2016-03-30 | Panasonic Corporation | Interleaving by concatenation of convolutional and block interleaving |
CN114124305B (zh) * | 2021-11-25 | 2024-08-13 | 中国电子科技集团公司第五十四研究所 | 一种计算、查表相结合的分段交织装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745497A (en) * | 1994-05-13 | 1998-04-28 | Lsi Logic Corporation | Convolutional interleaving/DE-interleaving method and apparatus for data transmission |
US6014761A (en) * | 1997-10-06 | 2000-01-11 | Motorola, Inc. | Convolutional interleaving/de-interleaving method using pointer incrementing across predetermined distances and apparatus for data transmission |
US6178530B1 (en) * | 1998-04-24 | 2001-01-23 | Lucent Technologies Inc. | Addressing scheme for convolutional interleaver/de-interleaver |
-
2001
- 2001-12-19 CN CNB011391707A patent/CN1298130C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745497A (en) * | 1994-05-13 | 1998-04-28 | Lsi Logic Corporation | Convolutional interleaving/DE-interleaving method and apparatus for data transmission |
US6014761A (en) * | 1997-10-06 | 2000-01-11 | Motorola, Inc. | Convolutional interleaving/de-interleaving method using pointer incrementing across predetermined distances and apparatus for data transmission |
US6178530B1 (en) * | 1998-04-24 | 2001-01-23 | Lucent Technologies Inc. | Addressing scheme for convolutional interleaver/de-interleaver |
Also Published As
Publication number | Publication date |
---|---|
CN1427573A (zh) | 2003-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100622904B1 (ko) | 인터리빙 순서 발생기, 인터리버, 터보 인코더 및 터보디코더 | |
US6625234B1 (en) | Efficient implementations of proposed turbo code interleavers for third generation code division multiple access | |
EP1850486A1 (en) | Parallel interleaver, parallel deinterleaver, and interleave method | |
US6035427A (en) | Convolutional interleaver and method for generating memory address therefor | |
US6678843B2 (en) | Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving | |
US6748561B2 (en) | Interleavers and de-interleavers | |
EP1450494B1 (en) | Interleaving method and apparatus with parallel access in linear and interleaved addressing order | |
AU759580B2 (en) | 2-dimensional interleaving apparatus and method | |
CA2337914C (en) | Interleaver using co-set partitioning | |
CN1298130C (zh) | 卷积交织器及其数据读写方法 | |
KR100518295B1 (ko) | 디지털 통신 시스템의 디인터리빙장치 및 그의디인터리빙방법 | |
US7363552B2 (en) | Method and apparatus for convolutional interleaving/de-interleaving technique | |
KR100628201B1 (ko) | 터보 디코딩 방법 | |
JP2000353965A (ja) | インターリービング方法、インターリービング装置、ターボ符号化方法及びターボ符号化装置 | |
CN1309175C (zh) | 数字传输中的一种卷积交织与去交织的方法 | |
KR100499467B1 (ko) | 블록 인터리빙 방법 및 그를 위한 장치 | |
KR100519335B1 (ko) | 채널 인터리빙 방법 | |
US20070186129A1 (en) | Address generation apparatus for turbo interleaver and deinterleaver in w-cdma systems | |
US6714606B1 (en) | Integrated services digital broadcasting deinterleaver architecture | |
KR19980023731A (ko) | 정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법 | |
Borrayo-Sandoval et al. | Design and implementation of a configurable interleaver/deinterleaver for turbo codes in 3GPP standard | |
KR20040061283A (ko) | 터보 디코딩의 인터리버 주소 발생 방법 | |
CN1293502A (zh) | 权位倒置交织器 | |
KR100362557B1 (ko) | 이차원 인터리빙 장치 및 방법 | |
KR100561631B1 (ko) | 터보 인터리버의 출력 주소 산출 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
ASS | Succession or assignment of patent right |
Owner name: SHENZHENG CITY ZTE CO., LTD. Free format text: FORMER OWNER: SHENZHENG CITY ZTE CO., LTD. SHANGHAI SECOND INSTITUTE Effective date: 20030723 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20030723 Applicant after: Zhongxing Communication Co., Ltd., Shenzhen City Applicant before: Shanghai Inst. of No.2, Zhongxing Communication Co., Ltd., Shenzhen City |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070131 Termination date: 20131219 |