KR100464483B1 - interleave /deinterleave embodiment apparatus and method in ADSL - Google Patents

interleave /deinterleave embodiment apparatus and method in ADSL Download PDF

Info

Publication number
KR100464483B1
KR100464483B1 KR10-2000-0071169A KR20000071169A KR100464483B1 KR 100464483 B1 KR100464483 B1 KR 100464483B1 KR 20000071169 A KR20000071169 A KR 20000071169A KR 100464483 B1 KR100464483 B1 KR 100464483B1
Authority
KR
South Korea
Prior art keywords
address
data
memory
read
determining
Prior art date
Application number
KR10-2000-0071169A
Other languages
Korean (ko)
Other versions
KR20020041529A (en
Inventor
정진관
Original Assignee
엘지전자 주식회사
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 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR10-2000-0071169A priority Critical patent/KR100464483B1/en
Publication of KR20020041529A publication Critical patent/KR20020041529A/en
Application granted granted Critical
Publication of KR100464483B1 publication Critical patent/KR100464483B1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/276Interleaving address generation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2782Interleaver implementations, which reduce the amount of required interleaving memory

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 ADSL(Asymmetric Digital Subscriber Line) DMT(Discrit Multi Tone) 표준안 T1.413 Issue2에 적합하도록 가변적인 코드워드 크기와 가변적인 딥스(Depth)에서 신속하고 간편하게 구현하도록 한 인터리브/디인터리브 구현 장치 및 그 방법에 관한 것으로, 코드 워드 크기와 딥스(Depth)를 먼저 결정하고, 메모리에 사용할 라이트 (write) 어드레스와 리드(read) 어드레스를 초기화하며, 먼저 입력되는 첫번째 데이터를 임시로 저장하고, 나머지 변수들을 초기화하는 과정과, N이 짝수(even)일때 가상의 더미(dummy) 데이터를 계산하여 N을 홀수(odd)로 만들고, N이 홀수(odd)일때 점프 어드레스를 결정하는 과정과, N개로 구성된 코드 워드가 D개의 세트로 들어오면 T번째로 들어오는 N개로 구성된 코드 워드를 사용할 첫번째 주소를 결정하는 과정과, 메모리(RAM) 주소를 할당하고 실제로 데이터를 라이트/리드하며, 다음 데이터 바이트를 입력받아 임시 저장하는 과정과, 다음 데이터 바이트를 라이트/리드할 주소를 결정하고, N이 짝수일때 메모리에서 리드할 주소가 가상의 더미 데이터의 위치에 해당되면 리드 주소를 한번 더 더해서 점프하는 과정으로 이루어짐이 바람직하다.The present invention provides an interleaved / deinterleaved device for quickly and easily implementing a variable codeword size and variable depth to conform to the Asymmetric Digital Subscriber Line (ADSL) Discrete Multi Tone (DMT) standard T1.413 Issue2. The method involves first determining the code word size and depth, initializing the write and read addresses for the memory, temporarily storing the first data entered first, and rest of the variables. Initializing them, calculating virtual dummy data when N is even, making N odd, determining a jump address when N is odd, and N When a code word comes in a set of D, the process of determining the first address to use the T-th incoming N-word code, assigning a memory (RAM) address and actually The process of writing / reading data, receiving the next data byte and storing it temporarily, and determining the address to write / read the next data byte, and when N is even, the address to be read from memory corresponds to the position of virtual dummy data. In this case, it is preferable that a jump process is performed by adding the read address once more.

Description

에이디에스엘에서의 인터리브/디인터리브 구현 장치 및 그 방법{interleave /deinterleave embodiment apparatus and method in ADSL}Interleaved / deinterleave embodiment apparatus and method in ADSL}

본 발명은 컨벌루션 인터리브(interleave)와 디인터리브(deinterleave) 구현에 관한 것으로, 특히 ADSL(Asymmetric Digital Subscriber Line) DMT(Discrit Multi Tone) 표준안 T1.413 Issue2에 적합하도록 가변적인 코드워드 크기와 가변적인 딥스(Depth)에서 신속하고 간편하게 구현하도록 한 인터리브/디인터리브 구현 장치 및 그 방법에 관한 것이다.FIELD OF THE INVENTION The present invention relates to convolutional interleave and deinterleave implementations, and in particular to variable codeword sizes and variable depths to conform to Asymmetric Digital Subscriber Line (ADSL) Discrete Multi Tone (DMT) standard T1.413 Issue2. The present invention relates to an interleaved / deinterleaved device and a method for quickly and simply implementing the device in (Depth).

