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;
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.