jinyux’s diary

IT業界初心者です。勉強したことをまとめています。

トランジスタと論理ゲート(OR・NORゲート)

OR演算

OR演算は2つの入力値を取る論理演算である。どちらかの入力が1の場合、出力が1になり、どちらも0の場合、0を出力する。このことからANY演算とも言われる。また、排他的論理和に対応してOR演算は包含的論理和とも呼ばれる。以下に真理値表を示す。

A B OR
0 0 0
0 1 1
1 0 1
1 1 1

NOR演算

OR演算の否定となるNOR演算の真理値表を下記に示す。これはOR出力を反転させているだけである。

A B NOR
0 0 1
0 1 0
1 0 0
1 1 0

NORゲート・ORゲート

OR演算をCMOS回路で実装する前にNOR演算の実装を考える。なぜNORを先にやるかというと、回路がORに比べて簡単だからである。
NORゲートは下記の図のようになる。

電源を1.2ボルトとする。A, Bがともに0ボルトのとき、上2つのPMOSがON、下2つのNMOSがOFFとなり、出力Cが電源に接続され1.2ボルトが出力される。

次にAが1.2ボルト、Bが0ボルトのときは片方のPMOSがOFFになり、Cと電源の接続が切れる。そして、片方のNMOSがONになり、Cとグラウンドが接続され、結果としてCから0ボルトが出力される。
A, Bどちらも1.2ボルトのときも同様にCから0ボルトが出力される。下記にA, B, Cの入出力結果対応表を示す。

A B C
0 volt 0 volt 1.2 volt
0 volt 1.2 volt 0 volt
1.2 volt 0 volt 0 volt
1.2 volt 1.2 volt 0 volt

この電圧値を論理値に置き換えるとまさに、NOR演算の真理値表を得る。
そしてORゲートを実装するためにはNORゲートの出力をインバーターの入力に接続すれば、それがORゲートとなる。その回路図を下記に示す。

この回路の出力結果をまとめると以下の通りになる。(いきなり真理値表を書く)

A B C D
0 0 1 0
0 1 0 1
1 0 0 1
1 1 0 1

あとがき
前回の回路図はLTSpiceを使って作成したが、今回はdraw i.oを使用してみた。シンプルな画を作れるけども、線の接続などの微調整がしにくい。使いこなせればもっと楽にできるのかもしれない・・・

2022年9月4日追記
回路図をvisioで作ったものに差し替えた。図形がスナップするし端子同士で線を結ぶのがだいぶ楽なので今後はvisioで作っていこうと思う。正直draw i.oで作るのが面倒でブログ更新が止まってしまったところもあるので、ここから巻き返していきたい。