KR0169362B1 - Parallel crc decoder - Google Patents

Parallel crc decoder Download PDF

Info

Publication number
KR0169362B1
KR0169362B1 KR1019950061867A KR19950061867A KR0169362B1 KR 0169362 B1 KR0169362 B1 KR 0169362B1 KR 1019950061867 A KR1019950061867 A KR 1019950061867A KR 19950061867 A KR19950061867 A KR 19950061867A KR 0169362 B1 KR0169362 B1 KR 0169362B1
Authority
KR
South Korea
Prior art keywords
register
parallel
unit
data
register unit
Prior art date
Application number
KR1019950061867A
Other languages
Korean (ko)
Other versions
KR970050868A (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 KR1019950061867A priority Critical patent/KR0169362B1/en
Publication of KR970050868A publication Critical patent/KR970050868A/en
Application granted granted Critical
Publication of KR0169362B1 publication Critical patent/KR0169362B1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1843Error 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)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

이 발명은 병렬 CRC 디코더에 관한 것으로, 인에이블 신호와 클럭신호를 입력받고, 일정량의 비트 단위의 데이터를 병렬로 입력받아 나눗셈 연산을 하기 위한 제1레지스터부와, 인에이블신호와 클럭신호를 입력받고, 상기 제1레지스터부의 출력신호를 병렬로 입력받아 나눗셈 연산을 하기 위한 제2레지스터부와; 상기 제2레지스터부에서 출력되는 일정량의 비트의 데이터를 병렬로 입력받아, 제1레지스터부가 16비트 병렬 연산이 가능하도록 하기 위한 제1논리연산부와; 상기 제2레지스터부에서 출력되는 일정량의 비트의 데이터를 병렬로 입력받아, 제2레지스터부가 일정량의 비트 병렬 연산이 가능하도록 하기 위한 제2논리연산부와; 상기 제1레지스터부와 제2레지스터부에서 출력되는 모든 신호들을 입력받아 모든 비트 전체가 '0'일 때, 에러가 없다는 출력을 하고, 그렇지 않을 때는 에러가 있다는 출력을 하기 위한 에러출력부를 포함하여 구성되어, EDC 디코딩에 많은 시간이 걸리던 것을 대폭 감소시킨 병렬 CRC 디코더에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel CRC decoder, comprising: an enable signal and a clock signal, a first register part for receiving a predetermined amount of bit unit data in parallel and performing a division operation; and an enable signal and a clock signal. A second register unit configured to receive the output signal of the first register unit in parallel and perform a division operation; A first logic operation unit configured to receive a predetermined amount of data from the second register unit in parallel, and to allow the first register unit to perform 16-bit parallel operation; A second logic operation unit configured to receive a predetermined amount of bit data output from the second register unit in parallel, and allow the second register unit to perform a predetermined amount of bit parallel operation; Including an error output unit for receiving all signals output from the first register unit and the second register unit and outputting no error when all bits are '0', otherwise outputting an error. The present invention relates to a parallel CRC decoder which greatly reduces the time required for the EDC decoding.

Description

병렬 CRC 디코더Parallel CRC decoder

제1도는 종래의 일반적인 씨디-롬 재생 블록도.1 is a conventional general CD-ROM regeneration block diagram.

제2도는 종래의 씨디-롬의 각종 포맷을 나타낸 구성도.2 is a block diagram showing various formats of a conventional CD-ROM.

제3도는 종래의 EDC 인코더의 구성도.3 is a block diagram of a conventional EDC encoder.

제4도는 이 발명의 실시예에 따른 병렬 CRC 디코더의 구성도.4 is a block diagram of a parallel CRC decoder according to an embodiment of the present invention.

제5도는 이 발명의 실시예에 따른 병렬 CRC 디코더 내의 제1레지스터의 상세회로도.5 is a detailed circuit diagram of a first register in a parallel CRC decoder according to an embodiment of the present invention.

제6도는 이 발명의 실시예에 따른 병렬 CRC 디코더 내의 제2레지스터의 상세회로도.6 is a detailed circuit diagram of a second register in a parallel CRC decoder according to an embodiment of the present invention.

제7도는 이 발명의 실시예에 따른 병렬 CRC 디코더에 적용되는 기본 원리를 나타낸 예시도.7 is an exemplary diagram showing a basic principle applied to a parallel CRC decoder according to an embodiment of the present invention.

제8도는 이 발명의 실시예에 따른 병렬 CRC 디코더의 시뮬레이션 결과를 나타낸 데이타도.8 is a data diagram showing a simulation result of a parallel CRC decoder according to an embodiment of the present invention.

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

41 : 제1레지스터부 42 : 제2레지스터부41: first register part 42: second register part

43 : 제1논리 연산부 44 : 제2논리 연산부43: first logic calculator 44: second logic calculator

45 : 에러 출력부45: error output unit

