カテゴリー
Free

コンピュータの仕組み21

論理演算器
論理演算器

 もう少し複雑な演算装置でソフトウェアとは何かを考えてみます。

 上の図は4種類の演算ができる回路です。でマルチプレクサ、デマルチプレクサを使って演算の種類を切り替えできます。

 S1=0、S2=0のときはAND、S1=0、S2=1のときはNANDと S1、S2の値により演算の種類を切り替えます。

 S1、S2、A、Bの組み合わせで演算が色々できるためこの手順もソフトウェアといえますがまだ単に演算回路切り替えて順次演算を行なっているだけです。

カテゴリー
Free

コンピュータの仕組み20

NAND回路
NAND回路

 例えば電源電圧5VのNAND回路の入力Aに5V、Bには0Vの電圧が加わっているとします。その時、出力Xは5Vとなります。

 この動作の5Vや0Vの電圧を加えることを記号化すると次の文章になります。(5VはHighとし略してH、0VはLowとし略してLとする)

 入力AをH、BをLとすると出力XはHとなる。

NAND
NAND

 HとLしか無いならばHは電圧が有る状態なので1、Lは無い状態なので0と置き換えることもできます。そうすると次の式でも良いことになります。

 A NAND B = X なので
 1 NAND 0 = 1 となります。

4bit NAND
4bit NAND

 次にNAND を4つ並べてみます。
{A1, A2, A3, A4} NAND {B1, B2, B3, B4} =
{X1, X2, X3, X4}

 4bitのNAND演算になります。実際の数字を入れると

1111 NAND 0000 = 1111
1111 NAND 0001 = 1110
1111 NAND 0010 = 1101



0000 NAND 0000 = 1111

4桁同士の2進数の論理演算ができます。

 二つの数値を決めた手順で次々と演算していくとき、その手順がソフトウェアとなり、演算を行う装置がハードウェアとなります。しかし単に論理演算を繰り返すだけでは今のコンピュータのソフトウェアとはまだかけ離れています。

カテゴリー
Free

コンピュータの仕組み1F

 今までハードウェア仕組みを説明をしてきましたが、ここからはソフトウェアの仕組みの説明に移ります。

 ここでのソフトウェアの定義はCPUに出す命令の集まりをソフトウェアとし、物体として存在している物をハードウェアとします。

 人や立場によってソフトウェアとハードウェアの境界が若干異なることもありますが目に見える装置をハードウェア、装置を動かすための手順をソフトウェアと考えてください。

 ガスコンロやフライパンはハードウェア、料理の方法はソフトウェアになります。

 料理に置き換えて気づいたのですが食材や調味料はどっちに入るのでしょうか。人それぞれどちらでも良しとします。

カテゴリー
Free

コンピュータの仕組み1E

 コンピュータの仕組みを演算の基本部品であるCPUにたどり着くまで説明してきましたが、ここで周辺の装置を見ていきます。

 パソコンやスマホを完成形とした場合のCPU以外の重要な構成部品を大別すると

記憶装置
 レジスタはCPUの内部に有る記憶回路でしたが容量が少ないので外部の記憶装置を使います。RAMは通電していないと記憶が失われ、ROMは電源が切れても記憶し続けます。

 マイクロコントローラ呼ばれる場合は一つのLSIの中にCPUに必要な回路とROMやRAMが入っています。一つの部品で一通りの仕事ができるように作られました。誕生はマイクロプロセッサとほぼ同時期です。

 RAMやROMもそれぞれたくさんの種類があります。これらはみな半導体なのでICやLSIの形状をしています。他に円盤やテープ状のものに情報を記憶させる方法があります。機械的な動作があるのでコンピュータと筐体を分けてケーブルなどで接続します。

 純然たる記憶装置ではありませんが利用している側から見るとクラウドも記憶装置として分類してもいいと思います。物理的にはクラウド自身先にあげた半導体やディスクで構成され、クラウドシステムに組み込まれています。ネットワークがここまで自然にあるようなインフラとなって皆が無意識のうちに利用している時代になったならばクラウドも記憶装置の一つと思えます。自分で用意する物理的な記憶装置よりも安全かもしれません。

入力装置
 コンピュータ以外から情報を取り込むときは入力装置を経由してCPUで扱える情報に変換します。人間が入力する場合はキーボードのようなボタン類、マウスやタッチスクリーンのように値が連続的に変化する情報などがあります。マイクやカメラも入力装置です。

 何かの量や状態を2進数に定義できればコンピュータに入力できます。逆に言えば2進数に定義できないものや事象はコンピュータに入力できないことになります。人知がまだ到達していないことは入力が出来ないのです。

出力装置
 何に対して出力するかで大きく分かれます。人間に対して出力するにはデジタル信号を人間が認識できるようにします。

 目で認識させる方法としてデジタル信号に応じて光の明滅させます。ディスプレイと呼ばれる装置はこの原理を利用しています。光の明滅を様々組み合わせて文字を出したり、色をつけたりします。

 耳で認識させる方法はデジタル信号に応じて音の強弱や周波数を変えます。音楽をダウンロードして聴いたり地デジテレビから聞こえてくる音声は全てデジタル情報です。

 触覚、味覚、嗅覚を利用した出力装置は一般的に普及していませんが未来にはそれを応用した出力装置が出てくるかもしれません。

 人間以外でデジタル信号を受け取れる相手への出力であればそのまま渡すことができます。この時情報の劣化がおきません。

 人間以外でデジタル信号を受け取れない相手への出力は受け取れるような形に変換します。大概何かしらの物理量に変換するのですがこの時信号の劣化がおきます。

カテゴリー
Free

コンピュータの仕組み1D

 Computerがナゼ動くかの説明を電気が作られるところから始めてCPUの説明まで続けてきました。ここで少しまとめておきます。

 スイッチング素子で基本論理ゲートを作ることができます。

 基本論理ゲートを組み合わせて色々な機能を持つ論理回路を作ることができます。

 論理回路を並べて使用すれば複数ビットに対して操作することができるようになり、一つのICに組み込めば容易に多ビットの演算回路を作ることができます。

 それぞれ単機能だったICに役割を与えて組み合わせ一つのLSIにすればCPUが完成します。

 CPUに周辺機器を付け加えるとコンピュータになります。

カテゴリー
Free

コンピュータの仕組み1C

Programmer’s Reference Manual TMS 1000 Series MOS/LSI One-Chip Microcomputers Texas Instruments 1975
Programmer’s Reference Manual TMS 1000 Series MOS/LSI One-Chip Microcomputers Texas Instruments 1975

 引き続きTMS-1000を題材にCPUを学習していきます。TMS-1000を構成するブロック毎の動作を仮説を立てて追ってみます。実物がないので実験できませんが後でマニュアルで確認します。

 まずはOSCILLATORでクロック信号を発振します。内蔵しているOSCILLATORはRCなのかセラミックなのかクリスタルを使用しているのかわかりませんが矩形波を一定周期で出力しています。この信号が全てのブロックに伝わりますので各ブロックはその信号の都度に逐次状態を進めていきます。

 電源投入後、各FFでできたレジスタの状態は不安定なのでリセットが必要です。リセットを行い全体を初期状態にします。

 初期状態は命令の実行を待っている状態ですので次にプログラムカウンタが指す番地の命令を実行せよと何かしらの信号を与えます。

 最初はプログラムカウンタが0なのでROMの0番地のビット列が命令デコーダに入ります。命令デコーダはその最初の命令(ビット列)に基づきFFでできているレジスタやバッファと論理回路の塊であるALUにビット列を送り命令を実行します。

 次のクロック信号が来た時はプログラムカウンタ繰り上がります。前の命令を実行したので各レジスタの値が設定されている状態から最初と同じようにROMの次の番地のビット列を命令デコーダに送ります。

 以下次々とクロック信号が変化する度にROMの命令が命令デコーダに送られます。例えばSUBROUTINE RETURNレジスタに次に実行する値を設定してからプログラムカウンタに飛んだ番地を書き込み、そこから新しい命令を実行し、SUBROUTINE RETURNの番地に戻すようなことでサブルーチンが実行できるように思えます。

 こうしてみると命令デコーダが他のブロックに比べてだいぶ複雑な機構を持っているように見えます。
1 ROMからレジスタにビット列を複製する、RAMであればレジスタからRAMへ逆にRAMからレジスタへビット列の複製ができる。
2 使うレジスタを選択できる。
3 出力するバッファを選択できる。
4 ALUの演算を選択できる。
5 PROGRAM COUNTERやPAGE ADDRESS、SUBROUTINE RETURNを書き換え命令の実行順を変えることができる。
 このようなことを実行するために命令のビット列ごとにどこをどうするか決定する回路になっていると思われます。

 命令ごとに回路を作っていくとすると個人の手作りではTTLを使ったとしても4bitで十数個位が限度だと思います。ましてディスクリートトランジスタやリレーで作るとなったら数個の命令で根を上げそうです。

 やはり1個数十円から買えるCPUは偉大な存在です。

