DIRECTORY Core, HashTable, REFBit; CoreName: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE = Core.ROPE; Wire: TYPE = Core.Wire; Wires: TYPE = Core.Wires; CellType: TYPE = Core.CellType; RopeNm: PROC[ rope: ROPE] RETURNS[registered: ROPE]; WireNm: PROC[wire: Wire, rope: ROPE_NIL] RETURNS[w: Wire, n: ROPE]; CellNm: PROC[cell: CellType, rope: ROPE_NIL] RETURNS[c: CellType, n: ROPE]; ID: PROC[ rope: ROPE] RETURNS[unique: ROPE]; Context: TYPE = HashTable.Table; -- Name to Wire NewContext: PROC RETURNS[ctx: Context]; CtxWire: PROC[ctx: Context, name: ROPE, size: INT _ -1] RETURNS[wire: Wire]; CtxRegisterWire: PROC[ctx: Context, wire: Wire, name: ROPE _ NIL]RETURNS[ok: BOOL]; CtxCopyWire: PROC[ctx: Context, wire: Wire] RETURNS[new: Wire]; CtxWireToName: PROC[ctx: Context, wire: Wire] RETURNS[name: ROPE]; CtxNameToWire: PROC[ctx: Context, name: ROPE] RETURNS[wire: Wire]; WiresFromCtx: PROC[ctx: Context] RETURNS[wires: Wires]; WireFromCtx: PROC[ctx: Context] RETURNS[wire: Wire]; KillContext: PROC[ctx: Context] RETURNS[Context]; BindModules: PROC[public: Wire, modules: LIST OF CellType, name: ROPE _ NIL] RETURNS [cell: CellType]; -- using atomic names RelativeSignal: TYPE = RECORD[ pol: Polarity _ unk, ph: Ph _ unk ]; unk: INT = -1; Ph: TYPE = {A, AB, ABB, ABBB, Ac, B, BA, BAA, BAAA, Bc, unk}; Polarity: TYPE = {pos, neg, unk}; PhRope: ARRAY Ph OF ROPE; PolarityRope: ARRAY Polarity OF ROPE; Signal: TYPE = REF SigRec; SigRec: TYPE = RECORD[not: BOOL_FALSE, root: ROPE_NIL, ph: Ph_unk, cy, idx: INT_-1]; SelectName: PROC[inv: BOOL, posNm, negNm: ROPE] RETURNS [inverted: BOOL, name: ROPE]; SigName: PROC[sigRec: SigRec] RETURNS [name: ROPE _ NIL]; NameSig: PROC[name: ROPE] RETURNS [sigRec: SigRec _ [ ]]; NormalFormatNames: PROC [format: REFBit.FormatRec] RETURNS[name, nameInv: ROPE, dual, inverted: BOOL, cy, idx: INT]; BitRopeToSigRope: PROC[name: ROPE] RETURNS [ROPE]; RootExt: PROC[name: ROPE] RETURNS [root, ext: ROPE]; EDTypeWire: PROC[root, ext, ref: ROPE] RETURNS[wire: Wire]; END. rCoreName.mesa Created by Don Curry February 23, 1987 3:20:10 pm PST cycle: INT _ unk ]; BitRope foo.bar.cnt foo.bar.2 SigRope FooBarCnt FooBar.2 Signal NotFooBarCntAB NotFooBarAB.2 SignalName: PROC[not: BOOL, pos, neg: ROPE, ph: Ph, cy: INT_-1] RETURNS [name: ROPE]; ParseSignalName: PROC[name: ROPE] RETURNS [not: BOOL, root: ROPE, ph: Ph, cy: INT]; Ê®˜šœ ™ Jšœ5™5—J˜JšÏk œ˜"J˜šœ œ ˜šœ˜J˜—Jšœœœ˜Jšœœ ˜Jšœœ˜Jšœ œ˜J˜Jš Ïnœœ œœœ˜;Jš žœœœœœ˜EJš žœœœœœ˜KJš Ðbkœœ œœ œ˜5J˜Jšœ œ#˜3Jšž œœœ˜(Jš žœœœœœ ˜OJš žœœ"œœœœ˜TJšž œœœ ˜DJšž œœœœ˜FJšž œœœœ ˜FJšž œœœ˜@Jšž œœœ ˜=Jšž œœœ ˜:š ž œœœœœœ˜MJšœÏc˜/—J˜šÏbœœœ˜Jšœ˜Jšœ˜Jšœ œ ™—Jšœ œ˜Jšœ œÏs*œ˜CJšœœ˜&Jšœ œœœ˜Jšœœ œœ˜)J˜J™!J™J™%J˜Jšœœœ˜Jšœœœœœœœœ˜TJšž œœœœœ œœ˜UJš žœœœœœ˜:Jšžœœœœ˜:šžœœ˜2Jšœœœ œ˜A—J˜Jšž œœœ œœœœ™UJšžœœœœœœœ™SJ˜Jš Ðbn¡£ œœœœœ˜3Jš žœœœœ œ˜9J˜Jšž œœœœ ˜=Jšœ˜—J˜—…—H h