<> <> <> <> <> DIRECTORY Core, IMSTester, Ports, ViewerClasses; ICTest: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = IMSTester.ROPE; Delay: TYPE = IMSTester.Delay; Width: TYPE = IMSTester.Width; Sample: TYPE = IMSTester.Sample; Period: TYPE = IMSTester.Period; FormatType: TYPE = IMSTester.FormatType; Board: TYPE = IMSTester.Board; PodTiming: TYPE = IMSTester.PodTiming; Channel: TYPE = IMSTester.Channel; EvalCycleType: TYPE = {force, sense}; Directionality: TYPE = {force, acquire, biDirectional}; TestButton: TYPE = RECORD [name: ROPE, proc: TestProc]; <> TestProc: TYPE = PROC [p: Ports.Port, Eval: PROC[evalCycleType: EvalCycleType]]; Group: TYPE = RECORD [ number: NAT, --unique group number name: Core.ROPE, --group name directionality: Directionality, format: FormatType _ DNRZ, delay: Delay _ 0, width: Width _ 20, sample: Sample _ 0, programable: BOOL _ FALSE, -- programable drive or threshold hiDrive: REAL _ 2.4, loDrive: REAL _ 0.4, threshold: REAL _ 1.4, compare: BOOL _ TRUE]; -- real-time compare LoadBoardSide: TYPE = {R, L}; PodPair: TYPE = {AB, CD, EF, GH, IJ, KL}; TesterHeader: TYPE = [1..256]; DUTHeader: TYPE = [1..256]; ProbeCardPin: TYPE = [1..240]; Assignments: TYPE = RECORD [ name: Core.ROPE, --signal name group: NAT, --unique group number board: Board, loadBoardSide: LoadBoardSide, podPair: PodPair, pod: PodTiming, channel: Channel, testerHeader: TesterHeader, dUTHeader: DUTHeader, probeCardPin: ProbeCardPin]; MakeStandardViewer: PROC [name: Core.ROPE _ NIL, cellType: Core.CellType, testButtons: LIST OF TestButton, groups: LIST OF Group _ NIL, assignments: LIST OF Assignments _ NIL, period: Period]; END.