KR19980023731A - Address generation method of convolutional interleaver / deinterleaver and static RAM using static RAM - Google Patents

Address generation method of convolutional interleaver / deinterleaver and static RAM using static RAM Download PDF

Info

Publication number
KR19980023731A
KR19980023731A KR1019960043231A KR19960043231A KR19980023731A KR 19980023731 A KR19980023731 A KR 19980023731A KR 1019960043231 A KR1019960043231 A KR 1019960043231A KR 19960043231 A KR19960043231 A KR 19960043231A KR 19980023731 A KR19980023731 A KR 19980023731A
Authority
KR
South Korea
Prior art keywords
address
static ram
clock
data
deinterleaver
Prior art date
Application number
KR1019960043231A
Other languages
Korean (ko)
Other versions
KR100215566B1 (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 KR1019960043231A priority Critical patent/KR100215566B1/en
Publication of KR19980023731A publication Critical patent/KR19980023731A/en
Application granted granted Critical
Publication of KR100215566B1 publication Critical patent/KR100215566B1/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/2732Convolutional interleaver; Interleavers using shift-registers or delay lines like, e.g. Ramsey type interleaver
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

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

Abstract

본 발명은 디지탈 채널부호기의 길쌈 인터리버 및 채널복호기의 길쌈 디인터리버에 관한 것으로, 더욱 상세하게는 정적 램(SRAM)을 사용하여 하드웨어양을 감소시키고, 정적 램의 액세스를 효율적으로 제어한 정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법에 관한 것으로서, 본 발명의 길쌈 인터리버/디인터리버는 입력 수단(41)과, 주소 생성 수단(42), 정적 램(43), 출력 수단(44) 및, 제어수단(45)으로 구성된 구조이며, 상기 주소 생성 수단(22)에 적용되는 주소 생성 방법은 N개의 심볼을 주기로 하여 입력 순서에 따라 정확한 지연 후에 출력되도록, 지연시간에 해당하는 시간에 쓰기 주소(WA)와 읽기 주소(RA)를 클럭의 반 주기동안 각각 발생하도록 하였으며, 상기 정적 램의 전체 메모리 크기(MEM_SIZE)로 모듈러 연산하여 순환 번지 지정 방식으로 주소를 할당하므로써, 종전과 동일한 인터리빙/디인터리빙을 수행하게 된다.The present invention relates to a weaving interleaver of a digital channel encoder and a weaving deinterleaver of a channel decoder. More particularly, the present invention relates to a static RAM that reduces the amount of hardware by using a static RAM (SRAM) and efficiently controls access to the static RAM. The present invention relates to an address generation method of a convolutional interleaver / deinterleaver and a static RAM used. The convolutional interleaver / deinterleaver of the present invention includes an input means 41, an address generation means 42, a static RAM 43, and an output means 44. And the control means 45, the address generation method applied to the address generation means 22 is a time corresponding to the delay time to be output after the correct delay in accordance with the input sequence with N symbols as a period The write address (WA) and the read address (RA) are generated for each half period of the clock, and the cyclic address is calculated by modular operation of the total memory size (MEM_SIZE) of the static RAM. By assigning addresses in a correct manner, the same interleaving / deinterleaving as before has been performed.

따라서, 본 발명의 효과는 최소한의 메모리(즉, (N-1)×(B-1) + 1)(Bytes)만을 사용하고, 또한, 각종 제어 신호들이 클럭신호와 반전된 클럭신호이기 때문에 제어 수단을 간단한 하드웨어로 쉽게 구현할 수 있는 효과가 있다.Therefore, the effect of the present invention uses only a minimum of memory (i.e., (N-1) x (B-1) + 1) (Bytes), and also controls because the various control signals are clock signals and inverted clock signals. The effect is that the means can be easily implemented in simple hardware.

Description

정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법(Cnvolutional Interleaver and Deinterleaver using SRAM and a method for generating address of SRAM )Cnvolutional Interleaver and Deinterleaver using SRAM and a method for generating address of SRAM

본 발명은 디지탈 채널부호기의 길쌈 인터리버 및 채널복호기의 길쌈 디인터리버에 관한 것으로, 더욱 상세하게는 정적 램(SRAM)을 사용하여 하드웨어양을 감소시키고, 정적 램의 액세스를 효율적으로 제어한 정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법에 관한 것이다.The present invention relates to a weaving interleaver of a digital channel encoder and a weaving deinterleaver of a channel decoder. More particularly, the present invention relates to a static RAM that reduces the amount of hardware by using a static RAM (SRAM) and efficiently controls access to the static RAM. It relates to a convolutional interleaver / deinterleaver and static RAM address generation method.

일반적으로, 통상의 통신 시스템에 있어서 전송중에 발생하는 에러는 군데 군데 랜덤한 형태로 발생하는 랜덤 에러(random error)와, 한 곳에 집중적으로 몰려서 발생하는 군집 에러(burst error)가 있다.In general, in a typical communication system, errors occurring during transmission include a random error occurring in a random form in one place and a burst error generated by being concentrated in one place.

이렇게 채널상에서 발생하는 에러를 수신측에서 처리할 수 있도록 에러 정정 기술을 사용하고 있으며, 이러한 에러 정정 기술은 크게 에러 정정 부호화(ECC:error correcting coding) 기술과, 부호화된 데이터를 인터리빙(interleaving)하는 기술이 있다.In this way, error correction techniques are used to handle errors occurring on the channel at the receiving end. Such error correction techniques are mainly used for error correcting coding (ECC) and interleaving of coded data. There is a technique.

에러 정정 부호화(ECC)는 에러를 검출하거나 정정하는 데 사용되는 검사 심볼(check symbol)을 부가하는 것으로서, 몇개의 정보 심볼(information symbol)을 묶어 블럭으로 분리한 다음, 블럭 단위로 부호화를 수행하는 블럭 코드(block code)와, 정보 심볼열의 입력 시퀀스에 따라 부호화를 수행하는 난블록 코드(nonblock code)가 있다.Error Correction Coding (ECC) adds a check symbol used to detect or correct an error. The error correction coding (ECC) combines several information symbols into blocks and performs encoding on a block basis. There are a block code and a nonblock code for performing encoding according to an input sequence of an information symbol string.

그리고, 인터리빙(interleaving)은 부호화된 데이터열을 미리 정해진 방식으로 데이터열의 순서를 재배열하는 것으로, 그 방식에 따라 블럭 인터리버(block interleaver)와 길쌈 인터리버(convolution interleaver)가 있다.Interleaving is a rearrangement of the sequence of data strings in a predetermined manner in a coded data sequence, and includes a block interleaver and a convolution interleaver according to the scheme.

도 1 은 일반적인 채널 부호기에 대한 구성도로서, 채널 부호기는 리드 솔로몬 부호기(11)와, 제 1 인터리버(12), 길쌈 부호기(13), 및 제 2 인터리버(14)로 구성된다.FIG. 1 is a block diagram of a general channel encoder. The channel encoder includes a Reed Solomon encoder 11, a first interleaver 12, a convolutional encoder 13, and a second interleaver 14. As shown in FIG.

상기 리드 솔로몬 부호기(11)는 원래의 정보 심볼에 에러 정정을 위한 검사 심볼을 첨가시켜 리드 솔로몬 부호화 기능을 수행하고, 제 1 인터리버(12)는 상기 리드 솔로몬 부호기(11)로 부터 출력된 신호의 순서를 재배열하여 랜덤화시킨다.The Reed Solomon encoder 11 adds a check symbol for error correction to the original information symbol to perform the Reed Solomon encoding function, and the first interleaver 12 performs a readout of the signal output from the Reed Solomon encoder 11. Rearrange the order to randomize.

상기 길쌈 부호기(13)는 상기 제 1 인터리버(12)로부터 출력된 신호를 길쌈 부호 (convolutional code)로 부호화하고, 제 2 인터리버(12)는 길쌈 부호기(13)로부터 출력된 신호의 순서를 재배열하여 랜덤화 시킨다.The convolutional encoder 13 encodes the signal output from the first interleaver 12 into a convolutional code, and the second interleaver 12 rearranges the order of the signals output from the convolutional encoder 13. To randomize them.

도 2 는 일반적인 채널 복호기에 대한 구성도로서, 채널 복호기는 동기 검출기(21)와, 제 2 디인터리버(22), 길쌈 복호기(23), 제 2 디인터리버(24), 및 리드 솔로몬 복호기(25)로 구성된다.2 is a block diagram of a general channel decoder, in which the channel decoder includes a synchronous detector 21, a second deinterleaver 22, a convolutional decoder 23, a second deinterleaver 24, and a Reed Solomon decoder 25. It consists of

상기 동기 검출기(21)는 입력 신호의 동기를 검출하고, 상기 제 2 디인터리버 (22)는 상기 동기 검출기(21)로 부터 출력된 신호를 디인터리빙하여 상기 제 2 인터리버(14)의 입력 신호 순서대로 재배열하여 출력한다.The synchronization detector 21 detects synchronization of an input signal, and the second deinterleaver 22 deinterleaves the signal output from the synchronization detector 21 to input an order of the input signal of the second interleaver 14. Rearrange and print.

상기 길쌈 복호기(23)는 상기 제 2 디인터리버(22)로부터 출력된 신호를 비터비 복호화하여 발생된 에러를 정정하고, 상기 제 1 디인터리버(24)는 상기 길쌈 복호기(23)로부터 출력된 신호를 디인터리빙하여 상기 제 1 인터리버(12)의 입력 신호 순서대로 재배열하여 출력한다.The convolutional decoder 23 corrects an error generated by Viterbi decoding the signal output from the second deinterleaver 22, and the first deinterleaver 24 outputs the signal output from the convolutional decoder 23. Deinterleaving and rearranges the signals in the order of the input signals of the first interleaver 12 to output them.

상기 리드 솔로몬 복호기(25)는 상기 제 1 디인터리버(24)로부터 출력된 신호를 리드 솔로몬 복호화하여 발생된 에러를 정정한다.The Reed Solomon decoder 25 corrects an error generated by Reed Solomon decoding the signal output from the first deinterleaver 24.

도 1과 도 2에서 보여준 길쌈/RS 연쇄 부호(concatenated code)를 사용한 에러 정정 시스템은 부호화된 신호를 재배열하여 랜덤 에러와 군집 에러에 모두에 효율적으로 대처하고 있으며, 그 이유는 다음과 같다.The error correction system using the convolutional / RS concatenated code shown in FIG. 1 and FIG. 2 efficiently rearranges the coded signals to cope with both random and cluster errors, for the following reason.

에러 정정 부호(RS code, convolutional code)는 각 부호어(codeword)내에서 제한된 수의 비트 에러를 정정할 수 있으므로 랜덤 에러에는 효율적이나, 에러가 군집해서 발생하는 경우에는 비효율적일 수 있다.The error correction code (RS code, convolutional code) can correct a limited number of bit errors in each codeword, so it is efficient for random errors, but can be inefficient when errors occur in groups.

이러한 군집 에러에 대처하기 위해, 송신단에서는 인터리버를 통해 부호화된 데이터 스트림의 순서를 재배열(랜덤화)시켜서 전송중에 군집 에러가 발생한다 하더라도, 수신단의 디인터리버를 통해 원래의 데이터 스트림 순서로 복원시키므로써 군집 에러를 랜덤 에러로 변형시키기 때문이다.In order to cope with such clustering errors, the transmitting end rearranges (randomizes) the order of the data streams encoded through the interleaver and restores the original data stream order through the deinterleaver at the receiving end even if a cluster error occurs during transmission. This is because the cluster error is transformed into a random error.

한편, 미국 디지털 위성 방송의 하나인 DSS(Direct Satellite System)방식에서는 (146, 130)리드 솔로몬 부호기를 채택하고, 리드 솔로몬 부호화된 신호를 길쌈 인터리버(convolution interleaver)를 통해 재배열하고 있다.On the other hand, the DSS (Direct Satellite System) method, which is one of US digital satellite broadcasts, adopts a (146, 130) lead solomon encoder and rearranges a Reed Solomon-coded signal through a convolutional interleaver.

여기서, (146, 130)리드 솔로몬 코드는 8비트를 하나의 심볼로하여 130개의 정보 심볼(infomation symbol)에 16개의 검사 심볼(check symbol)을 추가하여 전체 부호어 길이가 146개의 심볼(=146bytes)로 이루어져 있다. 그리고, 길쌈 인터리버는 인터리빙 간격을 13으로 하여 이웃한 두 입력 심볼 사이에 12개의 임의의 심볼을 삽입하여 재배열한다.Here, the (146, 130) Lead Solomon code adds 16 check symbols to 130 information symbols by using 8 bits as a symbol, and has a total codeword length of 146 symbols (= 146 bytes). ) The convolutional interleaver inserts and rearranges 12 random symbols between two neighboring input symbols with an interleaving interval of 13.

도 3 은 DSS방식에 사용된 종래의 길쌈 인터리버에 대한 블럭도로서, 길쌈 인터리버는 입력 스위치(30)와, 복수개의 시프트레지스터(2-0∼2-145), 및 복수개의 가산기(3-0∼3-145)로 구성되어 있다.Fig. 3 is a block diagram of a conventional convolutional interleaver used in the DSS method, in which the convolutional interleaver includes an input switch 30, a plurality of shift registers 2-0 to 2-145, and a plurality of adders 3-0. 3-145).

상기 입력 스위치(30)는 입력되는 바이트 순서대로 맨 오른쪽 가산기(3-0)의 입력탭 #0 부터 맨 왼쪽 가산기(3-145)의 탭 #145 까지 차례대로 스위칭하여 입력 데이터를 전달하는 기능을 한다.The input switch 30 transfers input data by switching from input tap # 0 of the rightmost adder 3-0 to tap # 145 of the leftmost adder 3-145 in the order of byte input. do.

상기 복수개의 시프트 레지스터(2-0∼2-145)는 맨 오른쪽 가산기(3-0)에는 1개의 레지스터(2-0)가 연결되어있고, 나머지 두 가산기 사이에는 12개의 레지스터(2-1∼2-145)가 연결되어 있으면서, 입력 데이터와 동기된 클럭에 의해 입력당 한번씩 오른쪽으로 시프트하는 기능을 한다.In the plurality of shift registers 2-0 to 2-145, one register 2-0 is connected to the rightmost adder 3-0, and there are 12 registers 2-1 to 2-0 between the remaining two adders. 2-145) is connected, and shifts to the right once per input by a clock synchronized with the input data.

상기 복수개의 가산기(3-0∼3-145)는 맨 왼쪽 가산기(3-145)의 한쪽 입력은 항상 0으로 고정되어 있으면서, 상기 입력 스위치(30)에 스위칭되는 입력 탭이 0으로 고정되있는 상태에서 스위치에 연결되면, 입력 데이터를 입력받고, 상기 시프트레지스터로부터 시프트된 값과 더하여 출력한다.In the plurality of adders 3-0 to 3-145, one input of the leftmost adder 3-145 is always fixed to zero, and an input tap switched to the input switch 30 is fixed to zero. When connected to the switch in the state, input data is received and output in addition to the shifted value from the shift register.

상기와 같이 구성된 종래의 길쌈 인터리버의 동작을 설명하면 다음과 같다.Referring to the operation of the conventional convolutional interleaver configured as described above are as follows.

리드 솔로몬 부호화된 신호가 바이트 단위로 입력되면, 상기 입력 스위치(30)는 바이트 클럭 단위로 상기 0번 가산기(3-0)부터 차례대로 선택한다.When the Reed Solomon coded signal is input in byte units, the input switch 30 sequentially selects the 0th adder 3-0 in byte clock units.

따라서, 1번째 클럭에 동기되어 0차 데이터(D0)가 입력되고, 1 클럭 지연후에 0차 데이터(D0)는 출력된다. 2번째 클럭에서 1차 데이터(D1)가 입력되고, 12+1 클럭 지연 후에 1차 데이터(D1)는 출력된다. 3번째 클럭에서 2차 데이터(D2)가 입력되고, 2×12+1 클럭 지연 후에 2차 데이터(D2)는 출력된다. 계속해서 146번째 클럭에서 145차 데이터(D145)가 입력되고, 145×12+1 클럭 후에 출력된다.Therefore, zero-order data D0 is input in synchronization with the first clock, and zero-order data D0 is output after one clock delay. Primary data D1 is input at the second clock, and primary data D1 is output after a 12 + 1 clock delay. The secondary data D2 is input at the third clock, and the secondary data D2 is output after a 2x12 + 1 clock delay. Subsequently, the 145th order data D145 is input at the 146th clock, and is output after 145x12 + 1 clocks.

결국, 상기와 같이 구성된 N=146, B=13 길쌈인터리버를 통해서 0차내지 145차 데이터(Di, 0≤i≤145)는 각각 하기 수학식 1과 같은 지연후에 출력된다.As a result, through the N = 146, B = 13 convolutional interleaver configured as described above, 0th to 145th data (Di, 0≤i≤145) are output after a delay as shown in Equation 1 below.

그리고, 도 3의 종래의 길쌈 인터리버에서 요구된 최소한의 메모리양은 하기 수학식 2와 같이 주어진다.The minimum amount of memory required in the conventional convolutional interleaver of FIG. 3 is given by Equation 2 below.

종래와 같이 메모리를 시프트레지스터로 구현했을 경우에는, 가장 기본적으로 간단히 구현되었다 하더라고, 레지스터당 6개의 게이트(gate)가 사용되고, 1 게이트는 4 개의 트랜지스터로 구현되기 때문에, 결국에는 1 개의 레지스터를 설계하는 데에 24개의 트랜지스터가 필요하게 된다.When the memory is implemented as a shift register as in the prior art, even though it is basically implemented simply, six gates are used per register, and one gate is implemented by four transistors. This requires 24 transistors.

이것을 일반적인 로직(LOGIC)으로 구현한다면 상당히 큰 양이 되고, 또한, 주문형 반도체(ASIC)로 구현한다하더라도 그 양은 무시할 수 없을 정도여서 상당한 하드웨어의 부피나 비용 부담에 대한 문제점이 있었다.If this is implemented in general logic (LOGIC), it is a very large amount, and even if implemented in an application-specific semiconductor (ASIC), the amount is not negligible, there was a problem of considerable hardware volume or cost burden.

