RoseControl.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Barth, September 12, 1985 7:19:23 pm PDT
Spreitzer, August 13, 1985 5:04:02 pm PDT
DIRECTORY Core, RoseBehavior;
RoseControl: CEDAR DEFINITIONS = BEGIN
Theory
This interface describes the instantiation of Rosemary simulation data structures and the control of simulations.
Implementation
ROPE: TYPE = Core.ROPE;
Simulation: TYPE = REF SimulationRec;
SimulationRec: TYPE;
Instantiate: PROC [cellType: Core.CellType] RETURNS [simulation: Simulation];
The cellType must be a record. The simulation is instantiated for the list of cell instances directly on the record cell type. No flattening occurs.
Test: PROC [simulation: Simulation, test: TestProc];
TestProc: TYPE = PROC [
simpleInstructions, driveInstructions: REF ANY,
Eval: PROC];
Value Operations
Op: TYPE = {Add, Remove};
The value in the following procedures is intended to be interpreted by the user.
FetchValue: PROC [wire: Core.Wire] RETURNS [value: ROPE];
StoreValue: PROC [wire: Core.Wire, value: ROPE];
NotifyValue: PROC [
simulation: Simulation,
wire: Core.Wire,
Notify: NotifyValueProc,
op: Op];
NotifyValueProc: TYPE = PROC [wire: Core.Wire, value: ROPE];
The wire argument must be atomic in the following procedures.
FetchLevel: PROC [wire: Core.Wire] RETURNS [level: RoseBehavior.Level];
StoreLevel: PROC [wire: Core.Wire, level: RoseBehavior.Level];
NotifyLevel: PROC [
simulation: Simulation,
wire: Core.Wire,
Notify: NotifyLevelProc,
op: Op];
NotifyLevelProc: TYPE = PROC [wire: Core.Wire, level: RoseBehavior.Level];
END.