製鉄所の分析室で考えたこと 動く論理回路の設計法 発光分光分析方法 ものを作る苦しみの一部  もくじ

 

 

動く論理回路の設計法

 「論理回路 logic circuit」は、ディジタル回路の基本である。「フリップ・フロップ flip-flop」と、「アンド(論理積)回路 AND circuit」、「オア(論理和)回路 OR circuit」および「ノット(否定)回路 NOT circuit」からなる。これらの変形や組み合わせ、波形変形回路、レベル変換回路など、いろいろ派生する。
 これらを組み合わせて、計算回路や一時記憶回路、転送回路、選択回路、制御回路、などが作られる。ディジタル装置の中に、大量に用いられている。

 ここでは、その典型として、「計数回路(カウンター)」を、まず、動画でお目にかける。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  連続作動  一時停止  第0相 第1相 第2相 第3相 第4相 第5相 第6相 第7相 第8相 第9相 第10相 第11相 第12相 第13相

 この回路は、計数入力Pが1になっている回数を数えて、右上の数字表示器に表示する。右下のクロック・パルスが入るごとに(瞬間に1になって、すぐ0に戻る度に)動作が進む「同期式回路」である。上の例の場合、クロックごとに相が進んで、14回進むと始めに戻る。その間にPが1になっている相が10回ある。その数が表示器に示される。

 数を数えているのは、4個のフリップフロップ N0, N1, N2, N3 である。 (フリップフロップ flipflop とは、元はパタパタという擬音語、とんぼ返り、などの意味で、1か0かどちらかの状態を保持する電子回路である。発音しにくいが、プリップロップと言えばよい。フリフロと略称している人もいる。) N0〜N3が0か1である組み合わせは16種類あるが、そのなかから、わかりやすい10種類を使って、数値を表している。すなわち、N0が重み1を持ち、N1が2,N2が4,N3が8の重みを持つ、として、値Vは

   V=N0・W0+N1・W1+N2・W2+N3・W3

と決めておけば、例えば 値は、N0, N1, N2, N3 が 1,0,1,0 で表され、値は、1,0,0,1で表される。N0, N1, N2, N3 が 1,0,1,0となったときは、値は10になるが、10以上15までの状態はここでは使わない。10になろうとする時に、0に戻すように回路を作っておく。その時にまた、上のケタに1を加えるための信号Qが発生する。
                      (10から0に戻るとき(第13相から第0相へ)、図が少し乱れるのはブラウザーの不調による。)
 こうすると、2進法の一部を使って10進法の数値を扱うことになるので、「2進化10進法 binary coded decimal」という。

 計数した数値を表示するのに、7本の細長ランプを組み合わせて数字らしい形に点灯させることにする。どのランプをどの状態の時に点灯させるか、AND回路とOR回路を組み合わせて選択する。

 以上のような「2進化10進 計数回路」を、どうやって設計するか、その手順を以下に述べる。
(私がフィスターの本を読んで学んだ方法である。これができれば、コンピューターの内部やその他のディジタル回路を、自分で設計することができる。)

(1)全体の真理値表を作る
    この回路の要求仕様(上に述べたこと)を下のような表にまとめる。これを「真理値表 truth table」と言う。上の動画は、この表に示す動作を実行している。

クロック・パルスごとに phase が1ずつ進む。

入力に対する応答は次の phase に現れる。
すなわち、入力パルスPに対する計数回路の応答は、1行下に書く。

ランプ選択回路の値は、計数値が数字の形になるように選んだ。

入力パルスが0の行はもっとある(例えばphase 3と4の間)が、そこでは状態が変わらないので、省略している。

(2)用いる論理回路の真理値表を理解する


    全体回路を作るための要素である論理回路は、どのように動くか、真理値表にまとめると右の表のようになる。
 それぞれの動作が、上の動画に現れているので、ていねいに眺めて理解してほしい。

 AND回路は、例えば、N1フリフロのJ入力に使われていて、3本の入力が1に揃った時に、出力が1になる。第3相、第11相で現れる。

 OR回路は、例えば、L0 に使われていて、5本の入力が1本でも1になれば、出力が1になる。第1相で1、第2相で0になる、など。

 J-Kフリップフロップは、例えば、N1を見ていると、第3相で J、Kともに1になり、この時 N1=0なので、第4相で N1=1になる。第6相でも J、Kともに1になり、この時 N1=1なので、第7相で N1=0になる。第8、9、11、12相でも同じ変化がおきる。第13相では、K=1になるが、この時は N1=0なので、次の第0相でもそのままで N1に変化はおきない。
 このように、フリップフロップは、ある相の入力によって次の相の状態が決まり、その状態はその次の相まで保持される(その相での入力の状態に左右されない)。すなわち、フリップフロップは、一つ前の状態を「記憶している」ことになる。

 なお、上の例では NOT 回路が現れないが、もっと複雑な回路では不可欠な、大切な要素である。

 

(3)用いる論理回路の入力表を作り、入力式を書き上げる


 右の図のような16マスの表を用意し、上掲の計数回路真理値表を参照しながら、各フリフロの動作に必要な入力を記入していく。

 各表の下枠外と右枠外にN0, N1, N2, N3が1になっている範囲が記してあって、マスの一つ一つは、その時に保持している計数値に対応している。例えば、N3=1, N2=0, N1=0, N0=1 ならば、範囲の重なるところは 9のマスである。

 まず、N0のJ入力を記入する。表の10〜15に相当するマスは、計数には使われていないのでXを入れておく。
 また、自身の値が1の時のJ入力はあってもなくてもよい(J-Kフリフロの真理値表を見れば分かる)ので、を入れる。
 そして、上掲の計数回路真理値表から、N0が0から1に変わる行を探し、その初めの計数値をメモする。0,2,4,6,8がメモされる。その番号のマスにを記入する。そうすると、Xでないところが全部1で埋まった。それを式で表すと、J=1となる。これがP=1の時に起こるので、J=Pと求められた。動画のN0のJ端子には、Pが配線されている。

 同様にして、N0のK入力を求めよう。10〜15にXを入れ、またN0=0の部分にを記入し、計数回路真理値表から、N0が1から0に変わる行を探し、その初めの計数値をメモする。1,3,5,7,7がメモされ、その番号のマスにを記入すると、Xでないところが全部0で埋まった。それを式で表すと、K=1となる。これがP=1の時に起こるので、K=Pと求められる。動画のN0のK端子にも、Pが配線されている。

 もう1例、N1のJ入力を求めてみよう。これは少し複雑になっている。N1が0から1になるのは、計数値が1の時と5の時で、0,4,8,9の時はN1は0のままである。表の1とXを含むなるべく大きな領域を探すとN3N0が見つかる。大きな領域ほど簡単な式で表現されるので、J=N3N0・P が得られる。

 以上の説明は、上の図で、式の方から対応する領域を囲ってみると、理解しやすい。


 次に、数字表示器の細長ランプ7本を、数字になるように選択し点灯する回路の論理式を、入力表を使って求める。

 例えば、数字の最下辺のランプ L0 は、計数値が 0,2,3,5,6,8,9の時に点灯し、1,4,7の時には消灯している。不規則なので、式は複雑になる。

 計数値を上のケタに伝える信号 Q は、計数値が9の時に、パルスPが入ると発生するように、Q=N3N0・P になる。

 以上で必要な要素は設計された。これを配線図に書き直し、信号レベルを色分けで示して動作させたものが上の動画である。(この図は私が13枚すべてを描いたものだが、最近の設計ソフトはこのような設計過程と確認をほとんど自動的に進行させる。ただし、最初の回路の構想と真理値表へのまとめは人間が行う思考・創造行為であり、キカイまかせにはできない。もっとも、計数器のようによく使われるユニットは、既成のモデル ライブラリーに含まれている。)

 

●実際の電子回路

 論理回路は電子回路によって実現される。基本的には、トランジスターとダイオード、そして抵抗や容量などの電子部品を組み合わせて作る。同じ回路を大量に使うので、使いやすいようにモジュール(module: 単位になった固まり)として 設計される。今日ではIC(集積回路:integrated circuit )として、さらにLSI(large-scale IC)のごく一部として、専門工場で量産されたモジュールを使用する。

 ここでは、基本を理解してもらうために、古典的な例を示す。

J−Kフリップフロップ       ↓ 下図をマウスで触れると、クロック・パルス=1の瞬間の反転現象が図示される。

 

AND-OR 論理演算回路    最大 5AND 入力、5 OR 入力を種々の組み合わせで、下の図のようにプリント配線基盤の上に搭載してモジュールにする。 pnp型トランジスターとnpn型トランジスターを組み合わせて、応答速度向上を図っている。

↓ プリント配線基盤の上に実装(組み立て)された論理演算回路。入力ピンのピッチで大きさが決まってしまい、線間2mmの配線ルールなので、部品はゆったりと配置されている。

 これらの回路は、別掲した回路設計の神様、福田克雄さんが設計した。ディジタル回路は安定に動くことが第一に必要であり、大量に使用するので、シンプルで、かつ、無調整で実用できるものでなくてはならない。
 そのため、「最悪設計 worst-case design」という考え方を用いる。つまり、使用する部品や環境条件、使用条件などが、規格許容範囲のなかで互いに最悪の組み合わせになったときにも正常に動作する、と規制する。例えば、あるトランジスターの電流増幅率がその製品規格範囲の最低値で、かつ、その漏洩電流が最大温度60℃で最大値になった時、かつ、正電源電圧が正負10%の変動範囲の中で最低になり、負電源が最高になり、漏洩電流を引き込む抵抗の値が正負5%の保証範囲の中で最高側にずれ、負荷抵抗は最低側にずれ、といったオン状態での最悪条件でも、また同様に想定したオフ側の最悪条件でも、正常範囲の出力を出すことができる、というように設計する。もちろん、時間的な応答速度もあわせて考える。
 このように設計すると、安定に動作するのではあるが、出力が減ってしまう。出力に何個の論理回路を接続しても作動するか、を「ファンアウト」と言うが、これが小さいと増幅器を多用しなければならず、時間遅れが大きくなって、全体の設計が難しくなる。特に、トランジスターやダイオードなどの性能が良くなかった当時に、福田さんはこれらの特長と欠点を上手に組み合わせて、難しい注文をこなしてくれたのだった。
 しかしながら、設計上の回路は完璧で、開発後十数年もそのままで使用できたが、当時のゲルマニウムを使った半導体部品は、信頼性が充分でなかった。半導体表面の耐酸化性が不足していたので、封入容器の劣化や、温度上昇とか瞬間高電圧で表面が簡単に劣化したりして、動かなくなるものがしばしば現れた。上のように回路をモジュールにして交換容易にしているのも、生産上の都合もあったが、保守上の利便が重視されたからであった。

 今日では、材料の品質や製造方法が改革されて、トランジスターは接合型ではなくMOS型になって、スイッチとしての性能が格段に上がり、シリコン基板の上に小さく高密度に大量に形成できるようになって、ディジタル回路の実体はICになり、さらにシステムLSIになって、パソコンやケータイ、デジカメなど様々なディジタル製品を実現させている。

 ディジタル製品の製造方法も、同一品種を大量に生産するディジタル製品は写真製版を発展させたフォト・リソグラフィーによるが、少量生産の生産用装置や研究・開発装置などの一品ものに対しても、画期的な方法が発達してきた。FPGA(Field Programmable Gate Array)やFPLA(Field Programmable Logic Array)と呼ばれる集積回路では、論理式やプログラムを、専用の開発装置を使って、開発現場で書き込むことができる。

 

●他のシステムとの接続の問題

  上の説明では、混乱するのをさけて、計数器が何を計数するか、については触れなかった。パルスPの数を数えるのだが、Pはちゃんとクロックパルスに同期して1になったり0になったりするとして説明した。実際には、たいていはPは別の系から送られてくるので、同期していない。例えば、手でボタンを押す回数を数えたり、ベルトコンベアの上に並んで動く製品の数を光電スイッチを介して数えるとき、信号パルスはクロックパルスの間に入ったり、またがって入ったりする。そのまま数えると、パルス1個が数個に増えたり、数え損なったりする。
 そこで、「同期をとる」くふうが必要になる。ここでは詳しくは述べないが、下の図は例を示している。

 同じ問題は、計数器とコンピューターとを接続するときにも起きる。クロックパルスを同じにすれば問題は簡単になるが、タイミングとか待ちなど、また、レベルや電源の質の差など、異なるシステムがつながる場合には、大小の問題が必ず発生する。それを解決するのが「インターフェイス技術 interfacing」であるが、といって万能の技術があるわけではない。その時には、両方の系の要素の中身を知って対策を考える必要があり、両方の要素をブラックボックスとして外側から眺めているだけでは問題は解決しない。
 私の一生の課題はつねに「インターフェイス」にあった。インターフェイスは人間社会の中の基本技術である。文化の世界では対面技術とか、コミュニケーション技術などと呼ばれ、化学の世界では「界面」という術語が用いられ、電気工学では極面(電極の面)が重要な技術課題である。世のほとんどの技術者(のみならず、社会人の活動のほとんど)は、面の分離と接合をうまくすることに力を注いでいる。国際問題、世代間の問題、教育問題など。
 ついでにふざければ、スキー、サーフィン、ヨット、水泳なども界面の問題、ゴルフ、テニスもしかり。印刷物もそう、ディスプレイもまた。いずれもインターフェイス技術がキーとなる世界である。

製鉄所の分析室で考えたこと 動く論理回路の設計法 発光分光分析方法 ものを作る苦しみの一部  もくじ