Introduction to Media Engineering
メディア工学実習
第2章:ディジタル回路の設計(講義)
記憶回路の設計
「組合せ回路」が理解できたら「記憶・順序回路」へ進みましょう。
前回の「組合せ回路」が入力信号が決まるとそれに応じて出力信号の状態も一意に決まるのに対して、
「記憶・順序回路」は過去の状態を覚えておき(メモリ)、出力に反映させる回路のことです。
つまり、同じ入力信号を入れても、出力信号がいつも同じとは限らない回路のことです。
フリップフロップ
メモリは「フリップフロップ(FF)」と呼ばれる1ビットを記憶することのできる素子の集合です。
フリップフロップには多くの種類がありますが、ここでは、「RS型フリップフロップ」と
「D型フリップフロップ」と呼ばれる素子を紹介しましょう。
RS型フリップフロップ
RS型フリップフロップ(RS−FF)は、出力の値をHレベル(1レベル)に設定する’S端子と、
Lレベル(0レベル)に設定する’R端子からなる入力端子からなる基本的なフリップフロップです。
’S端子を0レベルにすると出力が1になり、1に戻してもそのまま出力は1を保持し続けます。
また’R端子を0レベルにすると出力が0になり、1に戻してもそのまま出力は0を保持し続けます。
(「’」は、否定を表します。「 ̄」を使うこともあります)
回路はNAND素子を2つ組合せ、お互いの出力を他方の入力とするような回路になっています。
出力端子’QはQの逆の値を出力します。
図2-1:RS-FF素子
動作は次の表のように’S端子と’R端子の信号を変化させた瞬間に値を記憶します。
表2-1:RS型FF素子の機能表
(Qoは直前に覚えていた値を表す)
’S | ’R | Q | ’Q |
0 | 0 | -- | -- |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 1 | Qo | 'Qo |
D型フリップフロップ
D型フリップフロップ(D−FF)は、クロック信号入力端子(CLK)が0から1に変化する瞬間の
D端子の信号状態を記憶して出力端子Qに出力するフリップフロップ素子です。
出力端子’QはQの逆の値を出力します。
このようにクロック信号が0から1に変化した瞬間の値を記憶するFF素子を「ポジティブエッジトリガFF」といいます。
また、CLR端子がある場合は、出力端子Qの値を強制的に0に設定(クリア)することができます。
その逆にPR端子は、出力端子Qの値を強制的に1に設定(プリセット)することができます。
図2-2:D−FF素子
動作は次の表に従います。
表2-2:D型FF素子の機能表
(Qoは直前に覚えていた値を表す。*は保証していない)
’PR | ’CLR | CLK | D | Q | ’Q |
0 | 1 | × | × | 1 | 0 |
1 | 0 | × | × | 0 | 1 |
0 | 0 | × | × | 1* | 1* |
1 | 1 | ↑ | 1 | 1 | 0 |
1 | 1 | ↑ | 0 | 0 | 1 |
1 | 1 | 0 | × | Qo | 'Qo |
74シリーズのTTL ICでは、74LS74が2個のD−FFを搭載しているICです。
また、74LS273はクロック端子とクリア端子を共通化した8つのD−FFを
搭載しています。
この他にもJK型、T型等、多くのフリップフロップ素子があります。
このようなフリップフロップ素子を使うことで、過去に設定した値(状態)によって、
出力が多彩に変化する回路を実現することができます。
シフトレジスタ
フリップフロップを応用した回路の一つに、「シフトレジスタ」があります。
シフトレジスタは、RS−FF回路の出力を次段の入力とすることにより、
記憶している値を次段のFFに次々と受け渡すことができます。
74シリーズのTTLでは74LS164が8つのFFを搭載しており、
「8ビットシフトレジスタ」と呼ばれています。
74LS164には、通常のRS−FFと違って次段に値を受け渡すタイミングを与えるための
クロック端子があり、クロック信号が入るたびに次のFFに値を移動させます。またFFのR、S端子が
正論理(1のとき有効)になっています。
つまり、前段の出力端子Qと次段の入力端子S、前段の出力端子’Qと次段の入力端子Rを接続するだけで
FF間でデータを受け渡すことができます。
図2-4:74LS164の内部構造
図2-5:74LS164のピン配置
簡単なゲームマシン回路の製作準備
ここまでくれば、簡単なゲームを電子回路で作ることができます。そう、「電子ルーレット」です。
シフトレジスタはクロック信号が入力されるたびにデータを隣のFFに受け渡すので、
1つのFFを除いて他をすべて0に設定しておくことで、1の値を一つずつ移動させることができます。
そして、最後のFFの出力を最初のFFの入力に接続することで、1の値がFF間を永遠に周り続ける回路を
作ることができます。
それでは、次週以降に製作する電子回路の作り方や動かし方の基本について学習しましょう。
回路製作はどこでする?
一般電化製品では、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Ω)を「プルアップ抵抗」といいます.
入力信号線をどこにも接続しないのは良くありません。「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:安定化電源装置(直流電源)と波形発生器(シグナルジェネレータ)
安定化電源装置と波形発生器の使い方は次のホームページを見て下さい。
「簡単なゲームマシンの制作(実験)」へつづく
(電子回路やLSI、センサー、自動設計に興味のある人へ)
今回作成する電子回路はICを使いましたが、この世の中はもっと複雑な回路がたくさん動いています。
LSIやVLSI、そしてULSIと呼ばれる大規模集積回路がそれです。
今後も多機能化が進み、その規模はまだまだ大きくなるでしょう。
今回は非常に簡単な回路を作成しましたが、世の中で実際に動いているのは
ソフトウェアなのではなく、ハードウェア(電子回路)なのです。
ただし、ハードウェアの設計には膨大な設計データを扱わなければならないので
ソフトウェアを使いこなす力も必要です。
この世のほとんどの機器が電気で動いているのにも関わらず、電子回路設計分野は
人手が足りず、この分野への就職はひっぱりだこです。しかし
パソコンをはじめ世界を動かしている電子回路の設計には基礎技術の習得が必要で、
かつ実際の回路設計にはノウハウ的な知識も必要です。
メディア科学科で開講されている科目のうち、次の科目が電子回路設計分野で
役にたつ科目です。もし電子回路設計に興味がある人はこれらの科目を履修して
頑張りましょう。
- コンピュータ概論(1年次春学期)
- Cプログラミング基礎(1年次秋学期)
- 情報の基礎(2年次春学期)
- ディジタル回路入門(2年次春学期)
- データ構造(2年次春学期)
- Cプログラミング応用(2年次春学期)
- ディジタルシステム制作(2年次秋学期)
- アルゴリズム(2年次秋学期)
- ディジタル回路シミュレーション(3年次春学期)
2004.06.07.
2005.06.01.
fmiso@sccs.chukyo-u.ac.jp