IFUAsmBCDecode.mesa
Copyright c 1985 by Xerox Corporation. All rights reserved.
Last Edited by June 17, 1985 3:00:15 pm PDT
IFUAsmBCDecode:
CEDAR
PROGRAM
IMPORTS Commander, IFUAsm, IFUPW, Rope =
BEGIN
GND: Rope.ROPE = IFUPW.GND;
VDD: Rope.ROPE = IFUPW.VDD;
bcDecodeSeq: BOOL ← IFUAsm.sequential;
BCDecodeXBufTop:
LIST
OF
REF =
IFUPW.LISTn[
"XBus." ];
BCDecodeXBuf:
PROC[design:
CD.Design]
RETURNS[cell:
IFUPW.ObjName] = {
cell ←
IFUPW.IFUGPCellRow[
design: design,
name: "BCDecodeXBuf",
type: IFUPW.LISTn["GPBuf"],
top: BCDecodeXBufTop,
ctl: LIST[NIL],
in: LIST["XBus."],
out: LIST[LIST[NIL, "XBusBAddr.", "XBusCAddr.", NIL]],
bot: BCDecodeSwitchOutTop,
seq: bcDecodeSeq ]};
BCDecodeSwitchOutTop:
LIST
OF
REF =
IFUPW.LISTn[
"XBus.",
IFUPW.List4[NIL, "XBusBAddr.", "XBusCAddr.", NIL] ];
BCDecodeSwitchOut:
PROC[design:
CD.Design]
RETURNS[cell:
IFUPW.ObjName] = {
cell ←
IFUPW.SwitchBoxRow[
design: design,
name: "BCDecodeSwitchOut",
rowType: IFUPW.cmosMet2,
topSeq: bcDecodeSeq,
top: BCDecodeSwitchOutTop,
left:
LIST[
"XBusBAddr.0", "XBusBAddr.1", "XBusBAddr.2", "XBusBAddr.3",
"XBusBAddr.4", "XBusBAddr.5", "XBusBAddr.6", "XBusBAddr.7",
"XBusCAddr.0", "XBusCAddr.1", "XBusCAddr.2", "XBusCAddr.3",
"XBusCAddr.4", "XBusCAddr.5", "XBusCAddr.6", "XBusCAddr.7" ],
right: NIL,
bot: BCDecoderBot,
botSeq: bcDecodeSeq,
fixGV: TRUE ]};
BCDecoderBot:
LIST
OF
REF =
IFUPW.LISTn[
"XBus."];
newDesign: Rope.ROPE ← IFUAsm.rootName.Cat["BCDecode"];
dataColRows:
LIST
OF
IFUPW.UserProc ←
LIST[
BCDecodeXBuf,
BCDecodeSwitchOut ];
CDAssemble:
IFUPW.UserProc=
{RETURN[IFUPW.AssembleList[design, dataColRows]]};
CTAssemble: Commander.CommandProc =
{[ ] ← IFUPW.AssembleList[IFUAsm.refDesign, dataColRows, newDesign, cmd]};
IFUAsm.RegDataColRows [procs: dataColRows, name: newDesign.Cat["Cell"]];
Commander.Register [proc: CTAssemble, key: newDesign.Cat["Cell"]];
IFUPW.Register [userProc: CDAssemble, name: newDesign.Cat["Cell"]];
END.