2016年1月27日水曜日

開発環境

  • OS X El Capitan - Apple (OS)
  • Emacs(Text Editor)

コンピュータシステムの理論と実装 (Noam Nisan (著)、Shimon Schocken (著)、斎藤 康毅(翻訳)、オライリージャパン)の1章(ブール論理)、1.5(プロジェクト(1.2.2(基本論理ゲート、Nand、Not、And、Or、マルチプレクサ、デマルチプレクサ))を取り組んでみる。

1.5(プロジェクト)

コード(Emacs)

Not.hdl

CHIP Not {
    IN in;
    OUT out;

    PARTS:
    Nand(a=in, b=in, out=out);
}

And.hdl

CHIP And {
    IN a, b;
    OUT out;

    PARTS:
    Nand(a=a, b=b, out=nandab);
    Nand(a=nandab, b=nandab, out=out);
}

Or.hdl

CHIP Or {
    IN a, b;
    OUT out;

    PARTS:
    Not(in=a, out=nota);
    Not(in=b, out=notb);
    And(a=nota, b=notb, out=w);
    Not(in=w, out=out);
}

Mux.hdl

CHIP Mux {
    IN a, b, sel;
    OUT out;

    PARTS:
    Not(in=sel, out=notsel);
    And(a=notsel, b=a, out=w1);
    And(a=sel, b=b, out=w2);
    Or(a=w1, b=w2, out=out);
}

DMux.hdl

CHIP DMux {
    IN in, sel;
    OUT a, b;

    PARTS:
    Not(in=sel, out=notsel);
    And(a=in, b=notsel, out=a);
    And(a=in, b=sel, out=b);
}

0 コメント:

コメントを投稿