負論理
負論理とは(ふろんり、英: Active LowまたはNegative Logic)、その反対の正論理(せいろんり、英: Active HighまたはPositive Logic)に相対する呼び方である。負論理は論理回路を実装したデジタル回路における手法として正論理とともに用いられる。
概要
編集デジタル回路の実現法には様々な方法があるが、以下では現在主流のCMOSやTTLによる、0Vに近い電圧(Low、Lと略す)と、電源電圧に近い電圧(High・Hi、Hと略す)により、2状態を表す方式を前提とする。バスにはハイ・インピーダンス状態(Zと略す)もあるが、ここでは扱わない。
コンピュータなどの、情報処理や論理演算や数値計算をおこなうデジタル回路において、二進法の「0」と「1」や、真理値(真偽値)における「真」と「偽」は、電子回路上の H か L の状態であらわされる。コンピュータにおいては、たとえば「マウスのボタンが押されている」などといった活動(activity)についても同様に表現される。
この時、1 や真や「アクティブである」という状態に H を割り当て、0 や偽に L を割り当てるのが正論理(Active High)である。これに対して、H と L を逆に割り当てるのが負論理(Active Low)である。
例えば会議や合議で表決を採るために起立採決を用いる場合、賛成者が起立し反対者は着席のままというやり方と、逆に反対者が起立し賛成者は着席のままというやり方が考えられる。立った高い姿勢を賛成、座った低い姿勢を反対とするやり方を正論理とみなすならば、立った高い姿勢を反対、座った低い姿勢を賛成とするものは負論理とみなせる。
正論理と負論理では、物理値に対する論理値の割り当てが異なるため、同じ回路で異なる演算を行える。逆に、同じ演算のために用いる回路は一般的に異なる。論理的には同様の表決が可能だが、正論理による表決のみに参加してきた者は、負論理での表決に違和感を覚えるかもしれない。
論理回路と真理値表
編集具体的には、TTLを例にとれば、入力電圧:2.0V以上を「真」、入力電圧:0.8V以下を「偽」、出力電圧:2.7V以上を「真」、出力電圧:0.4V以下を「偽」とするのが正論理である。負論理では入力0.8V以下と、出力0.4V以下を「真」とし、入力2.0V以上と出力2.7V以上を「偽」とする。
論理回路の多くはTTL ICに限らず、人間の生活に即した正論理で処理が行われる方が理解もし易い。負論理の方法は電子回路の働きを人間が設計や修理の際に考える場合に面倒であっても、回路そのものは正しく働いてくれる。実際にはコンピュータなどのバスや割り込みの処理にはオープンコレクタ回路に代表されるように負論理も必要に応じて利用される。
入力 A | 入力 B | 出力 Y |
---|---|---|
Hi | Hi | Low |
Hi | Low | Hi |
Low | Hi | Hi |
Low | Low | Hi |
これを、負論理として見てみよう。Hi=偽、Low=真として見ると、NORとなっていることが以下の表からわかる。
負論理の入力 A | 負論理の入力 B | 負論理の出力 Y |
---|---|---|
Hi=偽 | Hi=偽 | Low=真 |
Hi=偽 | Low=真 | Hi=偽 |
Low=真 | Hi=偽 | Hi=偽 |
Low=真 | Low=真 | Hi=偽 |
同様に正論理のAND回路は負論理のOR回路に、正論理のOR回路は負論理のAND回路になる。
論理の混在
編集このように例えば一つのICチップに4個のNANDゲート回路が有るとして3個は正論理と1個は負論理NORとした使い分けもできる。正論理だけでロジック回路を組むことは現実的で無かったり困難であったり無駄を生じる事がある。複雑なロジックになるほど正論理と負論理を混在させた方が都合が良い場合が多い。
またICゲート素子のシリーズ(例:標準ロジックIC、TTL IC 7400シリーズ)そのものがANDやORのみだけでなく、NANDやNORもありこれらを混在させる方が無駄がない(むしろTTLもCMOSもそうだが、トップナンバーの7400がNANDだったように、内部構成上はそれらのほうが有利でありICの選択も自由度が広い。またそのNANDとNORについても、論理的には対称(双対)で、CMOSならば電気回路としての接続もそうなるが、それでもNMOSとPMOSの非対称さによって差が出る)。実際には機器や基板の回路を全体として外から見ると正論理だが、内部では負論理を混在させる、といったような形になる。前段を正論理とし、その後段を負論理としたり、逆に前段を負論理、後段を正論理とした組み合わせなど、上手く組み合わせて演算回路素子をできるだけ少なく使用するなどの工夫もなされる(計算量は爆発するかもしれないが、コンピュータ・プログラムで網羅的に調べることができるので、人間が工夫するよりもそういったシステムをうまく併用すべき)。