<> <> <> <> DIRECTORY Core, CoreFlat, IO, Ports, Rope, Rosemary; RosemaryVector: CEDAR DEFINITIONS = BEGIN OpenVectorFile: PROC [fileName: Rope.ROPE, port: Ports.Port, read: BOOL _ TRUE] RETURNS [vectorFile: VectorFile]; CloseVectorFile: PROC [vectorFile: VectorFile]; WriteVector: PROC [vectorFile: VectorFile, neverSayExpect: BOOL _ FALSE]; ReadVector: PROC [vectorFile: VectorFile]; CreateTarget: PROC [simulation: Rosemary.Simulation, flatCell: CoreFlat.FlatCellType, test: Ports.Port] RETURNS [target: Target]; <> <<>> SampleTarget: PROC [target: Target, test: Ports.Port]; <> <> < port should not drive and device should be TS (should not happen as untestable...)>> < do not drive nor check anything (should not happen as untestable...)>> < port should drive and device should be TS>> < port should drive & have same resulting value>> < port should not drive & should receive value>> Target: TYPE ~ REF TargetRep; TargetRep: TYPE ~ RECORD [ flatCell: CoreFlat.FlatCellType, -- the target flat CT dut: Core.CellType, -- the target CT portRoseValues: Rosemary.RoseValues _ NIL, -- that constitute the port connections scratchValue: Ports.LevelSequence _ NIL, -- working storage insideDrive, outsideDrive, compositeDrive: Ports.DriveSequence _ NIL, -- working storage mayBeTS: Ports.BoolSequence _ NIL -- working storage ]; VectorFile: TYPE = REF VectorFileRec; VectorFileRec: TYPE = RECORD [ port: Ports.Port, stream: IO.STREAM]; END.