<> <> <> <> <> <<>> DIRECTORY Core; NewCoreClasses: CEDAR DEFINITIONS = BEGIN OPEN Core; <> Volts: TYPE = REAL; KOhms: TYPE = REAL; pF: TYPE = REAL; ns: TYPE = REAL; mA: TYPE = REAL; uH: TYPE = REAL; RopeFromVolts: PROC [v: Volts] RETURNS [rope: ROPE]; RopeFromKOhms: PROC [r: KOhms] RETURNS [rope: ROPE]; RopeFrompF: PROC [c: pF] RETURNS [rope: ROPE]; RopeFromns: PROC [t: ns] RETURNS [rope: ROPE]; RopeFrommA: PROC [i: mA] RETURNS [rope: ROPE]; RopeFromuH: PROC [l: uH] RETURNS [rope: ROPE]; <> resistorCellClass: CellClass; Resistor: TYPE = REF ResistorRec; ResistorRec: TYPE = RECORD [ value: KOhms]; ResistorPort: TYPE = MACHINE DEPENDENT {n0(0), n1(1)}; <> CreateResistor: PROC [args: ResistorRec, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [resistor: CellType]; <> inductorCellClass: CellClass; Inductor: TYPE = REF InductorRec; InductorRec: TYPE = RECORD [ value: uH]; InductorPort: TYPE = MACHINE DEPENDENT {n0(0), n1(1)}; <> CreateInductor: PROC [args: InductorRec, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [inductor: CellType]; <> capacitorCellClass: CellClass; Capacitor: TYPE = REF CapacitorRec; CapacitorRec: TYPE = RECORD [ value: pF]; CapacitorPort: TYPE = MACHINE DEPENDENT {n0(0), n1(1)}; <> CreateCapacitor: PROC [args: CapacitorRec, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [capacitor: CellType]; <> signalGeneratorCellClass: CellClass; SignalGenerator: TYPE = REF SignalGeneratorRec; SignalGeneratorRec: TYPE = RECORD [ type: SignalGeneratorType _ DC, onLevel: Volts _ 5.0, offLevel: Volts _ 0.0, period: ns _ 0.0, width: ns _ 0.0, tRise: ns _ 0.0, tFall: ns _ 0.0, tDelay: ns _ 0.0]; SignalGeneratorType: TYPE = {DC, RectWave, OneShot, Step}; SignalGeneratorPort: TYPE = MACHINE DEPENDENT {n(0)}; <> CreateSignalGenerator: PROC [args: SignalGeneratorRec, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [signalGenerator: CellType]; <> probeCellClass: CellClass; Probe: TYPE = REF ProbeRec; ProbeRec: TYPE = RECORD [ type: ProbeType _ Voltage, scale: REAL _ 1.0, resistance: KOhms _ 0.001]; ProbeType: TYPE = {Voltage, Current}; <> CreateProbe: PROC [args: ProbeRec, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [probe: CellType]; <> initCellClass: CellClass; Init: TYPE = REF InitRec; InitRec: TYPE = RECORD [ type: InitType _ Voltage, value: REAL _ 5.0, time: ns _ 0.0]; InitType: TYPE = {Voltage, Current}; <> CreateInit: PROC [args: InitRec, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [init: CellType]; <> thymePanelCellClass: CellClass; ThymePanel: TYPE = REF ThymePanelRec; ThymePanelRec: TYPE = RECORD [ title: ROPE _ NIL, tMin: ns _ 0.0, tMax: ns _ 100.0, yMin: Volts _ -1.0, yMax: Volts _ 5.0, tScale: REAL _ 1.0, iScale: mA _ 1.0]; <> CreateThymePanel: PROC [args: ThymePanelRec, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [thymePanel: CellType]; END.