<> <> <> <<>> DIRECTORY CoreCreate, Logic; RadioCells: CEDAR PROGRAM IMPORTS CoreCreate = BEGIN OPEN CoreCreate; RegisterBank: PROC RETURNS [cell: CellType] = { tbuf: CellType _ Logic.TristateNI[]; -- "I", "X", "EN" and2: CellType _ Logic.And[2]; -- Seq["I", n] "X" ff: CellType _ Logic.FlipFlopEnable[2]; -- "D", "Q", "NQ", "CK", "en", "nEn" instances: CellInstances _ NIL; FOR bit: INT IN [0..8) DO instances _ CONS [ Instance[ type: ff, pa1: ["D", Index["LowAddressB", adrBit]], pa2: ["Q", Index["nLowAddressB", adrBit]], pa3: ["NQ", Index["nLowAddressB", adrBit]] pa4: ["CK", Index["nLowAddressB", adrBit]], pa5: ["en", Index["nLowAddressB", adrBit]], pa6: ["nEn", Index["nLowAddressB", adrBit]], props: CoreProperties.Props[[$Par0, IO.PutFR["LOC=%g", IO.?[?]]]]], instances]; ENDLOOP; ct _ Cell[ name: "DecoderLogicDriver", public: Wires["Vdd", "Gnd", "AdrBit", "nAdrBit", Seq["LowAddressB", log2Select], Seq["Select", select]], onlyInternal: Wires[Seq["nLowAddressB", log2Select]], instances: instances ]; }; END.