LogicUtils.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Last Edited by: Louis Monier January 5, 1987 9:07:41 pm PST
-- This module provides basic utilities for all the implementation files of Logic.mesa
DIRECTORY Core, CoreCreate, Ports, Sisyph;
LogicUtils: CEDAR DEFINITIONS = BEGIN OPEN CoreCreate;
-- A new class: cellTypes which are recasted only for layout
libCellClass: Core.CellClass;
LibCellRef: TYPE = REF LibCellRec;
LibCellRec: TYPE = RECORD [libName, ctName: ROPE];
cellWidthProp: ATOM;
CreateLibCell: PROC [public: Wire, ctName, libName, name: ROPENIL, props: Properties ← NIL] RETURNS [ct: CellType];
cx: Sisyph.Context; -- derived from the "Logic.dale" library
-- Extracts from the Logic library
Extract: PUBLIC PROC [schName: ROPE, makeBlock: BOOLFALSE] RETURNS [ct: CellType];
-- Massage a small block (a few cells) into a single placable element
SCBlock: PROC [ct: CellType] RETURNS [shell: CellType];
-- Creates a cell with the new class
MakeSC: PUBLIC PROC [nameInLib, name: ROPE, public: Wire, width: INT ← 0] RETURNS [ct: CellType];
-- Display message on Terminal
Error: PUBLIC PROC [msg: ROPE];
HasX: PUBLIC PROC [ls: Ports.LevelSequence] RETURNS [BOOLFALSE];
-- **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
-- These belong in Sch, but Sch must be redone, so in the mean time...
SetObjectPort: PROC [cx: Sisyph.Context, initType: Ports.LevelType ← b, initDrive: Ports.Drive ← none];
SetObjectTesterDrive: PROC [cx: Sisyph.Context, initDrive: Ports.Drive ← none];
END.