アプリ版:「スタンプのみでお礼する」機能のリリースについて

論理回路設計の手順は、次のように分けられます。(1) 論理変数の割当て(2) 真理値表の作成(3) 論理式の導出(4) 論理式の簡略化(5) 回路の実現  このうち(4)で、論理式の簡略化を行う理由がどうしても分かりません。誰か簡単に説明できる人教えてください。

A 回答 (5件)

このような手順で設計できるものは、かなり簡素な規模の設計に限られると思います。

どちらかといえば学生用の練習問題の範囲かと思います。その意味で、ほかの方の回答にもあるように、回路の冗長度(余計な部分)を取り除くのは練習として重要です。たとえば「NOT(NOT(NOT(NOT(A))))」を単に「A」と書くようなものです。
しかし、真理値表だけで回路が書けるのは時間とともに状態が変化することを考慮していないのではないでしょうか。もちろん時間変化にともなう状態変化を真理値表で記述することは可能ですが、得策とは思えません。
もし、簡単な真理値表であれば、逆にいうと、「真理値表から実際の回路を作ることが目的」であれば、「論理式の導出」の段階も必要ないこともあります。たとえば、真理値表そのものを「ROM・テーブル」にしてしまうものです。実際の回路設計の中でも部分的にこのような方法を採用することがあります。この方式は、「論理式の導出」と「論理式の簡略化」をしていないので。、出来上がった論理回路としては「冗長(無駄な回路だらけ)」です。
回路の動作速度など、さまざまな条件を考慮して、必要とする高い周波数まで回路動作が不安定にならないような気配りをしてある回路設計であれば、冗長な回路を含めることも現実にはたくさんあります。
最後に一言付け加えます。論理回路の設計手順にはさまざまな方法があり、目的とする「機能」を数式やプログラム言語のようなもので記述して、ICを開発することがほとんどです。そのなかには「インバータ」や「アンド・ゲート」などといったものは見かけ上どこにも出てきません。また、はじめから、真理値表などもありません。たとえば、インテルのペンティアム・プロセッサを真理値表で記述することは膨大な規模になるばかりでなく、意味がありません。
    • good
    • 0

 論理式を記述するということは、即ち、ある事象(入力)に対して、いかなる選択(出力)をとるべきか


数学的な式としてあらわすことだと言えます。
 ところで、このような論理式を設計するのは人間であり、人間が考えることには多かれ少なかれ冗長部分があるものです。そのほうが考えるのが楽だから。たとえば、入力、出力の数が数十、数百なんて場合は、入力を場合わけしていくつかのブロックにまとめ、ブロック毎に中間的な出力を新たに定義して次段を設計して...といった具合です。
 一方、出来上がった”回路“の側から見れば、入力と出力の関係が正しければ良いわけで、中間出力だの、場合わけのやり方だの、人が加えた冗長な部分は関係ない。だから簡略化してしまうことができます。

 では、入力と出力の関係が正しければ良いのなら、特に簡略化しなくてもよいか、というとそのような回路は、現実的にはまず、満足に動かないでしょう。
 それは、実際の論理素子は、入力の変化が出力に反映されるのに時間がかかるので、簡略化していない冗長な回路では、実行時間がかさんで高速で動かせなかったり、内部のブロック毎の実行時間に差ができて、出力に余計な波形や、ノイズが現れる等の悪影響がでてくるためです。
 また、回路規模の大きな回路を製造するとなると、当然コスト高になります。極端な話、こんな大きな回路作れない!と言う場合もあります。このような事態を避けるため、知恵を絞って簡略化するのです(ただこの場合、簡略化というより、回路を最適化する、と言い直したほうがよい)
    • good
    • 0

追加のコメントですが、


仕様によっては、簡略化でなく、複雑化?ってこともあります。それは主にスピードを要求する場合ですが。
    • good
    • 0

簡単な論理式から回路を実現した方が、回路が小さくなる場合が多いからです。


回路が小さくなって、なぜうれしいかについては、疑問の余地はないでしょう?
    • good
    • 0

実際に行ってみればすぐ解りますよ。


(3)の段階までで導き出された論理式は、圧縮(簡略化)が可能なのです。
やっていることは(意味的には)、1+1+1+1-1を1×4-1や1+2にするのと同じです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!