| 
					
	
	
	
	
				 | 
				
					
	
	 
		Well I have been working on this problem for a couple days now. 
 My initial idea was to compare the 16 bit Mux chips to one another in a fashion similar to the 8WayOr gate. The tiered approach. But I cannot seem to sort them properly using the inputs of sel. 
  CHIP Mux4Way16 {
 
      IN a[16], b[16], c[16], d[16], sel[2];
      OUT out[16];
      PARTS:
     Mux16 (	a = a[0..15],
                         b = a[0..15],
                         sel = sel[0],
                         out = outa);
     Mux16 (	a = b[0..15],
                         b = b[0..15],
                         sel = sel[0],
                         out = outb);
     Mux16 (	a = c[0..15],
                         b = c[0..15],
                         sel = sel[1],
                         out = outc);
         Mux16 (	a = d[0..15],
                         b = d[0..15],
                         sel = sel[1],
                         out = outd);
         Not	  (	in = sel[0], out = notsel0);
         Not     (	in = sel[1], out = notsel1);
         And    (	a = notsel0,
                         b = notsel1,
                         out = x);
         And   (	a = x,
                         b = outa,
                         out = out);
         
         
 }
  I am aware that outa is a 16 bit input and And only supports 1 bit input. This is where I have hit a roadblock. 
	
	
	
	 
				 |