/* Try to make Tri-State-Buffer with a macro */

#include "Sim.h"


void tsb( const SD &sd, const Signal &in, const Signal &out)
{
   Module( sd, in, out);            // Start a new coordinate system.

   Or  ( SD(sd,"3d"), (out_0, out_1, out_2, out_3), out[0] );
}


/* -----
   Set up circuit that uses "MyMux"
   ----- */
void simnet()
{
   Sig(in0,1);
   Sig(in1,1);
   Sig(in2,1);
   Sig(in3,1);
   Sig(co0,1);
   Sig(co1,1);
   Sig(out,1);

   /* The input bits to the mux */
   Switch ( "4a", in0, '0', Zero );
   Switch ( "3a", in1, '1', Zero );
   Switch ( "2a", in2, '2', Zero );
   Switch ( "1a", in3, '3', Zero );
   
   /* The control bits of the mux */
   Switch ( "6a", co1, '4', Zero );
   Switch ( "7a", co0, '5', Zero );
   
   MyMux ( "1b-4d", (co1, co0, in3, in2, in1, in0), out );
//                   ^^^                      ^^^
//                   in[5]                    in[0]
   
   Probe ( "3e", out );
}