통신에 있어서 정확한 정보를 전송하는 것이 필요하고, 이에 따라 전송시 에러를 검출하고 정정하는 채널 코딩 이론이 있는데, 그 중에서도 블록 인터리브는 특별히 복잡하지 않고 부가적인 대역폭이 필요하지 않으면서 채널 코딩의 효과를 극대화시키는 방법이다.In communication, it is necessary to transmit accurate information, and accordingly, there is a channel coding theory of detecting and correcting errors in transmission. Among them, block interleaving is not particularly complicated and does not require additional bandwidth. This is how to maximize.

종래에는 반도체 집적화 기술의 미비로 너무 복잡하거나 규모가 큰 하드웨어는 구현하기가 어려우므로 인터리브 이론 및 알고리즘들은 주로 메모리의 사용을 가급적이면 줄이는데 있었다.In the past, due to the lack of semiconductor integration technology, hardware that is too complex or large in size is difficult to implement, and therefore, interleaving theories and algorithms have mainly been to reduce the use of memory as much as possible.

그리고, 종래의 인터리브 구현 방법은 대부분 메모리를 축소하는 것으로서 N*D 바이트의 메모리를 요구하는 것이 일반적이나 컨벌루션 인터리브의 특수한 구조로서 통스(Tong's) 인터리브 등은 N*D/2의 메모리까지 줄여서 사용한것이지만 그 구조가 너무 복잡하여 구현하는데 많은 시간과 노력이 소요되었다.In the conventional interleaving method, most of the memory reduction methods require N * D bytes of memory, but the convolutional interleaving is a special structure of Tong's interleaving. The structure was so complex that it took a lot of time and effort to implement.

이와같이, 종래에는 단지 메모리를 축소시킴으로써 이에 따른 효용성이 저하되는 문제점이 발생하였다.As described above, a problem arises in that conventionally, by reducing the memory, the utility thereof is lowered.

따라서, 본 발명은 상기한 바와 같은 문제점을 감안하여 창안된 것으로, 코드 워드 크기(N바이트)와 딥스(Depth:D,레벨수)가 가변적이라도 N*D 바이트 크기의 메모리로 컨벌루션 인터리버 및 디인터리버의 알고리즘을 간단하고 신속하게 구현하도록 하는데 그 목적이 있다.Accordingly, the present invention was conceived in view of the above problems, and convolutional interleaver and deinterleaver with N * D byte size memory even though code word size (N byte) and depth (Depth: D, number of levels) are variable. Its purpose is to enable simple and fast implementation of.

도 1 은 본 발명에 적용되는 인터리브/디인터리브 구현 장치의 블럭도.1 is a block diagram of an interleaved / deinterleaved implementation device applied to the present invention.

도 2 는 본 발명에 적용되는 인터리브일때의 리드/라이트 진행도.Figure 2 is a read / write progress when the interleave applied to the present invention.

도 3 은 본 발명에 적용되는 디인터리브일때의 리드/라이트 진행도.3 is a read / write progress when the deinterleave applied to the present invention.

도 4 는 본 발명에 적용되는 인터리브 구현 방법의 흐름도.4 is a flowchart of an interleaved implementation method applied to the present invention.

도 5 는 본 발명에 적용되는 디인터리브 구현 방법의 흐름도.5 is a flowchart of a deinterleave implementation method applied to the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

10 : 멀티플렉서 20 : 분할기10: multiplexer 20: splitter

30 : 어드레스 컨트롤 로직30: address control logic

40 : 램40: ram

이하, 첨부도면을 참조하여 본 발명에 따른 바람직한 실시 예에 대하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 인터리브/디인터리브 구현 장치의 실시예는,An embodiment of the interleaved / deinterleaved implementation apparatus of the present invention,

N*D 연산을 수행하는 멀티플렉서와,A multiplexer performing N * D operations,

상기 멀티플렉서에서 연산된 값의 몫은 사용하지 않고 나머지만 사용하는 분할기와,A divider that uses only the remainder without using the quotient of the value calculated by the multiplexer,

각각의 데이터 바이트가 메모리에 들어갈 주소와 각각의 시간에 빼낼 주소를 결정하는 어드레스 컨트롤 로직과,Address control logic that determines the address each data byte will enter into memory and at each time,

상기 어드레스 컨트롤 로직에 의해 결정된 주소를 순서대로 저장하는 램으로 구성함이 바람직하다.It is preferable that the RAM is configured to sequentially store the addresses determined by the address control logic.

상기 램은 N*D 바이트의 크기를 가짐이 바람직하다.The RAM preferably has a size of N * D bytes.

본 발명의 인터리브 구현 방법의 실시예는,An embodiment of the interleave implementation method of the present invention,

코드 워드 크기와 딥스(Depth)를 먼저 결정하고, 메모리에 사용할 라이트 (write) 어드레스와 리드(read) 어드레스를 초기화하며, 먼저 입력되는 첫번째 데이터를 임시로 저장하고, 나머지 변수들을 초기화하는 과정과,Determining the code word size and depth first, initializing the write address and read address for the memory, temporarily storing the first data entered, and initializing the remaining variables,

N이 짝수(even)일때 가상의 더미(dummy) 데이터를 계산하여 N을 홀수(odd)로 만들고, N이 홀수(odd)일때 점프 어드레스를 결정하는 과정과,A process of determining a jump address when N is odd by calculating virtual dummy data when N is even, and when N is odd,

N개로 구성된 코드 워드가 D개의 세트로 들어오면 T번째로 들어오는 N개로 구성된 코드 워드를 사용할 첫번째 주소를 결정하는 과정과,When the N-word code consists of D sets, determining the first address to use the T-th incoming N-word code,

메모리(RAM) 주소를 할당하고 실제로 데이터를 라이트/리드하며, 다음 데이터 바이트를 입력받아 임시 저장하는 과정과,Allocating a memory (RAM) address, actually writing / reading data, receiving the next data byte and temporarily storing it,

다음 데이터 바이트를 라이트/리드할 주소를 결정하고, N이 짝수일때 메모리에서 리드할 주소가 가상의 더미 데이터의 위치에 해당되면 리드 주소를 한번 더 더해서 점프하는 과정으로 이루어짐이 바람직하다.It is preferable to determine the address to write / read the next data byte. When N is an even number, if the address to be read in the memory corresponds to the position of the virtual dummy data, the read address is added once more to jump.

상기 가상의 더미 데이터의 위치는 점프 어드레스를 나타냄이 바람직하다.Preferably, the position of the virtual dummy data indicates a jump address.

본 발명의 디인터리브 구현 방법의 실시예는,An embodiment of the deinterleave implementation method of the present invention,

코드 워드 크기와 딥스를 먼저 결정하고, 메모리에 사용할 라이트 어드레스와 리드 어드레스를 초기화하며, 먼저 입력되는 첫번째 데이터를 임시로 저장하고, 나머지 변수들을 초기화하는 과정과,Determining the code word size and depth first, initializing the write address and read address for the memory, temporarily storing the first data entered first, and initializing the remaining variables,

N이 짝수(even)일때 가상의 더미(dummy) 데이터를 계산하여 N을 홀수(odd)로 만들고, N이 홀수(odd)일때 점프 어드레스를 결정하는 과정과,A process of determining a jump address when N is odd by calculating virtual dummy data when N is even, and when N is odd,

N개로 구성된 코드 워드가 D개의 세트로 들어오면 T번째로 들어오는 N개로 구성된 코드 워드를 사용할 첫번째 주소를 결정하는 과정과,When the N-word code consists of D sets, determining the first address to use the T-th incoming N-word code,

메모리(RAM) 주소를 할당하고 실제로 데이터를 라이트/리드하며, 다음 데이터 바이트를 입력받아 임시 저장하는 과정과,Allocating a memory (RAM) address, actually writing / reading data, receiving the next data byte and temporarily storing it,

다음 데이터 바이트를 리드/라이트할 주소를 결정하고, N이 짝수일때 메모리에서 라이트할 주소가 가상의 더미 데이터의 위치에 해당되면 라이트 주소를 한번 더 더해서 점프하는 과정으로 이루어짐이 바람직하다.It is preferable to determine the address to read / write the next data byte, and if N is an even number, if the address to be written in the memory corresponds to the position of the virtual dummy data, the write address is jumped once more.

상기 가상의 더미 데이터의 위치는 점프 어드레스를 나타냄이 바람직하다.Preferably, the position of the virtual dummy data indicates a jump address.

도 1 은 본 발명에 적용되는 인터리브/디인터리브 구현 장치의 블럭도이고, 도 2 는 본 발명에 적용되는 인터리브일때의 리드/라이트 진행도이며, 도 3 은 본 발명에 적용되는 디인터리브일때의 리드/라이트 진행도이고, 도 4 는 본 발명에 적용되는 인터리브 구현 방법의 흐름도이며, 도 5 는 본 발명에 적용되는 디인터리브 구현 방법의 흐름도로서, 이를 참조하여 설명하면 다음과 같다.FIG. 1 is a block diagram of an interleaved / deinterleaved implementation device applied to the present invention, FIG. 2 is a read / write progression when the interleaved is applied to the present invention, and FIG. 3 is a readout when the deinterleave applied to the present invention. 4 is a flowchart of an interleaved implementation method applied to the present invention, and FIG. 5 is a flowchart of a deinterleaved implementation method applied to the present invention.

도 1 에 도시된 바와같이 멀티플렉서(10)에서 N*D 연산을 수행하면 분할기(20)는 멀티플렉서(10)에서 연산된 값의 몫은 사용하지 않고 나머지만 사용한다.As shown in FIG. 1, when the N * D operation is performed in the multiplexer 10, the divider 20 does not use the quotient of the value calculated in the multiplexer 10 and uses only the remainder.

어드레스 컨트롤 로직(30)에서는 각각의 데이터 바이트가 메모리에 들어갈 주소 및 각각의 시간에 빼낼 주소를 결정하고, 램(40)은 상기 어드레스 컨트롤 로직(30)에서 결정된 주소를 순서대로 저장하게 된다.The address control logic 30 determines an address for each data byte to enter into the memory and an address to be taken out at each time, and the RAM 40 stores the addresses determined by the address control logic 30 in order.

홀수(odd)일때의 인터리브를 설명하면 다음과 같다.Interleaving when odd is as follows.

[표 1]TABLE 1

N=5, D=4 인 경우(여기서, N이 odd 일때)When N = 5, D = 4 (where N is odd)

표 1에서 t는 코드워드(codeword)의 각 바이트들이 들어오는 시간이며, 표 1의 두번째 행은 실제 코드워드 바이트의 들어오는 순서이고 세번째 행은 인터리브되어서 나가는 바이트이다.In Table 1, t is the time when each byte of the codeword comes in, the second row of Table 1 is the actual order of the codeword bytes, and the third row is the interleaved and outgoing bytes.

상기 표 1의 세번째 행의 11은 i*(D-1), 즉 1*(4-1)=3 만큼 지연되어서 나타난다. 11 of the third row of Table 1 is i * (D-1), i.e. when not be delayed by a 1 * (4-1) = 3.

짝수(even)일때의 인터리브를 설명하면 다음과 같다.Interleaving when even is described as follows.

[표 2]TABLE 2

N=4, D=4 인 경우(여기서, N이 even 일때)When N = 4, D = 4 (where N is even)

표 2의 3행의 11은 i*(D-1), 즉 1*(4-1)=3 만큼 지연되어 나타난다.1 1 in 3 of Table 2 is delayed by i * (D-1), that is, 1 * (4-1) = 3.

그러나, t4일때는 20가 나가야 하므로 11이 나가야 할 시간과 겹치게 되므로 홀수(odd)일때와는 다른 방법을 사용하여야 하는데, 여기서는 10,20,30앞에 더미(dummy) 바이트가 각각 하나씩 더 있다고 가정하여 N이 홀수일때와 동일한 방법으로 섞은 후 메모리에서 내보낼때는 이 더미 바이트를 제거한다.However, t 4 when so 20 have to go so to overlap with the time to a 11 get out of the odd-numbered (odd) when and is to be used the other way, in this case 10, the dummy (dummy) bytes front 20, 30 is Assuming there are one more each, shuffle this dummy byte in the same way as when N is odd and then remove this dummy byte when exporting from memory.

도 2 및 도 3 은 인터리브 및 디인터리브일때의 리드(read)/라이트(write)의 진행을 도시한 것으로 각각의 칸의 좌측 하단에 표시된 숫자는 각각의 코드워드를나타내며, 각각의 칸의 우측에 표시된 숫자는 메모리의 어드레스를 나타낸다.2 and 3 show the progress of read / write in the interleaved and deinterleaved mode. The numbers shown at the bottom left of each cell represent the respective codewords. The displayed number represents the address of the memory.

도 4 에 도시된 바와같이 코드 워드 크기와 딥스를 먼저 결정하고(N ←n, D ←d), 메모리에 사용할 라이트 어드레스와 리드 어드레스를 초기화하며(W_ADDR ←0, R_ADDR ←0), 먼저 입력되는 첫번째 데이터를 임시로 저장한 후(DATA ←1stDATA), 나머지 변수들을 초기화한다(s10). 여기서, n 및 d는 할당되는 값이다.As shown in FIG. 4, the code word size and depth are determined first (N ← n, D ← d), the write address and read address to be used for the memory are initialized (W_ADDR ← 0, R_ADDR ← 0), and the first input is performed. After temporarily storing the first data (DATA ← 1stDATA), the remaining variables are initialized (s10). Where n and d are the values to be assigned.

N이 짝수(even)일때(s11) 가상의 더미(dummy) 데이터까지 계산하여 N을 홀수(odd)로 만들고(N ←N + 1)(s12), N이 홀수(odd)일때 N*D를 ND에 할당하고(s13) 점프 어드레스를 결정한다(JP_ADDR ←(ND-D)Modulo N)(s14).When N is even (s11), even dummy data is calculated and N is odd (N ← N + 1) (s12), and N * D is odd when N is odd. Assign to ND (s13) and determine the jump address (JP_ADDR? (ND-D) Modulo N) (s14).

N개로 구성된 코드 워드가 D개의 세트로 들어오면 전체 N*D의 메모리에 첫번째 N개의 코드 워드를 T=1(s15), 두번째 N개의 코드 워드를 T=2....., 마지막 N개의 코드 워드를 T=D 라 할때 T번째로 들어오는 N개로 구성된 코드 워드를 사용할 첫번째 주소를 결정한다(W_ST_ADDR ←N * (T-1), W_ADDR ←W_ST_ADDR)(s16,s17).When N codewords come in D sets, the first N codewords are T = 1 (s15) and the second N codewords are T = 2 ..... in the total N * D memory. When the code word is T = D, it determines the first address to use the N-th code word consisting of T (W_ST_ADDR ← N * (T-1), W_ADDR ← W_ST_ADDR) (s16, s17).

즉, 예를들면 N=5, D=4 인 경우 첫번째 시작주소는 0 번지부터(0,4,8,12,16 번지에 쓰고) 쓰고, 두번째 시작주소는 5번지부터(5,9,13,17,1 번지에 쓰고, 여기서 마지막 1은 21 Modulo 20)... 마지막 네번째(D번째)를 쓰고나면 다시 처음으로 돌아간다.In other words, for example, when N = 5 and D = 4, the first starting address is written from 0 (0,4,8,12,16) and the second starting address is from 5 (5,9,13). Write at 17,1, where the last 1 is 21 Modulo 20) ... After writing the last 4th (D), go back to the beginning.

