System.out.println("\n\nInit Execution Counts"); RawBackend.printCounts(RawBackend.initExecutionCounts);
    public void simulate(FlatNode top)     {	System.out.println("FineGrainSimulator Running...");		initJoinerCode = new HashMap();        steadyJoinerCode = new HashMap();	//generate the joiner schedule	JoinerSimulator.createJoinerSchedules(top);		SimulationCounter counters = 	    new SimulationCounter(JoinerSimulator.schedules);			//create copies of the executionCounts	HashMap initExecutionCounts = (HashMap)RawBackend.initExecutionCounts.clone();	HashMap steadyExecutionCounts = (HashMap)RawBackend.steadyExecutionCounts.clone();	joinerCode = initJoinerCode;	System.out.println("\n\nInit Execution Counts");	RawBackend.printCounts(RawBackend.initExecutionCounts);		initSchedules = (new FineGrainSimulator(top, true)).goInit(initExecutionCounts, counters, null);	testExecutionCounts(initExecutionCounts);	System.out.println("End of init simulation");	//	System.out.println("\n\nSteady Execution Counts");	//      RawBackend.printCounts(RawBackend.steadyExecutionCounts);	counters.resetBuffers();	joinerCode = steadyJoinerCode;	steadySchedules = (new FineGrainSimulator(top, false)).go(steadyExecutionCounts, counters, null);	testExecutionCounts(steadyExecutionCounts);	System.out.println("End of steady-state simulation");    }