
/* =====================================================================
 * 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', One );   
  Switch( "ca", i1[1], '3', One);   
  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[1], i0[0])
	   0  1             (i1[1], i1[0])
	   1  0             (i2[1], i2[0])
	   1  1             (i3[1], i3[0])
     ========================================== */
  Mux ( "ab-db", (c1,c0), 
           ((i3[1],i3[0]), (i2[1],i2[0]), (i1[1],i1[0]), (i0[1],i0[0]) ),
           ((out[1],out[0])));  // 

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