カテゴリー
Free

コンピュータの仕組み1B

TMS1000
Programmer’s Reference Manual TMS 1000 Series MOS/LSI One-Chip Microcomputers / Texas Instruments 1975

 マイクロプロセッサーを云々する時には必ずと言っていいほどi4004から始められますが、詳しく書かれているサイトが多いのでここではTMS1000を少し学んでみたいと思います。

PROGRAM COUNTER は6bitあり0〜63までをカウントできるレジスタです。

SUBROUTINE RETURN REGISTER も同じく6bitあり0〜63まで戻る位置を覚えておけるレジスタです。PROGRAM COUNTER と同じです。

PAGE ADDRESS REGISTER は4bitで0〜15までページを切り替えることができます。PROGRAM COUNTER が6bitでPAGE ADDRESS が4ビットなので合わせて10bitとなり0〜1023まで番地を持てます。

 TTLには2回路入りや4回路入り、6回路入りがありますが、2回路や4回路はわかりますが6回路入りは中途半端な気がしていました。自身が8ビット時代以降なので不思議に思うだけでディスクリートトランジスタやTTLでコンピュータが出来ていた頃、6回路入りは半端な存在ではなかったのでしょう。なんでも8の倍数の前の時代からコンピュータはありました。

PAGE BUFFER REGISTER はページを切り替えた時の戻りページを覚えておくためのレジスタです。

 PROGRAM COUNTERとSUBROUTINE RETURNのセットとPAGE ADDRESSとPAGE BUFFERのセットを組み合わせて実行すべき命令や読み書きするデータの位置を制御しているのがわかります。

INSTRUCTION DECODER は8bit幅の命令を実行します。4ビットCPUなのに何故8bitの命令なのでしょうか。上の図では真ん中に書いてあります。やはり命令デコーダがCPUの中心部なのですね。

 この頃の4ビットCPUを見てみると皆50個位の命令を持っていました。4ビットだからといって命令長が4ビットなわけはなく(命令が16個では実用にならない)8や16ビット長にして一通りの処理ができる命令デコーダにしてあります。

CPU基本命令数
TMS-100043
TMS-120043
i400446
HMCS-446
uCOM-455
4bitCPUの基本命令数

X,Y,ACCUMULATOR REGISTER は演算を行う値を記憶するところです。数式で言えば変数にあたります。特にACCUMULATORは一時的な値の保持に使われます。

 この他に出力が二つあります。その一つにPLAと書かれていますがプログラミングが可能なのでしょうか。もう少し調べないとわかりません。

 このようにプロセッサの中を見てきましたが、一つ一つは論理回路の集合でできていることがわかります。クロック、レジスタ、バッファ、カウンタはフリップフロップでできます。デコーダやALUも論理回路の組み合わせでできます。

 CPUはリレーでも真空管でもディスクリートトランジスタやTTLでも作れることがよくわかります。ただ一般の個人でも手に入れることができるようになったのがワンチップでできたCPUからでした。ここから広義でのコンピュータが爆発的に普及し始めたのです。

カテゴリー
Free

コンピュータの仕組み1A

 ロジックICで作った演算器、命令デコーダ、レジスタ、カウンタなどを組み合わせればCPUが出来上がります。1970前後のミニコンはこのような部品で作られたコンピュータでした。

 ならば複数のICを一つにまとめようとするのは自然の流れです。ディスクリート部品で作られたコンピュータを使ってICを作り、ICで作られたコンピュータを使ってLSIを作る。

 このようにして画期的な集積回路マイクロプロセッサが誕生しました。

カテゴリー
Free

コンピュータの仕組み19

SN74LS181N
SN74LS181N

 ロジックICにしては少し大きめで足の多いICですがこれも74シリーズのICです。用途はCPUの中に入っているALU、演算装置にあたります。これ一つで4ビットの論理演算や算術演算が行えます。主にマイコンが発明される前のミニコン時代にCPUを作る一つの部品として開発されました。4ビットですが74182と組み合わせて複数の74181を繋ぎビット数を増やして演算することができます。

 石川町駅の近くのシンコー電機に2個だけ在庫があったので二つとも購入しました。何十年残っていたのでしょうか。今度実験に使用してみます。

74LS181 Table
74LS181 Table
カテゴリー
Free

