director.stopTime.setExpression("90.0");
// Instantiate the Actors
_clock = new ListenClock(toplevel, "Clock");
_clock.values.setExpression("{1, 1, 1}");
_clock.period.setToken(new DoubleToken(20.0));
_clock.offsets.setExpression("{5.0, 10.0, 15.0}");
_join1 = new ListenWire(toplevel, "UpperJoin");
_fork1 = new ListenFork(toplevel, "UpperFork");
_fBack1 = new ListenFeedBackDelay(toplevel, "UpperFeedBack");
_join2 = new ListenWire(toplevel, "LowerJoin");
_fork2 = new ListenFork(toplevel, "LowerFork");
_fBack2 = new ZenoDelay(toplevel, "LowerFeedBack");
_rcvr1 = new ListenSink(toplevel, "UpperRcvr");
_rcvr2 = new ListenSink(toplevel, "LowerRcvr");
_upperTime = new Const(toplevel, "upperTime");
_upperPlotter = new TimedPlotter(toplevel, "upperPlotter");
_lowerTime = new Const(toplevel, "lowerTime");
_lowerPlotter = new TimedPlotter(toplevel, "lowerPlotter");
//_fBack1.delay.setToken(new DoubleToken(4.5));
//_fBack2.delay.setToken(new DoubleToken(4.5));
_fBack1.delay.setToken(new DoubleToken(1.0));
_fBack2.delay.setToken(new DoubleToken(1.0));
// Set up ports, relations and connections
Relation clkRelation = toplevel.connect(_clock.output, _join1.input);
_join2.input.link(clkRelation);