このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

*目次 [#s9f0f6bc]

#contents


*パリティ発生回路(パリティジェネレータ) [#fcd48eba]

-ソフトウェアでも実現できるが、ハードウェアの論理演算回路の応用としても作れる。
-パリティビット([[パリティチェック方式]]用のビット)を生成する回路。

*パリティ発生回路のブロック図 [#he5325a0]

**(4ビット入力の)偶数パリティ発生回路のブロック図 [#nf5f823a]

#img(http://security2600.sakura.ne.jp/main2/image4/circuit2.png)
#img(,clear)

-入力:IN[3:0]
--4ビット
-出力:EVEN_OUT
--1ビット
--偶数パリティビット
---IN[3:0]における1の個数が偶数⇒EVEN_OUT=0
---IN[3:0]における1の個数が奇数⇒EVEN_OUT=1

**(4ビット入力の)奇数パリティ発生回路のブロック図 [#r6a473d7]

#img(http://security2600.sakura.ne.jp/main2/image4/circuit1.png)
#img(,clear)

-入力:IN[3:0]
--4ビット
-出力:ODD_OUT
--1ビット
--奇数パリティビット
---IN[3:0]における1の個数が奇数⇒ODD_OUT=0
---IN[3:0]における1の個数が偶数⇒ODD_OUT=1

*パリティ発生回路の真理値表 [#r5483c82]

**(2ビット入力の)偶数パリティ発生回路の真理値表 [#x4a0a191]

|ASUB{1};|ASUB{0};|Pe|h
|1|1|0|
|1|0|1|
|0|1|1|
|0|0|0|

 論理式は次の通り。

&mimetex("Pe");~
&mimetex("=A_1 \cdot \bar{A_0} + \bar{A_1} \cdot A_0");~
&mimetex("=A_0 \oplus A_1");


**(4ビット入力の)偶数パリティ発生回路の真理値表 [#yb8dfa46]

|INSUB{3};|INSUB{2};|INSUB{1};|INSUB{0};|EVEN_OUT|h
|0|0|0|0|0|
|0|0|0|1|1|
|0|0|1|0|1|
|0|0|1|1|0|
|0|1|0|0|1|
|0|1|0|1|0|
|0|1|1|0|0|
|0|1|1|1|1|
|1|0|0|0|1|
|1|0|0|1|0|
|1|0|1|0|0|
|1|0|1|1|1|
|1|1|0|0|0|
|1|1|0|1|1|
|1|1|1|0|1|
|1|1|1|1|0|

**(4ビット入力の)奇数パリティ発生回路の真理値表 [#q9eb4a79]

|INSUB{3};|INSUB{2};|INSUB{1};|INSUB{0};|ODD_OUT|h
|0|0|0|0|1|
|0|0|0|1|0|
|0|0|1|0|0|
|0|0|1|1|1|
|0|1|0|0|0|
|0|1|0|1|1|
|0|1|1|0|1|
|0|1|1|1|0|
|1|0|0|0|0|
|1|0|0|1|1|
|1|0|1|0|1|
|1|0|1|1|0|
|1|1|0|0|1|
|1|1|0|1|0|
|1|1|1|0|0|
|1|1|1|1|1|

*パリティ発生回路のカルノー図 [#d3aeb7d3]

**(4ビット入力の)偶数パリティ発生回路のカルノー図 [#f558ba62]

#img(http://security2600.sakura.ne.jp/main2/image4/circuit3.png)
#img(,clear)

 単純に論理式を求めると次のようになる。

&mimetex("EVEN\,OUT= IN_3 IN_2 IN_1 \bar{IN_0} + IN_3 IN_2 \bar{IN_1} IN_0 + IN_3 \bar{IN_2} IN_1 IN_0 + IN_3 \bar{IN_2} \bar{IN_1} \bar{IN_0} + \bar{IN_3} IN_2 IN_1 IN_0 + \bar{IN_3} IN_2 \bar{IN_1} \bar{IN_0} + \bar{IN_3} \bar{IN_2} IN_1 \bar{IN_0} + \bar{IN_3} \bar{IN_2} \bar{IN_1} IN_0");~
&mimetex("=\( IN_3 IN_2 IN_1 \oplus IN_0 \) + \( IN_3 \oplus IN_2 IN_1 IN_0 \) + \( IN_1 \oplus IN_3 IN_2 IN\0 \) + \( IN_2 \oplus IN_3 IN_1 IN_0 \)");~
&mimetex("=IN_0 \oplus \( IN_1 \oplus \( IN_2 \oplus IN_3 \) \)"); ←(*)

 カルノー図が市松模様の場合、出力の論理式はすべての入力をExORまたはExNORしたものである。カルノー図の左上角が0なので、ExORを用いる。この方法を使えば、上記の方法よりも簡単に論理式を得られる。

&mimetex("EVEN\,OUT=IN_3 \oplus IN_2 \oplus IN_1 \oplus IN_0;"); ←(**)
&mimetex("EVEN\,OUT=IN_3 \oplus IN_2 \oplus IN_1 \oplus IN_0"); ←(**)

 (*)の括弧を取れば、(**)と同値である。

**(4ビット入力の)奇数パリティ発生回路のカルノー図 [#w9e8f127]

#img(http://security2600.sakura.ne.jp/main2/image4/circuit4.png)
#img(,clear)


&mimetex("ODD\,OUT=\bar{IN_3 \oplus IN_2 \oplus IN_1 \oplus IN_0;}");~
&mimetex("ODD\,OUT=\bar{IN_3 \oplus IN_2 \oplus IN_1 \oplus IN_0}");~

*パリティ発生回路の回路図 [#p2064763]

**(4ビット入力の)偶数パリティ発生回路の回路図 [#f31bb11a]

 論理式(*)から得られる回路図は次の通り。

#img(http://security2600.sakura.ne.jp/main2/image4/circuit5.png)
#img(,clear)

 論理式(**)から得られる回路図は次の通り。

#img(http://security2600.sakura.ne.jp/main2/image4/circuit6.png)
#img(,clear)

 この回路図の方が結線が少ないので作りやすい。

**(4ビット入力の)奇数パリティ発生回路の回路図 [#ya71c014]

#img(http://security2600.sakura.ne.jp/main2/image4/circuit7.png)
#img(,clear)

 上と下は同値の回路図である。

#img(http://security2600.sakura.ne.jp/main2/image4/circuit8.png)
#img(,clear)


*参考文献 [#r2842d08]

-『レジスタと演算回路』