先日の日記 でご紹介した「大人の科学マガジンVol.24-4ビットマイコン」にはまっています。
付録のマイコンキットも面白いのですが、コンピュータの原理や歴史を知るための雑誌としても良くできています。
記事の中に、コンピュータの「計算ができる仕組み」の解りやすい解説があります。
ちょっと息抜きに、Excelを使って加算をおこなう論理回路を再現してみました。
まず、1ビットどうしの単純な加算をおこなう「半加算器」を作ります。
論理積(AND)ゲート2個、論理和(OR)ゲート1個、論理否定(NOT)ゲート1個を図のように組み込むと「半加算器」ができあがります。
排他的論理和(XOR)が使えると、ANDとXORの2ゲートだけで「半加算器」を作れるのですが、Excelの論理関数にはXORがありませんから、オーソドックスな回路にしています。
※論理回路を実装する時にはXORゲートは結局AND、NOT、ORで構築することになります。
お気づきのように、「半加算器」をいくつ並べても計算器としては使えません。
これに、下位の桁からの繰上りも加えて結果を出す回路が必要です。
「半加算器」2個、ORゲート1個を組み合わせると「全加算器」を作ることができます。
これで二進数の一桁の計算が可能になります。
この「全加算器」を計算させたい桁数分だけ並べれば加算回路の完成です。
ここでは、Excelで4ビットの加算ができる回路を作ってみました。
一つの「全加算器」に使うExcelの関数は次のようになります。
[計算結果] = AND(OR(AND(OR(x,y),NOT(AND(x,y))),z),NOT(AND(AND(OR(x,y),NOT(AND(x,y))),z)))
[上位桁への繰上り] = OR(AND(AND(OR(x,y),NOT(AND(x,y))),z),AND(x,y))
これを4組埋め込んで・・・
入力された十進数を二進数に変換するテーブルを用意して・・・
計算結果の二進数を十進数に変換して・・・
一桁電卓の完成です。
1971年に発表された世界初の商用4ビットマイコン Intel 4004 は約2,300個のトランジスタで作られていました。
これだと、Excelのシート上に論理ゲートを埋め込む事でシミュレーションできるかも・・・
しませんけど・・・^^;
と言いつつ、「全加算器」にNOTゲートを組み込んで、引き算用の回路を作ってみようかと思ったりしています。
ついでに、二進数と十進数の変換用のエンコーダーとデコーダーも論理回路で作ってみましょう・・・ ヤバ (^^ゞ
このエクセルのシートのダウンロード Addm.xls (80.5K)
最近のコメント