메모리(RAM) 주소를 할당하고 실제로 데이터를 쓰고 읽으며(RAM ADDR ←W_ADDR, RAM DATA ←DATA)(RAM ADDR ←R_ADDR, OUT DATA ←RAM DATA)(s18,s19), 다음 데이터 바이트를 입력받아 임시 저장한다(DATA ←Input, I ←I+1)(s20,s21).Allocates memory (RAM) addresses, actually writes and reads data (RAM ADDR ← W_ADDR, RAM DATA ← DATA) (RAM ADDR ← R_ADDR, OUT DATA ← RAM DATA) (s18, s19) (DATA ← Input, I ← I + 1) (s20, s21).

I=N이면(s22) T+1을 T에 할당하고 0을 I에 할당한 후(s23), T < D 이면(s24) 상기 T번째로 들어오는 N개로 구성된 코드 워드를 사용할 첫번째 주소를 결정하는 과정으로 진입하고(s16) T > D 이면(s24) 1을 T에 할당하는 과정으로 진입한다(s15).If I = N (s22), T + 1 is assigned to T and 0 is assigned to I (s23), and if T <D (s24), the first address to use the T-th incoming N-word code is determined. If the process enters (s16) and T> D (s24), the process proceeds to assigning 1 to T (s15).

I=N이 아니면 다음 데이터 바이트를 쓰고 읽을 주소를 결정하고(W_ADDR←(W_ADDR+D)Modulo ND)(R_ADDR ←(R_ADDR+1)Modulo ND)(s25,s26), N이 짝수일때(EVEN_FLAG=1)(s27) 메모리에서 읽을 주소가 가상의 더머 데이터의 위치(점프 어드레스)이면(R_ADDR=JP_ADDR)(s28) 읽을 주소를 한번 더 더해서 점프한다(R_ADDR ←(R_ADDR+1)Modulo ND)(s29).If I = N, write the next data byte and determine the address to read (W_ADDR ← (W_ADDR + D) Modulo ND) (R_ADDR ← (R_ADDR + 1) Modulo ND) (s25, s26), when N is even (EVEN_FLAG = 1) (s27) If the address to be read from the memory is the position (jump address) of the virtual duster data (R_ADDR = JP_ADDR) (s28), the address to be read is jumped one more time (R_ADDR ← (R_ADDR + 1) Modulo ND) (s29 ).

도 5 에 도시된 바와같이 코드 워드 크기와 딥스를 먼저 결정하고(N ←n, D ←d), 메모리에 사용할 라이트 어드레스와 리드 어드레스를 초기화하며(W_ADDR ←0, R_ADDR ←0), 먼저 입력되는 첫번째 데이터를 임시로 저장한 후(DATA ←1st DATA), 나머지 변수들을 초기화한다(s100).As shown in FIG. 5, the code word size and depth are first determined (N ← n, D ← d), and the write address and read address to be used for the memory are initialized (W_ADDR ← 0, R_ADDR ← 0). After temporarily storing the first data (DATA ← 1st DATA), the remaining variables are initialized (s100).

N이 짝수(even)일때(s101) 가상의 더미(dummy) 데이터까지 계산하여 N을 홀수(odd)로 만들고(N ←N + 1)(s12), N이 홀수(odd)일때 N*D를 ND에 할당하고(s103) 점프 어드레스를 결정한다(JP_ADDR ←(ND-D)Modulo N)(s104).When N is even (s101), it calculates even dummy data and makes N odd (N ← N + 1) (s12), and N * D when N is odd Assign to ND (s103) and determine the jump address (JP_ADDR? (ND-D) Modulo N) (s104).

N개로 구성된 코드 워드가 D개의 세트로 들어오면 전체 N*D의 메모리에 첫번째 N개의 코드 워드를 T=1(s105), 두번째 N개의 코드 워드를 T=2....., 마지막 N개의 코드 워드를 T=D 라 할때 T번째로 들어오는 N개로 구성된 코드 워드를 사용할 첫번째 주소를 결정한다(R_ST_ADDR ←N * (T-1), R_ADDR ←R_ST_ADDR)(s106,s107).When N code words are entered into D sets, the first N code words are T = 1 (s105) and the second N code words are T = 2 ..... in the total N * D memory. When the code word is T = D, it determines the first address to use the N-th code word consisting of the T's (R_ST_ADDR ← N * (T-1), R_ADDR ← R_ST_ADDR) (s106, s107).