コンピュータの仕組み18

 論理回路で使われるICをいくつか見てみましょう。

SN74S00N
SN74S00N 4 NAND

 74シリーズの00番は4bitのNANDです。最初にICにしたいのはNAND回路だったのですね。

SN74HC04N
SN74HC04N 6 Inverter

 次に末尾一桁の番号のICは6個入りNOT回路です。インバータと呼ばれます。

74LS74N
74LS74N Dual Positive Edge Triggered D Flip Flops

 フリップフロップが二つ入ったICです。だんだん複雑な論理回路がICになってきました。

SN74LS193N
SN74LS193N 4bit Counter

 4bitのカウンターということは最低でもFFが4つ入っています。もうディスクリート部品で組むのが大変な回路になってきました。

TC4069UBP
TC4069UBP 7segment decode

 これは7セグメントLEDを制御するためのICです。このように特定の用途の論理回路も汎用化されICになっています。

カテゴリー
Free

コンピュータの仕組み17

SN74S00N
SN74S00N

 他コンピュータの重要な演算機能としてシフト演算があります。ビットの列を右や左にずらしていく回路でFFで構成されます。

 このように基本的な論理回路である、NOT、NAND、NORを組み合わせて様々なビット演算を回路で作り、それをまとめて集積するとCPUやメモリー等のコンピュータ部品になります。

 今まで実験でリレーや真空管、ディスクリートトランジスタを使って仕組みの理解を進めてきました。これからはもっと実用的な装置にしようと思いますのでICを使っていきます。

 初期のコンピュータはリレーや真空管が実際に使われていました。その頃は軍や国家レベルの大きな事業でしたので個人で最低限であっても実用的なコンピュータを作ることは現代であっても不可能です。

 その後トランジスタが発明され電子装置が徐々にトランジスタに置き換わっていきます。トランジスタであれば個々の電力消費が少なく現代では部品単価も廉価なので個人でも手が出せます。実際にディスクリートトランジスタを使ってCPUを作っている方がネットを探すと出てきます。ただ、数千、数万単位の部品で装置を組み上げていくには強靭な気力を要しますので命懸けの仕事と思へ諦めざるを得ません。

 そこで登場するのがICです。1960年前後にアメリカで発明されたこの部品はコンピュータを個人にもたらした偉大な発明だと思います。

 

カテゴリー
Free

コンピュータの仕組み16

半加算器
半加算器

 半加算器は2進数の加算をする回路です。AとBを足してSに出力します。桁上がりが有ればCに出力されます。

全加算器
全加算器

 全加算器はAとBを足す時に下からの桁上がりXも加えることができます。加算結果をS、桁上がりをCに出力します。この出力SとCを別の全加算器に与えれば一度に演算できるビット数が増えます。全加算器を8個繋げば8ビットの加算器が出来上がります。

 減算は補数を求めて加算し桁上がりを無視する方法で算出します。補数は2進数であればNOTで反転し1を加えれば求められますので論理回路で容易に実現できます。

カテゴリー
Free

コンピュータの仕組み15

SRフリップフロップ
SRフリップフロップ

 フリップフロップのことをFFと略します。。上図のように四角い記号で描かれます。今後は呼び名はFF、記号は四角いのをを使用します。

 FFは以前記憶する回路として登場していますが、その状態を記憶する性質を使って数を数えることができます。コンピュータの中ではこれをカウンターと呼びます。

JK型ラッチ
JK型フリップフロップ

 カウンターは最初の図のRS型のFFではできません。JK型のFFを使います。JK型のFFにはクロック信号を入力する端子があり、クロック信号毎にカウンターをアップします。

 ですが、少し回路が複雑で大変そうなのでもう少し調べました。

D型フリップフロップ
D型フリップフロップ

 JK型より簡単なD型フリップフロップという回路がありました。これでもカウンターを作れます。

D型フリップフロップで構成したカウンター
D型フリップフロップで構成したカウンター

 D型フリップフロップは4個のトランジスタで作れるので4ビットのカウンターを作るためには16個のトランジスタが必要です。チップタイプの2SD1119が1000個もあるので今度実験してみます。

失敗したバイナリカウンター
失敗したバイナリカウンター

 と言う訳で早速実験してみました。取り敢えず手持ちのNPNトランジスタを並べて4個のFFを作ります。同じトランジスタがないのでバラバラで格好は良くありませんがなんとかFFが4個できました。型が同じトランジスタでも結構hfeにばらつきがあり調整が面倒でしたが手持ち抵抗と勘案して抵抗値を低めに寄せてあります。
 しかしカウンターとしては全くダメな結果でした。FFとしては4個それぞれ動いたのですがFFどうしをつなぐと全然ダメでした。部品数を減らすためになるべく簡単な回路で挑んだのですが失敗に終わったのです。

トランジスタによる標準的NAND回路
トランジスタによる標準的NAND回路

 それでもう一度NAND回路から見直し少し本格的にしました。NAND一つでこれだけの部品になります。

改良したフリップフロップ OFF状態
改良したフリップフロップ OFF状態
改良したフリップフロップ ON状態
改良したフリップフロップ ON状態

 一つのFFでこの規模になってしまいました。これではとても4ビットカウンターには辿り着けそうもありません。

 実用的な回路図をネットで探して見つけたのが「TTLアプリケーションマニュアル」テキサスインスツルメンツアジアリミテッド、昭和47年9月15日発行です。そこにFFやカウンターの回路図が載っています。上にあるような単純な代物ではありません。雑音や温度、不良な電源をも考慮された回路なのでしょう。

 でも二つ大きなことが解りました。

 一つはトランジスタのhfeにはかなりばらつきがありスイッチングだからといってギリギリで設計してはいけない。

 もう一つはネットや書籍に載っている論理回路は動作を説明するために抽象化されているので実用性は無いと言うことです。

 アナログ回路に比べるとデジタル回路が簡単に見えるのはONとOFFのスイッチングだけだからではなく調整が必要なことをICが中で殆どこなしているいるからだと気付かされました。

 ディスクリート部品で組み立てようと思ったらアナログ回路に負けない程に難しい実装が待ち受けています。

 だからコンピュータを作るためには集積回路がどうしても必要になります。

カテゴリー
Free

コンピュータの仕組み14

XOR
XOR

  NANDのみで構成した排他的論理和です。排他的論理和は二つの入力の状態が同じであればLow、異なればHighを出力します。早速、追ってみましう。

入力A、Bが共に0の時、
NandA=1
NandBa=0
NandBb=1
NandB=1
NandCa=1
NandCb=0
NandC=1
NandDの入力が共に1になるので
Q=0

入力A、Bが共に1の時、
NandA=0
NandBa=1
NandBb=0
NandB=1
NandCa=0
NandCb=1
NandC=1
NandDの入力が共に1になるので
Q=0

入力A=0、B=1の時、
NandA=1
NandBa=0
NandBb=1
NandB=1
NandCa=1
NandCb=1
NandC=0
NandDの入力が1と0なので
Q=1

入力A=1、B=0の時、
NandA=1
NandBa=1
NandBb=1
NandB=0
NandCa=1
NandCb=0
NandC=1
NandDの入力が0と1なので
Q=1

 排他的論理和は論理演算の勉強をしていると必ず出てきますが具体的に何に使うかわかっていません。この機会に明らかにしようと思います。

カテゴリー
Free

コンピュータの仕組み13

 マルチプレクサで複数から一つを選択できましたが今度は一つを複数のいずれかに切り替える論理回路です。このような論理回路をデマルチプレクサいいます。

デマルチプレクサ
デマルチプレクサ

 Sが0の時、AのANDの片方が1、BのANDの片方が0になるのでYの状態は出力Aに現れます。

 Sが1の時、AのANDの片方が0、BのANDの片方が1になるのでYの状態は出力Bに現れます。

カテゴリー
Free

コンピュータの仕組み12

 実際の半導体電子部品で論理回路を作ってみました。一番部品数の少ないNot回路を二つ作り連結します。一つのNot回路で電子部品での論理回路の作り方を学びそれを連結することにより論理回路から論理回路へ状態を伝える方法も同時に学びます。

2SC1815Y
2SC1815Y

 IC内ではFETが主なのでFETで作ろうと思い実験を重ねたのですが手持ちのFETがPチャンネルだけったのでマイナスの電圧を扱うのが難しいのとOFFの時の電圧がどうしてもあまり低くならないので諦めトランジスタに切り替えました。素人の私にはNPNトランジスタが使いやすくて良いです。

2SC1815で作った二重に連結されたNot回路
2SC1815で作った二重に連結されたNot回路

 S1をHighとLowに切り替えると各電圧測定ポイントに接続されたテスターで読み取れる回路です。

2SC1815でNot回路を作り二重に連結
2SC1815でNot回路を作り二重に連結

 電流を極力流さないで実験したかったので動作ギリギリの4.7kと47kを使い電源電圧は5Vとします。

二重Not回路の入力がOFFの時
二重Not回路の入力がOFFの時

 S1がGNDに落ちている時の計測結果です。右から入力Low、Not1出力High、Not2入力High、Not2出力Lowとなっています。

二重Not回路の入力がONの時
二重Not回路の入力がONの時

 S1が5Vの時の計測結果です。右から入力High、Not1出力Low、Not2入力Low、Not2出力Highとなりました。

 トランジスタを使えばすごく簡単に論理回路ができ一つの論理回路から次の論理回路へ状態を伝達することができました。

カテゴリー
Free

コンピュータの仕組み11

マルチプレクサ
マルチプレクサ

 マルチプレクサはSの入力によってYにAかBの値を出力します。例えばAが0、Bが1とします。Sが0の時、

Not=1
AndAa=0
AndAb=1
AndA=0
Ora=0

AndBa=0
AndBb=1
AndB=0
Orb=0

Orの入力が共に0なので
Y=0
となります。

A、BそのままでSを1にしてみます。

Not=0
AndAa=0
AndAb=0
AndA=0
Ora=0

AndBa=1
AndBb=1
AndB=1
Orb=1

Orの入力の片方が1なので
Y=1
となります。

 このようにマルチプレクサはどちらの値を出力するか選択できます。並列に繋いでいけば複数のラインの選択を2進数で指定できるようになります。

カテゴリー
Free

コンピュータの仕組み10

フリップフロップ
フリップフロップ

 コンピュータは色々な計算を行いますがもう一つ重要な機能を持っています。それは情報を記憶することです。記憶の方法は何種類もありますがここでは最も基本的な方法であるフリップフロップを見てみます。

SetResetQaQb
00保持保持
0101
1010
11禁止禁止
フリップフロップ真理値表

フリップフロップはS(Set)、R(Reset)が入力でQが出力です。最初にSとRに0、1を入力した動きを追ってみます。

S = 0
NotA=1
R=1
NotB=0

NandAの入力a,bは以下になります。

NandAa=NotA=1
NandAb=NandB

NandAはNandAaが1なのでNandBが1の時に0になります。

NandBの入力a,bは以下になります。

NandBa=NandA
NandBb=NotB=0

NandBはNandBbが0なのでNandAに関わらず1になります。

 Rが1のときはNotBが0なのでNandBが1となりNandAの入力が共に1になるのでQaが0となります。

 逆のSとRに1、0を入力したときはNotAが0なのでNandAが1となりQaが1となります。

 1を記憶したい時は1、0と入力し0を記憶したい時は0、1、読み出したい時は0、0になれば良く必要なビット数分並列にすればCPU内のレジスタを構成できます。このような記憶素子をSRAMと言います。

カテゴリー
Free

コンピュータの仕組み0F

Not,Nand,Nor
Not,Nand,Nor

 今まで電気、電子部品でコンピュータがなぜ動くかの説明を続けてきましたがいよいよ物理的なことから論理的な説明に移ります。

 前回FETでNOT、NAND、NOR回路を構成しましたがそれぞれを記号に置き換えて考えます。記号の中はリレーでも真空管でもトランジスタでも同じです。実際装置を作る時にその素子を決めればよく未来の新しいデバイスであってもこれから説明することは変わりません。

論理回路を記号化
論理回路を記号化

 このNOT、NAND、NORを組み合わせて様々な論理演算ができます。例えばNANDにNOTをつけるとANDに、NORにNOTをつけるとORの出来上がりです。更にブール代数で数式化すれば回路を数式化に置き換えて設計できます。

カテゴリー
Free

コンピュータの仕組み0E

NOT回路
NOT回路

 ゲートに電圧がかかっていない時、ドレインを測定すると電圧が出ます。ゲートに電圧をかけるとFETがONになるのでドレインには電圧が出ません。これはAがONの時はXがOFF、AがOFFの時はXがONになると見なすことができます。入力が反転する回路です。

NAND回路
NAND回路

 FETが直列に接続されているため、AとBの両方のゲートに電圧をかけた時だけXのドレインの電圧が出なくなります。それ以外の時は電圧が出ます。二つの入力がともにONの時に出力がOFFになる回路です。

NOR回路
NOR回路

 FETが並列に接続されているためAまたはBのゲートに電圧をかけるとXのドレインの電圧が出なくなります。どちらかがONの時に出力がOFFになる回路です。