/////////////////////////////////////////////////////////////////////// // // cpu_core module // /////////////////////////////////////////////////////////////////////// module cpu_core( Data_out, Data_in, ENB, nME, ALE, RnW, nOE, SDO, nIRQ, nWait, Clock, nReset, Test, SDI ); // // I/O declarations // output [15:0] Data_out; input [15:0] Data_in; output ENB; output nME, ALE, RnW, nOE, SDO; input Clock, nReset, Test, SDI; input nIRQ, nWait; wire [3:0] Function; wire [3:0] Opcode; // // This system does support a scan path // // The main SDI connects to the SDI of the datapath // The main SDO connects to the SDO of the control unit // A signal named SDmid connects between the SDO of the datapath // and the SDI of the control unit // // // This system is built from two smaller modules // control Control ( .Function(Function), .SelInc(SelInc), .LoadPC(LoadPC), .LoadIR(LoadIR), .TrisOperand(TrisOperand), .TrisPC(TrisPC), .TrisAcc(TrisAcc), .TrisMem(TrisMem), .ENB(ENB), .nME(nME), .ALE(ALE), .RnW(RnW), .nOE(nOE), .Opcode(Opcode), .Zflag(Zflag), .nWait(nWait), .Clock(Clock), .nReset(nReset), .Test(Test), .SDI(SDmid), .SDO(SDO) ); datapath Datapath ( .SysBus(Data_out), .Data_in(Data_in), .Opcode(Opcode), .Zflag(Zflag), .Function(Function), .SelInc(SelInc), .LoadPC(LoadPC), .LoadIR(LoadIR), .TrisOperand(TrisOperand), .TrisPC(TrisPC), .TrisAcc(TrisAcc), .TrisMem(TrisMem), .Clock(Clock), .nReset(nReset), .Test(Test), .SDI(SDI), .SDO(SDmid) ); endmodule