메모리(RAM) 주소를 할당하고 실제로 데이터를 쓰고 읽으며(RAM ADDR ←W_ADDR, RAM DATA ←DATA)(RAM ADDR ←R_ADDR, OUT DATA ←RAM DATA)(s108,s109), 다음 데이터 바이트를 입력받아 임시 저장한다(DATA ←Input, I ←I+1)(s110,s111).Allocates memory (RAM) addresses, actually writes and reads data (RAM ADDR ← W_ADDR, RAM DATA ← DATA) (RAM ADDR ← R_ADDR, OUT DATA ← RAM DATA) (s108, s109) (DATA ← Input, I ← I + 1) (s110, s111).

I=N이면(s112) T+1을 T에 할당하고 0을 I에 할당한 후(s113), T < D이면(s114) 상기 T번째로 들어오는 N개로 구성된 코드 워드를 사용할 첫번째 주소를 결정하는 과정으로 진입하고(s106) T > D 이면(s24) 1을 T에 할당하는 과정으로 진입한다(s105).If I = N (s112), T + 1 is assigned to T, 0 is assigned to I (s113), and if T <D (s114), the first address to use the T-th incoming N code word is determined. If the process enters (s106) and T> D (s24), the process proceeds to assigning 1 to T (s105).

I=N이 아니면 다음 데이터 바이트를 읽고 쓸 주소를 결정하고(R_ADDR ←(R_ADDR+D)Modulo ND)(W_ADDR ←(W_ADDR+1)Modulo ND)(s115,s116), N이 짝수일때(EVEN_FLAG=1)(s117) 메모리에서 쓸 주소가 가상의 더머 데이터의 위치(점프 어드레스)(W_ADDR=JP_ADDR)에 해당되면(s118) 쓸 주소를 한번 더 더해서 점프한다(W_ADDR ←(W_ADDR+1)Modulo ND)(s119).If I = N, determine the address to read and write the next byte of data (R_ADDR ← (R_ADDR + D) Modulo ND) (W_ADDR ← (W_ADDR + 1) Modulo ND) (s115, s116), when N is even (EVEN_FLAG = 1) (s117) If the address to be written in the memory corresponds to the position (jump address) of the virtual duster data (W_ADDR = JP_ADDR) (s118), the address to be written is added one more time and jumped (W_ADDR ← (W_ADDR + 1) Modulo ND) (s119).

