/* -------------------------------------------------------------
   parallel-mux:  parallel multiplexor (for 3 parallel bits)

     input:    2 controls   (c1, c0)
               4 x 3 data:    (d3[3], d2[3], d1[3], d0[3])

     output:   Z[3]
   ------------------------------------------------------------- */

#include "Sim.h"

void simnet()
{
   Signal d0(3), d1(3), d2(3), d3(3), c0, c1, out(3);

   Switch ( "aa", d3[2], 'c', Zero );  // Data
   Switch ( "aa", d3[1], 'b', Zero );  // Data
   Switch ( "aa", d3[0], 'a', Zero );  // Data

   Switch ( "bb", d2[2], 'f', Zero );  // 
   Switch ( "bb", d2[1], 'e', Zero );  // 
   Switch ( "bb", d2[0], 'd', Zero );  // 

   Switch ( "ca", d1[2], 'i', Zero );  // 
   Switch ( "ca", d1[1], 'h', Zero );  // 
   Switch ( "ca", d1[0], 'g', Zero );  // 

   Switch ( "db", d0[2], 'l', Zero );  // 
   Switch ( "db", d0[1], 'k', Zero );  // 
   Switch ( "db", d0[0], 'j', Zero );  // 

   Switch ( "ga", c1, '1', Zero );  // 
   Switch ( "ha", c0, '0', Zero );  // 

   Mux ( "ac-dc", (c1,c0), (d3,d2,d1,d0), out ); 

   Probe ( "bd", out );        // Probe out
}



