コンピュータシステムの理論と実装 ブール論理のつづき
TOP > てきとうにこらむ > ゲーム作りとプログラミング日記 > コンピュータシステムの理論と実装 ブール論理のつづき
Nandからの論理ゲート
Nandをプリミティブなゲートとして、Not、And、Or、XOr、マルチプレクサ、デマルチプレクサを作っていく。
多ビットの基本ゲート
多ビットNot、多ビットAnd、多ビットOr、多ビットマルチプレクサを作った。おまけで多ビットデマルチプレクサを作った。いけるもんだな。
$ cat Nand2Dmux16.hdl
CHIP Nand2Dmux16 {
IN in[16], sel;
OUT a[16], b[16];
PARTS:
DMux(in = in[0], sel = sel, a = a[0], b = b[0]);
DMux(in = in[1], sel = sel, a = a[1], b = b[1]);
DMux(in = in[2], sel = sel, a = a[2], b = b[2]);
DMux(in = in[3], sel = sel, a = a[3], b = b[3]);
DMux(in = in[4], sel = sel, a = a[4], b = b[4]);
DMux(in = in[5], sel = sel, a = a[5], b = b[5]);
DMux(in = in[6], sel = sel, a = a[6], b = b[6]);
DMux(in = in[7], sel = sel, a = a[7], b = b[7]);
DMux(in = in[8], sel = sel, a = a[8], b = b[8]);
DMux(in = in[9], sel = sel, a = a[9], b = b[9]);
DMux(in = in[10], sel = sel, a = a[10], b = b[10]);
DMux(in = in[11], sel = sel, a = a[11], b = b[11]);
DMux(in = in[12], sel = sel, a = a[12], b = b[12]);
DMux(in = in[13], sel = sel, a = a[13], b = b[13]);
DMux(in = in[14], sel = sel, a = a[14], b = b[14]);
DMux(in = in[15], sel = sel, a = a[15], b = b[15]);
}
多入力の基本ゲート
多入力Or、多入力/多ビットマルチプレクサ(4入力と8入力)、多入力/多ビットデマルチプレクサ(4入力と8入力)で構築。多ビットデマルチプレクサの構築にコツがあったような。選択ビットの下位から読んでいって、上位になるにつれて出力すべき場所がわかっていくように作っていった。
まぁ
そんなところかな。次は2章のブール算術いってみよー
一覧
- コンピュータシステムの理論と実装 ブール論理
- コンピュータシステムの理論と実装 ブール論理のつづき
- コンピュータシステムの理論と実装 ALUの実装
- コンピュータシステムの理論と実装 レジスタとメモリとカウンタ
- コンピュータシステムの理論と実装 機械語
- コンピュータシステムの理論と実装 CPU
- コンピュータシステムの理論と実装 コンピュータそのもの
- コンピュータシステムの理論と実装 アセンブラ
- コンピュータシステムの理論と実装 バーチャルマシン#1
- コンピュータシステムの理論と実装 バーチャルマシン#2