Introduction to Media Engineering

メディア工学実習
第1章:ディジタル回路の設計(その1)


ディジタル回路とは?

携帯電話等の家電製品、パソコン等のコンピュータ製品はいずれも電気で動いています。 最近の電気製品は単純なものは少なく、「マイコン炊飯器」、「センサー付きエアコン」等、どれもが 複雑な機能を持っています。このような複雑な機能を実現するためにディジタル回路は欠かせません。

たとえば、LED(発光ダイオード)は2つの状態「点灯」、「消灯」が実現できますが、これを7つ組合せて 8の字型に並べれば数字を表示できる表示板(「7セグメント表示器」といいます)になります。 また、きれいに碁盤の目のように並べればコンピュータディスプレイ装置のような表示器にもなります。 このような表示器は、多くのLEDの「点灯」、「消灯」を制御しなければ実現できません。


図1-1:7セグメント表示器TLR320

また、コンピュータの中も同様です。数値や文字を記憶するということは単純な2進数を覚えることと同じです。 2進数は「1」と「0」の文字によって表現され、それらを用いて加減乗除算等の演算を実行しています。

このように、「LEDの点灯・消灯」や「コンピュータ内の2進数の1と0」は2つの状態のうちどちらであるか(2者択一)を たくさん保持できれば多くの機能を実現することができます。 ディジタル回路は、このような状態を1つの信号線(電線)に「電圧がかかっている(H:High)」、 「かかっていない(L:Low)」という2つの状態で実現し、それを組み合わせることでたくさんの 論理動作を実現する回路のことをいいます。

現代ではソフトウェアだけは十分ではなく、ハードウェアを理解した技術者を社会は強く求めています。 それはソフトウェアではできない次のようなハードウェア(電子回路)の利点があるからです。

普段使っているパソコンは、かなりの仕事まで柔軟にこなすことができますが、ソフトウェアを 中心にして動いているため動作が遅く、装置そのものが大きいのが難点です。 一方、電子回路はトランジスタからIC、LSI、VLSIと高集積化・多機能化 (1つのパッケージの中に多くの機能を実現できる)が進んでおり、一旦動きはじめたら なかなか壊れません。

また、今までにない高速・高機能な製品を実現するためには、ソフトウェアだけでは限界があり、どうしてもハードウェアの 力を借りなければなりません。その逆に、ハードウェアではできないきめ細かい動作部分もあります。 ハードウェアだけではダメ、ソフトウェアだけでもダメ、ハードウェアとソフトウェアの両方を知り、 使いわけることができて初めて良い製品が実現できるのです。ぜひ、両方を使いこなせるようにしましょう。


図1-2:ハードウェアを構成する部品(左からトランジスタ、IC、LSI)

ディジタル回路の設計

ディジタル回路(ハードウェア)の設計というと難しそうに思えますが、意外と簡単です。 それはパソコンのソフトウェアを作りはじめる時に経験したのと同じように、機能がたくさんあるだけで、 一つ一つの基本機能は単純明解だからです。特に初心者には、普段触ったことはあれども作ったことは全くない人も 多く、難しく感じるかも知れません。でも、ちょっと慣れてしまえば、たくさんの機能を実現するディジタル 回路を次々と作り出すことができます。この講義では、ちょっとしたディジタル回路の設計を通して、ハードウェアになれ てもらうことを目的とします。


ディジタル回路の基礎

まずはハードウェアを実現するためのディジタル回路の基礎を学習しましょう。 最終的にはこの基礎を応用して簡単なゲーム機を製作します。余力のある人は新しいゲーム機能を 追加することもできます。

ディジタル回路の基本

ディジタル回路は、1つの信号線(電線)に「電圧がかかっている(H:High)」、 「かかっていない(L:Low)」という2つの状態を作って動作します。以下では(どちらでも良いのですが)、 H状態を「1」、L状態を「0」に割り当て、ディジタル回路の動作を考えることにします (このことを正論理といいます)。

つまり、回路上の信号線の状態と2進数の論理の間には、次のような関係があることにします。

表1-1:電線の状態と2進数の論理の関係
電線の状態2進数の論理
電圧がかかっている(H:High)
かかっていない(L:Low)
通常、信号線のH状態は約+5V、L状態は約0Vとします。

論理演算とゲート素子

2進数の和や積の計算では、ビットごとに演算を行なっていました。 ディジタル回路では次のような演算ができる素子が用意されています。
これらの素子は、数本の入力信号線の論理状態に応じて出力信号線の論理状態が決まるという動 作をするので、信号が門をくぐるというイメージから「ゲート素子」と呼ばれています。

それでは,主なゲート素子を紹介しましょう.

左側が各ゲート素子の回路図上のシンボルマーク、その下側が、動作を表す論理式、 右側が具体的な論理入力に対する出力を示す動作表です。

AND素子(論理積)
入力A,Bがともに1のときのみ出力Xが1になります.

図1-3:AND素子
OR素子(論理和)
入力A,Bのいずれかが1のときのみ出力Xが1になります.

図1-4:OR素子
NAND素子(論理積の否定)
入力A,Bがともに1のときのみ出力Xが0になります.

図1-5:NAND素子
NOR素子(論理和の否定)
入力A,Bがともに1のときのみ出力Xが0になります.

図1-6:NOR素子
NOT素子(否定)
入力Aが1のとき出力Xは0、入力Aが0のとき出力Xは1になります.インバータ 素子とも呼ばれます.

