| 
					
	
	
	
	
				 | 
				
					 
				This post was updated on .
			 
	
	
		I am not sure if anyone every tired this, but after solving for the ALU part, wanted to add more to the chip.
 I wanted to add a multiplication capabilities. 
  This is the implement I tired: 
   CHIP Mul2bit {
     IN  a[2], b[2];
     OUT out[4];
      PARTS:
     // First row of AND gates
     And(a=a[0], b=b[0], out=c0);
     And(a=a[0], b=b[1], out=w1);
      // Second row of AND gates
     And(a=a[1], b=b[0], out=w2);
     And(a=a[1], b=b[1], out=w3);
      // First half adder
     HalfAdder(a=w1, b=w2, sum=c1, carry=carry1);
      // Second half adder
     HalfAdder(a=w3, b=carry1, sum=c2, carry=c3);
  }
  I also tried this as well: 
  CHIP Mul2bit{
     IN a[2], b[2];
     OUT out;
      PARTS:
     
     And(a=a[0], b=b[1], out=w1);
     And(a=a[0], b=b[0], out=c0);
     
     And(a=a[1], b=b[0], out=w2);
     And(a=a[1], b=b[1], out=w3);
     And(a=w1, b=w2, out=w4);
     And(a=w4, b=w3, out=c3);
     
         
     Xor(a=w1, b=w2, out=c1);
     Xor(a=w4, b=w3, out=c2);
 }
  However, the problem I was having is that I needed to make a .tst and the .cmp files. I don't understand the .cmp, I am not sure what exactly it does. I also don't quite understand how the .tst file should be written with what syntax. Has anyone tired to make a custom chip? If you did make a custom chip did you have to write your own .tst file and .cmp file?
  Some other questions I have is that, I was planning on building it up to 4bit multiplier, that said, would I need to implement it into the ALU and all of its .tst file and .cmp? Meaning would I need to update the truth table in .cmp file?
  NOTE I CHANGED THE QUESTIONS A BIT TO MAKE IT MORE CLEAR WHAT I AM ASKING!
 
	
	
	
	 
				 |