package Communication.CSMA;

module system() {

  int buscontroller_counter, station1_counter, station2_counter;
  bool cycle_begin, cycle_end, busy, cd;
  bool buscontroller_counter_reset, station1_counter_reset;
  bool station2_counter_reset, transreq1, transreq2;

  BCT: timer(buscontroller_counter_reset, buscontroller_counter);
  ||
  ST1: timer(station1_counter_reset, station1_counter);
  ||
  ST2: timer(station2_counter_reset, station2_counter);
  ||
  BC: buscontroller(cycle_begin, cycle_end, buscontroller_counter, busy, cd, buscontroller_counter_reset);
  ||
  S1: station(transreq1, busy, cd, station1_counter, cycle_begin, cycle_end, station1_counter_reset);
  ||
  S2: station(transreq2, busy, cd, station2_counter, cycle_begin, cycle_end, station2_counter_reset);

}