1章 ブール理論
1章~5章にかけてハードウェアプラットフォームを作成していきます!!
本章では、最も単純な論理ゲートの1つであるNand回路を使って、Not回路・And回路 等を作成していきます。
★単語
・ブールゲート:ブール関数を物理的に実現したもの
・ブール代数:ブール値(1/0、true/false)を扱う
・ブール関数:入力としてブール値を受け取り、出力としてブール値を返す
・ゲート:ブール関数を実装するための物理デバイス
・ハードウェア記述言語(HDL):回路の構造を表現する
・Nand回路:AndをNotで否定
★回路図
・Not回路
【真理値表】
入力 | 出力
0 | 1
1 | 0
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
CHIP Not {
IN in;
OUT out;
PARTS:
Nand(a=in, b=in, out=out);
}
・And回路
【真理値表】
入力1 | 入力2 | 出力
0 | 0 | 0
1 | 0 | 0
0 | 1 | 0
1 | 1 | 1
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
CHIP And {
IN a, b;
OUT out;
PARTS:
Nand(a=a, b=b, out=s);
Nand(a=s, b=s, out=out);
}
・Or回路
【真理値表】
入力1 | 入力2 | 出力
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
1 | 1 | 1
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
CHIP Or {
IN a, b;
OUT out;
PARTS:
Nand(a=a, b=a, out=c);
Nand(a=b, b=b, out=f);
Nand(a=c, b=f, out=out);
}
・Xor回路
【真理値表】
入力1 | 入力2 | 出力
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
1 | 1 | 0
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
CHIP Xor {
IN a, b;
OUT out;
PARTS:
Nand(a=a, b=b, out=w1);
Nand(a=a, b=w1, out=w2);
Nand(a=w1, b=b, out=w3);
Nand(a=w2, b=w3, out=out);
}
・Mux回路
【真理値表】
入力1 | 入力2 | sel | 出力
0 | 0 | 0 | 0
1 | 0 | 0 | 1
0 | 1 | 0 | 0
1 | 1 | 0 | 1
0 | 0 | 1 | 0
1 | 0 | 1 | 0
0 | 1 | 1 | 1
1 | 1 | 1 | 1
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
CHIP Mux {
IN a, b, sel;
OUT out;
PARTS:
Nand(a=sel, b=sel, out=w1);
Nand(a=a, b=w1, out=w2);
Nand(a=sel, b=b, out=w3);
Nand(a=w2, b=w3, out=w4);
}
・DMux回路
【真理値表】
sel | 出力1 | 出力2
0 | in | 0
1 | 0 | in
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
CHIP DMux {
IN in, sel;
OUT a, b;
PARTS:
Nand(a=in, b=sel, out=w1);
Nand(a=in, b=w1, out=w2);
Nand(a=w2, b=w2, out=a);
Nand(a=w1, b=w1, out=b);
}
Next
2章 ブール算術
1章 ブール理論(番外編)もあるんで、よかったら見てください!(笑)
・Twitter
https://twitter.com/tango3564
・Instagram
https://www.instagram.com/tango3690/