이와같이, N*D 바이트 크기의 메모리로 인터리버 및 디인터리버를 구현함이 가능하게 된다.In this way, the interleaver and the deinterleaver can be implemented with N * D byte size memory.

이상에서 설명한 바와 같이 본 발명에 의하면, 코드워드 크기(N바이트)와 딥스(Depth:D)가 가변적이라도 N*D 바이트 크기의 메모리 크기로 컨벌루션 인터리버 및 디인터리버의 알고리즘을 간단하고 신속하게 구현하고, 이 알고리즘은 각종 S/W나 H/W 디스크립션(Description) 언어를 이용하여 시뮬레이션을 하거나 또는 직접 ASIC으로 구현할 수 있으며, 또한 C 언어를 이용한 시뮬레이션이나 VHDL(Very High speed Descripton Language)을 이용한 로직을 구현할 수 있다.As described above, according to the present invention, the algorithm of the convolutional interleaver and the deinterleaver can be simply and quickly implemented with a memory size of N * D byte even though the codeword size (N byte) and the depth (Depth: D) are variable. In addition, this algorithm can be simulated using various S / W or H / W description languages, or can be implemented directly in ASIC. Also, this algorithm can use simulation using C language or logic using VHDL (Very High Speed Descripton Language). Can be implemented.