이에 대한 해결 방안으로 정적 램을 이용한다면, 정적 램의 경우는 하나의 정적 램 셀(cell)당 대략 1.5 게이트, 즉 6개의 트랜지스터만으로 구현할 수 있으므로, 길쌈 인터리버가 요구하는 메모리양이 상당히 클 경우에는 시프트레지스터를 사용하는 것보다 정적 램(SRAM)을 사용하여 구현하는 것이 하드웨어가 차지하는 부피나 비용면에서 경제적일 것이다.As a solution to this problem, the static RAM can be implemented with only 1.5 gates, or 6 transistors, per static RAM cell. Therefore, when the amount of memory required by the convolutional interleaver is very large, Implementing with static RAM (SRAM) rather than using a shift register will be economical in terms of volume and cost of hardware.

그러나, 정적 램을 이용한 길쌈 인터리버/디인터리버에서는 정적 램의 액세스를 담당하는 제어 로직이 추가되어야 하는 데, 그 하드웨어 구조 및 주소 생성 방법에 대해서도 공개되어있지 않은 문제점이 있었다.However, in the convolutional interleaver / deinterleaver using static RAM, control logic for accessing the static RAM needs to be added, but there is a problem in that the hardware structure and address generation method are not disclosed.

이에, 본 발명은 상기와 같은 종래의 제 문제점을 해결하기 위해서 안출된 것으로, 본 발명의 목적은 정적 램(SRAM)을 이용하여 메모리 부담을 줄이면서도 간단한 하드웨어 구조를 갖는 길쌈 인터리버/디인터리버를 제공하는 데 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems of the prior art, an object of the present invention is to provide a convolutional interleaver / deinterleaver having a simple hardware structure while reducing the memory burden by using a static RAM (SRAM). Its purpose is to.

본 발명의 다른 목적은 순환 번지 지정 방식(circular addressing)을 이용하여 상기 장치에 있어서 인터리빙/디인터리빙을 수행하도록 하는 주소 생성 방법을 제공하는 데 그 목적이 있다.Another object of the present invention is to provide an address generation method for performing interleaving / deinterleaving in the apparatus by using circular addressing.

상기 목적을 달성하기 위한 정적 램을 이용한 길쌈 인터리버/디인터리버는,Weaving interleaver / deinterleaver using a static RAM to achieve the above object,

입력 데이터를 바이트 단위로 래치하여 데이터버스로 출력하는 입력 수단; 읽기 주소(RA)와 쓰기 주소(WA)를 발생하는 주소 생성 수단; 상기 읽기 주소(RA)에 따라 저장된 데이터를 상기 데이터 버스로 출력함과 동시에, 상기 쓰기 주소(WA)에 따라 상기 데이터 버스에 실린 데이터를 저장하는 정적 램; 상기 정적 램으로부터 출력된 데이터를 바이트 단위로 래치하여 출력하는 출력 수단; 패킷 동기 신호(packet_sync)와 바이트 클럭 신호(byte_clock)에 따라 입력수단 인에이블 신호(IN_ENA)와, 정적 램 읽기신호(read), 정적 램 쓰기신호(write) 및, 출력수단 인에이블 신호(OUT_ENA) 등의 제어신호를 발생하는 제어수단을 포함하여 구성되는 것을 특징으로 한다.Input means for latching input data in byte units and outputting the data to a data bus; Address generating means for generating a read address (RA) and a write address (WA); A static RAM which outputs data stored according to the read address RA to the data bus and simultaneously stores data carried on the data bus according to the write address WA; Output means for latching and outputting data output from the static RAM in units of bytes; The input means enable signal IN_ENA, the static RAM read signal, the static RAM write signal, and the output means enable signal OUT_ENA according to the packet synchronization signal packet_sync and the byte clock signal byte_clock. And control means for generating a control signal, for example.

상기 다른 목적을 달성하기 위하여, 바이트단위로 입력되는 데이터 스트림을 N개의 데이터를 주기로 하여, 인터리빙 간격 B로 인터리빙하는 상기 장치를 위한 정적 램의 주소를 생성하는 방법은,In order to achieve the above another object, a method of generating an address of a static RAM for the device for interleaving at an interleaving interval B, with a period of N data in a data stream input in bytes,

메모리 크기가 (N-1)×B+1(bytes)의 정적 램을 순환 번지 지정 방식으로 매핑하기 위해서, 시스템 초기시, 기본 주소(BASE_ADDR)를 초기화하는 제 1 과정과; N주기의 0차 심볼 D(k,0)의 지연을 위해서, 상기 기본 주소(BASE_ADDR)를 클럭의 앞 반주기동안 읽기 주소(RA0)로 발생하고, 상기 읽기 주소(RA0)+1 을 클럭의 뒤 반주기동안 쓰기 주소(WA0)로 발생하는 제 2 과정; N주기의 나머지 심볼 (D(k,i), 1≤i≤N-1)의 지연을 위해서, 이전 클럭의 읽기 주소(RAi-1)+1 을 클럭의 앞 반주기 동안 읽기 주소(RAi)로 발생하고, 상기 읽기 주소(RAi) + 심볼 차수(i)×(B-1)+1 을 클럭의 뒤 반주기 동안 쓰기 주소(WAi)로 발생하는 제 3 과정을 포함하여 구성되는 것을 특징으로 한다.A first step of initializing a base address (BASE_ADDR) at system initial stage in order to map a static RAM having a memory size of (N-1) × B + 1 (bytes) in a cyclic address designation method; In order to delay the Nth order 0th symbol D (k, 0), the base address BASE_ADDR is generated as the read address RA0 for the first half period of the clock, and the read address RA0 + 1 is after the clock. A second process occurring at the write address WA0 for half a period; For the delay of the remaining symbols of the N period (D (k, i), 1≤i≤N-1), the read address (RAi-1) +1 of the previous clock is read to the read address (RAi) for the first half period of the clock. And a third process of generating the read address (RAi) + symbol order (i) x (B-1) + 1 as a write address (WAi) during a half cycle of the clock.

상기 다른 목적을 달성하기 위하여 인터리빙된 데이터열을 바이트 단위로 입력받아 N주기 (=S(k,0), S(k,1),…,S(k,N-1))로 디인터리빙하는 상기 장치를 위한 정적 램의 주소를 생성하는 방법은,In order to achieve the above object, the interleaved data string is received in byte units and deinterleaved by N periods (= S (k, 0), S (k, 1), ..., S (k, N-1)). The method of generating a static RAM address for the device,

쓰기 주소(WAi)를 생성하기 위해서, 입력 심볼의 인덱스 i 에 따라 (N-1)×B+1(bytes) 정적 램의 스위칭 위치(switch_position)를 결정하는 제 1 과정; 상기 정적 램을 순환 번지 지정 방식으로 매핑하기 위해서, 기본 주소(base_address)를 초기화하는 제 2 과정; N주기의 0차 심볼 S(k,0)의 지연을 위해서, 상기 기본 주소(base_address)를 클럭의 앞 반주기동안 읽기 주소(RA0)로 발생하고, 상기 읽기 주소(RA0)+ 1 +스위칭 위치×(B-1) 을 클럭의 뒤 반주기동안 쓰기 주소(WA0)로 발생하는 제 2 과정; N주기의 나머지 심볼(S(k,i), 1≤i≤N-1)의 지연을 위해서, 이전 클럭의 읽기 주소(RAi-1)+1 을 클럭의 앞 반주기 동안 읽기 주소(RAi)로 발생하고, 상기 읽기 주소(RAi)+ 1 +스위칭 위치×(B-1) 을 클럭의 뒤 반주기동안 쓰기 주소(WAi)로 발생하는 제 3 과정을 포함하여 구성되는 것을 특징으로 한다.A first process of determining a switching position of a (N−1) × B + 1 (bytes) static RAM according to an index i of an input symbol to generate a write address WAi; A second process of initializing a base_address to map the static RAM in a cyclic address designation method; For the delay of the Nth order zero symbol S (k, 0), the base address (base_address) is generated as the read address (RA0) for the first half period of the clock, and the read address (RA0) + 1 + switching position x A second process of generating (B-1) to the write address WA0 for a half cycle after the clock; For the delay of the remaining symbols of N periods (S (k, i), 1≤i≤N-1), the read address (RAi-1) +1 of the previous clock is read to the read address (RAi) for the first half period of the clock. And a third process of generating the read address RAi + 1 + switching position × (B-1) to the write address WAi during the last half period of the clock.

상기와 같은 본 발명의 주소 발생 방법을 적용한 길쌈 인터리버는 종전과 동일한 재배열 순서에 따라 인터리빙을 수행하고, 디인터리버도 역시 원래 순서대로 복원 하게 된다.The convolutional interleaver applying the address generation method of the present invention as described above performs interleaving according to the same rearrangement order as before, and the deinterleaver also restores the original order.

따라서, 본 발명에의한 정적 램의 주소 생성 방법을 적용한 길쌈 인터리버/디인터리버에서는 최소한의 메모리(즉, (N-1)×(B-1)+1)(Bytes)만을 사용하면 되고, 각종 제어 신호들이 클럭신호와 반전된 클럭신호이기 때문에 제어 수단을 간단한 하드웨어로 쉽게 구현할 수 있다.Therefore, in the convolutional interleaver / deinterleaver applying the static RAM address generation method according to the present invention, only minimal memory (that is, (N-1) × (B-1) +1) (Bytes) needs to be used. Since the control signals are clock signals inverted from the clock signals, the control means can be easily implemented in simple hardware.

도 1 은 일반적인 채널 부호기에 대한 구성도,1 is a block diagram of a general channel encoder,

도 2 는 일반적인 채널 복호기에 대한 구성도,2 is a block diagram of a general channel decoder;

도 3 은 DSS 방식에 사용된 종래의 길쌈 인터리버에 대한 블럭도,3 is a block diagram of a conventional convolutional interleaver used in the DSS scheme;

도 4 은 본 발명에 따른 길쌈 인터리버에 대한 블럭도,4 is a block diagram of a convolutional interleaver according to the present invention;

도 5 는 본 발명에 따른 주소 할당 방법을 설명하기 위한 정적 램의 주소 매핑도,5 is an address mapping diagram of a static RAM for explaining an address allocation method according to the present invention;

도 6 은 본 발명에 따른 길쌈 인터리버/디인터리버의 동작을 설명하기 위한 여러 제어신호에 대한 타이밍도이다.6 is a timing diagram for various control signals for explaining the operation of the convolutional interleaver / deinterleaver according to the present invention.

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

41 : 입력 버퍼 42 : 주소 생성부41: input buffer 42: address generator

43 : 정적 램 44 : 출력 래치43: static RAM 44: output latch

45 : 제어부45: control unit

이하, 첨부된 도면을 참조하여 본 발명을 자세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail the present invention.

도 4 는 본 발명에 따른 정적 램을 이용한 길쌈 인터리버에 대한 블럭도로서, 본 발명의 길쌈 인터리버는 입력 버퍼(41)와, 주소 생성부(42), 정적 램(43), 출력 래치(44) 및, 제어부(45)로 구성되어 있다.4 is a block diagram of a convolutional interleaver using a static RAM according to the present invention. The convolutional interleaver of the present invention includes an input buffer 41, an address generator 42, a static RAM 43, and an output latch 44. And a control unit 45.

상기 입력 버퍼(41)는 입력 데이터(D(k,i))를 바이트 단위로 래치하여 데이터버스로 출력한다.The input buffer 41 latches the input data D (k, i) in byte units and outputs them to the data bus.

상기 주소 생성부(42)는 클럭의 앞 반주기동안에 읽기 주소(RA)를 생성하고, 클럭의 뒤 반주기동안에 쓰기 주소(WA)를 생성하여 출력한다.The address generator 42 generates a read address RA during the first half cycle of the clock, and generates and outputs a write address WA during the second half cycle of the clock.

상기 정적 램(43)은 클럭의 앞 반주기동안 발생된 상기 읽기 주소(RA)에 따라 저장된 데이터(S(k,i))를 상기 데이터버스로 출력함과 동시에, 클럭의 뒤 반주기동안 발생된 상기 쓰기 주소(WA)에 따라 상기 입력 데이터(D(k,i))를 저장한다.The static RAM 43 outputs the data S (k, i) stored in accordance with the read address RA generated during the first half period of the clock to the data bus and at the same time generated during the second half period of the clock. The input data D (k, i) is stored according to the write address WA.

상기 출력 버퍼(44)는 상기 정적 램(43)으로부터 출력된 데이터(S(k,i))를 래치하여 인터리빙된 데이터를 최종 출력한다.The output buffer 44 latches the data S (k, i) output from the static RAM 43 to finally output interleaved data.

상기 제어부(45)는 패킷 동기 신호(packet_sync)와, 바이트 클럭(byte_clock)에 따라 입력버퍼 인에이블 신호(IN_ENA)와, 정적 램 읽기신호(read), 정적 램 쓰기신호(write) 및, 출력버퍼 인에이블 신호(OUT_ENA)등의 제어신호를 발생하여 상기 입력 버퍼와(41), 정적 램(43) 및, 출력 버퍼(44)를 제어한다.The controller 45 may include an input buffer enable signal IN_ENA, a static RAM read signal, a static RAM write signal, and an output buffer according to a packet synchronization signal packet_sync and a byte clock. A control signal such as an enable signal OUT_ENA is generated to control the input buffer 41, the static RAM 43, and the output buffer 44.

도 5 는 본 발명에 따른 주소 할당 방법을 설명하기위한 정적 램의 주소 매핑도이다.5 is an address mapping diagram of a static RAM for explaining an address allocation method according to the present invention.

