<> <> <> <> <> <<>> DIRECTORY Commander, DynaStats, DynaSeer, IO, ViewerIO; DriveDynaSeer: CEDAR PROGRAM IMPORTS Commander, DynaStats, DynaSeer, ViewerIO = BEGIN DoCommand: Commander.CommandProc = { bubblesPerSwitch, numCaches, numMemories, numCycles, arbLatency: INT; defaultBubblesPerSwitch: INT _ 0; defaultNumCaches: INT _ 8; defaultNumMemories: INT _ 4; defaultNumCycles: INT _ 2000; defaultArbLatency: INT _ 5; in, out: IO.STREAM; handle: DynaSeer.Handle; [in, out] _ ViewerIO.CreateViewerStreams["DynaSeer History"]; bubblesPerSwitch _ DynaSeer.GetIntParm[in, out, "\nNumber of Bubbles to be inserted each time the grantee board changes", defaultBubblesPerSwitch]; numCaches _ DynaSeer.GetIntParm[in, out, "Number of Caches", defaultNumCaches]; numMemories _ DynaSeer.GetIntParm[in, out, "Number of Memories", defaultNumMemories]; numCycles _ DynaSeer.GetIntParm[in, out, "Number of Cycles", defaultNumCycles]; arbLatency _ DynaSeer.GetIntParm[in, out, "Arbitration latency (cycles)", defaultArbLatency]; handle _ DynaSeer.CreateSimulation[in: in, out: out, numCycles: numCycles, numMemories: numMemories, numCaches: numCaches, arbLatency: arbLatency]; handle.bubblesPerSwitch _ bubblesPerSwitch; DynaSeer.RunSimulation[handle]; DynaStats.PrintStats[handle]; }; Commander.Register["DynaSeer", DoCommand]; END.