FlattenFlopPrimitive: TranslateProc = {
flatName: ROPE ← CoreFlat.CellTypePathRope[root, flatCell];
enableName: ROPE ← CoreOps.FixStupidRef[data];
d: Core.Wire ← CoreOps.FindWire[cell.public, "D"];
c: Core.Wire ← CoreOps.FindWire[cell.public, "CK"];
q: Core.Wire ← CoreOps.FindWire[cell.public, "Q"];
nq: Core.Wire ← CoreOps.FindWire[cell.public, "NQ"];
en: Core.Wire ← IF enableName=NIL THEN NIL ELSE CoreOps.FindWire[cell.public, enableName];
bindList: BindList ← LIST[[d, "D"], [c, "CK"], [q, "Q"]];
IF en#NIL THEN bindList ← CONS[[en, enableName], bindList];
MakeSymbol[flatName, "DFF", bindList, IF en=NIL THEN flopPins ELSE flopEnPins, circuit, root, flatCell, flatWireToSignal, bindings];
MakeSymbol[Rope.Cat[flatName, "ManufacturedInverter"], "INV", LIST[[q, "I"], [nq, "X"]], invPins, circuit, root, flatCell, flatWireToSignal, bindings];
};