Public » Elements of Computing
Clone URL:  
Pushed to one repository · View In Graph Contained in tip

Fix line endings in ALU

Changeset d7c07f5bca84

Parent 4bb55a03c247

by Profile picture of Benjamin PollackBenjamin Pollack

Changes to one file · Browse files at d7c07f5bca84 Showing diff from parent 4bb55a03c247 Diff from another changeset...

Change 1 of 1 Show Entire File 02/​ALU.hdl Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@@ -1,49 +1,49 @@
-// 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/02/ALU.hdl - -/** - * The ALU. Computes one of the following functions: - * x+y, x-y, y-x, 0, 1, -1, x, y, -x, -y, !x, !y, - * x+1, y+1, x-1, y-1, x&y, x|y on two 16-bit inputs, - * according to 6 input bits denoted zx,nx,zy,ny,f,no. - * The bit-combinations that yield each function are - * documented in the book. In addition, the ALU - * computes two 1-bit outputs: if the ALU output - * is 0, zr is set to 1; otherwise zr is set to 0; - * If out<0, ng is set to 1; otherwise ng is set to 0. - */ - -// Implementation: the ALU manipulates the x and y -// inputs and then operates on the resulting values, -// as follows: -// if (zx==1) set x = 0 // 16-bit constant -// if (nx==1) set x = ~x // bitwise "not" -// if (zy==1) set y = 0 // 16-bit constant -// if (ny==1) set y = ~y // bitwise "not" -// if (f==1) set out = x + y // integer 2's complement addition -// if (f==0) set out = x & y // bitwise "and" -// if (no==1) set out = ~out // bitwise "not" -// if (out==0) set zr = 1 -// if (out<0) set ng = 1 - - -CHIP ALU { - IN - x[16], y[16], // 16-bit inputs - zx, // zero the x input? - nx, // negate the x input? - zy, // zero the y input? - ny, // negate the y input? - f, // compute out = x + y (if 1) or out = x & y (if 0) - no; // negate the out output? - - OUT - out[16], // 16-bit output - zr, // 1 if (out==0), 0 otherwise - ng; // 1 if (out<0), 0 otherwise - - PARTS: - // Put you code here: -} \ No newline at end of file
+// 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/02/ALU.hdl + +/** + * The ALU. Computes one of the following functions: + * x+y, x-y, y-x, 0, 1, -1, x, y, -x, -y, !x, !y, + * x+1, y+1, x-1, y-1, x&y, x|y on two 16-bit inputs, + * according to 6 input bits denoted zx,nx,zy,ny,f,no. + * The bit-combinations that yield each function are + * documented in the book. In addition, the ALU + * computes two 1-bit outputs: if the ALU output + * is 0, zr is set to 1; otherwise zr is set to 0; + * If out<0, ng is set to 1; otherwise ng is set to 0. + */ + +// Implementation: the ALU manipulates the x and y +// inputs and then operates on the resulting values, +// as follows: +// if (zx==1) set x = 0 // 16-bit constant +// if (nx==1) set x = ~x // bitwise "not" +// if (zy==1) set y = 0 // 16-bit constant +// if (ny==1) set y = ~y // bitwise "not" +// if (f==1) set out = x + y // integer 2's complement addition +// if (f==0) set out = x & y // bitwise "and" +// if (no==1) set out = ~out // bitwise "not" +// if (out==0) set zr = 1 +// if (out<0) set ng = 1 + + +CHIP ALU { + IN + x[16], y[16], // 16-bit inputs + zx, // zero the x input? + nx, // negate the x input? + zy, // zero the y input? + ny, // negate the y input? + f, // compute out = x + y (if 1) or out = x & y (if 0) + no; // negate the out output? + + OUT + out[16], // 16-bit output + zr, // 1 if (out==0), 0 otherwise + ng; // 1 if (out<0), 0 otherwise + + PARTS: + // Put you code here: +}