KR0164726B1 - Parallel cycle redundancy check encoder - Google Patents
Parallel cycle redundancy check encoder Download PDFInfo
- Publication number
- KR0164726B1 KR0164726B1 KR1019950035261A KR19950035261A KR0164726B1 KR 0164726 B1 KR0164726 B1 KR 0164726B1 KR 1019950035261 A KR1019950035261 A KR 1019950035261A KR 19950035261 A KR19950035261 A KR 19950035261A KR 0164726 B1 KR0164726 B1 KR 0164726B1
- Authority
- KR
- South Korea
- Prior art keywords
- register
- signal
- signals
- feedback
- input
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
- G11B2020/1843—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a cyclic redundancy check [CRC]
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
본 발명은 병렬 CRC 엔코더를 공개한다. 그 회로는 소정수의 직렬연결된 소정비트 병렬 레지스터들, 상기 소정비트 병렬 레지스터들중 마지막단의 레지스터의 출력신호들 또는 소정비트의 입력데이타와 상기 마지막단의 레지스터의 출력신호를 각각 배타논리합한 신호들을 출력하기 위한 선택수단, 상기 입력데이타에 소정차수를 곱하고 그 곱한신호를 생성다향식으로 나눈 나머지들을 이용하여 궤환 입력신호들을 구하고, 엔코딩시에는 상기 선택수단에 의해서 선택된 신호를 배타논리합하여 상기 제1레지스터의 각 자리수에 해당하는 입력신호들을 발생하고, 디코딩시에는 상기 소정비트의 입력데이타의 각각과 상기 제1레지스터의 각 자리수에 해당하는 입력신호를 배타논리합한 신호를 상기 제1레지스터로 출력하기 위한 제1궤환수단, 및 상기 제1, 2 및 3레지스터의 출력신호들의 각각과 상기 제1선택수단에 의해서 선택된 신호들을 이용하여 각 자리수에 해당하는 궤환 입력신호들을 발생하여 상기 제2, 3, 및 4레지스터들로 입력하기 위한 제2궤환수단으로 구성되어 있다. 따라서, 동작속도를 개선할 수 있으며, 엔코더만을 이용하여 엔코딩뿐만아니라 디코딩까지 수행할 수 있다.The present invention discloses a parallel CRC encoder. The circuit exclusively combines a predetermined number of serially connected predetermined bit parallel registers, output signals of the last stage of the predetermined bit parallel registers, or input data of a predetermined bit and output signals of the last stage of the register, respectively. Selecting means for outputting the input data; multiplying the input data by a predetermined order and obtaining the feedback input signals using the remainder obtained by dividing the multiplied signal by the multiplicative expression. Input signals corresponding to each digit of one register are generated, and during decoding, a signal obtained by exclusively logically combining each of the input data of the predetermined bit and the input signal corresponding to each digit of the first register is output to the first register. A first feedback means, and output signals of the first, second and third registers, respectively The first consists of using the signal selected by the first selecting means to generate a feedback input signal for each digit in the second feedback means for inputting into the second, third, and fourth register. Therefore, the operation speed can be improved and not only encoding but also decoding can be performed using only the encoder.
Description
제1도는 CD-ROM 섹터 포맷중 모드 1 포맷을 나타내는 것이다.1 shows a mode 1 format among CD-ROM sector formats.
제2도는 종래의 CRC엔코더의 회로도이다.2 is a circuit diagram of a conventional CRC encoder.
제3도는 종래의 CRC 디코더의 회로도이다.3 is a circuit diagram of a conventional CRC decoder.
제4도는 본 발명의 8비트 병렬 CRC 엔코더의 회로도이다.4 is a circuit diagram of an 8-bit parallel CRC encoder of the present invention.
제5도는 제4도에 나타낸 출력부의 상세회로도이다.FIG. 5 is a detailed circuit diagram of the output unit shown in FIG.
본 발명은 사이클릭 리던던시 체크(CRC: cyclic redundancy check) 엔코더(encoder)에 관한 것으로, 특히 병렬 사이클릭 리던던시 체크 엔코더에 관한 것이다.The present invention relates to a cyclic redundancy check (CRC) encoder, and more particularly to a parallel cyclic redundancy check encoder.
멀티-미디어(multi-media)의 핵심부품인 컴팩트 디스크-리드 온리메모리(CD-ROM: compact disc-read only memory)의 디지털 신호 처리칩으로부터 받은 데이타를 외부메모리에 저장한 후 에러 정정 코드(ECC: error correcting code) 디코딩을 수행하여 디코더의 에러 정정 범위를 벗어나거나 또는 오정정으로 인한 데이타의 유실을 방지하기 위해 블럭단위의 CRC플래그를 출력한다. 이때 사용하는 CRC코드는 개념적으로 ECC부호와 같으나, 에러를 정정할 수는 없고 단지 블럭단위의 데이타 중 에러의 유무정보만을 출력하여 CD-RO데이타를 이용하는 개인용 컴퓨터(PC)상의 호스트 등에서 이 정보를 이용하여 데이타의 신뢰성을 판단하게 해 준다.Error correction code (ECC) after storing the data received from the digital signal processing chip of the compact disc-read only memory (CD-ROM), a key component of the multi-media, in the external memory : error correcting code) Decodes the CRC flag in units of blocks in order to prevent the loss of data due to error correction or beyond the decoder's error correction range. The CRC code used here is conceptually the same as the ECC code, but the error cannot be corrected. Only the information on the error in the block unit data is output to the host on a personal computer (PC) using the CD-RO data. Use this to judge the reliability of the data.
CRC의 부호 다항식(C(x))은 아래의 식으로 나타내어진다.The sign polynomial C (x) of the CRC is represented by the following equation.
상기 식(1)에서, C(x)는 부호 다항식(code polynomial), D(x)는 정보 다항식(information polynomial), R(x)는 나머지 다항식(residue polynomial), G(x)는 생성 다항식(generator plynomial), Q(x)는 임의의 몫, n은 부호 길이, k는 정보어의 길이를 각각 나타낸다.In Equation (1), C (x) is a code polynomial, D (x) is an information polynomial, R (x) is a residual polynomial, and G (x) is a production polynomial. (generator plynomial), Q (x) denotes an arbitrary quotient, n denotes a code length, and k denotes an information word length.
상기 식(1)은 ECC의 블럭 코드(block code)의 전형을 나타내고 있는데, CRC코드의 형태로 나타낸 것이다. CD-ROM의 섹터 포맷들은 모드1, 모드2, 모드2 폼1, 모드2 폼2, CD 디지탈 오디오 포맷등이 있으며, 제1도에 나타낸 모드1 포맷의 경우에 CD-ROM 1블럭의 2352바이트(bytes) 데이타중 2064바이트의 싱크 +헤더 +데이타에 대해 4바이트의 에러 검출코드(EDC: error detect code)패리티가 첨가된다. 즉, 제1도에 나타낸 CD-ROM 모드1의 경우 12바이트 싱크(bytes sync) + 4바이트 헤더(bytes header) +2048바이트의 주 데이타를 CRC코드의 정보 다항식(D(x))로 하였을 때, CD-ROM의 정해진 CRC용 생성 다항식(G(x))는 아래의 식으로 나타내어진다.Equation (1) shows a typical block code of ECC, which is represented in the form of a CRC code. The sector formats of the CD-ROM include Mode 1, Mode 2, Mode 2 Form 1, Mode 2 Form 2, and CD Digital Audio format. In the case of Mode 1 format shown in Fig. 1, 2352 bytes of one CD-ROM block are used. (bytes) 4 bytes of error detect code (EDC) parity is added for 2064 bytes of sync + header + data in the data. That is, in the CD-ROM mode 1 shown in FIG. 1, when the main data of 12 bytes sync + 4 bytes header + 2048 bytes is used as the information polynomial (D (x)) of the CRC code. , The generated polynomial G (x) for the specified CRC of the CD-ROM is represented by the following equation.
CRC는 원래 비트(bit) 단위의 코드이므로, CRC엔코더의 경우 상기 식(1)과 같이 2064바이트x8비트의 데이타 즉, 정보 다항식을 패리티(parity)(P(x))(즉, 나머지 다항식 R(x))의 차수만큼 쉬프트하여 생성 다항식(G(x))으로 나누면, 나머지 다항식(R(x))는 패리티(P(x))가 되어 정보 다항식뒤에 붙여주면 부호 다항식(C(x))를 형성한다. 즉, 부호 다항식은 C(x)=D(x)·xn-k+P(x)=Q(x)로 나타내어지고, 이때, 부호 다항식(C(x))는 생성 다항식(G(x)) 로 나누어 떨어지므로 이 성질을 이용하여 에러의 유무를 판단한다. 즉, 나누어서 떨어지면 에러가 없는 것으로, 나누어 떨어지지 않으면 에러가 있는 것으로 판단하게 된다.Since CRC is originally a bit unit code, in the case of CRC encoder, parity (P (x)) (ie, the remaining polynomial R) of 2064 bytes x 8 bits of data, that is, an information polynomial, is expressed as in Equation (1). (x)) and dividing by the generated polynomial (G (x)), the remaining polynomial (R (x)) becomes parity (P (x)). ). That is, the sign polynomial is represented by C (x) = D (x) · x nk + P (x) = Q (x), where the sign polynomial C (x) is a generated polynomial G (x). Since it is divided by, use this property to determine whether there is an error. In other words, it is determined that there is no error if divided, and that there is an error if not divided.
그러므로, CRC디코더는 전송되어 온 수신 다항식(r(x)=C(x) +e(x))를 쉬프트시키지 않고 바로 생성 다항식(G(x))로 나누어 0이 되는가를 확인하면 된다.Therefore, the CRC decoder does not shift the received polynomial (r (x) = C (x) + e (x)), and simply divides the generated polynomial (G (x)) and checks whether it becomes zero.
제2도는 종래의 CRC엔코더의 회로도로서, 32개의 플립플롭들(10-1, 10-2,... 10-32), XOR게이트들(4-1, 4-2, ...4-7), 멀티플렉서(6), 및 인버터(8)로 구성되어 있다.2 is a circuit diagram of a conventional CRC encoder, and includes 32 flip-flops 10-1, 10-2, ... 10-32, XOR gates 4-1, 4-2, ... 4- 7), the multiplexer 6, and the inverter 8 are comprised.
플립플롭들(10-1, 10-2, ... 10-32)은 직렬로 연결되어 리세트신호(RE)에 응답하여 리세트되고 클럭신호(CK)에 응답하여 이전의 플립플롭의 출력신호를 입력하고 출력하게 된다. 즉, 입력되는 데이타(D)와 플립플롭(10-32)의 출력신호를 XOR게이트(4-1)에 의해서 배타논리합한 신호를 쉬프트하여 출력하게 된다. 그런데 플립플롭들(10-2, 10-4, 10-5, 10-16, 10-17, 10-31)은 XOR게이트(4-1)의 출력신호와 이들 플립플롭들의 앞단의 플립플롭들이 출력신호를 각각 입력하여 XOR게이트들(4-2, 4-3, .. 4-7)에 의해서 배타논리합한 신호를 각각 입력신호로 입력한다. 멀티플렉서(6)는 선택신호(SEL)에 응답하여 입력 데이타(D) 또는 플립플롭(10-31)의 출력신호를 선택적으로 출력하게 된다.The flip-flops 10-1, 10-2, ... 10-32 are connected in series to be reset in response to the reset signal RE and to output the previous flip-flop in response to the clock signal CK. Input and output the signal. That is, a signal obtained by exclusively combining the input data D and the output signals of the flip-flop 10-32 by the XOR gate 4-1 is shifted and output. The flip-flops 10-2, 10-4, 10-5, 10-16, 10-17, and 10-31 are output signals of the XOR gate 4-1 and flip-flops at the front of these flip-flops. Input signals are respectively inputted to input signals that are exclusively logic by the XOR gates 4-2, 4-3, ... 4-7. The multiplexer 6 selectively outputs the input data D or the output signals of the flip-flops 10-31 in response to the selection signal SEL.
제3도는 종래의 CRC디코더의 회로도를 나타내는 것으로, 32개의 플립플롭들(10-1, 10-2, ..., 10-32), XOR 게이트들(12-1, 12-2, ..., 12-7), OR 게이트들(14-1, 14-2, ..., 14-8, 16-1, 16-2), 및 NOR게이트(18)로 구성되어 있다.3 shows a circuit diagram of a conventional CRC decoder, in which 32 flip-flops 10-1, 10-2, ..., 10-32, XOR gates 12-1, 12-2, ... , 12-7), OR gates 14-1, 14-2,..., 14-8, 16-1, 16-2, and NOR gate 18.
플립플롭들 (10-1, 10-2, ..., 10-32)은 직렬로 연결되어 리세트 신호(RE)에 응답하여 리세트되고 클럭신호(CK)에 응답하여 이전의 플립플롭의 출력신호를 입력하고 출력하게 된다. 즉, 입력되는 데이타(D)를 쉬프트하여 출력하게 된다. 그런데 플립플롭들(10-1, 10-2, 10-4, 10-5, 10-16, 10-17, 10-31)은 플립플롭(10-32)의 출력신호와 이들 플립플롭들의 이전의 플립플롭들의 출력신호를 각각 입력하여 XOR게이트들(12-1, 12-2, ..., 12-7)에 의해서 배타논리합한 신호를 각각 입력신호로 입력한다. 즉, 플립플롭들(10-1, 10-2, 10-4, 10-5, 10-16, 10-17, 10-31)은 디스크에 저장되어 있는 데이타를 식(1)의 생성 다항식(G(x))로 나눈 나머지, 즉 플립플롭(10-32)의 출력신호와 앞단의 플립플롭으로부터 쉬프트되는 신호를 배타논리합한 신호를 입력신호로 입력한다. OR게이트들(14-1, 14-2, ..., 14-8, 16-1, 16-2)은 각 플립플롭들의 출력신호들을 논리합한다. NOR게이트(18)은 OR게이트들(16-1, 16-2)의 출력신호들을 비논리합하여 신호(CROCK)를 출력한다.The flip-flops 10-1, 10-2, ..., 10-32 are connected in series to be reset in response to the reset signal RE and to the previous flip-flop in response to the clock signal CK. Input and output the output signal. That is, the input data D is shifted and output. However, the flip-flops 10-1, 10-2, 10-4, 10-5, 10-16, 10-17, and 10-31 are output signals of the flip-flop 10-32 and the transfer of these flip-flops. The input signals of the flip-flops of the input signals are respectively input, and the signals exclusively combined by the XOR gates 12-1, 12-2, ..., 12-7 are input as input signals. That is, the flip-flops 10-1, 10-2, 10-4, 10-5, 10-16, 10-17, and 10-31 generate data stored on the disk and generate the polynomial of formula (1). The signal divided by G (x)), that is, the output signal of the flip-flop 10-32 and the signal shifted from the flip-flop at the front end is input as an input signal. The OR gates 14-1, 14-2,..., 14-8, 16-1, and 16-2 OR the output signals of the respective flip-flops. The NOR gate 18 non-logically sums the output signals of the OR gates 16-1 and 16-2 and outputs a signal CROCK.
이와같이 구성된 종래의 CRC 엔코더 및 디코더는 비트단위의 실행이므로 제2도에 나타낸 모드1 포맷의 경우에 (2064바이트의 데이타+4바이트 패리티)x8개의 클럭신호가 필요하므로 엔코딩 및 디코딩 동작을 수행하는데 시간이 많이 걸린다는 단점이 있었다. 이러한, 종래기술의 문제점은 CRC 디코더의 디코딩 동작이 비트단위로 직렬로 수행되기 때문이다.Since the conventional CRC encoder and decoder configured as described above are executed in units of bits, in the case of the mode 1 format shown in FIG. 2 (2064 bytes of data + 4 bytes of parity) x 8 clock signals are required to perform encoding and decoding operations. This took a lot of disadvantages. The problem of the prior art is that the decoding operation of the CRC decoder is performed serially in bit units.
따라서, 본 발명의 목적은 엔코딩 동작속도를 개선하기 위한 병렬 CRC엔코더를 제공하는데 있다.Accordingly, an object of the present invention is to provide a parallel CRC encoder for improving the encoding operation speed.
또한, 본 발명의 다른 목적은 병렬 CRC엔코더를 이용하여 엔코딩 동작뿐만 아니라, 디코딩 동작까지 수행할 수 있는 병렬 CRC엔코더를 제공하는데 있다.Another object of the present invention is to provide a parallel CRC encoder capable of performing not only an encoding operation but also a decoding operation using a parallel CRC encoder.
상기 목적 및 다른 목적을 달성하기 위한 본 발명의 병렬 CRC엔코더는 소정비트의 입력데이타를 병렬로 입력하여 쉬프트하기 위한 소정수의 직렬 연결된 소정비트 병렬 레지스터들, 디코딩시에는 상기 소정비트 병렬 레지스터들중 마지막단의 레지스터의 출력신호들을 궤환신호로 출력하고 엔코딩시에는 상기 소정비트의 입력데이타와 상기 마지막단의 레지스터의 출력신호를 각각 배타논리합한 신호를 궤환입력신호로 출력하기 위한 선택수단, 상기 입력데이타에 소정차수를 곱하고 상기 곱한 신호를 생성다항식으로 나눈 나머지들을 이용하여 궤환 입력신호들을 구하고, 엔코딩시에는 상기 선택수단에 의해서 선택된 신호를 배타논리합하여 상기 제1레지스터의 각 자리수에 해당하는 입력신호들을 발생하고, 디코딩시에는 상기 소정비트의 입력데이타의 각각과 상기 제1레지스터의 각 자리수에 해당하는 입력신호를 배타논리합하여 상기 제1레지스터의 각 자리수에 해당하는 입력신호를 발생하기 위한 제1궤환수단, 및 상기 제1, 2 및 3레지스터의 출력신호들의 각각과 상기 제1선택수단에 의해서 선택된 신호들을 이용하여 각 자리수에 해당하는 궤환 입력신호들을 발생하여 상기 제2, 3, 및 4레지스터들로 입력하기 위한 제2궤환수단을 구비한 것을 특징으로 한다.A parallel CRC encoder of the present invention for achieving the above object and other objects is a predetermined number of serially connected predetermined bit parallel registers for shifting by inputting a predetermined bit of input data in parallel, among the predetermined bit parallel registers. Selection means for outputting the output signals of the last register as a feedback signal and for outputting a signal obtained by exclusively summating the input data of the predetermined bit and the output signal of the register of the last stage as a feedback input signal when encoding; The feedback input signals are obtained by multiplying the data by a predetermined order and dividing the multiplied signal by the polynomial, and when encoding, the input signal corresponding to each digit of the first register by exclusive logical sum of the signal selected by the selection means. To generate a predetermined number of bits. A first feedback means for generating an input signal corresponding to each digit of the first register by exclusively logically combining an input signal corresponding to each digit and each digit of the first register, and the first, second and third registers And a second feedback means for generating feedback input signals corresponding to each digit using each of the output signals and the signals selected by the first selection means, and inputting them to the second, third, and fourth registers. It features.
첨부된 도면을 참고로 하여 본 발명의 병렬 CRC엔코더를 설명하면 다음과 같다.Referring to the accompanying drawings, the parallel CRC encoder of the present invention will be described.
본 발명의 8비트 병렬 CRC엔코더는 입력 데이타(xi)에 x4을 곱하여 생성 다항식(G(x))로 나눈 나머지를 이용하여 회로를 구현 한다.The 8-bit parallel CRC encoder of the present invention implements a circuit using the remainder obtained by multiplying the input data (x i ) by x 4 and dividing by the generation polynomial (G (x)).
예를 들면, x24에 x8을 곱하고 식(2)의 생성 다항식(G(x))로 나누면, 나머지는 x31+x16+x15+x4+x3+1이 된다.For example, multiplying x 24 by x 8 and dividing by the product polynomial (G (x)) in Equation (2) gives the remainder x 31 + x 16 + x 15 + x 4 + x 3 +1.
입력 데이타(xi)가 x0-x31이고, 생성 다항식(G(x))의 차수가 x32이므로, xi·x8의 경우 x24·xi부터 x31·xi에 x8을 곱했을 때, G(x)의 차수이상이 되므로 이때의 xi·x8을 G(x)로 나눈 나머지들을 궤환시키고, x0·xi부터 x23·xi는 x8을 곱해도 G(x)의 차수를 초과하지 못하므로 그냥 쉬프트 시켜 주면된다.The input data (x i) x 0 -x 31 and, since the degree of the generator polynomial (G (x)) x 32 , when the x i · x 8 to 24 x · x i from the x 31 · x i x 8 when multiplied by, the above order of G (x) because the feedback the remainder obtained by dividing the case of x i · x 8 by G (x), and from x 0 · x i x 23 · x i is also multiplied by x 8 Since the order of G (x) cannot be exceeded, just shift it.
그러면, 입력 데이타(x24, x25, x26, x27, x28, x29, x30, x31)에 x8을 곱해서 생성 다항식(G(x))로 나누어 주었을 때 각각의 나머지들(R24(x), R25(x), R26(x), R27(x), R28(x), R29(x), R30(x), R31(x))이 입력데이타(x0-x31)의 자리수의 궤환입력으로 사용되는데 각 자리수의 궤환입력은 다음과같다.Then, the input data (x 24 , x 25 , x 26 , x 27 , x 28 , x 29 , x 30 , x 31 ) is multiplied by x 8 and divided by the generation polynomial (G (x)). (R 24 (x), R 25 (x), R 26 (x), R 27 (x), R 28 (x), R 29 (x), R 30 (x), R 31 (x)) It is used as feedback input of digits of input data (x 0 -x 31 ). Feedback of each digit is as follows.
x0자리수의 궤환입력:Feedback input of x 0 digits:
R24(x)+R25(x)+R26(x)+R27(x)+R28(x)+R29(x)+R30(x)+R31(x)R 24 (x) + R 25 (x) + R 26 (x) + R 27 (x) + R 28 (x) + R 29 (x) + R 30 (x) + R 31 (x)
x1자리수의 궤환입력 : R24(x)x 1- digit feedback input: R 24 (x)
x2자리수의 궤환입력 : R25(x)x 2- digit feedback input: R 25 (x)
x3자리수의 궤환입력 :x 3- digit feedback input:
R24(x)+R25(x)+R27(x)+R28(x)+R29(x)+R30(x)+R31(x)R 24 (x) + R 25 (x) + R 27 (x) + R 28 (x) + R 29 (x) + R 30 (x) + R 31 (x)
x4자리수의 궤환입력 : R24(x)+R27(x)x 4- digit feedback input: R 24 (x) + R 27 (x)
x5자리수의 궤환입력 : R25(x)+R28(x)x 5- digit feedback input: R 25 (x) + R 28 (x)
x6자리수의 궤환입력 : R26(x)+R29(x)x 6- digit feedback input: R 26 (x) + R 29 (x)
x7자리수의 궤환입력 : R27(x)+R30(x)x 7- digit feedback input: R 27 (x) + R 30 (x)
x8자리수의 궤환입력 : R28(x)+R31(x)x 8- digit feedback input: R 28 (x) + R 31 (x)
x9자리수의 궤환입력 : R29(x)x 9- digit feedback input: R 29 (x)
x10자리수의 궤환입력 : R30(x)x 10- digit feedback input: R 30 (x)
x11자리수의 궤환입력 : R31(x)x 11- digit feedback input: R 31 (x)
x12-x14자리수의 궤환입력 : 없음x 12 -x 14- digit feedback input: none
x15자리수의 궤환입력:x 15- digit feedback input:
R24(x)+R25(x)+R26(x)+R27(x)+R28(x)+R29(x)+R30(x)+R31(x)R 24 (x) + R 25 (x) + R 26 (x) + R 27 (x) + R 28 (x) + R 29 (x) + R 30 (x) + R 31 (x)
x16자리수의 궤환입력 : R24(x)x 16- digit feedback input: R 24 (x)
x17자리수의 궤환입력 : R25(x)x 17- digit feedback input: R 25 (x)
x18자리수의 궤환입력 : R26(x)x 18- digit feedback input: R 26 (x)
x19자리수의 궤환입력 : R27(x)x 19- digit feedback input: R 27 (x)
x20자리수의 궤환입력 : R28(x)x 20- digit feedback input: R 28 (x)
x21자리수의 궤환입력 : R29(x)x 21- digit feedback input: R 29 (x)
x22자리수의 궤환입력 : R30(x)x 22- digit feedback input: R 30 (x)
x23자리수의 궤환입력 : R31(x)x 23- digit feedback input: R 31 (x)
x24-x30자리수의 궤환입력 : 없음x 24 -x 30- digit feedback input: none
x31자리수의 궤환입력 :x 31- digit feedback input:
R24(x)+R25(x)+R26(x)+R27(x)+R28(x)+R29(x)+R30(x)+R31(x)R 24 (x) + R 25 (x) + R 26 (x) + R 27 (x) + R 28 (x) + R 29 (x) + R 30 (x) + R 31 (x)
위의 입력 데이타의 자리수(x0-x31)에 해당하는 궤환입력을 쉬프트되어 입력되는 8비트 데이타와 배타논리합하여 구성하면 된다.The feedback input corresponding to the number of digits (x 0 -x 31 ) of the above input data may be configured by performing exclusive logic on the shifted input 8-bit data.
제4도는 본 발명의 8비트 병렬 CRC엔코더의 회로도로서, 4개의 8비트 병렬 레지스터들(30-1, 30-2, 30-3, 30-4), XOR게이트들(40-1, 40-2, ..., 40-8), 멀티플렉서(50-1, 50-2), 및 출력부(60)로 구성되어 있다.4 is a circuit diagram of an 8-bit parallel CRC encoder of the present invention, which includes four 8-bit parallel registers 30-1, 30-2, 30-3, and 30-4 and XOR gates 40-1 and 40-. 2, ..., 40-8, the multiplexers 50-1, 50-2, and the output part 60. As shown in FIG.
4개의 8비트 병렬 레지스터들(30-1, 30-2, 30-3, 30-4)은 셋신호(S)에 응답하여 레제스터들의 값을 미리 설정하고, 리셋(RE)신호에 응답하여 리셋되며, 데이타 인에이블 신호(DEN)에 응답하여 인에이블되고, 클럭신호(CK)에 응답하여 입력되는 데이타 신호(D)를 입력하여 출력한다. 상술한 식에서 구한 궤한 입력신호들(R24(x), R25(x), R26(x), R27(x), R28(x), R29(x), R30(x), R31(x))은 8비트 병렬 레지스터(30-4)의 출력신호에 해당하는 것으로, 도면에서는, P24, P25, P26, P27, P28, P29, P30, P31로 나타내었다. 또한, 도면에서, F1, F2, ... F8로 표기하였지만, 디코딩시에는 각각 P24, P25, ... P31이 된다.The four 8-bit parallel registers 30-1, 30-2, 30-3, and 30-4 preset the values of the resistors in response to the set signal S and in response to the reset signal RE. The data signal D is reset, is enabled in response to the data enable signal DEN, and inputs and outputs a data signal D input in response to the clock signal CK. The input signals obtained from the above equations are R 24 (x), R 25 (x), R 26 (x), R 27 (x), R 28 (x), R 29 (x), and R 30 (x). , R 31 (x) corresponds to the output signal of the 8-bit parallel register 30-4, and is shown in the figure as P24, P25, P26, P27, P28, P29, P30, and P31. Incidentally, in the drawing, F1, F2, ... F8 are denoted, but at the time of decoding, P24, P25, ... P31 are respectively.
4개의 8비트 병렬 레지스터들은 직렬로 연결되고, 입력되는 신호를 쉬프트하여 출력한다. 레지스터(30-4)는 P24-P31신호를 발생한다. XOR 게이트들(40-1)는 입력되는 데이타(D)의 각 비트와 레지스터(30-4)의 출력신호들(P24-P31)을 각각 입력하여 배타논리합하여 출력신호들(F1, F2, ... F8)을 각각 출력한다. 멀티플렉서(50-1)는 엔코더/디코더 제어신호(E/D)에 응답하여 엔코딩시에는 출력신호들(F1, F2, ... F8)을 출력하고, 디코딩시에는 레지스터(30-4)의 출력신호들(P24, P25, ... P31)을 출력한다. XOR 게이트(40-2)는 멀티플렉서(50-1)에 의해서 선택된 신호들을 배타논리합한다. 즉, 레지스터(30-1)의 입력단자(DII)의 궤환 입력신호를 생성하게 된다. XOR게이트들(40-3)은 XOR 게이트(40-2)의 출력신호와 출력신호(F3), 출력신호들(F1, F4), 출력신호들(F2, F5), 출력신호들(F3, F6), 및 출력신호들(F4, F7)을 각각 입력하여 배타논리합한다. XOR게이트들(40-4)은 8비트의 데이타 입력신호와 XOR 게이트(40-2)의 출력신호, P24, P25, 및 XOR게이트(40-3)의 출력신호들을 각각 배타논리합한다. 멀티플렉서(50-2)는 제어신호(E/D)에 응답하여 엔코딩시에는 XOR게이트(40-3)의 출력신호를, 디코딩시에는 XOR게이트(40-4)의 출력신호를 레지스터(30-1)의 데이타 입력단자(DI1, DI2, ..., DI8)로 입력한다. XOR게이트(40-5)는 출력신호들(F5, F8)을 배타논리합한다. XOR게이트들(40-7)은 출력신호들(F1, F2, ..., F8) 및 레지스터(30-2)의 출력신호들을 각각 입력하여 배타논리합하여 레지스터(30-3)의 입력단자들(DI1, DI2, .., DI8)로 입력한다. 레지스터(30-3)의 출력단자들(D01, D02, .., D07)로부터 출력되는 신호를 레지스터(30-4)의 입력단자들(DI1, DI2, ... DI7)로 출력한다. XOR게이트(40-8)는 XOR게이트(40-2)의 출력신호와 레지스터(30-3)의 출력단자(D08)로부터 출력되는 신호를 배타논리합하여 레지스터(30-4)의 입력단자(DI8)로 출력한다. 출력부(60)는 레지스터들(30-1, 30-2, 30-3, 30-4)의 출력 신호들을 조합하여 출력신호(CRCOK)를 출력한다.Four 8-bit parallel registers are connected in series and shift the output signal. The register 30-4 generates the P24-P31 signal. The XOR gates 40-1 input and logically sum the respective bits of the input data D and the output signals P24-P31 of the register 30-4 to output the signals F1, F2,. Print F8) respectively. The multiplexer 50-1 outputs the output signals F1, F2, ... F8 upon encoding in response to the encoder / decoder control signal E / D, and decodes the registers 30-4 upon decoding. Output signals P24, P25, ... P31 are output. The XOR gate 40-2 exclusively sums the signals selected by the multiplexer 50-1. That is, the feedback input signal of the input terminal DII of the register 30-1 is generated. The XOR gates 40-3 include the output signal of the XOR gate 40-2, the output signal F3, the output signals F1 and F4, the output signals F2 and F5, and the output signals F3, F6) and the output signals F4 and F7 are input and subjected to exclusive logic. The XOR gates 40-4 exclusively combine the 8-bit data input signal, the output signal of the XOR gate 40-2, and the output signals of P24, P25, and the XOR gate 40-3, respectively. The multiplexer 50-2 receives the output signal of the XOR gate 40-3 at the time of encoding in response to the control signal E / D, and the output signal of the XOR gate 40-4 at the time of decoding. Input the data input terminals (DI1, DI2, ..., DI8) of 1). The XOR gate 40-5 exclusively sums the output signals F5 and F8. The XOR gates 40-7 input and output the output signals F1, F2,. Enter as (DI1, DI2, .., DI8). The signals output from the output terminals D01, D02, ..., D07 of the register 30-3 are output to the input terminals DI1, DI2, ... DI7 of the register 30-4. The XOR gate 40-8 exclusively combines the output signal of the XOR gate 40-2 and the signal output from the output terminal D08 of the register 30-3 to input the terminal DI8 of the register 30-4. ) The output unit 60 outputs the output signal CRCOK by combining the output signals of the registers 30-1, 30-2, 30-3, and 30-4.
제5도는 제4도에 나타낸 출력부의 상세 회로도를 나타내는 것으로, NOR게이트들(70, 71, ... 77), NAND게이트들(78, 79, 80, 81), 인버터들(82, 83, 84, 85), 및 AND게이트들(86, 87, 88)로 구성되어, 각각의 레지스터들의 출력신호들을 NOR게이트들(70, 71, ... 77)에 의해서 비논리합하고, 비논리합된 신호들을 NAND게이트들(78, 79, 80, 81), 인버터들(82, 83, 84, 85), 및 AND게이트들(86, 87, 88)에 의해서 논리곱하여 출력신호(CRCOK)를 출력한다. 도면에서, P0-P7은 레지스터(30-1)의 출력신호들을, P8-P15는 레지스터(30-2)의 출력신호들을, P16-P23는 레지스터(30-3)의 출력신호들을 각각 나타낸다.FIG. 5 shows a detailed circuit diagram of the output unit shown in FIG. 4, which includes NOR gates 70, 71, ... 77, NAND gates 78, 79, 80, 81, inverters 82, 83, 84, 85, and AND gates 86, 87, 88, and the output signals of the respective registers are non-logically separated by the NOR gates 70, 71, ... 77, and the non-logically The NAND gates 78, 79, 80, and 81, the inverters 82, 83, 84, and 85, and the AND gates 86, 87, and 88 are ANDed to output an output signal CRCOK. In the figure, P0-P7 denotes output signals of the register 30-1, P8-P15 denotes output signals of the register 30-2, and P16-P23 denote output signals of the register 30-3, respectively.
제4도에 나타낸 본 발명의 엔코더가 디코더로도 동작할 수 있음을 예를 들어 설명하면, CD-ROM 데이타 포맷에 따라 1블럭은 (2064바이트+4)바이트로 너무 길기 때문에, 12바이트 데이타와 4바이트 패리티의 엔코딩된 데이타를 디코딩하는 경우에 대하여 설명하기로 한다.For example, the encoder of the present invention shown in FIG. 4 can also operate as a decoder. Since one block is too long (2064 bytes + 4) bytes depending on the CD-ROM data format, A case of decoding 4-byte parity encoded data will be described.
입력되는 데이타 스트림(data stream)이 00, 01, 02, 03, 04, 05, 06, 8F, 9A, AB, BC, CD, DE, 3C, 2A, 62, 76라고 할 때, 맨뒤의 4바이트, 즉 3C, 2A, 62, 76는 패리티이다. 엔코딩시에 멀티플렉서(50-1)은 XOR게이트(40-1)의 출력신호를 선택하여 궤환하고, 멀티플렉서(50-2)는 XOR게이트(40-3)의 출력신호를 선택하여 출력하게 된다. 12바이트의 데이타 스트림이 순서대로 입력되고 12개의 클럭신호(CK)가 입력되면 3C, 2A, 62, 76의 4바이트 패리티를 구할 수 있고, 이것을 데이타 뒤에 붙이면 에러 검출 코드(EDC: error detect code)가 된다. 이와같이 하여 엔코딩이 수행된다.The last 4 bytes when the input data stream is 00, 01, 02, 03, 04, 05, 06, 8F, 9A, AB, BC, CD, DE, 3C, 2A, 62, 76 , 3C, 2A, 62, 76 is parity. During encoding, the multiplexer 50-1 selects and outputs the output signal of the XOR gate 40-1, and the multiplexer 50-2 selects and outputs the output signal of the XOR gate 40-3. When 12-byte data streams are input in sequence and 12 clock signals (CK) are input, 4-byte parity of 3C, 2A, 62, and 76 can be obtained. If this data is attached to the back, an error detect code (EDC) Becomes In this way, encoding is performed.
이 신호에 대한 디코딩을 엔코딩된 데이타, 즉, 원래의 데이타에 패리티가 부가된 데이타를 입력하고, 이때, 멀티플렉서(50-1)는 레지스터(30-4)의 출력신호를 선택하여 궤환하고, 멀티플렉서(50-2)는 XOR게이트(40-4)의 출력신호를 출력하게 된다. 그래서, 디코딩이 완료되면, 출력신호(CROCK)는 0가 된다.Data encoded by decoding the signal, that is, data having parity added to the original data, are input. At this time, the multiplexer 50-1 selects and outputs the output signal of the register 30-4, and multiplexer. 50-2 outputs the output signal of the XOR gate 40-4. Thus, when decoding is completed, the output signal CROCK becomes zero.
상술한 예의 시뮬레이션 결과는 아래의 표와 같다.Simulation results of the above examples are shown in the table below.
따라서, 엔코더를 가지고서 디코딩동작까지 수행됨을 알 수 있다.Therefore, it can be seen that the decoding operation is performed with the encoder.
본 발명의 실시예에서는 8비트 병렬 CRC엔코더만을 나타내었지만, 16비트, 32비트 병렬 CRC엔코더도 본 발명의 기술적인 사상을 이용한다면 쉽게 구현될 수 있다.In the embodiment of the present invention, only an 8-bit parallel CRC encoder is shown, but a 16-bit and 32-bit parallel CRC encoder can also be easily implemented using the technical idea of the present invention.
따라서, 본 발명의 병렬 CRC엔코더는 병렬로 데이타를 입력하여 동작을 수행함으로써 엔코딩 동작시간이 빨라지게 된다.Therefore, the parallel CRC encoder of the present invention performs encoding and operation time by inputting data in parallel.
또한, 엔코더만을 이용하여 디코딩동작까지 수행이 가능함으로써 엔코더와, 디코더를 별도로 구비할 필요가 없으므로 회로구성이 간단해지고, 비용을 절감할 수도 있다.In addition, since the decoding operation can be performed using only the encoder, the encoder and the decoder need not be separately provided, thereby simplifying the circuit configuration and reducing the cost.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950035261A KR0164726B1 (en) | 1995-10-13 | 1995-10-13 | Parallel cycle redundancy check encoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950035261A KR0164726B1 (en) | 1995-10-13 | 1995-10-13 | Parallel cycle redundancy check encoder |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970022702A KR970022702A (en) | 1997-05-30 |
KR0164726B1 true KR0164726B1 (en) | 1999-01-15 |
Family
ID=19430071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950035261A KR0164726B1 (en) | 1995-10-13 | 1995-10-13 | Parallel cycle redundancy check encoder |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0164726B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100582560B1 (en) * | 1999-07-13 | 2006-05-23 | 브이케이 주식회사 | Channel encoder in digital communication |
-
1995
- 1995-10-13 KR KR1019950035261A patent/KR0164726B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970022702A (en) | 1997-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101721449B1 (en) | Programmable crc unit | |
EP0329789B1 (en) | Galois field arithmetic unit | |
US4163211A (en) | Tree-type combinatorial logic circuit | |
EP0061345A2 (en) | Processing circuits for operating on digital data words which are elements of a Galois field | |
KR20080040706A (en) | Method and apparatus for configuring a cyclic redundancy check(crc) generation circuit to perform crc on a data stream | |
JP2010518464A (en) | Semiconductor memory device | |
JPH02148225A (en) | Data processing method and apparatus for calculating multipicative inverse element of finite field | |
US7571370B2 (en) | Configurable, fast, 32-bit CRC generator for 1-byte to 16-bytes variable width input data | |
JPS5949618B2 (en) | Serial encoder for cyclic block codes | |
JPH0728227B2 (en) | Decoding device for BCH code | |
JP2019110522A (en) | Determination and use of byte error position signals | |
JP2019186939A (en) | Error detection using group errors | |
JP3345385B2 (en) | Chain search device | |
KR0164726B1 (en) | Parallel cycle redundancy check encoder | |
US4190893A (en) | Modular modulo 3 module | |
JP2004206798A (en) | Encoding data encoding circuit of optical disk device | |
EP0566215A2 (en) | Error correction apparatus | |
US5671238A (en) | Method and circuitry for generating r-bit parallel CRC code for an l-bit data source | |
EP0004718A1 (en) | Method of and apparatus for decoding shortened cyclic block codes | |
JP3913921B2 (en) | Circuit for reciprocal of arbitrary element in finite field | |
US5103420A (en) | Method and apparatus for srt division using gray coded quotient bit signals | |
KR0164509B1 (en) | 4-bit cyclic redundancy check decoder | |
US6581084B1 (en) | Circuit for multiplication in a Galois field | |
JP3310186B2 (en) | Reed-Solomon decoding circuit | |
RU2115231C1 (en) | Data coding-decoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20060830 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |