汎用ロジックでコンピュータを作る(番外編)   

理論と実戦の違いのお話

Copyright © 2013-2014 T.GATARO All Rights Reserved.

「汎用ロジックでコンピュータを作る」のトップページ(目次)はこちら   管理人のメインページはこちら

標準ロジックならではの設計テクニック

標準ロジック主体の回路図にはANDやORといった様々な論理素子が登場します。ところが標準ロジックの多くは「1つのパッケージに1つのゲート」ではなく「1つのパッケージに複数のゲート」が格納されています。

ですから、回路図上ではNANDゲートが1つしか存在しないのに、実装設計でNANDゲートが4つ格納されている74LS00等を使うと、基板上に3つのNANDゲートが余ってしまうのです。

これはNANDゲート特有の話ではなく、ANDやORやNOR、あるいはNOTやEXORであっても話は同じです。「1つのパッケージに幾つのゲートが格納されているか?」を意識しないで回路を設計してしまうと、基板上には多くの「余り」が発生してしまうのです。

そこでNANDの変わりにANDとNOTを使ったり、ドモルガンの法則を使ってANDとORを入れ替えたりするして、余っているゲートを足りないゲートの代わりとして使う様な工夫が必須となります。

3入力ANDを2入力ANDで代替する場合の事例

例えば3入力ANDゲートが1つ必要で、2入力ANDゲートが2つ余っている場合を考えます。
この場合、左図の様に2入力ANDゲートを2つ組み合わせて3入力とするのが標準ロジックによる設計では「あたり前」のテクニックです。

この場合、「案1」の接続方法と、「案2」の接続方法があります。
一見どちらでも同じ様に見えますが、本当に同じなのでしょうか?


教科書的に考えてしまうと

どちらも3つの入力が全てHの時のみ、出力がHになります。
最近は普通高校でも「論理回路」を教えている様ですが、残念な事に生徒はもちろん教える先生も「両者は同じ」で納得しているみたいです。

実践的に考える(その1) 素子遅延

高速動作が必要な論理回路を設計している者にとっては当り前の事ですが、ANDとかORという論理素子は入力が変化してから出力が変化するまでの時間はゼロではありません。例えば「74LS08」という2入力ANDゲートは入力が変化してから出力が変化するまで約20ns(5千万分の1秒)の時間を要します。
1秒に1回表示が変化するデジタル時計等の電子工作では、20nsは「ほぼゼロ」と言える時間ですが、1秒間に何百万回、あるいは何千万回もの計算を行うコンピュータ等の場合は、20nsは「とても長い時間」なのです。

さて前述の回路図において、ABCが全てHの場合はOUTは当然Hです。このとき入力CがHからLに変化したらどうなるでしょうか?
当然出力もLになりますが、案1では出力がLに変わるのは入力が変化して約20ns後ですが、案2では約40ns後となるのです。
このように入力に遅延差がある場合、どれを最も高速に反応させる必要があるか考えて設計する必要がある場合も決して少なくないのです。

実践的に考える(その2) レイアウト

仮に前述した「遅延の問題」が無視できるとしても、PCB(プリント基板)のレイアウトに関する問題は残ります。
入力ABとANDゲートの一方がPCBの左側にあり、入力Cと出力及びもう一方のANDゲートがPCBの右側にあるとします。
この場合、常識的にはレイアウト1が最も効率的です。しかし、回路図に忠実にレイアウトを行うと回路が案2の場合、レイアウト2の様になってしまいます。
自分が設計した回路なら、回路を修正してレイアウト1に変更することも可能ですが、レイアウトを他人(業者)に依頼した場合は勝手に回路を修正する事は許されないのでレイアウト2の様なPCBが納品されてしまいます。


更に、最適化処理が未熟な自動ルーターを使っている業者の場合はレイアウト3の様なパターンになることすらあります。
この問題は、標準ロジック回路特有の問題ではなく、最新機器のPCBや、ASIC(ICの一種)の内部配線においても顕著化している問題です。
「回路図的には正しいが回路設計者がレイアウトを意識していない」あるいは「レイアウターが機械にせよ人間にせよ、回路を修正する知識も権限もない」といった理由により、一定面積に収まらなかったり、余分な引き回しで干渉や配線遅延等の問題が生じるのです。
今現在も、CPUメーカーやASICメーカーは回路とレイアウトの両方が判る人材を血眼になって探しているのです。

実践的に考える(その3) もうひとつの大きな違い

遅延とレイアウトの他にもう一つ重大な違いがあります。これは私自身がTTLコンピュータを作る上での考慮したというよりも、CPUメーカーやASICメーカーの技術者が考慮すべき問題で、現在では前述の2つの違い以上に問題となっています。

ヒントはバイポーラやNMOS、PMOSではなくCMOSで顕著に現われる問題です。 もうお判りですね。