図1-7:NOT素子
EXOR素子(排他的論理和)
入力A,Bのどちらか一方だけ1のとき出力Xが1になります.入力が両方とも1の時は出力Xが1になりません。 つまり、入力A,Bが一致する時のみ出力Xが0になります. エクスクルーシブORと呼びます.

図1-8:EXOR素子
このようなゲート素子はディジタルICで実現され、「74シリーズ」と呼ばれる代表的な半導体があります. 型番が74から始まることから,この名前が付いています. 74シリーズの詳しい仕様は次の規格表を参考にして下さい。
表1-2:74シリーズの主なゲート素子
ゲート素子74シリーズ型番規格表
AND74LS0874LS08規格表
OR74LS3274LS32規格表
NAND74LS0074LS00規格表
NOR74LS0274LS02規格表
NOT74LS0474LS04規格表
EXOR74LS8674LS86規格表

これらのICの多くは14本のピンを持ち、ICを動かすためには14番ピンに+5V(VCCと書きます),7番ピ ンに0V(GNDと書きます)を接続する必要があります.他のピンがどのような機能を持っているかは 上記の規格表から調べましょう。 例えば、74LS00(NAND4つ搭載)はきり欠き部分を左にして上面から見ると次のようなピン配置になっています。


図1-9:74LS00のピン配置


加算器(足算器)の設計(その1)

CPUの中で行なわれている演算のうち、最もよく使われているのは加算器(足算器)でしょう。 ディジタル回路の簡単な例として、1桁の加算器を設計してみましょう。

いきなり難しいこと!と思った人もいるかもしれませんが、2進数の世界は意外と簡単なことなのです。 早速説明していきましょう。

先にコンピュータのようなディジタル回路は「1(電圧がある)」と「0(電圧がない)」の 2状態で動いています。ここでは2進数1桁の加算器を作ることにします。

2進数の1桁の加算器の動作は次の通りです。

「2つの入力A、Bに0または1を入力すると、それらを加えた値をSに出力する。 もし桁上がりが発生した時には出力Cを1とする。」

次の図は、人間が行なう加算演算と、加算器の出力の関係を示しています。


図1-10:2進数1桁の加算(半加算)

さて、SとCはどのような回路で実現できるでしょうか。 順を追って説明しましょう。

加算器はAとBの入力の値によって出力S、Cの値は一意に決まる箱(ブラックボックス)です。 このブラックボックスの動作が回路動作で、それを表に表してみましょう。 この表を「動作表」といいます。


図1-11:半加算器の動作

この表をじっと見てみると、何か気づきませんか? そぅ、出力SはEXORと同じ動作、出力CはANDと同じ動作なのです。 この回路を「半加算器(half adder)」といいます。



図1-12:半加算器の回路図

加算器(足算器)の設計(その2)

さて、半加算器ができたら、次は「全加算器」を設計しましょう。 全加算器は、下の桁から桁上げまで考慮した1桁の加算器です。 つまり、入力が、A、Bだけでなく、下の桁から桁上げ信号C’も考慮して設計しなければなりません。 さぁ、これも同様に設計してみましょう。

「下の桁から桁上げ信号C’も考慮し、2つの入力A、Bに0または1を入力とし、それらを加えた値をSに出力する。 もし桁上がりが発生した時には出力Cを1とする。」


図1-13:2進数2桁の加算(全加算)

まず、SとCの結果を実現するための回路動作を示す動作表を書きましょう。 先ほどよりも入力の組合せが増えていることがわかります。選択肢が1つ増えると、 組合せの数は2倍になることを思い出しましょう。


図1-14:全加算器の動作

次は、この動作表を満足する回路を設計するのですが、これにはちょっとしたテクニックが必要です。 そのテクニックは「回路の簡単化」なのですが、その紹介は2年生の「ディジタル回路」や 「ディジタル回路実験」にお任せして今回は答えだけを示します(お楽しみにね!)。
回路図を各自で書き込んで下さい。そして動作表通り動作するかどうかを電線を追って確かめて下さい。 (回路図は信号が左から右に流れるように書くのが原則です。また、接触するところは●で塗らなければなりません)







図1-15:全加算器の回路図

全加算器は1桁分の加算回路ですが、これを複数接続することで何桁の加算器もつくることができます。 次の図は4桁の2進加算器の例です。


図1-16:4桁2進加算器

まとめ

ここで設計したディジタル回路は、どれもひとつ入力を決めれば出力にいつも同じものを出す回路です。 このような回路を「組合せ回路」といいます。この他に、いつも同じ動作をしない回路も作ることができます。 そのような回路には必ずメモリのような記憶素子が存在します。記憶素子を使った回路は次回に説明します。

CPUの中にはここで設計した加算器のような簡単で基本的な回路がたくさん入っています。 しかし、 それらが多数組合わさって複雑な動作をしているだけなのです。組合せは爆発的に増えるので、たくさんの ことができるようになるわけです。 全加算器を複数接続することで何桁の2進数でも加算できることがそのことを物語っています。
CPUは携帯電話や炊飯器等の家庭電化製品で活躍しています(この場合はマイコンと呼ばれることが多い)。 設計時間の短縮と誤りの混入防止のため、現在ではディジタル回路の設計は、コンピュータの力を借りて 設計しています。それが「電子回路CAD(Computer Aided Design)」とか「EDA(Electronic Design Automation)」と 呼ばれている分野です。

どの世界に行っても電気製品はあります。何を作るにしても電気を使います。 「電子回路CAD」が使えるようになれば、どの分野への就職もバッチリですね。


ディジタル回路の設計(その2)」へつづく
2004.05.30.
2005.06.01.
fmiso@sccs.chukyo-u.ac.jp