BIC.mesa
Copyright Ó 1985, 1987 by Xerox Corporation. All rights reserved.
Created by: Louis Monier February 2, 1987 4:51:27 pm PST
Last Edited by: Louis Monier February 2, 1987 6:20:33 pm PST
DIRECTORY CD, CoreCreate, PW, PWCore, Rope, Sisyph;
BIC:
CEDAR
PROGRAM
IMPORTS CoreCreate, PW, PWCore, Sisyph =
BEGIN OPEN CoreCreate;
design: CD.Design;
cx: Sisyph.Context;
Extract:
PROC [name:
ROPE]
RETURNS [cellType: CellType] ~ {
cellType ← Sisyph.ExtractSchematicByName[name: name, cx: cx];
};
CSeq:
PROC [inX:
BOOL, name:
ROPE, ct: CellType, count:
NAT, wrs:
LIST
OF
WR]
RETURNS [cellType: CellType] = {
cellType ← SequenceCell[name: name,
baseCell: ct, count: count,
sequencePorts: WireList[wrs]];
IF inX THEN PWCore.SetArrayX[cellType] ELSE PWCore.SetArrayY[cellType];
};
CSeqX: PROC [name: ROPE, ct: CellType, count: NAT, wrs: LIST OF WR] RETURNS [cellType: CellType] = {cellType ← CSeq[TRUE, name, ct, count, wrs]};
CSeqY: PROC [name: ROPE, ct: CellType, count: NAT, wrs: LIST OF WR] RETURNS [cellType: CellType] = {cellType ← CSeq[FALSE, name, ct, count, wrs]};
MakeDP:
PROC [n:
NAT]
RETURNS [ct: CellType] ~ {
slice: CellType ← PWCore.RotateCellType[Extract["normalSlice.sch"], $Rot270];
ct ← CSeqX["DataPath", slice, n, LIST["fromPad5V", "toPad5V", "fromPad2V", "toPad2V", "ShiftIn", "ShiftOut"]];
};
Rot270:
PROC [name: Rope.
ROPE, cx: Sisyph.Context]
RETURNS [ct: CellType] ~ {
ct ← PWCore.RotateCellType[Sisyph.ES[name, cx], $Rot270];
};
design ← PW.OpenDesign["BIC"];
[] ← CDImports.Load[design, "Logic"];
cx ← Sisyph.Create[design: design];
END.