이 발명은 병렬 CRC 디코더에 관한 것으로 더욱 상세하게 말하자면, 씨디-롬(CD-ROM) 등에 사용되는 오류감지코드(EDC: Error Detrect Code)를 디코딩하는데 걸리는 시간을 감소시킬 수 있는 병렬 CRC 디코더에 관한 것이다.The present invention relates to a parallel CRC decoder, and more specifically, to a parallel CRC decoder capable of reducing the time taken to decode an error detect code (EDC) used in a CD-ROM or the like. will be.

디지탈 오디오 제품으로 컴팩트 디스크 플레이어(CDP: Compact Disk Player)가 널리 보급되어 사용됨으로써 컴팩트 디스크 플레이어는 매우 보편화된 시장을 형성하게 되었다.The widespread use of compact disc players (CDPs) as digital audio products has created a very common market for compact disc players.

컴팩트 디스크 플레이어를 오디오 뿐만 아니라 화상, 문자 등의 디지털 데이터의 저장매체로 이용하려는 시도가 꾸준히 이어져 왔고, 그 큰 결실을 본 것이 씨디-롬의 탄생이다.Attempts to use compact disc players not only for audio but also for storage of digital data such as images and texts have continued, and the birth of the CD-ROM has seen great fruit.

그러나 씨디-롬에서는 오디오와 달리 보다 강력한 에러 정정 능력이 요구되었다.However, unlike audio, CD-ROM required more powerful error correction.

따라서 기존의 컴팩트 디스크 플레이어 집적회로에서 에러정정을 수행한 다음, 씨디-롬 디코더 집적회로에서 씨디-롬 디포매팅 후에 재차 에러정정을 수행한다.Therefore, error correction is performed in the conventional compact disc player integrated circuit, and error correction is performed again after CD-ROM decoding in the CD-ROM decoder integrated circuit.

제1도에 도시되어 있듯이, 디스크(1)의 데이터는 컴팩트 디스크 플레이어(2)를 통해 씨디-롬 디코더 집적회로(3)에서 출력되어, 퍼스널 컴퓨터(PC: Personal Computer)의 호스트(Host) 또는 엠팩 보드(MPEG Board)(4) 등으로 연결된다.As shown in FIG. 1, the data of the disc 1 is output from the CD-ROM decoder integrated circuit 3 via the compact disc player 2, so as to be used as a host or a host of a personal computer (PC). It is connected to an MPEG board (4) or the like.

그래서, 디코더 집적회로도 다양한 인터페이스나 다양한 기능이 요구된다.Therefore, the decoder integrated circuit also requires various interfaces and various functions.

그 중 한가지가 제2도에 도시되어 있는 Mode1/Mode2 Form1 씨디 롬 포맷에 규정되어 있는 오류 감지 코드인 사이클릭 리던던시 코드(Cyclic Redundency Code)이다.One of them is the Cyclic Redundency Code, which is an error detection code defined in the Mode1 / Mode2 Form1 CD-ROM format shown in FIG.

씨디-롬에서 사용하는 사이클릭 리던던시 코드는 아래 1식에서 알 수가 있듯이, 최고차수가 x16인 이리듀서블 폴리노미얼(Irreducible Polynomial) 2개의 곱으로 구성되어 있다.The cyclic redundancy code used in the CD-ROM consists of two products of the Irreducible Polynomial of the highest order x 16 , as shown in Equation 1 below.

G(x)=(x16+ x15+ x2+1)*(x16+ x2+ x + 1)G (x) = (x 16 + x 15 + x 2 +1) * (x 16 + x 2 + x + 1)

= x32+ x31+ x16+ x15+ x4+ x3+ x + 1 ---1식)= x 32 + x 31 + x 16 + x 15 + x 4 + x 3 + x + 1 --- 1

이제 씨디-롬에서의 오류 감지 코드 개념을 설명하기로 한다.We will now explain the concept of error detection code in CD-ROM.

씨디-롬 1섹터(1블럭)분의 2352 바이트 데이터 중에서 Model Format에서는 2064 바이트(Sync + Header + Data)를 비트 단위로 최상위 비트(MSB)부터 최하위비트(LSB)까지 나열하면 2064×8가 된다.Among 2,352 byte data for 1 sector (1 block) of CD-ROM, in the Model Format, 2064 bytes (Sync + Header + Data) are 2064 x 8 when the most significant bit (MSB) to the least significant bit (LSB) is arranged in bits. .

이것을 비트 단위의 폴리노미얼로 생각하여 상기 1)식으로 나누면 (x31~x0)x32미만의 자릿수에 나머지가 남는다.Considering this as a polynomial in bits, dividing by 1) leaves the remainder at the number of digits less than (x 31 to x 0 ) x 32 .

이것을 2064×8비트 뒤에 첨가하여 EDC-Parity로 삼아 함께 EDC 코드를 형성한다.This is added after 2064 x 8 bits to form the EDC-Parity to form the EDC code together.

씨디-롬 드라이브 재생시, 씨디-롬 디코더의 에러정정을 끝마친 후 에러가 없거나, 모든 에러가 정정되었을 때 EDC-Flag는 '0'이 된다.When playing a CD-ROM drive, the EDC-Flag becomes '0' when there is no error after correcting the error of the CD-ROM decoder or when all errors are corrected.

이와 같은 EDC의 원리를 수식으로 알아보면 다음과 같다.The principle of such an EDC is as follows.

R(x) + D(x)*xn-k= Q(x)*G(x) + R(x) +R(x)= C(x) --- 2식)R (x) + D (x) * x nk = Q (x) * G (x) + R (x) + R (x) = C (x) --- 2

상기 2식)에서 D(x)는 메인 데이터 폴리노미얼, n은 EDC 부호의 길이, K는 메인 데이터 길이, R(x)는 D(x)*xn-k을 제너레이터(Generator) 폴리노미얼로 G(x)로 나눈 나머지이고, C(x)가 EDC 코드워드이다.Where D (x) is the main data polynomial, n is the length of the EDC code, K is the main data length, and R (x) is D (x) * x nk as the generator polynomial. The remainder divided by G (x), and C (x) is the EDC codeword.

즉, EDC 코드워드, C(x)는 다음식과 같다.That is, the EDC codeword, C (x), is as follows.

C(x) = Q(x)*G(x) = D(x)*xn-k+ R(x) ---3식)C (x) = Q (x) * G (x) = D (x) * x nk + R (x) --- 3 expression)

여기서 제너레이터 폴리노미얼 G(x)는 상기 1식)과 같고, 메인 데이터는 Mode1일 때 2064×8비트의 길이를 갖고, Mode2 Form1-XA에서는 2056×8비트(Sub header + 메인 Data)의 길이를 갖는다.Here, the generator polynomial G (x) is equal to the above formula 1), and the main data has a length of 2064 × 8 bits when in Mode1 and 2056 × 8 bits (Sub header + main data) in Mode2 Form1-XA. Has

EDC는 원래 비트 개념의 코드이므로 상기 1식)의 제너레이터 폴리너미얼로 EDC 코더(Coder)를 구성하면 제3도와 같다.Since the EDC is originally a code concept of a bit concept, an EDC coder configured with a generator polynomial of the above formula 1 is as shown in FIG. 3.

그러나, 제3도에 도시되어 있듯이, 종래의 EDC 코더는 비트 단위로 데이터를 입력하여 데이터 길이 만큼의 클럭킹(Clocking)이 필요하므로 시간이 많이 걸리는 단점이 있다.However, as shown in FIG. 3, the conventional EDC coder requires a clocking as much as the data length by inputting data in bit units, which takes a long time.

그러므로 본 발명의 목적은 종래의 단점을 해결하기 위한 것으로, EDC 디코딩에 많은 시간이 걸리던 것을 대폭 감소시킬 수 있는 병렬 CRC 디코더를 제공하고자 하는데 있다.Therefore, an object of the present invention is to solve the disadvantages of the prior art, and to provide a parallel CRC decoder that can greatly reduce the time required for the EDC decoding.

상기 목적을 달성하고자 하는 이 발명의 기본 원리는 다음과 같다.The basic principle of the present invention to achieve the above object is as follows.

입력 시리얼(Serial) 데이터(xi)에 x16을 곱해서 제너레이터 폴리노미얼G(X)로 나눈 나머지들을 이용하여 회로를 구성하는 것이다.The circuit is constructed using the remainders of the input serial data (xi) multiplied by x 16 and divided by the generator polynomial G (X).

제7도에 도시되어 있듯이, 입력 데이터가 x0~x15까지는 x16을 곱해도 G(X)보다 작은 값이므로 곱하기한 그 자체가 나머지가 되고, x16~x31까지는 x16을 곱해서 나누면 각각의 값이 나오는데, 아래에 이것을 서술한다.As shown in FIG. 7, the multiplying input data is smaller than G (X) even if x 0 to x 15 is multiplied by x 16 , so the multiplication itself is the remainder, and x 16 to x 31 is multiplied by x 16 . Each value is shown, which is described below.

입력 데이터 x16에 x16을 곱해서 G(X)로 나누면 R16(X) = x32+ x16+ x15+ x4+ x3+ x + 1Multiply the input data x 16 by x 16 and divide by G (X) R 16 (X) = x 32 + x 16 + x 15 + x 4 + x 3 + x + 1

입력 데이터 x17에 x16을 곱해서 G(X)로 나누면 R17(X) = x31+ x17+ x15+ x5+ x3+ x2+ 1Multiply the input data x 17 by x 16 and divide by G (X) R 17 (X) = x 31 + x 17 + x 15 + x 5 + x 3 + x 2 + 1

입력 데이터 x18에 x16을 곱해서 G(X)로 나누면 R18(X) = x31+ x18+ x15+ x6+ 1Multiply the input data x 18 by x 16 and divide by G (X) R 18 (X) = x 31 + x 18 + x 15 + x 6 + 1

입력 데이터 x19에 x16을 곱해서 G(X)로 나누면 R19(X) = x31+ x19+ x15+ x7+ x4+ x3+ 1Multiply the input data x 19 by x 16 and divide by G (X) R 19 (X) = x 31 + x 19 + x 15 + x 7 + x 4 + x 3 + 1

입력 데이터 x20에 x16을 곱해서 G(X)로 나누면 R20(X) = x31+ x20+ x15+ x8+ x5+ x3+ 1Multiply the input data x 20 by x 16 and divide by G (X) R 20 (X) = x 31 + x 20 + x 15 + x 8 + x 5 + x 3 + 1

입력 데이터 x21에 x16을 곱해서 G(X)로 나누면 R21(X) = x31+ x21+ x15+ x9+ x6+ x3+ 1Multiply the input data x 21 by x 16 and divide by G (X) R 21 (X) = x 31 + x 21 + x 15 + x 9 + x 6 + x 3 + 1

입력 데이터 x22에 x16을 곱해서 G(X)로 나누면 R22(X) = x31+ x22+ x15+ x10+ x7+ x3+ 1Multiply the input data x 22 by x 16 and divide by G (X) R 22 (X) = x 31 + x 22 + x 15 + x 10 + x 7 + x 3 + 1

입력 데이터 x23에 x16을 곱해서 G(X)로 나누면 R23(X) = x31+ x23+ x15+ x11+ x8+ x3+ 1Multiply the input data x 23 by x 16 and divide by G (X) R 23 (X) = x 31 + x 23 + x 15 + x 11 + x 8 + x 3 + 1

입력 데이터 x24에 x16을 곱해서 G(X)로 나누면 R24(X) = x31+ x24+ x15+ x12+ x9+ x3+ 1Multiply the input data x 24 by x 16 and divide by G (X) R 24 (X) = x 31 + x 24 + x 15 + x 12 + x 9 + x 3 + 1

입력 데이터 x25에 x16을 곱해서 G(X)로 나누면 R25(X) = x31+ x25+ x15+ x13+ x10+ x3+ 1Multiply the input data x 25 by x 16 and divide by G (X) R 25 (X) = x 31 + x 25 + x 15 + x 13 + x 10 + x 3 + 1

입력 데이터 x26에 x16을 곱해서 G(X)로 나누면 R26(X) = x31+ x26+ x15+ x14+ x11+ x3+ 1Multiply the input data x 26 by x 16 and divide by G (X) R 26 (X) = x 31 + x 26 + x 15 + x 14 + x 11 + x 3 + 1

입력 데이터 x27에 x16을 곱해서 G(X)로 나누면 R27(X) = x31+ x27+ x12+ x3+ 1Multiply the input data x 27 by x 16 and divide by G (X) R 27 (X) = x 31 + x 27 + x 12 + x 3 + 1

입력 데이터 x28에 x16을 곱해서 G(X)로 나누면 R28(X) = x31+ x28+ x16+ x15+ x13+ x3+ 1Multiply input data x 28 by x 16 and divide by G (X) R 28 (X) = x 31 + x 28 + x 16 + x 15 + x 13 + x 3 + 1

입력 데이터 x29에 x16을 곱해서 G(X)로 나누면 R29(X) = x31+ x29+ x17+ x15+ x14+ x3+ 1Multiply the input data x 29 by x 16 and divide by G (X) R 29 (X) = x 31 + x 29 + x 17 + x 15 + x 14 + x 3 + 1

입력 데이터 x30에 x16을 곱해서 G(X)로 나누면 R30(X) = x31+ x30+ x18+ x3+ 1Multiply input data x 30 by x 16 and divide by G (X) R 30 (X) = x 31 + x 30 + x 18 + x 3 + 1

입력 데이터 x31에 x16을 곱해서 G(X)로 나누면 R31(X) = x19+ x16+ x15+ x3+ 1Multiply the input data x 31 by x 16 and divide by G (X) R 31 (X) = x 19 + x 16 + x 15 + x 3 + 1

이제 상기 과정에서 나온 나머지 R16(X)~R31(X)을 각 자리수별로 모아서 정리하면 다음과 같다.Now, the remaining R 16 (X) ~ R 31 (X) from the above process by collecting the digits as follows.

x0자리수의 피드백 입력 : (16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31) 레지스터 출력값(=FSIG)x 0 digit feedback input: (16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31) Register output (= FSIG)

x1자리수의 피드백 입력 : 16 레지스터 출력값x 1 digit feedback input: 16 register output

x2자리수의 피드백 입력 : 17 레지스터 출력값x 2- digit feedback input: 17 register outputs

x3자리수의 피드백 입력 : FSIG +18 레지스터 출력값x 3- digit feedback input: FSIG +18 register output

x4자리수의 피드백 입력 : 16 + 19 레지스터 출력값x 4- digit feedback input: 16 + 19 register output

x5자리수의 피드백 입력 : 17 + 20 레지스터 출력값x 5- digit feedback input: 17 + 20 register output

x6자리수의 피드백 입력 : 18 + 21 레지스터 출력값x 6- digit feedback input: 18 + 21 register output

x7자리수의 피드백 입력 : 19 + 22 레지스터 출력값x 7- digit feedback input: 19 + 22 register output

x8자리수의 피드백 입력 : 20 + 23 레지스터 출력값x 8- digit feedback input: 20 + 23 register output

x9자리수의 피드백 입력 : 21 + 24 레지스터 출력값x 9- digit feedback input: 21 + 24 register output

x10자리수의 피드백 입력 : 22 + 25 레지스터 출력값x 10- digit feedback input: 22 + 25 register output

x11자리수의 피드백 입력 : 23 + 26 레지스터 출력값x 11- digit feedback input: 23 + 26 register output

x12자리수의 피드백 입력 : 24 + 27 레지스터 출력값x 12- digit feedback input: 24 + 27 register output

x13자리수의 피드백 입력 : 25 + 28 레지스터 출력값x 13- digit feedback input: 25 + 28 register output

x14자리수의 피드백 입력 : 26 + 29 레지스터 출력값x 14- digit feedback input: 26 + 29 register output

x15자리수의 피드백 입력 : FISG + 27 + 30레지스터 출력값x 15- digit feedback input: FISG + 27 + 30 register output

x16자리수의 피드백 입력 : 16 + 28 + 31 레지스터 출력값x 16- digit feedback input: 16 + 28 + 31 register output

x17자리수의 피드백 입력 : 17 + 29 레지스터 출력값x 17 digit feedback input: 17 + 29 register output

x18자리수의 피드백 입력 : 18 + 30 레지스터 출력값x 18- digit feedback input: 18 + 30 register output

x19자리수의 피드백 입력 : 19 + 31 레지스터 출력값x 19- digit feedback input: 19 + 31 register output

x20자리수의 피드백 입력 : 20 레지스터 출력값x 20- digit feedback input: 20 register output

x21자리수의 피드백 입력 : 21 레지스터 출력값x 21- digit feedback input: 21 register output

x22자리수의 피드백 입력 : 22 레지스터 출력값x 22- digit feedback input: 22 register output

x23자리수의 피드백 입력 : 23 레지스터 출력값x 23 digit feedback input: 23 register output

x24자리수의 피드백 입력 : 24 레지스터 출력값x 24 digit feedback input: 24 register output

x25자리수의 피드백 입력 : 25 레지스터 출력값x 25 digit feedback input: 25 register output

x26자리수의 피드백 입력 : 26 레지스터 출력값x 26 digit feedback input: 26 register output

x27자리수의 피드백 입력 : 27 레지스터 출력값x 27- digit feedback input: 27 register output

x28자리수의 피드백 입력 : 28 레지스터 출력값x 28 digit feedback input: 28 register output

x29자리수의 피드백 입력 : 29 레지스터 출력값x 29 digit feedback input: 29 register output

x30자리수의 피드백 입력 : 30 레지스터 출력값x 30 digit feedback input: 30 register output

x31자리수의 피드백 입력 : FISG + 31 레지스터 출력값x 31 digit feedback input: FISG + 31 register output

상기 과정의 피드백 입력을 회로로 구현하여, x0~x15레지스터에서는 입력 메인 데이터와 각 자리수별로 익스클루시브 오아 연산을 하여 레지스터에 입력하고, x16~x31레지스터에서는 위의 결과와 x0~x31레지스터 출력값을 각각 익스클루시브 오아 연산하여 입력한다.The feedback input of the above process is implemented as a circuit, and the input main data and the digits of each digit are inputted into registers in the registers x 0 to x 15 , and the result and x 0 are registered in the registers x 16 to x 31 . x Exclusive registers are computed and input into each of the 31 register outputs.

상기 목적을 달성하고자 하는 이 발명의 구성은, 인에이블신호와 클럭신호를 입력받고, 일정량의 비트 단위의 데이터를 병렬로 입력받아 나눗셈 연산을 하기 위한 제1레지스터부와; 인에이블신호와 클럭신호를 입력받고, 상기 제1레지스터부의 출력신호를 병렬로 입력받아 나눗셈 연산을 하기 위한 제2레지스터부와; 상기 제2레지스터부에서 출력되는 일정량의 비트의 데이터를 병렬로 입력받아, 제1레지스터부가 16비트 병렬 연산이 가능하도록 하기 위한 제1논리연산부와; 상기 제2레지스터부에서 출력되는 일정량의 비트의 데이터를 병렬로 입력받아, 제2레지스터부가 일정량의 비트 병렬 연산이 가능하도록 하기 위한 제2논리연산부와; 상기 제1레지스터부와 제2레지스터부에서 출력되는 모든 신호들을 입력받아 모든 비트 전체가 '0'일 때, 에러가 없다는 출력을 하고, 그렇지 않을 때는 에러가 있다는 출력을 하기 위한 에러출력부를 포함하여 이루어진다.According to another aspect of the present invention, there is provided a structure including: a first register unit configured to receive an enable signal and a clock signal, and to receive a predetermined amount of bit unit data in parallel and perform a division operation; A second register unit configured to receive an enable signal and a clock signal, and to receive the output signal of the first register unit in parallel and perform a division operation; A first logic operation unit configured to receive a predetermined amount of data from the second register unit in parallel, and to allow the first register unit to perform 16-bit parallel operation; A second logic operation unit configured to receive a predetermined amount of bit data output from the second register unit in parallel, and allow the second register unit to perform a predetermined amount of bit parallel operation; Including an error output unit for receiving all signals output from the first register unit and the second register unit and outputting no error when all bits are '0', otherwise outputting an error. Is done.

상기 구성에 의하여 이 발명을 실시할 수 있는 가장 바람직한 실시예를 첨부된 도면을 참조로 하여 설명하기로 한다.With reference to the accompanying drawings, a preferred embodiment of the present invention by the above configuration will be described.

제4도는 이 발명의 실시예에 따른 병렬 CRC 디코더의 구성도이고, 제5도는 이 발명의 실시예에 따른 병렬 CRC 디코더 내의 제1레지스터의 상세회로도이고, 제6도는 이 발명의 실시예에 따른 병렬 CRC 디코더 내의 제2레지스터의 상세회로도이다.4 is a block diagram of a parallel CRC decoder according to an embodiment of the present invention, and FIG. 5 is a detailed circuit diagram of a first register in a parallel CRC decoder according to an embodiment of the present invention, and FIG. Detailed circuit diagram of the second register in the parallel CRC decoder.

제4도에 도시되어 있듯이, 이 발명의 실시예에 따른 병렬 CRC 디코더의 구성은, 인에이블신호(EN_EDC)와 클럭신호(CK)를 입력받고, 16비트 단위의 데이터(PDIN15:0)를 병렬로 입력받아 나눗셈 연산을 하기 위한 제1레지스터부(41)와; 인에이블신호(EN_EDC)와 클럭신호(CK)를 입력받고, 상기 제1레지스터부(41)의 출력신호(DT0:15)를 병렬로 입력받아 나눗셈 연산을 하기 위한 제2레지스터부(42)와; 상기 제2레지스터부(42)에서 출력되는 16비트의 데이터(DT16:31)를 병렬로 입력받아, 제1레지스터부가 16비트 병렬 연산이 가능하도록 하기 위한 제1논리연산부(43)와; 상기 제2레지스터부에서 출력되는 16비트의 데이터(DT16:31)를 병렬로 입력받아, 제2레지스터부(42)가 16비트 병렬 연산이 가능하도록 하는 제2논리연산부(44)와; 상기 제1레지스터부(41)와 제2레지스터부(42)에서 출력되는 모든 신호(DT0:31)들을 입력받아 32비트 전체가 '0'일 때, 에러가 없다는 '0'출력을 하고, 그렇지 않을 때는 에러가 있다는 '1' 출력을 하기 위한 에러출력부(45)로 이루어진다.As shown in FIG. 4, the configuration of the parallel CRC decoder according to the embodiment of the present invention receives the enable signal EN_EDC and the clock signal CK, and parallelly stores the data PDIN15: 0 in units of 16 bits. A first register unit 41 for receiving a division operation; A second register unit 42 for receiving the enable signal EN_EDC and the clock signal CK, and receiving the output signals DT0: 15 of the first register unit 41 in parallel and performing a division operation; ; A first logic operation unit 43 for receiving 16-bit data DT16: 31 outputted from the second register unit 42 in parallel and allowing the first register unit to perform 16-bit parallel operation; A second logical operation unit 44 which receives 16-bit data DT16: 31 outputted from the second register unit in parallel and allows the second register unit 42 to perform 16-bit parallel operation; When all of the signals DT0: 31 outputted from the first register part 41 and the second register part 42 are input, and when all 32 bits are '0', '0' is output without error. If not, it consists of an error output unit 45 for outputting a '1' that there is an error.

상기한 제1레지스터부(41) 및 제2레지스터부(42)는 제1레지스터(46) 및 제2레지스터(47)와 익스클루시브 오아 게이트를 포함하여 구성되며, 상기한 제1레지스터(46)의 상세회로는 제5도에 도시되어 있고, 제2레지스터(47)의 상세회로는 제6도에 도시되어 있다.The first register part 41 and the second register part 42 are configured to include a first register 46, a second register 47, and an exclusive oar gate, and the first register 46 is described above. 6 is shown in FIG. 5, and the detailed circuit of the second register 47 is shown in FIG.

상기 구성에 의한 이 발명의 실시예에 따른 병렬 CRC 디코더의 작용은 다음과 같다.The operation of the parallel CRC decoder according to the embodiment of the present invention by the above configuration is as follows.

먼저 사용자에 의해 전원이 인가되면 이 발명의 실시예에 따른 병렬 CRC 디코더의 동작이 시작된다.When power is first applied by the user, the operation of the parallel CRC decoder according to the embodiment of the present invention is started.

동작이 시작되면, 씨디-롬 디코더에서 ECC 정정이 끝난 데이터를 외부 메모리에서 4비트 또는 8비트 단위로 액세스(Access)하여 최상위비트(MSB)부터 16비트가 모아져서 입력단자(PDIN15:0)로 입력된다.When the operation starts, the CD-ROM decoder accesses the ECC-corrected data from the external memory in 4-bit or 8-bit units and collects 16 bits from the most significant bit (MSB) to the input terminal (PDIN15: 0). Is entered.

그러면, 인에이블신호단자(EN_EDC)는 타이밍을 맞추기 위해 EDC 시작부터 끝까지만 인에이블이 되고, 제1레지스터부(41) 및 제2레지스터부(42)는 입력단자(PDIN15:0)로 입력된 16비트 병렬 데이터를 나눗셈 연산하여 그 결과를 출력한다.Then, the enable signal terminal EN_EDC is enabled only from the beginning to the end of the EDC in order to adjust the timing, and the first register 41 and the second register 42 are input to the input terminals PDIN15: 0. Divides 16-bit parallel data and outputs the result.

제1레지스터(46) 및 제2레지스터(47)는 16비트 병렬 레지스터이며, Mode1 포맷일 때에는 선두의 정해진 싱크(Sync) 데이터를 리셋(RS), 세트(ST)단자를 이용하여 12바이트 싱크 데이터가 EDC 디코딩을 완료한 형태로 레지스터 초기값을 세팅하여 디코딩할 수 있다.The first register 46 and the second register 47 are 16-bit parallel registers. When in Mode1 format, the first set of sync data is reset to 12-byte sync data using the reset (RS) and set (ST) terminals. Can decode by setting the register initial value in the form of EDC decoding.

Mode1이나 Mode2 Form1-XA 포맷에 따라 EDC를 모두 완료하였을 때, 32비트 출력이 에러출력부(45)로 입력된다.When all the EDCs are completed according to Mode1 or Mode2 Form1-XA format, a 32-bit output is input to the error output unit 45.

그러면, 에러출력부(45)에서는 입력된 32비트신호를 디코딩하여 모든 비트가 '0'이면 에러가 없다는 표시로 '0'을 출력하고, 그렇지 않으면 에러가 있다는 표시로 '1'을 출력한다.Then, the error output unit 45 decodes the input 32-bit signal and outputs '0' as an indication that there is no error when all bits are '0', and otherwise outputs '1' as an indication that there is an error.

상기한 과정에서는 16비트 단위로 데이터를 병렬처리하였으며, 8비트, 32비트 모두 상기한 바와 같은 원리로 간단히 구성하여 병렬 EDC 디코딩을 수행할 수가 있다.In the above process, data was processed in parallel in units of 16 bits, and 8-bit and 32-bit data can be simply configured on the same principle as described above to perform parallel EDC decoding.

씨디-롬 포맷에 의해 EDC 디코딩을 하여 만들어진 씨디-롬 디스크를 재생시 제3도에 도시된 종래의 EDC 디코더에 비해 본 발명은 디코딩 시간을 1/16으로 단축할 수가 있다.Compared with the conventional EDC decoder shown in FIG. 3 when playing a CD-ROM disc produced by EDC decoding in the CD-ROM format, the present invention can reduce the decoding time to 1/16.

단, ECC 디코딩을 비롯한 대부분의 데이터처리를 8비트로 하므로 ECC 디코딩을 끝낸 후 외부 씨디-롬용 메모리에서 데이터를 읽어 16비트로 모아서 본 발명의 실시예에 따른 병렬 CRC 디코더로 입력을 하여야 한다.However, since most data processing including ECC decoding is 8 bits, after completion of ECC decoding, data must be read from an external CD-ROM memory, collected into 16 bits, and input to a parallel CRC decoder according to an embodiment of the present invention.

참고로 본 발명의 실시예에 따른 병렬 CRC 디코더의 시뮬레이션 결과를 제8도에 도시하였다.For reference, a simulation result of the parallel CRC decoder according to the embodiment of the present invention is shown in FIG. 8.

Claims (4)

인에이블신호와 클럭신호를 입력받고, 일정량의 비트 단위의 데이터를 병렬로 입력받아 나눗셈 연산을 하기 위한 제1레지스터부와, 인에이블신호와 클럭신호를 입력받고, 상기 제1레지스터부의 출력신호를 병렬로 입력받아 나눗셈 연산을 하기 위한 제2레지스터부와; 상기 제2레지스터부에서 출력되는 일정량의 비트의 데이터를 병렬로 입력받아, 제1레지스터부가 16비트 병렬 연산이 가능하도록 하기 위한 제1논리연산부와; 상기 제2레지스터부에서 출력되는 일정량의 비트의 데이터를 병렬로 입력받아, 제2레지스터부가 일정량의 비트 병렬 연산이 가능하도록 하기 위한 제2논리연산부와; 상기 제1레지스터부와 제2레지스터부에서 출력되는 모든 신호들을 입력받아 모든 비트 전체가 '0'일 때, 에러가 없다는 출력을 하고, 그렇지 않을 때는 에러가 있다는 출력을 하기 위한 에러출력부를 포함하여 구성되어짐을 특징으로 하는 병렬 CRC 디코더.Receiving an enable signal and a clock signal, receiving a predetermined amount of bit unit data in parallel, a first register unit for performing a division operation, an enable signal and a clock signal, and outputting the output signal of the first register unit. A second register unit configured to receive a parallel input and perform a division operation; A first logic operation unit configured to receive a predetermined amount of data from the second register unit in parallel, and to allow the first register unit to perform 16-bit parallel operation; A second logic operation unit configured to receive a predetermined amount of bit data output from the second register unit in parallel, and allow the second register unit to perform a predetermined amount of bit parallel operation; Including an error output unit for receiving all signals output from the first register unit and the second register unit and outputting no error when all bits are '0', otherwise outputting an error. Parallel CRC decoder characterized in that the configuration. 제1항에 있어서, 상기한 제1레지스터부는 16비트의 데이터를 병렬로 입력받는 것을 특징으로 하는 병렬 CRC 디코더.The parallel CRC decoder of claim 1, wherein the first register receives 16 bits of data in parallel. 제1항에 있어서, 상기한 제1레지스터부는 병렬 데이터 처리가 가능하도록, x0~x15레지스터에서는 입력 메인 데이터와 각 자리수별로 익스클루시브 오아 연산을 하여 레지스터에 입력하고, x16~x31레지스터에서는 위의 결과와 x0~x31레지스터 출력값을 각각 익스클루시브 오아 연산하여 입력하는 것을 특징으로 하는 병렬 CRC 디코더.2. The method of claim 1, wherein the first resistor portion in, x 0 ~ x 15 register to allow parallel data processing to the input main data and the exclusive Iowa operation for each digit and the input to the register, x 16 ~ x 31 The register is a parallel CRC decoder characterized by inputting the result of the above and the output value of the register 0 0 ~ x 31 , respectively. 제1항에 있어서, 상기한 제1레지스터부 및 제2레지스터부는 병렬레지스터 및 익스클루시브 오아 게이트를 포함하여 구성되어 짐을 특징으로 하는 병렬 CRC 디코더.The parallel CRC decoder of claim 1, wherein the first register portion and the second register portion comprise a parallel register and an exclusive oar gate.
KR1019950061867A 1995-12-28 1995-12-28 Parallel crc decoder KR0169362B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950061867A KR0169362B1 (en) 1995-12-28 1995-12-28 Parallel crc decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950061867A KR0169362B1 (en) 1995-12-28 1995-12-28 Parallel crc decoder

Publications (2)

Publication Number Publication Date
KR970050868A KR970050868A (en) 1997-07-29
KR0169362B1 true KR0169362B1 (en) 1999-03-20

Family

ID=19446050

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950061867A KR0169362B1 (en) 1995-12-28 1995-12-28 Parallel crc decoder

Country Status (1)

Country Link
KR (1) KR0169362B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161349B2 (en) 2007-08-01 2012-04-17 Samsung Electronics Co., Ltd. Data parallelizing receiver

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100505566B1 (en) * 1997-07-29 2005-11-08 삼성전자주식회사 Parallel Circulation Check Method for Subcode Q Data
KR20010057408A (en) * 1999-12-22 2001-07-04 박종섭 Apparatus for commputation cyclic redundancy codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161349B2 (en) 2007-08-01 2012-04-17 Samsung Electronics Co., Ltd. Data parallelizing receiver

Also Published As

Publication number Publication date
KR970050868A (en) 1997-07-29

Similar Documents

Publication Publication Date Title
US6141786A (en) Method and apparatus for performing arithmetic operations on Galois fields and their extensions
US5691994A (en) Disk drive with fast error correction validation
US4413339A (en) Multiple error detecting and correcting system employing Reed-Solomon codes
US6385751B1 (en) Programmable, reconfigurable DSP implementation of a Reed-Solomon encoder/decoder
US5805799A (en) Data integrity and cross-check code with logical block address
US5491701A (en) Burst error corrector
US4750178A (en) Error correction method
JPH05290527A (en) Deinterleave circuit
CA1301353C (en) On-the-fly error correction
WO1992013344A1 (en) Error correction processing device and error correction method
US6543026B1 (en) Forward error correction apparatus and methods
JPH0328093B2 (en)
US7571370B2 (en) Configurable, fast, 32-bit CRC generator for 1-byte to 16-bytes variable width input data
JP3281387B2 (en) CRC / EDC checker system
US5268908A (en) Low data delay triple coverage code apparatus for on-the-fly error correction
KR0169362B1 (en) Parallel crc decoder
JP2004206798A (en) Encoding data encoding circuit of optical disk device
JP3170920B2 (en) Error correction method and correction circuit
US7475329B2 (en) Techniques for performing Galois field logarithms for detecting error locations that require less storage space
US5243604A (en) On-the-fly error correction
JP2002280909A (en) Error correction device
JPH10322226A (en) Reed solomon decoding method
US5831999A (en) Method and apparatus for correcting code errors
JP3139499B2 (en) Error correction processor
JPH04365139A (en) Syndrome operation circuit for error correction processing

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: 20060928

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee