KR100464483B1 - interleave /deinterleave embodiment apparatus and method in ADSL - Google Patents
interleave /deinterleave embodiment apparatus and method in ADSL Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/276—Interleaving address generation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2782—Interleaver 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) 구현에 관한 것으로, 특히 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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0883474A1 (en) * | 1996-02-28 | 1998-12-16 | Dahmit Betonwerke GmbH & 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 |
-
2000
- 2000-11-28 KR KR10-2000-0071169A patent/KR100464483B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0883474A1 (en) * | 1996-02-28 | 1998-12-16 | Dahmit Betonwerke GmbH & 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 |