도 5에서 보는 바와 같이, 기본 주소(base_address)가 가르키는 1바이트(#0)는 도 3 의 0번 시프트레지스터(3-0)의 기능을 구현하기 위한 메모리 블럭이고, 다음 12바이트(#1)는 도 3의 1번 시프트레지스터(3-1)의 기능을 구현하기 위한 메모리 블럭으로, 이하 나머지 메모리 블럭(#2∼#145)에서도 도 3 의 시프트레지스터(3-2∼3-145)와 일대일 대응으로 구성되어 있다.As shown in FIG. 5, one byte (# 0) indicated by the base address (base_address) is a memory block for implementing the function of shift register 3-0 of FIG. 3, and the next 12 bytes (# 1). ) Is a memory block for implementing the functions of the first shift register 3-1 of FIG. 3, and the shift registers 3-2 to 3-145 of FIG. 3 are also described below in the remaining memory blocks # 2 to # 145. And one-to-one correspondence.

즉, 필요한 최소한의 메모리 용량(MEM_SIZE)은 145×12+1(bytes)이며, 1바이트로 구성된 1번 메모리 블럭의 주소가 최하위 주소가 된다.That is, the minimum memory capacity (MEM_SIZE) required is 145 x 12 + 1 (bytes), and the address of memory block 1 composed of 1 byte becomes the lowest address.

입력 심볼의 클럭에 동기되어 매 클럭마다 상기 기본 주소(base_address)가 1씩 증가하면서(우측에서 좌측으로), 클럭의 앞 반주기동안 상기 기본 주소(base_address)를 읽기 주소로 발생하여 데이터를 읽어냄으로써 도 3 의 시프트 작용은 달성된다.The base address (base_address) is increased by 1 (from right to left) every clock in synchronization with the clock of the input symbol, and the data is generated by reading the data by generating the base address (base_address) as a read address during the first half period of the clock. A shift action of 3 is achieved.

그리고, 실제 메모리를 액세스하기위한 읽기 주소(RA)와 쓰기 주소(WA)는 전체 메모리 크기(MEM_SIZE)로 모듈러 연산한 값을 순환 번지 지정 방식(circular addressing)으로 매핑하여 사용한다.The read address (RA) and the write address (WA) for accessing the physical memory are mapped to a circular addressing method by using a modular operation of the total memory size (MEM_SIZE).

여기서, 순환 번지 지정 방식이란, 미리 지정된 범위내의 최상위 번지나 최하위 번지에 도달하게 되면 다시 처음의 번지값으로 돌아가서 일정한 범위안에서 번지가 순환하는 번지 지정 방식이다.Here, the cyclic address designation method is a address designation method in which a address circulates within a predetermined range when the highest address or the lowest address in a predetermined range is reached, and then returns to the first address value.

상기 본 발명의 도 5 의 작용과 종래의 도 3의 작용을 서로 비교해 보면, 도 3의 가산기에 입력되는 탭은 입력 스위치가 선택한 탭에는 입력 데이터를, 다른 탭에는 0을 입력하는 것과 같고, 또한 선택된 탭에 해당하는 가산기의 다른 입력값은 0이 되기 때문에, 도 5 에서와 같이 정적 램에 입력 데이터를 저장하고 것만으로도 충분히 구현된다.Comparing the operation of Fig. 5 of the present invention with that of the conventional Fig. 3, a tap input to the adder of Fig. 3 is equivalent to inputting data into a tap selected by an input switch and 0 into another tap. Since the other input value of the adder corresponding to the selected tap becomes 0, it is sufficiently implemented by simply storing the input data in the static RAM as shown in FIG.

이어서, 도 5 의 메모리를 액세스 하기위한 인터리버의 주소 생성 알고리즘을 설명하기로 한다.Next, the address generation algorithm of the interleaver for accessing the memory of FIG. 5 will be described.

우선, 인터리버 주소 생성 알고리즘을 C 언어를 사용하여 기술하였으며, 스위치 동기와 관력된 동기 부분이 제외된 것이다.First, the interleaver address generation algorithm is described using the C language, and the switch synchronization and the related synchronization portion are excluded.

[표1]Table 1

인터리버 주소 생성 알고리즘 : C 프로그램 1Interleaver address generation algorithm: C program 1

#define N 146#define N 146

#define B 13#define B 13

while(system=ON) {while (system = ON) {

if(reset=ON) {if (reset = ON) {

base_address=0(or arbitrary position);base_address = 0 (or arbitrary position);

input_counter=0;input_counter = 0;

}}

else {else {

switch_position=input_counter;switch_position = input_counter;

RA = base_address;RA = base_address;

WA = ( base_address+switch_position*(B-1)+1)%MEM_SIZE;WA = (base_address + switch_position * (B-1) +1)% MEM_SIZE;

input_counter=(input_count+1)%N;input_counter = (input_count + 1)% N;

base_address=(base_address+1)%MEM_SIZE;base_address = (base_address + 1)% MEM_SIZE;

}}

1 system clock delay;1 system clock delay;

}}

상기 표 1 에서 RA는 정적 램의 읽기 주소이고, WA는 정적 램의 쓰기 주소이며, switch_position은 도 3의 스위치 탭번호에 해당하는 것으로 입력 데이터의 인덱스와 동일한 값이다.In Table 1, RA is a read address of the static RAM, WA is a write address of the static RAM, and switch_position corresponds to the switch tap number of FIG. 3 and is the same value as the index of the input data.

상기 표 1 을 간단히 설명하면, 시스템이 온 상태이고, 리셋인지를 판단한다.Briefly referring to Table 1, it is determined whether the system is on and reset.

리셋이면, 정적 램의 시작 주소를 가리키는 기본 주소(base_address)를 최하위 주소 0으로 지정하고, 주기의 몇번째 데이터인가를 알리는 카운터 변수(input_count)를 0으로 초기화 시킨다.When reset, the base address (base_address) indicating the start address of the static RAM is designated as the lowest address 0, and the counter variable (input_count) indicating the data of the period is initialized to 0.

리셋이 아니면, 스위치 위치를 알리는 스위치 변수(switch_position)는 상기 카운터 변수(input_count)로 지정하고, 읽기 주소(RA)는 상기 기본 주소(base_address)로 지정하고, 쓰기 주소(WA)는 상기 기본 주소(base_address)에다가 상기 스위치 변수(switch_position)의 (B-1)배한 값에 1을 더한 값을 합한 다음 메모리 크기(MEM_SIZE)로 모듈러 연산한 값을 지정한다.If not reset, a switch variable (switch_position) indicating a switch position is designated by the counter variable (input_count), a read address (RA) is designated by the base address (base_address), and a write address (WA) is designated by the base address ( base_address) is added to (B-1) multiplied by the switch variable (switch_position) plus 1, and then a modular operation value is designated as a memory size (MEM_SIZE).

그리고, 상기 카운터 변수(input_count)는 1증가하여 N으로 모듈러 연산한 값으로 지정하고, 상기 기본 주소(base_address)는 1증가하여 메모리 크기(MEM_SIZE)로 모듈러 연산한 값으로 지정한다.The counter variable input_count is increased by 1 and is designated as a value that is modularly calculated by N. The counter variable base_address is increased by 1 and is designated as a value that is modularly calculated by a memory size MEM_SIZE.

상기와 같이 진행되는 주소 생성 알고리즘을 주기 7 이고, 인터리빙 간격 3인 (N=7, B=3) 길쌈 인터리버에 적용한 결과를 하기 표 2에 나타내었다.The result of applying the address generation algorithm performed as described above to the convolutional interleaver having period 7 and interleaving interval 3 (N = 7, B = 3) is shown in Table 2 below.

[표 2]TABLE 2

주기 변수 k에 따른 (7, 3)길쌈 인터리버의 정적 램 주소 및 출력 데이터Static RAM Address and Output Data of (7, 3) Convolutional Interleaver According to Period Variable k

입력 데이터 D(k,i)Input data D (k, i) 카운트변수 input_countCount variable input_count 기본 주소base_addressBase address 읽기 주소(RA)Read Address (RA) 쓰기 주소(WA)Write Address (WA) 출력 데이터S(k,i)Output data S (k, i) D(1,0)D (1,0) 00 00 00 1One XX D(1,1)D (1,1) 1One 1One 1One 44 D(1,0)D (1,0) D(1,2)D (1,2) 22 22 22 77 XX D(1,3)D (1,3) 33 33 33 1010 XX D(1,4)D (1,4) 44 44 44 00 D(1,1)D (1,1) D(1,5)D (1,5) 55 55 55 33 XX D(1,6)D (1,6) 66 66 66 66 XX D(2,0)D (2,0) 00 77 77 88 D(1,2)D (1,2) D(2,1)D (2,1) 1One 88 88 1111 D(2,0)D (2,0) D(2,2)D (2,2) 22 99 99 1One XX D(2,3)D (2,3) 33 1010 1010 44 D(1,3)D (1,3) D(2,4)D (2,4) 44 1111 1111 77 D(2,1)D (2,1) D(2,5)D (2,5) 55 1212 1212 1010 XX D(2,6)D (2,6) 66 00 00 00 D(1,4)D (1,4) D(3,0)D (3,0) 00 1One 1One 22 D(2,2)D (2,2) D(3,1)D (3,1) 1One 22 22 55 D(3,0)D (3,0) D(3,2)D (3,2) 22 33 33 88 D(1,5)D (1,5) D(3,3)D (3,3) 33 44 44 1111 D(2,3)D (2,3)

상기 (7, 3)길쌈 인터리버의 정적 램 크기(=(N-1)×(B-1)+1)는 13바이트이고, 최상위번지를 '12'로, 최하위 번지를 '0'으로 가정하였을 경우에 대한 것이다.It is assumed that the static RAM size (= (N-1) × (B-1) +1) of the (7, 3) convolutional interleaver is 13 bytes, the highest address is '12' and the lowest address is '0'. It is about the case.

상기 표 2에서 보는 바와 같이, 읽기 주소(RA)는 클럭의 앞 반주기 동안에 최하위 주소(0)부터 1씩 증가하면서 순환 번지 지정 방식에 따라 발생하고 있다.As shown in Table 2, the read address RA is generated according to the cyclic address designation method while increasing by one from the lowest address 0 during the first half period of the clock.

그리고, 쓰기 주소(WA)는 클럭의 뒤 반주기 동안에 1번단의 최하위 주소(1)부터 3(=B)씩 증가하면서 순환 번지 지정 방식에 따라 발생하여 7(=N)주기로 입력되는 데이터를 저장하고, 다음 주기의 0차 심볼을 저장하기위한 주소는 이전 주기의 마지막 데이터의 주소에서 2(=B-1)씩 증가하여 발생한다.In addition, the write address WA increases by 3 (= B) from the lowest address (1) of the first stage during the half cycle of the clock, and occurs according to the cyclic address designation method to store data input in the 7 (= N) cycle. The address for storing the 0th order symbol of the next period is generated by incrementing 2 (= B-1) from the address of the last data of the previous period.

따라서, 입력 데이터의 스트림중 이웃한 두개의 데이터사이에 2(=B-1)개의 데이터가 삽입되어 인터리빙된 데이터를 얻을 수 있는 것이다.Therefore, 2 (= B-1) data is inserted between two neighboring data in the stream of input data to obtain interleaved data.

이어서, 디인터리빙 방법에 대해서 N=7, B=3인 (7, 3)길쌈 인터리버에 의해 출력된 데이터 스트림을 예를 들어 설명하고자 한다.Subsequently, the data stream output by the (7, 3) convolutional interleaver with N = 7 and B = 3 will be described with reference to the deinterleaving method.

몇번째 주기를 나타내는 주기 변수 k에 따라 7개의 심볼을 주기로 인덱스 i (0≤i≤6)를 갖는 심볼 D(k,i)는 길쌈 인터리버에 입력되어 다음 표 2 와 같은 순서로 출력된다.The symbol D (k, i) having the index i (0 ≦ i ≦ 6) is input to the convolutional interleaver with seven symbols in cycles according to the period variable k representing the several periods, and is output in the order shown in Table 2 below.

[표 3]TABLE 3

인터리버 출력 순서Interleaver Output Order

kk D(k,i), 0≤i≤5D (k, i), 0≤i≤5 1One D(1,0), X, X, D(1,1), X, X, D(1,2)D (1,0), X, X, D (1,1), X, X, D (1,2) 22 D(2,0), X D(1,3), D(2,1), X, D(1,4), D(2,2)D (2,0), X D (1,3), D (2,1), X, D (1,4), D (2,2) 33 D(3,0), D(1,5), D(2,3), D(3,1), D(1,6), D(2,4), D(3,2)D (3,0), D (1,5), D (2,3), D (3,1), D (1,6), D (2,4), D (3,2) 44 D(4,0), D(2,5), D(3,3), D(4,1), D(2,6), D(3,4), D(4,2)D (4,0), D (2,5), D (3,3), D (4,1), D (2,6), D (3,4), D (4,2) : : : : : : :: : : : : : D(k,0), D(k,5), D(k,3), D(k,1), D(k,6), D(k,4), D(k,2)D (k, 0), D (k, 5), D (k, 3), D (k, 1), D (k, 6), D (k, 4), D (k, 2)

상기 표 3에서, X 는 시스템 초기에 레지스터에 들어 있는 임의의 데이터를 표시한 것이다. 상기에서 표 3에서 보는 바와 같이, 디인터리버에서는 입력되는 데이터 N개를 주기로 하였을 때, 인터리버 입력 인덱스 i가 0, 5, 3, 1, 6, 4, 2 인 데이터 순으로 입력된다.In Table 3 above, X represents any data contained in a register at the beginning of the system. As shown in Table 3 above, in the deinterleaver, when N data is inputted, the interleaver input index i is input in the order of data having 0, 5, 3, 1, 6, 4 and 2.

따라서, 디인터리버는 인터리버에서의 인덱스에 따른 지연량(상기 수학식 1)을 역으로 적용하여, 모든 인덱스에 따른 지연량을 동일하게 만들어주므로써, 인터리버의 입력 순서와 디인터리버의 출력 순서가 동일하게 되도록 하여야 한다.Therefore, the deinterleaver reversely applies the delay amount according to the index (Equation 1) in the interleaver, thereby making the delay amount according to all the indexes equal, so that the input order of the interleaver and the output order of the deinterleaver are the same. Should be made.

즉, 디인터리버에서는 입력되는 데이터의 인터리버 입력에서의 인덱스에 따라 하기 수학식 3과 같은 상대적인 지연양을 갖도록 해야 한다.That is, the deinterleaver should have a relative delay amount as shown in Equation 3 according to the index of the interleaver input of the input data.

따라서, N=7이고, B=3인 디인터리버에서는 인터리버의 입력 인덱스 i=0은 6×2, i=5는 1×2, i=3은 3×2, i=1은 5×2, i=6은 0×2, i=4는 2×2, i=2는 4×2 만큼의 지연량을 주도록 해야한다.Therefore, in the deinterleaver N = 7 and B = 3, the interleaver's input index i = 0 is 6 × 2, i = 5 is 1 × 2, i = 3 is 3 × 2, i = 1 is 5 × 2, i = 6 should be delayed by 0x2, i = 4 by 2x2, and i = 2 by 4x2.

지금까지의 설명을 간단히 요약하면, 도 3의 블럭도를 (7,3)인터리버/디인터리버에 적용시킬 경우, 인터리버에서는 의 가산기 입력 탭 번호 #0,#1,#2,#3,#4,#5,Briefly summarizing the above description, when the block diagram of FIG. 3 is applied to the (7,3) interleaver / deinterleaver, the interleaver adder input tab numbers # 0, # 1, # 2, # 3, # 4 , # 5,

#6 을 차례로 스위칭 작용이 발생하고, 디인터리버에서는 #6,#1,#3,#5,#0,#2,#4 순서로 각 탭에 스위칭하여 연결하는 것과 같다.Switching action occurs # 6 in turn, and in the deinterleaver, it is equivalent to switching to each tap in the order of # 6, # 1, # 3, # 5, # 0, # 2, # 4.

이어서, 디인터리버의 스위칭 순서를 구하는 알고리즘을 설명하기로 한다.Next, an algorithm for obtaining the switching order of the deinterleaver will be described.

우선, N=146, B=12 인 DSS 경우에 디인터리버에서의 스위칭 알고리즘을 C 언어를 사용하여 기술하면 다음과 같다.First, the switching algorithm in the deinterleaver in the case of DSS where N = 146 and B = 12 is described using C language as follows.

[표 4]TABLE 4

디인터리버의 스위칭 순서를 구하는 알고리즘 : C 프로그램 2Algorithm to find the switching order of deinterleaver: C program 2

#define N 146#define N 146

#define B 13#define B 13

main()main ()

{{

int n, i;int n, i;

int H[N], G[N];int H [N], G [N];

FILE *outf;FILE * outf;

outf=fopen(dsspkg.vhd,w);outf = fopen (dsspkg.vhd, w);

for (n=0;nN;n++) H[n]= n * B % N;for (n = 0; nN; n ++) H [n] = n * B% N;

for(j=0;jN;j++)for (j = 0; jN; j ++)

{ for(n=0;nN;n++){for (n = 0; nN; n ++)

{ if(H[n]==j){if (H [n] == j)

G[j]=n; }G [j] = n; }

fprint(outf,#%d, ,N-1-G[j] );fprint (outf, #% d,, N-1-G [j]);

}}

fclose(outf);fclose (outf);

}}

상기 표 4에서 변수 n 은 인터리버의 입력 순서를 나타내는 입력 인덱스이고, H[n] 은 인터리버에서의 출력 데이터가 N 주기의 몇 번째 출력되는지를 나타낸다. 변수 j 는 디인터리버의 입력 순서를 나타내는 입력 인덱스이고, G[j]는 H[n]의 역함수이다.In Table 4, the variable n is an input index indicating the input order of the interleaver, and H [n] indicates the number of times of N cycles of output data from the interleaver. The variable j is an input index indicating the input order of the deinterleaver, and G [j] is an inverse function of H [n].

상기 표 4를 간단히 설명하면, 인터리버의 출력 순서 H[n]는 입력 인덱스 n 과 인터리빙 간격 B를 곱하여 N으로 모듈러 연산한 값이다.상기 H[n]값의 역함수 G[j] (=n)는 디인터리버의 입력 인덱스 j 에 해당하는 데이터가 인터리버에서는 N주기의 몇번째 입력 데이터였는지를 알려주는 입력 인덱스 n에 해당한다.상기 인터리버의 인덱스 G[j]=n 값을 이용하여 상기 수학식 3 과 같이 지연량을 결정해주는 스위칭 순서 N-1-G[j] 를 구한다.In brief description of Table 4, the output order H [n] of the interleaver is a value calculated by multiplying the input index n and the interleaving interval B by N. The inverse function G [j] of the H [n] value (= n) Corresponds to an input index n indicating the number of input data of N periods in the interleaver in the interleaver. Equation 3 is expressed using the value of the index G [j] = n of the interleaver. Obtain the switching order N-1-G [j] that determines the delay amount as follows.

상기 프로그램 2의 결과를 표 4에 나타내었다.The results of the program 2 are shown in Table 4.

[표 4]TABLE 4

디인터리버의 스위칭 순서 : 탭 번호Deinterleaver switching order: tap number

#145, #100, #55, #10, #111, #66, #21, #122, #77, #32, #133, #88, #43,# 145, # 100, # 55, # 10, # 111, # 66, # 21, # 122, # 77, # 32, # 133, # 88, # 43, #144, #99, #54, #9, #110, #65, #20, #121, #76, #31, #132, #87, #42,# 144, # 99, # 54, # 9, # 110, # 65, # 20, # 121, # 76, # 31, # 132, # 87, # 42, #143, #98, #53, #8, #109, #64, #19, #120, #75, #30, #131, #86, #41,# 143, # 98, # 53, # 8, # 109, # 64, # 19, # 120, # 75, # 30, # 131, # 86, # 41, : : : :: : : : #137, #92, #47, #2, #103, #58, #13, #114, #69, #24, #125, #80, #35,# 137, # 92, # 47, # 2, # 103, # 58, # 13, # 114, # 69, # 24, # 125, # 80, # 35, #136, #91, #46, #1, #102, #57, #12, #113, #68, #23, #124, #79, #34,# 136, # 91, # 46, # 1, # 102, # 57, # 12, # 113, # 68, # 23, # 124, # 79, # 34, #135, #90, #45, #0, #101, #56, #11, #112, #67, #22, #123, #78, #33,# 135, # 90, # 45, # 0, # 101, # 56, # 11, # 112, # 67, # 22, # 123, # 78, # 33, #134, #89, #44# 134, # 89, # 44

상기와 같이 구한 디인터리버의 스위칭 순서를 이용하여 디인터리버를 위한 주소 생성 알고리즘을 C 언어를 사용하여 기술하였다.The address generation algorithm for the deinterleaver was described using the C language using the switching order of the deinterleaver obtained as described above.

[표 5]TABLE 5

디인터리버의 주소 생성 C 프로그램 2Address generation C program 2 of deinterleaver

constant N=146;constant N = 146;

constant B=13;constant B = 13;

constant switching_orther[N]= {145,100,55,10,111,66,21,122,77,32,133,88,43,constant switching_orther [N] = {145,100,55,10,111,66,21,122,77,32,133,88,43,

144, 99,54, 9,110,65,20,121,76,31,132,87,42,144, 99,54, 9,110,65,20,121,76,31,132,87,42,

143, 98,53, 8,109,64,19,120,75,30,131,86,41,143, 98,53, 8,109,64,19,120,75,30,131,86,41,

142, 97,52, 7,108,63,18,119,74,29,130,85,40,142, 97,52, 7,108,63,18,119,74,29,130,85,40,

141, 96,51, 6,107,62,17,118,73,28,129,84,39,141, 96,51, 6,107,62,17,118,73,28,129,84,39,

140, 95,50, 5,106,61,16,117,72,27,128,83,38,140, 95,50, 5,106,61,16,117,72,27,128,83,38,

139, 94,49, 4,105,60,15,116,71,26,127,82,37,139, 94,49, 4,105,60,15,116,71,26,127,82,37,

138, 93,48, 3,104,59,14,115,70,25,126,81,36,138, 93,48, 3,104,59,14,115,70,25,126,81,36,

137, 92,47, 2,103,58,13,114,69,24,125,80,35,137, 92,47, 2,103,58,13,114,69,24,125,80,35,

136, 91,46, 1,102,57,12,113,68,23,124,79,34,136, 91,46, 1,102,57,12,113,68,23,124,79,34,

135, 90,45, 0,101,56,11,112,67,22,123,78,33,135, 90,45, 0,101,56,11,112,67,22,123,78,33,

134, 89,44 }134, 89,44}

while(system=ON) {while (system = ON) {

if(reset=ON) {if (reset = ON) {

base_address=0(or arbitrary position);base_address = 0 (or arbitrary position);

input_counter=0;} else{input_counter = 0;} else {

switch_position=constant(input_counter);switch_position = constant (input_counter);

RA = base_address;RA = base_address;

WA=(base_address+switch_position*(B-1)+1)%MEM_SIZE;WA = (base_address + switch_position * (B-1) +1)% MEM_SIZE;

input_counter=(input_count+1)% N;input_counter = (input_count + 1)% N;

}}

base_address=(base_address+1)% MEM_SIZE;base_address = (base_address + 1)% MEM_SIZE;

1 system clock delay;1 system clock delay;

}}

상기 표 5에서 보는 바와 같이, 디인터리버의 알고리즘은 스위칭 순서만 다를 뿐, 주소 생성 방법은 동일하게 적용된다.As shown in Table 5, the deinterleaver algorithm differs only in the switching order, and the address generation method is equally applied.

상기 표 5를 적용한 (N=7, B=3)길쌈 디인터리버 실시예를 표 6에 나타내었다.Table 6 shows an example of the (N = 7, B = 3) weaving deinterleaver applying Table 5.

[표 6]TABLE 6

주기 변수 k에 따른 (7, 3)길쌈 디인터리버의 정적 램 주소 및 출력 데이터Static RAM Address and Output Data of (7, 3) Convolutional Deinterleaver According to Period Variable k

상기 표 6에서 보는 바와 같이, 시스템이 초기화 된 이후 14 클럭이 지난 후부터 출력되는 데이터는 인터리빙 전의 원래 순서대로 복원되어 디인터리빙이 완벽하게 수행되는 것을 볼수 있다.As shown in Table 6, the data output after 14 clocks after the system initialization is restored in its original order before interleaving, so that the deinterleaving is performed perfectly.

즉, 디인터리버의 하드웨어 구조는 도 4에 도시한 인터리버의 구조와 동일하며, 다만 정적 램을 액세스하기 위한 주소를 생성하는 데에 있어서, 입력 순서에 대응되는 도 3의 스위칭 순서만 다르게 하여 주소를 생성하면 되는 것이다.That is, the hardware structure of the deinterleaver is the same as that of the interleaver shown in FIG. 4, except that the address is changed by only changing the switching order of FIG. 3 corresponding to the input order in generating an address for accessing the static RAM. You just need to create it.

이어서, 도 6 은 도 4 의 길쌈 인터리버 동작을 설명하기 위한 여러 제어신호에 대한 타이밍도이다. 도 6은 인터리빙되는 과정을 N=146, B=13 을 사용하는 DSS 방식의 길쌈 인터리버의 작용을 도시한 것이다.6 is a timing diagram for various control signals for explaining the convolutional interleaver operation of FIG. 4. 6 illustrates the operation of the convolutional interleaver of the DSS method using N = 146 and B = 13 for the interleaving process.

6A는 바이트 클럭 신호(byte_clock)이고, 6B는 입력 데이터 스트림 (D(k,i))으로, 바이트 클럭(byte_clock)에 동기되어 상기 입력 버퍼(41)로 입력된다.6A is a byte clock signal (byte_clock), 6B is an input data stream (D (k, i)), and is input to the input buffer 41 in synchronization with the byte clock (byte_clock).

6C는 입력 버퍼의 인에이블 신호(IN_ENA)로서, 상기 제어부(45)에서 클럭신호와 동일하게 발생하며, 액티브 로우 신호(avctive low)이다.6C is an enable signal IN_ENA of the input buffer, which is generated in the same manner as the clock signal in the controller 45 and is an active low signal.

6D는 입력 버퍼 출력 데이터로서, 상기 입력 버퍼 인에이블 신호(IN_ENA)에 의해 한 클럭지연 된 후, 바이트 클럭의 뒤 반주기동안 데이터버스에 실린다.6D is input buffer output data, which is delayed by one clock by the input buffer enable signal IN_ENA, and then loaded on the data bus for the next half cycle of the byte clock.

6E는 정적 램 쓰기 신호(write)로서, 상기 제어부(45)에서 클럭신호와 동일하게 발생하며, 액티브 로우 신호이다.6E is a static RAM write signal (write), which is generated in the same manner as the clock signal by the controller 45 and is an active low signal.

6F는 정적 램 읽기 신호(read)로서, 상기 제어부(45)에서 클럭신호를 반전 시켜 발생하며, 액티브 로우 신호이다.6F is a static RAM read signal, which is generated by inverting the clock signal by the controller 45 and is an active low signal.

6G는 어드레스 버스에 실린 정적 램을 액세스 하기 위한 주소 데이터로서, 상기 주소 생성부(44)에서 클럭의 앞 반주기동안에는 읽기 주소(RA)가 발생되고, 클럭의 뒤 반주기 동안에는 쓰기 주소(WA)가 발생된다.6G is address data for accessing a static RAM loaded on an address bus. The address generator 44 generates a read address RA during the first half cycle of the clock and a write address WA during the half cycle of the clock. do.

6H는 데이터 버스에 실린 데이터로서, 클럭의 앞 반주기 동안에는 상기 읽기 주소(RA)에 따라 상기 정적 램의 출력 데이터(S(k,i))가 실리고, 클럭의 뒤 반주기 동안에는 상기 입력 버퍼의 출력 데이터(D(k,i))가 실린다.6H is data loaded on a data bus, and output data S (k, i) of the static RAM is loaded according to the read address RA during the first half cycle of the clock, and output data of the input buffer during the half cycle of the clock. (D (k, i)) is loaded.

6I는 출력 래치의 인에이블 신호(OUT_ENA)로서, 상기 제어부(25)에서 클럭 신호를 반전시켜 발생하며, 액티브 로우 신호이다.6I is an enable signal OUT_ENA of the output latch, and is generated by inverting the clock signal by the controller 25 and is an active low signal.

6J는 출력 래치의 출력 데이터(S(k,i))로서, 클럭의 앞 반주기에 실리는 상기 정적 램의 출력 데이터가 래치된다.6J is output data S (k, i) of the output latch, in which the output data of the static RAM carried in the previous half cycle of the clock is latched.

또한, 상기 도 6의 제어신호(6C, 6E, 6F, 6I)는 디인터리버에도 동일하게 적용되므로서, 원래 데이터 순서로 디인터리빙이 수행된다.In addition, since the control signals 6C, 6E, 6F, and 6I of FIG. 6 are equally applied to the deinterleaver, deinterleaving is performed in the original data order.

이상에서 살펴본 바와 같이, 본 발명에 의한 정적 램의 주소 생성 방법을 적용한 길쌈 인터리버/디인터리버에서는 최소한의 메모리(=(N-1)×(B-1)+1)(Bytes)만을 사용하므로써, 이론상 최적의 메모리를 사용하는 효과가 있다.As described above, in the convolutional interleaver / deinterleaver applying the static RAM address generation method according to the present invention, by using only a minimum of memory (= (N-1) × (B-1) +1) (Bytes), In theory, it has the effect of using optimal memory.

또한, 각종 제어 신호들이 클럭신호와 반전된 클럭신호이기 때문에 제어 수단을 간단한 하드웨어로 쉽게 구현할 수 있는 효과가 있다.In addition, since the control signals are clock signals inverted from the clock signals, the control means can be easily implemented in simple hardware.

Claims (7)

데이터 스트림을 인터리빙 간격 B로 재배열하여 전송하고, 이를 수신하여 원래 데이터 스트림의 순서대로 복원하는 길쌈 인터리버/디인터리버에 있어서,A convolutional interleaver / deinterleaver for rearranging data streams at an interleaving interval B, transmitting the received data streams, and restoring the data streams in the order of the original data stream. 입력 데이터를 바이트 단위로 래치하여 데이터버스로 출력하는 입력 수단(41)과;Input means (41) for latching input data in byte units and outputting the data to a data bus; 읽기 주소(RA)와 쓰기 주소(WA)를 발생하는 주소 생성 수단(42);Address generating means 42 for generating a read address RA and a write address WA; 상기 읽기 주소(RA)에 따라 저장된 데이터를 상기 데이터 버스로 출력함과 동시에, 상기 쓰기 주소(WA)에 따라 상기 데이터 버스에 실린 데이터를 저장하는 정적 램(43);A static RAM (43) for outputting data stored according to the read address (RA) to the data bus and simultaneously storing data carried on the data bus according to the write address (WA); 상기 정적 램(43)으로부터 출력된 데이터를 바이트 단위로 래치하여 출력하는 출력 수단(44); 및Output means (44) for latching and outputting data output from the static RAM (43) in units of bytes; And 패킷 동기 신호(packet_sync)와 바이트 클럭 신호(byte_clock)에 따라 입력수단 인에이블 신호(IN_ENA)와, 정적 램 읽기신호(read), 정적 램 쓰기신호(write) 및, 출력수단 인에이블 신호(OUT_ENA) 등의 제어신호를 발생하는 제어수단(45)을 포함하여 구성되는 것을 특징으로 하는 정적 램을 이용한 길쌈 인터리버/디인터리버.The input means enable signal IN_ENA, the static RAM read signal, the static RAM write signal, and the output means enable signal OUT_ENA according to the packet synchronization signal packet_sync and the byte clock signal byte_clock. Convolutional interleaver / deinterleaver using a static RAM, characterized in that it comprises a control means for generating a control signal such as. 제 1 항에 있어서, 상기 제어수단(45)은 클럭 신호(byte_clock)를 입력 수단 인에이블 신호(IN_ENA)로 발생하여 상기 입력 수단(41)에 제공하는 것을 특징으로 하는 정적 램을 이용한 길쌈 인터리버/디인터리버.The convolutional interleaver according to claim 1, wherein the control means 45 generates a clock signal byte_clock as an input means enable signal IN_ENA and provides it to the input means 41. Deinterleaver. 제 1 항에 있어서, 상기 제어수단(45)은 클럭 신호(byte_clock)를 정적 램 쓰기 신호(WT)로 발생하여 상기 정적 램(43)으로 제공하는 것을 특징으로 하는 정적 램을 이용한 길쌈인터리버/디인터리버.The convolutional interleaver / de-decier of claim 1, wherein the control means 45 generates a clock signal byte_clock as a static RAM write signal WT and provides the clock signal to the static RAM 43. Interleaver. 제 1 항에 있어서, 상기 제어수단(45)은 클럭 신호(byte_clock)를 반전시켜 정적 램 읽기 신호(read)로 발생하여 상기 정적 램(43)으로 제공하는 것을 특징으로 하는 정적 램을 이용한 길쌈인터리버/디인터리버.The convolutional interleaver of claim 1, wherein the control means 45 inverts a clock signal (byte_clock) to generate a static RAM read signal (read) to provide the static RAM 43 to the static RAM 43. Deinterleaver. 제 1 항에 있어서, 상기 제어수단(45)은 클럭 신호(byte_clock)를 출력수단 인에이블 신호(OUT_ENA)로 발생하여 상기 출력 수단(44)으로 제공하는 것을 특징으로 하는 정적 램을 이용한 길쌈인터리버/디인터리버.The convolutional interleaver using a static RAM according to claim 1, wherein the control means (45) generates a clock signal (byte_clock) as an output means enable signal (OUT_ENA) and provides it to the output means (44). Deinterleaver. 바이트단위로 입력되는 데이터 스트림을 N개의 데이터를 주기로 하여, 인터리빙 간격 B로 인터리빙하는 데 있어서,In interleaving the data stream input in the unit of byte with the interval of N data, at the interleaving interval B, 메모리 크기가 (N-1)×B+1(bytes)의 정적 램을 순환 번지 지정 방식으로 매핑하기 위해서, 시스템 초기시, 기본 주소(BASE_ADDR)를 초기화하는 제 1 과정과;A first step of initializing a base address (BASE_ADDR) at system initial stage in order to map a static RAM having a memory size of (N-1) × B + 1 (bytes) in a cyclic address designation method; N주기의 0차 심볼 D(k,0)의 지연을 위해서, 상기 기본 주소(BASE_ADDR)를 클럭의 앞 반주기동안 읽기 주소(RA0)로 발생하고, 상기 읽기 주소(RA0)+1 을 클럭의 뒤 반주기동안 쓰기 주소(WA0)로 발생하는 제 2 과정;In order to delay the Nth order 0th symbol D (k, 0), the base address BASE_ADDR is generated as the read address RA0 for the first half period of the clock, and the read address RA0 + 1 is after the clock. A second process occurring at the write address WA0 for half a period; N주기의 나머지 심볼(D(k,i), 1≤i≤N-1)의 지연을 위해서, 이전 클럭의 읽기 주소(RAi-1)+1 을 클럭의 앞 반주기 동안 읽기 주소(RAi)로 발생하고, 상기 읽기 주소(RAi)+심볼 차수(i)×(B-1)+1 을 클럭의 뒤 반주기 동안 쓰기 주소(WAi)로 발생하는 제 3 과정을 포함하여 구성되는 것을 특징으로 하는 정적 램의 주소 생성 방법.For the delay of the remaining symbols of the N period (D (k, i), 1≤i≤N-1), the read address (RAi-1) +1 of the previous clock is read to the read address (RAi) for the first half period of the clock. And a third process of generating the read address (RAi) + symbol order (i) x (B-1) + 1 as a write address (WAi) during a later half cycle of the clock. How to generate RAM address. 인터리빙된 데이터열을 바이트 단위로 입력받아 N주기 (=S(k,0), S(k,1),…,S(k,N-1))로 디인터리빙하는 데 있어서,Deinterleaving the interleaved data strings in byte units for N periods (= S (k, 0), S (k, 1), ..., S (k, N-1)), 쓰기 주소(WAi)를 생성하기 위해서, 입력 심볼의 인덱스 i 에 따라 (N-1)×B+1(bytes) 정적 램의 스위칭 위치(switch_position)를 결정하는 제 1 과정;A first process of determining a switching position of a (N−1) × B + 1 (bytes) static RAM according to an index i of an input symbol to generate a write address WAi; 상기 정적 램을 순환 번지 지정 방식으로 매핑하기 위해서, 기본 주소(base_address)를 초기화하는 제 2 과정;A second process of initializing a base_address to map the static RAM in a cyclic address designation method; N주기의 0차 심볼 S(k,0)의 지연을 위해서, 상기 기본 주소(base_address)를 클럭의 앞 반주기동안 읽기 주소(RA0)로 발생하고, 상기 읽기 주소(RA0)+1+스위칭 위치×(B-1) 을 클럭의 뒤 반주기동안 쓰기 주소(WA0)로 발생하는 제 2 과정;In order to delay the Nth order symbol S (k, 0), the base address (base_address) is generated as the read address (RA0) for the first half period of the clock, and the read address (RA0) + 1 + switching position x A second process of generating (B-1) to the write address WA0 for a half cycle after the clock; N주기의 나머지 심볼(S(k,i), 1≤i≤N-1)의 지연을 위해서, 이전 클럭의 읽기 주소(RAi-1)+1 을 클럭의 앞 반주기 동안 읽기 주소(RAi)로 발생하고, 상기 읽기 주소(RAi)+1+스위칭 위치×(B-1) 을 클럭의 뒤 반주기동안 쓰기 주소(WAi)로 발생하는 제 3 과정을 포함하여 구성되는 것을 특징으로 하는 정적 램의 주소 생성 방법.For the delay of the remaining symbols of N periods (S (k, i), 1≤i≤N-1), the read address (RAi-1) +1 of the previous clock is read to the read address (RAi) for the first half period of the clock. And a third process of generating the read address (RAi) + 1 + switching position × (B-1) as a write address (WAi) for a half cycle after the clock. How to produce.
KR1019960043231A 1996-09-30 1996-09-30 Address forming method of static ram KR100215566B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960043231A KR100215566B1 (en) 1996-09-30 1996-09-30 Address forming method of static ram

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960043231A KR100215566B1 (en) 1996-09-30 1996-09-30 Address forming method of static ram

Publications (2)

Publication Number Publication Date
KR19980023731A true KR19980023731A (en) 1998-07-06
KR100215566B1 KR100215566B1 (en) 1999-08-16

Family

ID=19475758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960043231A KR100215566B1 (en) 1996-09-30 1996-09-30 Address forming method of static ram

Country Status (1)

Country Link
KR (1) KR100215566B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100413421B1 (en) * 1999-10-08 2003-12-31 엘지전자 주식회사 Method for dual Interleaving
KR100601624B1 (en) * 1999-10-30 2006-07-14 삼성전자주식회사 Apparatus and method for interleaving and deinterleaving
KR100711326B1 (en) * 1998-12-04 2007-04-27 콸콤 인코포레이티드 Turbo code interleaver using linear congruential sequences
KR101033582B1 (en) * 2004-04-09 2011-05-11 엘지전자 주식회사 Memory control method for time de-interleaving in a broadcast receiver

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800840B1 (en) * 2001-05-09 2008-02-04 삼성전자주식회사 Turbo interleaver and turbo interleaving method in cdma mobile communication system having turbo code

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100711326B1 (en) * 1998-12-04 2007-04-27 콸콤 인코포레이티드 Turbo code interleaver using linear congruential sequences
KR100413421B1 (en) * 1999-10-08 2003-12-31 엘지전자 주식회사 Method for dual Interleaving
KR100601624B1 (en) * 1999-10-30 2006-07-14 삼성전자주식회사 Apparatus and method for interleaving and deinterleaving
KR101033582B1 (en) * 2004-04-09 2011-05-11 엘지전자 주식회사 Memory control method for time de-interleaving in a broadcast receiver

Also Published As

Publication number Publication date
KR100215566B1 (en) 1999-08-16

Similar Documents

Publication Publication Date Title
EP0681373B1 (en) Convolutional interleaver with reduced memory requirements and address generator therefor
US6035427A (en) Convolutional interleaver and method for generating memory address therefor
US5592492A (en) Convolutional interleaving/de-interleaving method and apparatus for data transmission
KR100370239B1 (en) Memory device for applying to high speed block pipelined reed-solomon decoder and method of memory access and reed-solomon decoder having the memory device
UA63024C2 (en) Turbo coder; method and device for interleaving data elements
WO2002013449A2 (en) Apparatus and method for providing turbo code interleaving in a communications system
US7770010B2 (en) Dynamically configurable interleaver scheme using at least one dynamically changeable interleaving parameter
US5978883A (en) Block interleaving and deinterleaving method and device therefor
US20020083391A1 (en) Method and apparatus for encoding a product code
US7051261B1 (en) Turbo encoder with reduced processing delay
WO1984003157A1 (en) Burst error correction using cyclic block codes
KR100215566B1 (en) Address forming method of static ram
KR100499467B1 (en) Block interleaving method, and apparatus for the same
KR100243468B1 (en) Vitervi interlever / deinterlever using dual port memory
JP2001332980A (en) Device and method for interleave
KR100215565B1 (en) Address forming method of static ram
KR20030047100A (en) Apparatus for sharing memory between interleaver and deinterleaver in turbo decoder and method thereof
KR0123088B1 (en) Vitervi decoder used for memory
KR100248395B1 (en) Design method of channel encoder in digital communication
KR0183171B1 (en) Interleaver and deinterleaver and method thereof
JP4487385B2 (en) Digital satellite broadcast receiver, deinterleaving method and inverse energy diffusion processing method
RU29816U1 (en) Error-correcting code encoder
KR100192792B1 (en) Polynomial evaluator of rs decoder
SU771720A1 (en) Logic storage
JP2004153349A (en) Data transmitter and data receiver

Legal Events

Date Code Title Description
A201 Request for examination
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: 20120503

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130502

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee