9 Bit Parity Generator 설계

 

 

Parity Bit란?

 

우선 Parity Bit (패리티 비트) 란 무엇일까?

패리티 비트는 시리얼 통신에서 정보가 송신, 수신 되는 과정에서 데이터에 오류가 생겼는지를 검사하기 위해서 사용되는 오류 검출 코드(error detecting code)이다.

1로 된 비트들의 개수가 항상 짝수 또는 홀수가 되도록 Byte(바이트)의 끝에 붙인다.

 

 

 

  • Even Parity Bit (짝수 패리티 비트) : 전체 비트열 내의 비트 1의 개수가 짝수가 되도록 패리티비트를 추가하는 것이다.
    • 예시) 8비트 Data 01010001의 경우 1의 개수가 3개로 홀수이므로,
              짝수 패리티 비트는 1이 되며 전체 비트는 010100011이 된다.
  • Odd Parity Bit (홀수 패리티 비트) : 전체 비트열 내의 비트 1의 개수가 홀수가 되도록 패리티 비트를 추가한다.
    • 예시) 8비트 Data 01010001의 경우 1의 개수가 3개로 홀수이므로,
              홀수 패리티 비트는 0이 되며 전체 비트는 010100010이 된다.

 

 

 

짝수 패리티의 예시는 다음과 같다.

 

 

홀수 패리티의 예시는 다음과 같다.

 

여기서 1의 개수의 합이 설정한 패리티 종류 (짝수 or 홀수)와 다르다면, 정보의 전송 과정에서 오류가 발생했다는 것을 의미하게 된다.

하지만 패리티 비트만으로는 Data에서 2개의 Bit에 오류가 발생하게 되는 경우 error를 detecting하지 못하게되며, 오류 발생 여부만 알 수 있고 오류가 발생한 비트의 위치는 알 수 없다.

 

9Bit Parity Generator 설계

9-bit Parity Generator Structure

 

9 비트로 이루어진 Data가 input으로 입력되고, 1이 짝수인지 홀수인지에 따라 even parity / odd parity가 생성된다.

Even Parity :  1의 개수가 홀수라면 1이 생성되고, 짝수라면 0이 생성된다.

Odd Parity : 1의 개수가 홀수라면 0이 생성되고, 짝수라면 1이 생성된다.

 

9 Bit Parity Generator Simulation Waveform

첫 번째 9 Bit 입력 Data가 101010101 일 때,  1이 홀수개이므로 even parity가 1이 되는 모습을 확인할 수 있다.

두 번째 9 Bit 입력 Data가 010101010 일 때,  1이 짝수개이므로 odd parity가 1이 되는 모습을 확인할 수 있다.

 

9Bit Parity Generator RTL Schematic

 

 

 

Structural, DataFlow, Behavioral, Reduction Operation등 더 많은 설계 방식은 아래 링크에서 확인