
/* =====================================================================
 * Always include this header file when writing digital simulation !!!
 * ===================================================================== */
#include "Sim.h"

void simnet()
{
  Sig(i0,2); Sig(i1,2); Sig(i2,2); Sig(i3,2);  // Input signals
  Sig(c0,1); Sig(c1,1);                        // Control signals
  Sig(out,2);                                  // Output signal

  Switch( "aa", i3[1], '7', Zero );  
  Switch( "aa", i3[0], '6', Zero );  
  Switch( "ba", i2[1], '5', Zero );   
  Switch( "ba", i2[0], '4', Zero );   
  Switch( "ca", i1[1], '3', Zero);   
  Switch( "ca", i1[0], '2', Zero);   
  Switch( "da", i0[1], '1', One );   
  Switch( "da", i0[0], '0', One );   

  Switch( "fa", c1, 'b', Zero );   
  Switch( "ga", c0, 'a', Zero );   

  /* ==========================================
          c1 c0            Output
         --------------------------
           0  0             i0
	   0  1             i1
	   1  0             i2
	   1  1             i3
     ========================================== */
/*
  Mux ( "ab-db", (c1,c0), (i3,i2,i1,i0), out );  // Mux !!!
*/

  Mux ( "ab-db", (c1,c0), ((i3[1],i3[0]), i2,i1,i0), out );  // Mux !!!

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