<> <> <> <> <<>> DIRECTORY AlpsBool, MCCtl; MCMicrocode: CEDAR PROGRAM IMPORTS AlpsBool, MCCtl EXPORTS MCCtl = BEGIN OPEN AlpsBool, MCCtl; Microcode: PUBLIC PROC [table: TableOfVariables] = BEGIN <> <> <> <> <> <> CtlRPVxAB: Expression _ DefaultDontCare[]; CtlVPVxAB: Expression _ DefaultDontCare[]; arrayAdrsSelPBusxBA: Expression _ false; ResetxBA: Expression _ false; setRefxAB: Expression _ false; matchValidxAB: Expression _ false; wtVictimRPVxAB: Expression _ false; wtMatchingRPVxAB: Expression _ false; wtAddressedRPVxAB: Expression _ false; VInSelVBusxAB: Expression _ false; ldAdrsInLinexAB: Expression _ false; VSelArrayxAB: Expression _ false; accessMatchingCAMxAB: Expression _ false; accessAddressedCAMxAB: Expression _ false; ldMatchxBA: Expression _ false; killAllLinesxAB: Expression _ false; wtMatchingVPVxAB: Expression _ false; wtAddressedVPVxAB: Expression _ false; PQSelArrayVPandAIDxAB: Expression _ false; ldAIDandVPxAB: Expression _ false; prechCBxBA: Expression _ false; drCBforWritexAB: Expression _ false; drCBforMatchxBA: Expression _ false; prechMatchxAB: Expression _ false; accessMatchingRamxAB: Expression _ false; connectAccessLinesxAB: Expression _ false; ldRPandFlagsxAB: Expression _ false; drRBLinesxAB: Expression _ false; PQSelArrayRPandFlagsxAB: Expression _ false; <> <> <> <> <> <> <> <> drMBusxBA: Expression _ false; PSelMBusHi25xAB: Expression _ false; PSelMBusLo25xAB: Expression _ false; <> <> <> <> <> BEGIN cond: Expression _ EqualInt[table, "CyclexBA", 0, 1, 0]; <> END; <> BEGIN cond: Expression _ EqualInt[table, "CyclexAB", 0, 1, 0]; PSelMBusLo25xAB _ If[table, cond, true, PSelMBusLo25xAB]; ldAIDandVPxAB _ If[table, cond, true, ldAIDandVPxAB]; <> <> ldAdrsInLinexAB _ If[table, cond, true, ldAdrsInLinexAB]; prechMatchxAB _ If[table, cond, true, prechMatchxAB]; <> END; <> BEGIN opCond: Expression _ And[table, Not[Find[table, "MDataxBA[2]"]], Or[table, EqualInt[table, "MCmdxBA", 0, 3, 8], EqualInt[table, "MCmdxBA", 0, 3, 10], EqualInt[table, "MCmdxBA", 0, 3, 12]]]; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexBA", 0, 1, 1], opCond]; drCBforMatchxBA _ If[table, cond, true, drCBforMatchxBA]; ldMatchxBA _ If[table, cond, true, ldMatchxBA]; END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexAB", 0, 1, 1], opCond]; matchValidxAB _ If[table, cond, true, matchValidxAB]; accessMatchingRamxAB _ If[table, cond, true, accessMatchingRamxAB]; PQSelArrayRPandFlagsxAB _ If[table, cond, true, PQSelArrayRPandFlagsxAB]; <> END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexBA", 0, 1, 2], opCond]; <> <> drMBusxBA _ If[table, cond, true, drMBusxBA]; <> END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexAB", 0, 1, 2], opCond]; END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexBA", 0, 1, 3], opCond]; <> <> drMBusxBA _ If[table, cond, true, drMBusxBA]; <> END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexAB", 0, 1, 3], opCond]; END; END; <> BEGIN opCond: Expression _ And[table, Not[Find[table, "MDataxBA[2]"]], EqualInt[table, "MCmdxBA", 0, 3, 9]]; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexBA", 0, 1, 1], opCond]; drCBforMatchxBA _ If[table, cond, true, drCBforMatchxBA]; ldMatchxBA _ If[table, cond, true, ldMatchxBA]; END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexAB", 0, 1, 1], opCond]; PSelMBusHi25xAB _ If[table, cond, true, PSelMBusHi25xAB]; <> ldRPandFlagsxAB _ If[table, cond, true, ldRPandFlagsxAB]; matchValidxAB _ If[table, cond, true, matchValidxAB]; END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexBA", 0, 1, 2], opCond]; <> <> drMBusxBA _ If[table, cond, true, drMBusxBA]; <> END; <<>> <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexAB", 0, 1, 2], Find[table, "arrayMatchxAB"], opCond]; drCBforWritexAB _ If[table, cond, true, drCBforWritexAB]; drRBLinesxAB _ If[table, cond, true, drRBLinesxAB]; connectAccessLinesxAB _ If[table, cond, true, connectAccessLinesxAB]; accessMatchingCAMxAB _ If[table, cond, true, accessMatchingCAMxAB]; CtlRPVxAB _ If[table, cond, true, CtlRPVxAB]; wtMatchingRPVxAB _ If[table, cond, true, wtMatchingRPVxAB]; CtlVPVxAB _ If[table, cond, true, CtlVPVxAB]; wtMatchingVPVxAB _ If[table, cond, true, wtMatchingVPVxAB]; END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexAB", 0, 1, 2], Not[Find[table, "arrayMatchxAB"]], opCond]; drCBforWritexAB _ If[table, cond, true, drCBforWritexAB]; drRBLinesxAB _ If[table, cond, true, drRBLinesxAB]; connectAccessLinesxAB _ If[table, cond, true, connectAccessLinesxAB]; accessAddressedCAMxAB _ If[table, cond, true, accessAddressedCAMxAB]; wtVictimRPVxAB _ If[table, cond, true, wtVictimRPVxAB]; CtlVPVxAB _ If[table, cond, true, CtlVPVxAB]; wtAddressedVPVxAB _ If[table, cond, true, wtAddressedVPVxAB]; END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexBA", 0, 1, 3], opCond]; <> <> drMBusxBA _ If[table, cond, true, drMBusxBA]; <> END; <> BEGIN cond: Expression _ And[table, EqualInt[table, "CyclexAB", 0, 1, 3], opCond]; END; END; AddOutput[table, NEW[OutputRec _ [expr: CtlRPVxAB, name: "CtlRPVxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: CtlVPVxAB, name: "CtlVPVxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: arrayAdrsSelPBusxBA, name: "arrayAdrsSelPBusxBA"]]]; AddOutput[table, NEW[OutputRec _ [expr: ResetxBA, name: "ResetxBA"]]]; AddOutput[table, NEW[OutputRec _ [expr: setRefxAB, name: "setRefxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: matchValidxAB, name: "matchValidxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: wtVictimRPVxAB, name: "wtVictimRPVxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: wtMatchingRPVxAB, name: "wtMatchingRPVxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: wtAddressedRPVxAB, name: "wtAddressedRPVxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: VInSelVBusxAB, name: "VInSelVBusxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: ldAdrsInLinexAB, name: "ldAdrsInLinexAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: VSelArrayxAB, name: "VSelArrayxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: accessMatchingCAMxAB, name: "accessMatchingCAMxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: accessAddressedCAMxAB, name: "accessAddressedCAMxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: ldMatchxBA, name: "ldMatchxBA"]]]; AddOutput[table, NEW[OutputRec _ [expr: killAllLinesxAB, name: "killAllLinesxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: wtMatchingVPVxAB, name: "wtMatchingVPVxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: wtAddressedVPVxAB, name: "wtAddressedVPVxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: PQSelArrayVPandAIDxAB, name: "PQSelArrayVPandAIDxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: ldAIDandVPxAB, name: "ldAIDandVPxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: prechCBxBA, name: "prechCBxBA"]]]; AddOutput[table, NEW[OutputRec _ [expr: drCBforWritexAB, name: "drCBforWritexAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: drCBforMatchxBA, name: "drCBforMatchxBA"]]]; AddOutput[table, NEW[OutputRec _ [expr: PQSelArrayVPandAIDxAB, name: "PQSelArrayVPandAIDxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: drCBforWritexAB, name: "drCBforWritexAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: prechMatchxAB, name: "prechMatchxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: accessMatchingRamxAB, name: "accessMatchingRamxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: connectAccessLinesxAB, name: "connectAccessLinesxAB"]]]; <> AddOutput[table, NEW[OutputRec _ [expr: ldRPandFlagsxAB, name: "ldRPandFlagsxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: drRBLinesxAB, name: "drRBLinesxAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: PQSelArrayRPandFlagsxAB, name: "PQSelArrayRPandFlagsxAB"]]]; <> AddOutput[table, NEW[OutputRec _ [expr: drMBusxBA, name: "drMBusxBA"]]]; AddOutput[table, NEW[OutputRec _ [expr: PSelMBusHi25xAB, name: "PSelMBusHi25xAB"]]]; AddOutput[table, NEW[OutputRec _ [expr: PSelMBusLo25xAB, name: "PSelMBusLo25xAB"]]]; <> END; END.