Claims (6)

N(code word)*D(Depth) 연산을 수행하는 멀티플렉서와,A multiplexer that performs N (code word) * D (Depth) operation, 상기 멀티플렉서에 의해 연산된 값중에서 그 몫은 사용하지 않고 나머지만 사용하는 분할기와,A divider that uses only the remainder of the value calculated by the multiplexer and does not use its share; 각각의 데이터 바이트가 메모리에 들어갈 주소와 각각의 시간에 빼낼 주소를 결정하는 어드레스 컨트롤 로직과,Address control logic that determines the address each data byte will enter into memory and at each time, 상기 어드레스 컨트롤 로직에 의해 결정된 주소를 순서대로 저장하고 N*D 바이트의 크기를 갖는 램을 포함하여 구성한 것을 특징으로 하는 인터리브/디인터리브 구현 장치.And storing the addresses determined by the address control logic in order and including a RAM having a size of N * D bytes. 삭제delete 코드워드 크기와 딥스(Depth)를 먼저 결정하고, 메모리에 사용할 라이트(write) 어드레스와 리드(read) 어드레스를 초기화하며, 먼저 입력되는 첫번째 데이터를 임시로 저장하고, 나머지 변수들을 초기화하는 초기화과정과,Determine the codeword size and depth first, initialize the write address and read address to use in memory, temporarily store the first data entered first, and initialize the remaining variables , 상기 초기화과정후에 입력된 데이터 N이 짝수(even)일경우 가상의 더미(dummy) 데이터를 계산하여 N을 홀수(odd)로 만들고, N이 홀수(odd)일 경우에는 점프 어드레스를 결정하는 결정과정과,After the initialization process, if the input data N is even, virtual dummy data is calculated to make N odd, and if N is odd, a determination process of determining a jump address. and, 상기 N개로 구성된 코드 워드가 D개의 세트로 들어올 경우 T번째로 들어오는 N개로 구성된 코드 워드를 사용할 첫번째 어드레스를 결정하는 어드레스 결정과정과,An address determination process of determining a first address to use a T-th incoming N code word when the N code words consisting of D numbers are input into D sets; 상기 메모리(RAM)의 어드레스를 할당하고 실제로 데이터를 라이트/리드하며, 다음 데이터 바이트를 입력받아 임시 저장하는 임시저장과정과,A temporary storage process of allocating an address of the memory (RAM), actually writing and reading data, and receiving and temporarily storing a next data byte; 상기 다음 데이터 바이트를 라이트/리드할 주소를 결정하고, N이 짝수일경우 메모리에서 리드할 어드레스가 가상의 더미 데이터의 위치에 해당되면 리드 주소를 한번 더 더해서 점프하는 점프과정을 포함하여 이루어지는 것을 특징으로 하는 인터리브 구현 방법.Determining an address to write / read the next data byte, and if N is an even number, if the address to be read in the memory corresponds to the position of the virtual dummy data, a jump process of adding the read address once more to jump is included. Interleave implementation method. 제 3 항에 있어서, 상기 더미 데이터의 위치는 점프 어드레스를 나타내는 것을 특징으로 하는 인터리브 구현 방법.4. The method of claim 3, wherein the position of the dummy data indicates a jump address. 삭제delete 삭제delete
KR10-2000-0071169A 2000-11-28 2000-11-28 interleave /deinterleave embodiment apparatus and method in ADSL KR100464483B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0071169A KR100464483B1 (en) 2000-11-28 2000-11-28 interleave /deinterleave embodiment apparatus and method in ADSL

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0071169A KR100464483B1 (en) 2000-11-28 2000-11-28 interleave /deinterleave embodiment apparatus and method in ADSL

Publications (2)

Publication Number Publication Date
KR20020041529A KR20020041529A (en) 2002-06-03
KR100464483B1 true KR100464483B1 (en) 2004-12-31

Family

ID=19701870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0071169A KR100464483B1 (en) 2000-11-28 2000-11-28 interleave /deinterleave embodiment apparatus and method in ADSL

Country Status (1)

Country Link
KR (1) KR100464483B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762134B1 (en) * 2004-10-07 2007-10-02 엘지전자 주식회사 Method of generating read address for block interleaving

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0883474A1 (en) * 1996-02-28 1998-12-16 Dahmit Betonwerke GmbH &amp; Co. KG Method of shuttering reinforced concrete finished parts
US5898698A (en) * 1996-09-24 1999-04-27 Orckit Communications Ltd. Multiple codeword interleaver method and apparatus
US5912898A (en) * 1997-02-27 1999-06-15 Integrated Device Technology, Inc. Convolutional interleaver/de-interleaver
US5928371A (en) * 1997-07-25 1999-07-27 Motorola, Inc. Systems for programmably interleaving and de-interleaving data and method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0883474A1 (en) * 1996-02-28 1998-12-16 Dahmit Betonwerke GmbH &amp; Co. KG Method of shuttering reinforced concrete finished parts
US5898698A (en) * 1996-09-24 1999-04-27 Orckit Communications Ltd. Multiple codeword interleaver method and apparatus
US5912898A (en) * 1997-02-27 1999-06-15 Integrated Device Technology, Inc. Convolutional interleaver/de-interleaver
US5928371A (en) * 1997-07-25 1999-07-27 Motorola, Inc. Systems for programmably interleaving and de-interleaving data and method thereof

Also Published As

Publication number Publication date
KR20020041529A (en) 2002-06-03

Similar Documents

Publication Publication Date Title
RU2274950C2 (en) Interleaving device and method for communication system
EP1850486A1 (en) Parallel interleaver, parallel deinterleaver, and interleave method
RU2255419C2 (en) Interleaver and interleaving process in communication system
US6785862B1 (en) Convolutional interleaver employing an efficient memory scheme
EP1125366B1 (en) Generalized convolutional interleaver/deinterleaver
WO2000035102A1 (en) Interleaving / deinterleaving device and method for communication system
US8458561B2 (en) Pruning methods for the generation of S-random interleavers, and interleaver performing the methods
US10025709B2 (en) Convolutional de-interleaver and convolutional de-interleaving method
US7600163B2 (en) Convolutional interleaver and deinterleaver
KR100464483B1 (en) interleave /deinterleave embodiment apparatus and method in ADSL
US20100042899A1 (en) Deinterleaver
US20080195823A1 (en) Method and apparatus for convolutional interleaving/de-interleaving technique
WO2001031869A1 (en) Cache and caching method for convolutional decoders
US7073012B2 (en) System and method for interleaving data in a communications device
KR20040081271A (en) Digital communication system having a deinterleaver and a method deinterleaving thereof
JP2007538452A (en) Turbo decoder input reordering
EP0986005A1 (en) FIFO memory device and method for controlling same
US7502390B2 (en) Optimized interleaver and/or deinterleaver design
EP1508972A1 (en) Mobile telephone, apparatus, method, and program for calculating an interleave parameter
JP3239872B2 (en) Interleaver, interleave method, deinterleaver, deinterleave method, transmitting device and receiving device
AU759528B2 (en) A system and method for reducing deinterleaver memory requirements through chunk allocation
US6714606B1 (en) Integrated services digital broadcasting deinterleaver architecture
KR100248395B1 (en) Design method of channel encoder in digital communication
KR100243468B1 (en) Vitervi interlever / deinterlever using dual port memory
US20090083514A1 (en) Apparatus and method for block interleaving in mobile communication system

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111110

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee