[go: up one dir, main page]

CN104461921A - Interleaver/de-interleaver device based on hardware system - Google Patents

Interleaver/de-interleaver device based on hardware system Download PDF

Info

Publication number
CN104461921A
CN104461921A CN201410811789.9A CN201410811789A CN104461921A CN 104461921 A CN104461921 A CN 104461921A CN 201410811789 A CN201410811789 A CN 201410811789A CN 104461921 A CN104461921 A CN 104461921A
Authority
CN
China
Prior art keywords
address
data
selection module
input
calculator
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
Application number
CN201410811789.9A
Other languages
Chinese (zh)
Inventor
马啸
曾慧聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201410811789.9A priority Critical patent/CN104461921A/en
Publication of CN104461921A publication Critical patent/CN104461921A/en
Pending legal-status Critical Current

Links

Landscapes

  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种基于硬件系统的交织器/解交织器装置,交织深度为L=2N,N为正整数,包括计数器、数据存储器、地址选择模块,交织地址由所述地址选择模块里的地址计算器产生,所述装置的地址计算器有N个输入端口和N个输出端口,所述N个输入端口和N个输出端口之间仅通过导线、或通过导线和基本逻辑门相连接。本发明解决了现有的交织/解交织方法不适于在硬件系统上实现,要么占用大量的存储空间要么消耗大量的逻辑资源的问题。本发明对存储器地址线进行打乱和进行逻辑运算作为核心思想,以较为少量的存储空间、逻辑资源以及时钟周期实现数据交织的功能,适合于推广使用。

The invention discloses an interleaver/deinterleaver device based on a hardware system. The interleaving depth is L=2 N , where N is a positive integer. It includes a counter, a data memory, and an address selection module. The address calculator of the device generates, the address calculator of the device has N input ports and N output ports, and the N input ports and N output ports are only connected by wires or by wires and basic logic gates . The invention solves the problem that the existing interleaving/deinterleaving method is not suitable for realization on a hardware system, and either occupies a large amount of storage space or consumes a large amount of logic resources. The present invention scrambles memory address lines and performs logical operations as the core idea, realizes the function of data interleaving with a relatively small amount of storage space, logical resources and clock cycles, and is suitable for popularization and use.

Description

一种基于硬件系统的交织器/解交织器装置A kind of interleaver/deinterleaver device based on hardware system

技术领域technical field

本发明属于通信技术领域,特别涉及一种基于硬件系统的交织器与解交织器装置。The invention belongs to the technical field of communication, and in particular relates to an interleaver and deinterleaver device based on a hardware system.

技术背景technical background

交织器/解交织器被广泛应用于当下的各种通信系统中。交织器最开始主要用在信道编码器与信道之间或级联码的外码与内码之间,用以把突发错误打乱以减小突发错误的长度;之后更在并行级联卷积码(即所谓的Turbo码)、串行级联卷积码、Turbo TCM、比特交织编码调制(BICM)系统和码片交织的CDMA系统等场合发挥着关键作用。The interleaver/deinterleaver is widely used in various communication systems today. At the beginning, the interleaver was mainly used between the channel encoder and the channel or between the outer code and the inner code of the concatenated code to scramble the burst error to reduce the length of the burst error; Product codes (so-called Turbo codes), serial concatenated convolutional codes, Turbo TCM, bit-interleaved coded modulation (BICM) systems, and chip-interleaved CDMA systems play a key role.

交织器最基本的功能是使输入的数据序列经过交织后跟原来序列有不同的排序,以尽可能地实现输入数据序列的随机化。在不同的应用场合,交织器的设计要求也不尽相同。比如在Turbo码中,交织器应该能够改善码字的汉明重量分布从而提高纠错性能;减小不同分量编码器输出的相关性,从而有助于改善Turbo迭代译码算法的收敛性能;满足无碰撞限制条件等。The most basic function of the interleaver is to make the input data sequence have a different sequence from the original sequence after interleaving, so as to realize the randomization of the input data sequence as much as possible. In different applications, the design requirements of the interleaver are also different. For example, in a Turbo code, the interleaver should be able to improve the Hamming weight distribution of the codeword to improve the error correction performance; reduce the correlation between the outputs of different component encoders, thereby helping to improve the convergence performance of the Turbo iterative decoding algorithm; satisfy No collision restrictions, etc.

目前交织器的类型有很多,包括矩阵交织器、分组螺旋交织器、循环移位交织器、均匀分布交织器、S随机交织器、行列S随机交织器、ARP(Almost Regular Permutation)交织器、二次置换多项式(QPP,Quadratic Permutation Polynomial)交织器等。At present, there are many types of interleavers, including matrix interleaver, group spiral interleaver, cyclic shift interleaver, uniform distribution interleaver, S random interleaver, row and column S random interleaver, ARP (Almost Regular Permutation) interleaver, two Sub-permutation polynomial (QPP, Quadratic Permutation Polynomial) interleaver, etc.

在硬件系统中,串行交织器的实现通常包含计数器、数据存储器和地址选择模块。根据地址选择模块里交织地址产生方式的不同,交织器常分为地址存储型和实时计算型两种。In a hardware system, the implementation of a serial interleaver usually includes counters, data memory, and address selection blocks. According to the different interleaving address generation methods in the address selection module, the interleaver is usually divided into two types: address storage type and real-time calculation type.

地址存储型交织器的实现结构如图1所示,交织地址由地址选择模块里的地址存储器产生,计数器、数据存储器和地址存储器的大小均为交织深度L。一般至少需要2L个时钟周期来完成一帧数据的交织。The implementation structure of the address storage interleaver is shown in Figure 1. The interleaving address is generated by the address memory in the address selection module, and the sizes of the counter, data memory and address memory are all interleaving depth L. Generally, at least 2L clock cycles are required to complete the interleaving of one frame of data.

在前L个时钟周期,地址选择模块为写数据模式,计数器由0至L-1进行逐一累加计数,在每个时钟周期里将计数器的输出作为数据存储器的地址输入,从而将数据按顺序写入数据存储器中;在后L个时钟周期,地址选择模块为读数据模式,计数器重新由0至L-1进行逐一累加计数,在每个时钟周期里将计数器的输出作为地址存储器的地址输入,同时输出交织地址存储器中对应的数据作为数据存储器的地址输入,从而将数据存储器中的数据按交织后的顺序读出。In the first L clock cycles, the address selection module is in the write data mode, and the counter is counted one by one from 0 to L-1, and the output of the counter is used as the address input of the data memory in each clock cycle, so that the data is written in order into the data memory; in the last L clock cycles, the address selection module is in the read data mode, and the counter is accumulated and counted one by one from 0 to L-1 again, and the output of the counter is used as the address input of the address memory in each clock cycle, At the same time, the corresponding data in the interleaved address memory is output as the address input of the data memory, so that the data in the data memory is read out in the order after interleaving.

这种方法的优点是不用实时计算交织地址,缺点是需要存储交织映射表,其存储复杂度是O(LLog2L)比特。The advantage of this method is that it does not need to calculate the interleaving address in real time, but the disadvantage is that the interleaving mapping table needs to be stored, and its storage complexity is O(LLog 2 L) bits.

实时计算型交织器的实现结构如图2所示,交织地址由地址选择模块里的地址计算器产生,计数器和数据存储器的大小均为交织深度L,地址计算器由组合电路和时序电路组合构成。若地址计算器需要K个时钟来完成一次地址计算(即地址计算周期为K个时钟),则完成一次数据帧的交织至少需要(K+1)L个时钟。计数器由0至(K+1)L-1进行逐一累加计数。在前L个时钟,地址选择模块为写数据模式,在每个时钟里将计数器的输出作为数据存储器的地址输入,从而将数据按顺序写入数据存储器中;在后KL个时钟,地址选择模块为读数据模式,地址计算器在工作状态,在每个地址计算周期里,将计数器的输出作为地址计算器的输入,将地址计算器计算完成后的输出作为数据存储器的地址输入,从而将数据存储器中的数据按交织后的顺序读出。The implementation structure of the real-time computing interleaver is shown in Figure 2. The interleaving address is generated by the address calculator in the address selection module. The size of the counter and the data memory are the interleaving depth L. The address calculator is composed of a combinational circuit and a sequential circuit. . If the address calculator needs K clocks to complete an address calculation (that is, the address calculation period is K clocks), then at least (K+1)L clocks are required to complete a data frame interleaving. The counter counts up one by one from 0 to (K+1)L-1. In the first L clocks, the address selection module is in the write data mode, and the output of the counter is used as the address input of the data memory in each clock, so that the data is written in the data memory in order; after the KL clocks, the address selection module In the read data mode, the address calculator is in the working state. In each address calculation cycle, the output of the counter is used as the input of the address calculator, and the output of the address calculator is used as the address input of the data memory, so that the data The data in the memory is read out in the order after interleaving.

现在所使用的交织器设计方法中(如二次置换多项式交织器),地址计算器大多数都使用一个较为复杂的交织函数,此交织函数中常常包含加减乘除和取模等数学运算,这些运算会消耗大量的逻辑资源,因此并不太适合在硬件系统上实现。若要地址计算器在一个时钟内完成一次地址计算,则会产生较大的传输延迟;若使地址计算器在几个时钟内完成一次地址计算,则会几倍地延长数据交织的时间。In the currently used interleaver design methods (such as the quadratic permutation polynomial interleaver), most of the address calculators use a relatively complex interleaving function, which often includes mathematical operations such as addition, subtraction, multiplication, division, and modulus. Operation consumes a lot of logic resources, so it is not very suitable for implementation on hardware systems. If the address calculator completes an address calculation within one clock, a large transmission delay will occur; if the address calculator completes an address calculation within several clocks, the data interleaving time will be extended several times.

这种方法的优点是能够实时计算交织映射地址,仅需要存储少量的计算参数,不需要消耗大量的存储器资源,缺点是为了实现运算需要大量的逻辑资源。The advantage of this method is that it can calculate the interleaved mapping address in real time, only need to store a small number of calculation parameters, and does not need to consume a large amount of memory resources, but the disadvantage is that a large amount of logic resources are required to realize the operation.

发明内容Contents of the invention

现有交织器/解交织器设计方法大多未针对硬件系统的特点进行设计,要么占用大量存储器资源要么消耗大量逻辑资源。本发明针对上述已有技术的不足,为了节省存储器资源和逻辑资源,提供一种能够进行实时计算的、基于硬件系统的交织器/解交织器装置。Most of the existing interleaver/deinterleaver design methods are not designed according to the characteristics of the hardware system, and either occupy a lot of memory resources or consume a lot of logic resources. The present invention aims at the disadvantages of the above-mentioned prior art, and provides a hardware-based interleaver/deinterleaver device capable of real-time calculation in order to save memory resources and logic resources.

一种基于硬件系统的交织器/解交织器装置,交织深度为L=2N,N为正整数,如图2和图3所示,包括:A kind of interleaver/deinterleaver device based on hardware system, interleaving depth is L=2 N , N is a positive integer, as shown in Figure 2 and Figure 3, comprising:

用于实现由0至L-1逐一递增计数的计数器,有N个输出端口;A counter used to count up one by one from 0 to L-1, with N output ports;

用于实现交织数据存储的数据存储器,有N个地址输入端口;A data memory for implementing interleaved data storage, with N address input ports;

用于实现地址计算的地址选择模块,交织地址由所述地址选择模块里的地址计算器产生,所述地址选择模块有N个输入端口,按顺序连接至所述计数器的N个输出端口、有N个输出端口按顺序连接至所述数据存储器的N个地址输入端口,和一个读写控制端口,所述地址选择模块的N个输入端口和所述地址选择模块的N个输出端口之间有写数据模式和读数据模式两种连接方式并受所述读写控制端口控制;An address selection module for realizing address calculation, the interleaving address is generated by the address calculator in the address selection module, the address selection module has N input ports, which are connected to the N output ports of the counter in order, and have The N output ports are sequentially connected to the N address input ports of the data memory, and a read-write control port, and there are connections between the N input ports of the address selection module and the N output ports of the address selection module. Write data mode and read data mode are two connection modes and are controlled by the read-write control port;

当所述地址选择模块在所述装置作为交织器处于读数据模式或作为解交织器处于写数据模式时,所述地址计算器处在工作状态;When the address selection module is in the data reading mode as an interleaver or in the data writing mode as a deinterleaver in the device, the address calculator is in a working state;

其特征在于:所述装置的地址计算器有N个输入端口和N个输出端口,所述地址计算器的N个输入端口和所述地址计算器的N个输出端口之间仅通过导线、或通过导线和基本逻辑门相连接;当地址计算器处于工作状态时,所述地址计算器的N个输入端口直接连接到所述地址选择模块的N个输入端口,所述地址计算器的N个输出端口直接连接到所述地址选择模块的N个输出端口。所述基本逻辑门为非门、异或门、同或门中的至少一种。It is characterized in that: the address calculator of the device has N input ports and N output ports, the N input ports of the address calculator and the N output ports of the address calculator are only connected by wires, or Connected with basic logic gates by wires; when the address calculator was in working condition, the N input ports of the address calculator were directly connected to the N input ports of the address selection module, and the N input ports of the address calculator The output ports are directly connected to the N output ports of the address selection module. The basic logic gate is at least one of a NOT gate, an exclusive OR gate, and an exclusive OR gate.

将所述地址计算器的N个输入端口表示为I=(i0,i1,...,iN-1),所述地址计算器N个输出端口表示为O=(o0,o1,...,oN-1),则二者之间的关系可表示为O=CI,即:The N input ports of the address calculator are expressed as I=(i 0 , i 1 ,...,i N-1 ), and the N output ports of the address calculator are expressed as O=(o 0 , o 1 ,...,o N-1 ), then the relationship between the two can be expressed as O=CI, namely:

其中C为N行N列满秩的系数矩阵,C中的元素cm,n(0≤m≤N-1,0≤n≤N-1)取值可为1或0,分别代表输出om与输入in有关或无关;每个输出由有关的若干个输入之间经过设定的基本逻辑门(非、异或、同或)得到,那么对于所有可能的不同的输入,输出取值为0和1的个数相等。Among them, C is a coefficient matrix with N rows and N columns of full rank, and the elements c m,n (0≤m≤N-1,0≤n≤N-1) in C can take values of 1 or 0, representing the output o m is related or irrelevant to the input in ; each output is obtained by setting the basic logic gates (not, exclusive or, exclusive or) between the related inputs, then for all possible different inputs, the output value The number of 0 and 1 is equal.

当系数矩阵C是每行每列都只有一个1的稀疏矩阵时,输出端口O=(o0,o1,...,oN-1)是对输入端口I=(i0,i1,...,iN-1)的打乱重排,此时地址计算器里只有导线或只有导线及非门,而不需要消耗任何逻辑资源。When the coefficient matrix C is a sparse matrix with only one 1 in each row and column, the output port O=(o 0 ,o 1 ,...,o N-1 ) is the input port I=(i 0 ,i 1 ,...,i N-1 ), the address calculator only has wires or only wires and NAND gates at this time, without consuming any logic resources.

为实现上述目的,所述装置作为交织器工作时,当地址选择模块为读模式时,地址计算器工作,为数据存储器提供地址输入;完成一次交织需要2L个时钟周期,实现步骤包括:In order to achieve the above object, when the device works as an interleaver, when the address selection module is in the read mode, the address calculator works to provide address input for the data memory; 2L clock cycles are required to complete an interleaving, and the implementation steps include:

(1)在前L个时钟周期,地址选择模块工作在写数据模式,计数器由0至L-1进行逐一累加计数,在每个时钟里将计数器的输出作为数据存储器的地址输入,从而将输入数据按顺序写入数据存储器中;所述地址选择模块N个输入端口和所述地址选择模块的N个输出端口之间按顺序直接相连接。(1) In the first L clock cycles, the address selection module works in the write data mode, and the counter is counted one by one from 0 to L-1, and the output of the counter is used as the address input of the data memory in each clock, so that the input Data is written into the data memory in sequence; the N input ports of the address selection module are directly connected to the N output ports of the address selection module in sequence.

(2)在后L个时钟周期,地址选择模块工作在读数据模式,计数器由0至L-1进行逐一累加计数,在每个时钟里地址计算器将计数器的输出作为输入,同时输出计算结果作为数据存储器的地址输入,从而将数据存储器中的数据按交织后的顺序读出。(2) In the last L clock cycles, the address selection module works in the read data mode, and the counter counts from 0 to L-1 one by one. In each clock, the address calculator takes the output of the counter as input, and outputs the calculation result as The address of the data memory is input, so that the data in the data memory is read out in the order after interleaving.

当所述装置作为解交织器工作时,当地址选择模块为写模式时,地址计算器工作,为数据存储器提供地址输入;完成一次解交织需要2L个时钟周期,实现步骤包括:When the device works as a deinterleaver, when the address selection module is in write mode, the address calculator works to provide address input for the data memory; 2L clock cycles are needed to complete a deinterleave, and the implementation steps include:

(1)在前L个时钟周期,地址选择模块工作在写数据模式,计数器由0至L-1进行逐一累加计数,在每个时钟里地址计算器将计数器的输出作为输入,同时输出计算结果作为数据存储器的地址输入,从而将输入数据按交织顺序写入数据存储器中;(1) In the first L clock cycles, the address selection module works in the write data mode, and the counter counts from 0 to L-1 one by one. In each clock, the address calculator takes the output of the counter as input and outputs the calculation result at the same time As the address input of the data memory, the input data is written into the data memory in an interleaved order;

(2)在后L个时钟周期,地址选择模块工作在读数据模式,计数器由0至L-1进行逐一累加计数,在每个时钟里将计数器的输出作为数据存储器的地址输入,从而按顺序将数据存储器中的数据读出;所述地址选择模块的N个输入端口和所述地址选择模块的N个输出端口之间按顺序直接相连接。(2) In the last L clock cycles, the address selection module works in the data-reading mode, and the counters are accumulated and counted one by one from 0 to L-1, and the output of the counter is used as the address input of the data memory in each clock, so that the Data reading in the data memory; the N input ports of the address selection module and the N output ports of the address selection module are directly connected in sequence.

本发明由于在地址计算器中仅使用少量逻辑资源或者完全不使用,故交织/解交织地址计算过程的传输延迟很小,可即时完成计算。本发明主要消耗的存储资源在于数据存储器所使用的RAM和计数器所使用的少量寄存器,主要消耗的逻辑资源在于地址计算器所使用的基本逻辑门(可以完全不使用),相比于其他基于数学运算的交织器设计方法,本发明大大节省了逻辑资源。Since the present invention only uses a small amount of logic resources in the address calculator or does not use them at all, the transmission delay of the interleaving/deinterleaving address calculation process is very small, and the calculation can be completed immediately. The storage resource that the present invention mainly consumes is that the RAM used by the data memory and a small amount of registers that the counter uses, and the logical resource that mainly consumes is that the basic logic gate that the address calculator uses (can not use at all), compares other based on mathematics The design method of the interleaver for operation, the invention greatly saves logic resources.

附图说明Description of drawings

图1为地址存储型交织器的结构图Figure 1 is a structural diagram of an address storage interleaver

图2为实时计算型交织器的结构图,也是本发明的作为交织器装置的结构图Fig. 2 is a structural diagram of a real-time computing type interleaver, which is also a structural diagram of the present invention as an interleaver device

图3为本发明作为解交织器装置的结构图Fig. 3 is a structural diagram of the present invention as a deinterleaver device

具体实施方式Detailed ways

实施例1:Example 1:

所述基于硬件系统的交织器/解交织器装置,作为交织器工作时,交织深度为L=16=24,包括:The interleaver/deinterleaver device based on the hardware system, when working as an interleaver, has an interleaving depth of L=16=2 4 , including:

用于实现由0至15逐一递增计数的计数器,有4个输出端口;A counter used to count up one by one from 0 to 15, with 4 output ports;

用于实现交织数据存储的数据存储器,有4个地址输入端口;A data memory for implementing interleaved data storage, with 4 address input ports;

用于实现交织地址计算的地址选择模块,所述交织地址由所述地址选择模块里的地址计算器产生,所述地址选择模块有4个输入端口,按顺序连接至所述计数器的4个输出端口、有4个输出端口按顺序连接至所述数据存储器的4个地址输入端口,和一个读写控制端口,所述4个输入端口和4个输出端口之间有写数据模式和读数据模式两种连接方式并受所述读写控制端口控制;An address selection module for realizing interleaving address calculation, the interleaving address is generated by an address calculator in the address selection module, and the address selection module has 4 input ports connected to the 4 outputs of the counter in sequence There are 4 output ports connected to the 4 address input ports of the data memory in sequence, and a read and write control port, there are write data mode and read data mode between the 4 input ports and the 4 output ports Two connection modes and are controlled by the read-write control port;

当所述地址选择模块为写数据模式时,4个输入端口和4个输出端口之间按顺序直接相连接;When the address selection module is in the data writing mode, the 4 input ports and the 4 output ports are directly connected in sequence;

当所述地址选择模块为读数据模式时,所述地址计算器处在工作状态。When the address selection module is in the data reading mode, the address calculator is in the working state.

设地址计算器的输入端口为I=(i0,i1,i2,i3),输出端口为O=(o0,o1,o2,o3),两者之间的关系可表示为O=CI,令其为:Let the input port of the address calculator be I=(i 0 ,i 1 ,i 2 ,i 3 ), and the output port be O=(o 0 ,o 1 ,o 2 ,o 3 ), the relationship between them can be Expressed as O=CI, let it be:

oo 00 oo 11 oo 22 oo 33 == 11 00 00 11 00 00 11 00 11 11 00 00 11 00 00 00 ii 00 ii 11 ii 22 ii 33 ..

令其进一步的对应关系为:Let its further corresponding relationship be:

oo 00 == ii 00 ⊕⊕ ‾‾ ii 33

o1=i2 o 1 =i 2

             。          .

o2=i0⊕i1 o 2 =i 0 ⊕i 1

oo 33 == ii 00 ‾‾

其中⊕表示异或,表示同或。where ⊕ represents XOR, means the same or.

例如,当i=5时,表示为逆序的二进制序列即为I=(i0,i1,i2,i3)=(1,0,1,0)(低位在前高位在后),根据输出与输入的对应关系,得:For example, when i=5, the binary sequence expressed in reverse order is I=(i 0 , i 1 , i 2 , i 3 )=(1,0,1,0) (lower bits first, higher bits later), According to the corresponding relationship between output and input, we get:

oo 00 == ii 00 ⊕⊕ ‾‾ ii 33 == 11 ⊕⊕ ‾‾ 00 == 00

o1=i2=1o 1 =i 2 =1

o2=i0⊕i1=1⊕0=1o 2 =i 0 ⊕i 1 =1 ⊕0=1

oo 33 == ii 00 ‾‾ == 11 ‾‾ == 00

从而,O=(o0,o1,o2,o3)=(0,1,1,0),即π(i=5)=6。Thus, O=(o 0 , o 1 , o 2 , o 3 )=(0,1,1,0), that is, π(i=5)=6.

由上述关系可得交织地址映射列表为:From the above relationship, the interleaving address mapping list can be obtained as:

ii 00 11 22 33 44 55 66 77 π(i)π(i) 99 44 1313 00 1111 66 1515 22 ii 88 99 1010 1111 1212 1313 1414 1515 π(i)π(i) 88 55 1212 11 1010 77 1414 33

一种基于硬件系统的交织器,当交织深度为L=24=16,完成一次交织需要32个时钟周期,实现步骤包括:A hardware system-based interleaver, when the interleaving depth is L= 24 =16, it takes 32 clock cycles to complete one interleaving, and the implementation steps include:

(1)写数据:在前16个时钟周期,地址选择模块工作在写数据模式,计数器由0至15进行逐一累加计数,在每个时钟里将计数器的输出作为数据存储器的地址输入,从而将输入数据按顺序写入数据存储器中;(1) Write data: In the first 16 clock cycles, the address selection module works in the write data mode, the counter counts from 0 to 15 one by one, and the output of the counter is used as the address input of the data memory in each clock, so that the The input data is sequentially written into the data memory;

(2)读数据:在后16个时钟周期,地址选择模块工作在读数据模式,计数器由0至15进行逐一累加计数,在每个时钟里地址计算器将计数器的输出作为输入,同时输出计算结果作为数据存储器的地址输入,从而将数据存储器中的数据按交织后的顺序读出。(2) Read data: In the last 16 clock cycles, the address selection module works in the read data mode, and the counter counts from 0 to 15 one by one. In each clock, the address calculator takes the output of the counter as input and outputs the calculation result at the same time As the address input of the data memory, the data in the data memory is read out in the order after interleaving.

从而将输入的数据序列(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)交织成(A9,A4,A13,A0,A11,A6,A15,A2,A8,A5,A12,A1,A10,A7,A14,A3)。Thus the input data sequence (A 0 ,A 1 ,A 2 ,A 3 ,A 4 ,A 5 ,A 6 ,A 7 ,A 8 ,A 9 ,A 10 ,A 11 ,A 12 , A 13 , A 14 ,A 15 ) are interwoven into (A 9 ,A 4 ,A 13 ,A 0 ,A 11 ,A 6 ,A 15 ,A 2 ,A 8 ,A 5 ,A 12 ,A 1 , A 10 , A 7 , A 14 ,A 3 ).

实施例2:Example 2:

与实施例1所述装置作为交织器时相比,所述装置作为解交织器时实现结构基本相同,区别仅仅在于:交织器地址选择模块为读模式时,地址计算器工作,为数据存储器提供地址输入;而解交织器地址选择模块为写模式时,地址计算器工作,为数据存储器提供地址输入。Compared with when the device described in Embodiment 1 is used as an interleaver, when the device is used as a deinterleaver, the implementation structure is basically the same, the difference is only that: when the interleaver address selection module is in the read mode, the address calculator works to provide data memory address input; and when the deinterleaver address selection module is in write mode, the address calculator works to provide address input for the data memory.

解交织器完成一次解交织需要32个时钟周期,实现步骤包括:It takes 32 clock cycles for the de-interleaver to complete a de-interleave, and the implementation steps include:

(1)在前16个时钟周期,地址选择模块工作在写数据模式,计数器由0至15进行逐一累加计数,在每个时钟里地址计算器将计数器的输出作为输入,同时输出计算结果作为数据存储器的地址输入,从而将输入数据按交织顺序写入数据存储器中;(1) In the first 16 clock cycles, the address selection module works in the write data mode, and the counter counts from 0 to 15 one by one. In each clock, the address calculator takes the output of the counter as input, and outputs the calculation result as data at the same time The address input of the memory, so that the input data is written into the data memory in an interleaved order;

(2)在后16个时钟周期,地址选择模块工作在读数据模式,计数器由0至15进行逐一累加计数,在每个时钟里将计数器的输出作为数据存储器的地址输入,从而按顺序将数据存储器中的数据读出。(2) In the last 16 clock cycles, the address selection module works in the data reading mode, and the counters are accumulated and counted one by one from 0 to 15, and the output of the counter is used as the address input of the data memory in each clock, so that the data memory is sequentially The data in is read out.

从而将输入的数据序列(A9,A4,A13,A0,A11,A6,A15,A2,A8,A5,A12,A1,A10,A7,A14,A3)解交织成(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)。Thus the input data sequence (A 9 ,A 4 ,A 13 ,A 0 ,A 11 ,A 6 ,A 15 ,A 2 ,A 8 ,A 5 ,A 12 ,A 1 ,A 10 , A 7 , A 14 ,A 3 ) deinterleaved into (A 0 ,A 1 ,A 2 ,A 3 ,A 4 ,A 5 ,A 6 ,A 7 ,A 8 ,A 9 ,A 10 ,A 11 ,A 12 , A 13 ,A 14 ,A 15 ).

实施例3:Example 3:

所述基于硬件系统的交织器/解交织器装置,作为交织器工作时,交织深度为L=16=24,包括:The interleaver/deinterleaver device based on the hardware system, when working as an interleaver, has an interleaving depth of L=16=2 4 , including:

用于实现由0至15逐一递增计数的计数器,有4个输出端口;A counter used to count up one by one from 0 to 15, with 4 output ports;

用于实现交织数据存储的数据存储器,有4个地址输入端口;A data memory for implementing interleaved data storage, with 4 address input ports;

用于实现交织地址计算的地址选择模块,所述交织地址由所述地址选择模块里的地址计算器产生,所述地址选择模块有4个输入端口,按顺序连接至所述计数器的4个输出端口、有4个输出端口按顺序连接至所述数据存储器的4个地址输入端口,和一个读写控制端口,所述4个输入端口和4个输出端口之间有写数据模式和读数据模式两种连接方式并受所述读写控制端口控制;An address selection module for realizing interleaving address calculation, the interleaving address is generated by an address calculator in the address selection module, and the address selection module has 4 input ports connected to the 4 outputs of the counter in sequence There are 4 output ports connected to the 4 address input ports of the data memory in sequence, and a read and write control port, there are write data mode and read data mode between the 4 input ports and the 4 output ports Two connection modes and are controlled by the read-write control port;

当所述地址选择模块为写数据模式时,4个输入端口和4个输出端口之间按顺序直接相连接;When the address selection module is in the data writing mode, the 4 input ports and the 4 output ports are directly connected in sequence;

当所述地址选择模块为读数据模式时,所述地址计算器处在工作状态。When the address selection module is in the data reading mode, the address calculator is in the working state.

设地址计算器的输入端口为I=(i0,i1,i2,i3),输出端口为O=(o0,o1,o2,o3),两者之间的关系可表示为O=CI,令其为:Let the input port of the address calculator be I=(i 0 ,i 1 ,i 2 ,i 3 ), and the output port be O=(o 0 ,o 1 ,o 2 ,o 3 ), the relationship between them can be Expressed as O=CI, let it be:

oo 00 oo 11 oo 22 oo 33 == 11 00 00 11 00 00 11 00 11 11 00 00 11 00 00 00 ii 00 ii 11 ii 22 ii 33 ..

令其进一步的对应关系为:Let its further corresponding relationship be:

o0=i3 o 0 =i 3

o1=i0 o 1 =i 0

         。 .

o2=i2 o 2 =i 2

o3=i1 o 3 =i 1

例如,当i=5时,表示为逆序的二进制序列即为I=(i0,i1,i2,i3)=(1,0,1,0)(低位在前高位在后),根据输出与输入的对应关系,得:For example, when i=5, the binary sequence expressed in reverse order is I=(i 0 , i 1 , i 2 , i 3 )=(1,0,1,0) (lower bits first, higher bits later), According to the corresponding relationship between output and input, we get:

o0=i3=0o 0 =i 3 =0

o1=i0=1o 1 =i 0 =1

o2=i2=1o 2 =i 2 =1

o3=i1=0o 3 =i 1 =0

从而,O=(o0,o1,o2,o3)=(0,1,1,0),即π(i=5)=6。Thus, O=(o 0 , o 1 , o 2 , o 3 )=(0,1,1,0), that is, π(i=5)=6.

由上述关系可得交织地址映射列表为:From the above relationship, the interleaving address mapping list can be obtained as:

ii 00 11 22 33 44 55 66 77 π(i)π(i) 00 22 88 1010 44 66 1212 1414 ii 88 99 1010 1111 1212 1313 1414 1515 π(i)π(i) 11 33 99 1111 55 77 1313 1515

一种基于硬件系统的交织器,当交织深度为L=24=16,完成一次交织需要32个时钟周期,实现步骤包括:A hardware system-based interleaver, when the interleaving depth is L= 24 =16, it takes 32 clock cycles to complete one interleaving, and the implementation steps include:

(1)写数据:在前16个时钟周期,地址选择模块工作在写数据模式,计数器由0至15进行逐一累加计数,在每个时钟里将计数器的输出作为数据存储器的地址输入,从而将输入数据按顺序写入数据存储器中;(1) Write data: In the first 16 clock cycles, the address selection module works in the write data mode, the counter counts from 0 to 15 one by one, and the output of the counter is used as the address input of the data memory in each clock, so that the The input data is sequentially written into the data memory;

(2)读数据:在后16个时钟周期,地址选择模块工作在读数据模式,计数器由0至15进行逐一累加计数,在每个时钟里地址计算器将计数器的输出作为输入,同时输出计算结果作为数据存储器的地址输入,从而将数据存储器中的数据按交织后的顺序读出。(2) Read data: In the last 16 clock cycles, the address selection module works in the read data mode, and the counter counts from 0 to 15 one by one. In each clock, the address calculator takes the output of the counter as input and outputs the calculation result at the same time As the address input of the data memory, the data in the data memory is read out in the order after interleaving.

从而将输入的数据序列(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)交织成(A0,A2,A8,A10,A4,A6,A12,A14,A1,A3,A9,A11,A5,A7,A13,A15)。Thus the input data sequence (A 0 ,A 1 ,A 2 ,A 3 ,A 4 ,A 5 ,A 6 ,A 7 ,A 8 ,A 9 ,A 10 ,A 11 ,A 12 , A 13 , A 14 ,A 15 ) into (A 0 ,A 2 ,A 8 ,A 10 ,A 4 ,A 6 ,A 12 ,A 14 ,A 1 ,A 3 ,A 9 ,A 11 ,A 5 , A 7 , A 13 ,A 15 ).

实施例4:Example 4:

与实施例3所述装置作为交织器时相比,所述装置作为解交织器时实现结构基本相同,区别仅仅在于:交织器地址选择模块为读模式时,地址计算器工作,为数据存储器提供地址输入;而解交织器地址选择模块为写模式时,地址计算器工作,为数据存储器提供地址输入。Compared with when the device described in Embodiment 3 is used as an interleaver, the implementation structure is basically the same when the device is used as a deinterleaver, the difference is only that: when the interleaver address selection module is in the read mode, the address calculator works to provide data memory address input; and when the deinterleaver address selection module is in write mode, the address calculator works to provide address input for the data memory.

解交织器完成一次解交织需要32个时钟周期,实现步骤包括:It takes 32 clock cycles for the de-interleaver to complete a de-interleave, and the implementation steps include:

(1)在前16个时钟周期,地址选择模块工作在写数据模式,计数器由0至15进行逐一累加计数,在每个时钟里地址计算器将计数器的输出作为输入,同时输出计算结果作为数据存储器的地址输入,从而将输入数据按交织顺序写入数据存储器中;(1) In the first 16 clock cycles, the address selection module works in the write data mode, and the counter counts from 0 to 15 one by one. In each clock, the address calculator takes the output of the counter as input, and outputs the calculation result as data at the same time The address input of the memory, so that the input data is written into the data memory in an interleaved order;

(2)在后16个时钟周期,地址选择模块工作在读数据模式,计数器由0至15进行逐一累加计数,在每个时钟里将计数器的输出作为数据存储器的地址输入,从而按顺序将数据存储器中的数据读出。(2) In the last 16 clock cycles, the address selection module works in the data reading mode, and the counters are accumulated and counted one by one from 0 to 15, and the output of the counter is used as the address input of the data memory in each clock, so that the data memory is sequentially The data in is read out.

从而将输入的数据序列(A0,A2,A8,A10,A4,A6,A12,A14,A1,A3,A9,A11,A5,A7,A13,A15)解交织成(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)。Thus the input data sequence (A 0 ,A 2 ,A 8 ,A 10 ,A 4 ,A 6 ,A 12 ,A 14 ,A 1 ,A 3 ,A 9 ,A 11 ,A 5 , A 7 ,A 13 ,A 15 ) deinterleaved into (A 0 ,A 1 ,A 2 ,A 3 ,A 4 ,A 5 ,A 6 ,A 7 ,A 8 ,A 9 ,A 10 ,A 11 ,A 12 , A 13 ,A 14 ,A 15 ).

Claims (5)

1., based on an interlacing device and de-interlacing device device for hardware system, interleave depth is L=2 n, N is positive integer, comprising:
By the counter of 0 to L-1 incremental count one by one, N number of output port is had for realizing;
For realizing the data-carrier store that interleaving data stores, there is N number of address input end mouth;
For realizing the address selection module of address computation, interleaving address is produced by the address calculator in described address selection module, described address selection module has N number of input port to be in turn connected to N number of output port of described counter, N number of output port is had to be in turn connected to N number of address input end mouth of described data-carrier store, and a Read-write Catrol port, write data mode connected mode and read data pattern connected mode is had also by described Read-write Catrol port controlling between N number of input port of described address selection module and N number of output port of address selection module,
When described address selection module is in read data pattern at described device as interleaver or is in write data mode as deinterleaver, described address calculator is in duty;
It is characterized in that: the address calculator of described device has N number of input port and N number of output port, is connected between N number of input port of described address calculator and N number of output port of described address calculator by means of only wire or by wire with basic logical gate; When address calculator is in running order, N number of input port of described address calculator is directly connected to N number of input port of described address selection module, and N number of output port of described address calculator is directly connected to N number of output port of described address selection module.
2. device according to claim 1, is characterized in that: N number of input port of described address calculator is expressed as I=(i 0, i 1..., i n-1), N number of output port of described address calculator is expressed as O=(o 0, o 1..., o n-1), then relation is therebetween expressed as O=CI, and column is expressed as:
o 0 o 1 . . . o N - 1 = c 0,0 . . . . . . c 0 , N - 1 . . . . . . . . . . . . . . . . . . . . . . . . c N - 1,0 . . . . . . c N - 1 , N - 1 i 0 i 1 . . . i N - 1
Wherein C is the matrix of coefficients of the capable N sequency spectrum of N, the element c in C m,n(0≤m≤N-1,0≤n≤N-1) value is 1 or 0, and representative exports o respectively mwith input i nrelevant or irrelevant.
3. device according to claim 1, is characterized in that: described basic logical gate be not gate, XOR gate, with or door at least one.
4. device according to claim 1 and 2, is characterized in that: described device needs 2L clock period as completing during interleaver once to interweave, and step comprises:
1) in a front L clock period, described address selection module is operated in write data mode, described counter carries out accumulated counts one by one by 0 to L-1, in each clock, the address of the output of described counter as described data-carrier store is inputted, thus input data are write in described data-carrier store in order; Directly be connected in order between N number of input port of described address selection module and N number of output port of described address selection module;
2) in a rear L clock period, described selection module work is in read data pattern, described counter carries out accumulated counts one by one by 0 to L-1, in each clock described address calculator using the output of described counter as input, output result of calculation inputs as the address of described data-carrier store simultaneously, thus by the data in described data-carrier store by sequentially reading after intertexture.
5. device according to claim 1 and 2, is characterized in that: described device needs 2L clock period as completing a deinterleaving during deinterleaver, and step comprises:
1) in a front L clock period, described address selection module is operated in write data mode, and described counter carries out accumulated counts one by one by 0 to L-1; In each clock, described address calculator is using the output of described counter as input, and output result of calculation inputs as the address of described data-carrier store simultaneously, thus writes in described data-carrier store by input data by interleaved order;
2) in a rear L clock period, described address selection module is operated in read data pattern, described counter carries out accumulated counts one by one by 0 to L-1, in each clock, the address of the output of described counter as described data-carrier store is inputted, thus in order by the data reading in data-carrier store; Directly be connected in order between N number of input port of described address selection module and N number of output port of described address selection module.
CN201410811789.9A 2014-12-23 2014-12-23 Interleaver/de-interleaver device based on hardware system Pending CN104461921A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410811789.9A CN104461921A (en) 2014-12-23 2014-12-23 Interleaver/de-interleaver device based on hardware system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410811789.9A CN104461921A (en) 2014-12-23 2014-12-23 Interleaver/de-interleaver device based on hardware system

Publications (1)

Publication Number Publication Date
CN104461921A true CN104461921A (en) 2015-03-25

Family

ID=52908008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410811789.9A Pending CN104461921A (en) 2014-12-23 2014-12-23 Interleaver/de-interleaver device based on hardware system

Country Status (1)

Country Link
CN (1) CN104461921A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230336273A1 (en) * 2020-12-24 2023-10-19 Huawei Technologies Co., Ltd. Hybrid automatic repeat request harq-based communication method and apparatus
WO2023216204A1 (en) * 2022-05-12 2023-11-16 北京小米移动软件有限公司 Frequency domain resource allocation method and apparatus, device and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034951A (en) * 2007-04-10 2007-09-12 中兴通讯股份有限公司 Implementation method for in-Turbo code interweaver
CN101047393A (en) * 2006-05-12 2007-10-03 华为技术有限公司 Method for generating interlever/de-interleaver and its application
US20080256417A1 (en) * 2007-04-13 2008-10-16 Rgb Networks, Inc. SDRAM convolutional interleaver with two paths
CN101577556A (en) * 2009-06-17 2009-11-11 北京九方中实电子科技有限责任公司 Method for realizing rectangular interweaving

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047393A (en) * 2006-05-12 2007-10-03 华为技术有限公司 Method for generating interlever/de-interleaver and its application
CN101034951A (en) * 2007-04-10 2007-09-12 中兴通讯股份有限公司 Implementation method for in-Turbo code interweaver
US20080256417A1 (en) * 2007-04-13 2008-10-16 Rgb Networks, Inc. SDRAM convolutional interleaver with two paths
CN101577556A (en) * 2009-06-17 2009-11-11 北京九方中实电子科技有限责任公司 Method for realizing rectangular interweaving

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
顾烊,张萌,孙伟,杨东: "一种面向RS码的卷积交织与解交织器的设计", 《电子器件》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230336273A1 (en) * 2020-12-24 2023-10-19 Huawei Technologies Co., Ltd. Hybrid automatic repeat request harq-based communication method and apparatus
WO2023216204A1 (en) * 2022-05-12 2023-11-16 北京小米移动软件有限公司 Frequency domain resource allocation method and apparatus, device and storage medium

Similar Documents

Publication Publication Date Title
CN101777924B (en) A turbo code decoding method and device
CN102122964B (en) Implementation method of high-speed reed-solomon (RS) codec based on field programmable gate array (FPGA)
CN101388674B (en) Decoding method, decoder and Turbo code decoder
EP2621091B1 (en) Turbo code parallel interleaving with quadratic permutation polynomial (qpp) functions
CN100546207C (en) A kind of dual-binary Turbo code encoding method based on the DVB-RCS standard
CN105553485B (en) BCH coding and decoding device and its decoding method based on FPGA
CN102356554B (en) Turbo code data interweaving process method and interweaving device used for interweaving turbo code data
CN101267212A (en) Group bit interleaver and method thereof
CN104092470A (en) A turbo code decoding device and method
CN101969358B (en) High-speed parallel RS decoding method for space communication
CN101969310B (en) QPP (Quadratic Permutation Polynomial) inner interleaver of Turbo code parallel decoder and interleaving method thereof
CN103986557B (en) The parallel block-wise decoding method of LTE Turbo codes in low path delay
TWI459725B (en) Error correction code encoder, error correction code decoder, interleaving/de-interleaving method and soft-in/soft-out decoding method
CN104461921A (en) Interleaver/de-interleaver device based on hardware system
CN102594369A (en) Quasi-cyclic low-density parity check code decoder based on FPGA (field-programmable gate array) and decoding method
CN103888224B (en) Parallel realization method and device for LTE system Turbo code-inner interleaving
CN100508405C (en) Parallel decoding method and decoding device for improving turbo code decoding speed
US9048866B2 (en) Apparatus and method for checking decoded data, apparatus and method for decoding, and receiving terminal
CN206099947U (en) A Multi-parameter Configurable Viterbi Decoder with Low Resource Consumption
CN106209117B (en) Low-resource-consumption multi-parameter configurable Viterbi decoder
US7386766B2 (en) Address generation apparatus for turbo interleaver and deinterleaver in W-CDMA systems
US8819517B1 (en) Systems and methods for a turbo decoder in a universal mobile telecommunication system (UMTS)
CN116318184B (en) A PBCH polarization code encoding system
CN102118225A (en) Coding-decoding method used for any-bit polynomial division type codes based on multi-index table
CN101938282B (en) LTE (Long Term Evolution) Turebo encoder parallel processing device and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150325

WD01 Invention patent application deemed withdrawn after publication