From d3a0cc3a8ba6dfeb64d3faeffdeb6845b60e5840 Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Sat, 20 Jan 2018 15:41:49 +0100 Subject: rearranged the dir for github - removed tools and pdfs - rearranged the projects dirs - added md files - other minor changes --- chips/PC.hdl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 chips/PC.hdl (limited to 'chips/PC.hdl') diff --git a/chips/PC.hdl b/chips/PC.hdl new file mode 100644 index 0000000..aba68d1 --- /dev/null +++ b/chips/PC.hdl @@ -0,0 +1,32 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/03/a/PC.hdl + +/** + * A 16-bit counter with load and reset control bits. + * if (reset[t] == 1) out[t+1] = 0 + * else if (load[t] == 1) out[t+1] = in[t] + * else if (inc[t] == 1) out[t+1] = out[t] + 1 (integer addition) + * else out[t+1] = out[t] + */ + +CHIP PC { + IN in[16],load,inc,reset; + OUT out[16]; + + PARTS: + // Put your code here: + Mux16 (a=out5, b=in, sel=load, out=out0); + Inc16 (in=out0, out=out1); + Mux16 (a=out1, b=out0, sel=load, out=out2); + Mux16 (a=out0, b=out2, sel=inc, out=out3); + Mux16 (a=out3, b=false, sel=reset, out=out4); + Register (in=out4, load=true, out=out5, out=out); + + //Inc16 (in=out4, out=out0); + //Mux16 (a=out4, b=out0, sel=inc, out=out1); + //Mux16 (a=out1, b=in, sel=load, out=out2); + //Mux16 (a=out2, b=false, sel=reset, out=out3); + //Register (in=out3, load=true, out=out4, out=out); +} -- cgit v1.2.3