否定論理積演算
別名:NAND演算
【英】NAND, NOT AND
否定論理積演算とは、論理演算のひとつで、すべての入力が「真」(1)の場合に、出力は「偽」(0)となり、その他の場合には出力を「真」(1)とする演算方式のことである。論理積演算(AND演算)の結果に否定(NOT演算)を加えたものであるといえる。
論理積演算の場合、演算における値を、真「1」と偽「0」とすれば、2つの項目を掛け算する。いずれも真であれば「1×1=1」で真となり、いずれかが偽であれば「1×0=0」で偽となる。いずれも偽である場合には「0×0=0」でこちらも偽となる。
否定論理積演算では、論理積演算の結果の真偽を反転させた演算であるといえる。いずれも真であれば「1×1=1」を逆転させて「0」とし、いずれかが偽であれば「1×0=0」を逆転させて「1」とする。いずれも偽である場合には「0×0=0」を逆転させて「1」とする。論理回路を設計する際には、実際は論理積演算よりも否定論理積演算のほうが利用しやすいため、否定論理積演算の採用される機会は多い。
なお、論理演算の方法としては、論理積演算(AND演算)や否定論理積演算(NAND演算)のほか、論理和演算(OR演算)や否定論理和演算(NOR演算)、排他的論理和演算(XOR演算)などがある。否定論理積演算を行う論理回路は、否定論理積演算回路やNANDゲートなどと呼ばれる。
NANDゲート
入力 | 出力 | |
A | B | A NAND B |
L | L | H |
L | H | H |
H | L | H |
H | H | L |
NANDゲート(ナンドゲート)は、否定論理積の論理ゲートであり、その(論理的な)動作は全ての入力の論理積(AND)の反転(NOT)である。つまり、全ての入力がHighの場合のみ出力がLowになり、Lowの入力がひとつでもある場合はHighを出力する。
NAND論理の完全性(en:Functional completeness)により、いかなる組合せ論理回路の論理もNANDゲートの組合せで実装できる。
汎用ロジックICシリーズにおいて、最も基本的な製品群として大量生産されたのは、完全性という論理的な理由よりも、実装の容易さ等による面が大きい。
記号
MIL論理記号及びANSI、IEC、DINのそれぞれにおけるNANDの記法を以下に示す。
MIL/ANSI 記号 | IEC 記号 | DIN 記号 |
汎用ロジックIC
NANDは、汎用ロジックICでは基本的な製品として、バリエーション等が最も豊富な一群のひとつである。74シリーズについてはTTLの7400等の他、74HC00他のCMOS版など多数のバリエーションがある。
- 74シリーズ
- 7400: 2入力NANDゲート×4
- 7410: 3入力NANDゲート×3
- 7420: 4入力NANDゲート×2
- 7430: 8入力NANDゲート×1
- 4000シリーズ(CMOS)
- 4011: 2入力NANDゲート×4
- 4023: 3入力NANDゲート×3
- 4012: 4入力NANDゲート×2
- 4068: 8入力NANDゲート×1
実装
Transistor-transistor logic(TTL)の場合、複数のエミッタを持つトランジスタ (マルチエミッタトランジスタ) を使い、他のゲートよりも少数のトランジスタで構成できるという特徴があり、74シリーズのトップナンバーである7400がNANDであるのもそういった理由による。CMOSにおいても、特性的に不利なPチャネル側が並列で、特性的に有利なNチャネル側が直列になることから、例えばそれが逆になるNORゲートよりも少しだが優位がある。
NANDゲートの完全性
NANDゲートは極小完全[注釈 1]な論理関数を実現した回路であり、任意の組み合わせ回路はNANDゲートのみで生成できる[1]。つまり、NOT、AND、OR、XOR などの基本論理回路をはじめ、加算器、デコーダ、エンコーダなどの複雑な組み合わせ回路をNANDゲートだけで作ることができる。
また、最も基本的な順序回路であるRSフリップフロップ回路はNANDゲートの組み合わせで実現できることから[2]、任意の順序回路もNAND回路だけで生成することができる。
脚注
注釈
- ^ ANDとNOTがあれば全ての論理関数が合成できるので「完全」、ANDあるいはNOTのいずれかが無ければ完全ではなくなるので「極小」という。
出典
参考文献
- 髙木直史『論理回路』オーム社〈新インターユニバーシティ〉、2010年。ISBN 978-4-274-20959-8。
関連項目
否定論理積
この記事は英語版の対応するページを翻訳することにより充実させることができます。(2024年4月) 翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。
|
否定論理積(ひていろんりせき)とは、与えられた複数の命題のうちに偽 (False)であるものが含まれることを示す論理演算である。NAND (Not AND; "ナンド"と読まれる)と表記される。別の表記法として、ヘンリー・シェファーが1913年に導入したシェファーの棒記号(英: Sheffer stroke、記号 "|" で表す)や矢印の「↑」を用いる表記法もある。
性質
完全性
一般に、いくつかの限られた種類の論理演算を任意個組み合わせることにより、任意のブール関数を構成可能であることを、その演算の組は functionally complete であるという(詳細は英語版記事 en:Functional completeness を参照)。ANDとORはどちらも単調であるため「ANDとOR」だけでは完全にならず、NOTを加える必要がある。一方「ANDとNOT」や「ORとNOT」は完全であり、ANDとNOTの組合せであるNAND(や、NOR(否定論理和))はそれひとつだけで完全である。以下にNOT・AND・ORのNANDのみによる構成を示す。
- NOT A = A NAND A
- A AND B = NOT ( A NAND B ) = ( A NAND B ) NAND ( A NAND B )
- A OR B = ( NOT A ) NAND ( NOT B ) = ( A NAND A ) NAND ( B NAND B )
真理値表
否定論理積の真理値表
命題 P | 命題 Q | P NAND Q |
---|---|---|
真 | 真 | 偽 |
真 | 偽 | 真 |
偽 | 真 | 真 |
偽 | 偽 | 真 |
ベン図
否定論理積のベン図
応用
NANDゲートなどの記事を参照。
関連項目
- NANDのページへのリンク