onlyInternal: Wires[
-- internal busses
Seq["aBus", wordSize], Seq["bBus", wordSize],
Seq["olBus", wordSize], Seq["orBus", wordSize],
Seq["fBus", wordSize], Seq["rBus", wordSize],
Seq["s1Bus", wordSize], Seq["s2Bus", wordSize], Seq["s3Bus", wordSize],
Seq["aluBus", wordSize], Seq["fuBus", wordSize], Seq["tBus", wordSize]],
instances:
LIST [
Instance[EU2Ram.CreateEU2Ram[], ["nPrech", "nPhB"]],
Instance[
-- ramAdr
EU2Regs.CreateRegWithMux[inputs: LIST["kBus"], output: "ramAdr"],
["sel", "PhB"], ["dRead", "dReadRamAdr"]],
Instance[
-- aluLeft
EU2Regs.CreateRegWithMux[inputs: LIST["cBus", "rBus", "aBus"], output: "olBus"],
["sel", "selLeftSrc"], ["dRead", "dReadLeft"]],
Instance[
-- aluRight
EU2Regs.CreateRegWithMux[
inputs: LIST["cBus", "rBus", "bBus", "kBus", "fBus"], output: "orBus"],
["sel", "selRightSrc"], ["dRead", "dReadRight"]],
Instance[
-- result2BA
EU2Regs.CreateRegWithMux[inputs: LIST["aluBus", "fuBus"], output: "rBus"],
["sel", "selRes2BASrc"], ["dRead", "dReadRes2BA"]],
Instance[
-- result3AB
EU2Regs.CreateRegWithMux[inputs: LIST["rBus"], output: "tBus"],
["sel", "selRes3ABSrc"], ["dRead", "dReadRes3AB"]],
Instance[
-- cBusResult3BA
EU2Regs.CreateRegWithMux[inputs: LIST["tBus", "dBus"], output: "cBus"],
["sel", "selRes3BASrc"], ["dRead", "dReadRes3BA"]],
Instance[
-- store2AB
EU2Regs.CreateRegWithMux[inputs: LIST["cBus", "rBus", "bBus"], output: "s1Bus"],
["sel", "selSt2ASrc"], ["dRead", "dReadSt2A"]],
Instance[
-- store2BA
EU2Regs.CreateRegWithMux[inputs: LIST["s1Bus"], output: "s2Bus"],
["sel", "selSt2BASrc"], ["dRead", "dReadSt2BA"]],
Instance[
-- store3AB
EU2Regs.CreateRegWithMux[inputs: LIST["cBus", "s2Bus"], output: "s3Bus"],
["sel", "selSt3ABSrc"], ["dRead", "dReadSt3AB"]],
Instance[
-- field
EU2Regs.CreateRegWithMux[inputs: LIST["cBus"], output: "fBus"],
["sel", "selFieldSrc"], ["dRead", "dReadField"]],
Instance[
-- pDriver
EU2Regs.CreatePDriver[],
["address", "rBus"], ["data", "s3Bus"], ["out", "adBus"], ["selAd", "selPBusAd"], ["selData", "selPBusData"], ],
Instance[EU2FU.CreateFieldUnit[], ["left", "olBus"], ["right", "s1Bus"], ["fuOut", "fuBus"]],
Instance[EU2ALU.CreateALU[], ["left", "olBus"], ["right", "orBus"], ["aluOut", "aluBus"]]
]