ディジタル回路実験

Lab3:基本ディジタル回路設計(組み合わせ回路)

ディジタル回路設計の基礎として組み合わせ回路を学びます。

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

たとえば、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つの状態で実現し、それを組み合わせることでたくさんの 論理動作を実現する電子回路のことをいいます。

現代ではパソコンのようにCPU上で動作させるソフトウェアだけは十分ではなく、 ハードウェアも理解したソフトウェア技術者 (逆に言えば、ソフトウェアも理解したハードウェア技術者) が社会から強く求められています。 それはソフトウェアではできない次のようなハードウェア(電子回路)がたくさんあるからです。

普段使っているパソコンは、かなりの仕事まで柔軟にこなすことができますが、ソフトウェアを 中心にして動いているため動作が遅く、装置そのものが大きいのが難点です。 一方、電子回路はトランジスタから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シリーズ」と呼ばれる代表的な ICが使われます. 型番が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:全加算器の動作

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







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

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


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

まとめ

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

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

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


実際のディジタル回路について

ディジタル回路の動作について理解したら、次は実際にディジタル回路を動かす方法について学習しましょう。

回路製作はどこでする?

一般電化製品では、ICに電源を供給したり、素子間を接続する(配線する)ために プリント基板と呼ばれる配線板を使います。板は絶縁体で、一般に緑色のガラス繊維が使われています。 プリント基板上には銅膜が貼ってあり、電線以外の不要な部分を化学反応で溶かして配線を実現します。
このようなプリント基板が使われているのは、細かい配線をすっきりとまとめることができるからです。

図2-6:プリント基板の配線(ROM、RAMの周辺配線)
本実験ではプリント基板を作成するための時間はないので、もっと簡単に電子回路を実現できる 「ブレッドボード(試作用基板)」を用います。


図2-7:ブレッドボード

ブレッドボードは電線を差し込む穴がたくさんあいている配線板です.
赤色または青色の線に沿った穴は基板内部で導通しています。主に電源用に用います。 赤色は+5V、青色は0V(GND)とします。
また何も書かれていませんが、溝と垂直方向に並ぶ横方向の穴も内部で導通しています.

ICは溝をまたぐように置き、溝の両側にピンを挿入して使います. そして、ICのピンの横方向に並んだ穴に電線を差し込み,ICのピン間を接続します. 短い電線を使って配線を行なうときれいに配線できます。長い配線は回路の動作を 不安定にさせることもあります。

1と0の論理はどうやってディジタル回路に入力する?

ゲート素子やフリップフロップ素子を動かすためには,入力信号線に1と0の状態を与える必要があります。 入力信号線に1と0の状態を与えるには次のようにします。

単純に、「1」は+5V、「0」は0Vだから電源の+5Vと0Vに接続すれば良い、と考えたくなりますが、 74シリーズのICは+5Vをかけた時に信号線に電流が流れ過ぎてしまい壊れてしまうことがあります。

そこで、次のようなスイッチと抵抗を使って1と0を入力します。 このとき使う抵抗(4.7kΩ)を「プルアップ抵抗」といいます. 抵抗値については使用するICによって異なりますが、今回は4.7kΩの抵抗を使用することにします。

入力信号線をどこにも接続しないのは良くありません。「1」なのか「0」なのかがわからなくなってしまい、 ICが思いもしない動作をすることがあります。使用しない入力信号線は「0」(電源の0Vところ。グラウンド、 GNDと書く)に接続するか、プルアップ抵抗を通して+5Vに接続しておきましょう。


図2-8:プルアップ抵抗

1と0の論理はどうやって調べる?

次に、各信号線が「1」なのか「0」なのかを人間が見てすぐわかるようにする方法に ついて考えます.ディジタル回路ではこのようなディジタルデータを表示するために よくLED(発光ダイオード)を使います.発光ダイオー ドはダイオードの一種で,一方向に電圧を加えたときのみ電流 が流れ発光する半導体素子です.電球と違って、電流が流れる時はダイオードに 無制限に電流が流れてしまい、ダイオードを壊してしまうことがあります。 そこで,抵抗(330Ω)を直列に挿入して流れる電流を制限します. このような抵抗を「電流制限抵抗」といい ます.

このようにLEDを接続することで,消灯のとき「1」,点灯の時「0」であることがわかります. もし直観的な点灯イメージとあわせて点灯のとき「1」,消灯の時「0」としたいなら、NOT素子で論理を 反転しておくと良いでしょう。


図2-9:LEDによる信号線の状態表示

電源、クロックはどうやって作る?

74シリーズ等のTTL ICを動かすためには、+5Vの電源が必要です。 一般的な電池1本の端子電圧は1.5Vなので、それを3本直列に接続して4.5Vの電源を作り代用することが できますが、実験では本格的な「実験用安定化電源装置」を使います。
実験用安定化電源装置は、電圧を自由に発生させることができ、万一回路がショートした時でも やけどや火災がおきないように保護装置が入っています。

また、クロック信号のような+5Vと0Vの方形波形は「波形発生器(シグナルジェネレータ)」を使います。 波形発生器はさまざまな波形の信号を発生させることができますが、ディジタル回路では、 「TTL OUT」と書かれた+5Vと0Vのいずれかの方形波形を出力する端子から信号を取り出して 電子回路に加えます。


図2-10:安定化電源装置(直流電源)と波形発生器(シグナルジェネレータ)

安定化電源装置と波形発生器の使い方は次のホームページを見て下さい。


実験

実験に必要な部品

品名規格・型番個数
74シリーズIC適切な品番適切な数
抵抗330Ω(1/8W)適切な数
抵抗4.7kΩ(1/8W)適切な数
LED適切な数
電線---少々

注意

実験1

NAND(74LS00)回路の動作を確認せよ.

  1. 部品とそれらを接続する回路図を書きます(下欄に記入)。



    図3-1:74LS00の動作確認回路の回路図
  2. 回路図にICのピン番号を記入します。(図1-9を見ながらどの部分の素子とピンを使うか各自で決めてよい)
  3. 回路図を見ながら、ブレッドボード上に部品を置き、配線作業を行います。
    (集中して行なわないと配線ミスが発生します。本当です。回路図に電線と同じ色で配線を塗りながら作業すると良いでしょう)
    1. まず、ICの位置を決めます。
    2. 次に、ICの電源(7、14番ピン)を配線します。(+5Vは赤色、GNDは黒色または青色の配線を使うと良いでしょう) また、ブレッドボード上部の端子を+5VとGNDとし、ICの電源の線と接続します。
    3. そして、LEDやスイッチ、抵抗を配置し、それらの間を適当な色の電線を使って配線します。(LEDは足の長い方を+側に接続します)
    4. 配線が間違っていないか、もう一度点検します。
  4. 安定化電源と回路を接続する前に、安定化電源単独で+5Vが出力されるように電圧計を見ながら調整します。
  5. 一旦安定化電源のスイッチを切り、ブレッドボード上部の+5VとGND端子を安定化電源と接続します。
  6. 安定化電源のスイッチを入れます。(もし電流計が大きく振れたら回路がショートしています。 すぐに電源を切って回路を確認してください)
  7. 2つのスイッチを動かし入力信号線に0または1の状態を与え、 NAND回路の出力信号線の状態をLEDにより観測し、 スイッチの位置とLEDの点灯・消灯の関係をすべて記録します。(スイッチはレバーを倒した方と逆側の2端子間が接続されます)
  8. 動作が正しいかどうかチェックを行ないます。



    図3-2:ブレッドボードへの実装例

    表1:NANDの動作結果
    スイッチの位置スイッチの位置に
    相当する入力論理値
    LEDの状態LEDの状態に
    相当する出力論理値
    動作確認
    (○or×)
           
           
           
           

この結果表がNANDの動作と合っているか、違っているか、また、その理由について説明せよ。

実験2

実験1と同様に、EXOR(74LS86)回路の動作を確認せよ.

実験3

2桁の2進数を表わす回路を2つ作り,両者の2進数が一致したと きLEDが点灯する回路を設計し製作せよ.動作表と回路図を示し、製作した回路の動作確認を実験1と同様に行なえ。

実験4

3個のスイッチのうち2個だけが同時にHの時,LEDが発光する回路 を設計し製作せよ.動作表と回路図を示し、製作した回路の動作確認を実験1と同様に行なえ。

実験5

3桁の2進数を10進数に変換する回路(2進数の入力で,10進数の0〜7 に対応させた8個のLEDの一つが点灯する回路)を動作表と回路図を示し設計せよ. このように, 2進数を10進数に変換する回路をデコーダという.逆に10進数を入力して2進数に変換する回路を エンコーダという. 余力のある人は、回路を製作し、その動作確認を実験1と同様に行なえ。

考察

  1. 上の実験で,デジタルICの出力がHであるかLであるかを識別するのに, HでLEDの消灯,Lで点灯という直感とは反した回路構成とした理由を述べよ.
  2. 4桁の2進数のデコーダ回路の動作表と回路図を示し、設計手順を説明せよ。
  3. 10進数0〜15のエンコーダ回路の動作表と回路図を示し、設計手順を説明せよ。

レポートの作成

上記の実験1〜5および考察をレポートにまとめ提出せよ。

レポートの書き方は、各机に置いてある「実験指導書」を見るか、 「実験指導書(ホームページ版)」を参考にして下さい。


2004.05.30.
2011.04.07.
fmiso at sist.chukyo-u.ac.jp