Professional Documents
Culture Documents
//ID:0206786
Expriment 8
1- PiplinedProcessor module
module PipelinedProcessor(clk, reset, enable);
input clk, reset, enable;
IDEX
dx({pc4e,pcsrc1e,regwritee,memtorege,memwritee,memreade,aluope,alusrce,readdata1e ,readdata2e,SE
oute, IDEX_Rs2,IDEX_Rs1,writerege},
{pc4d,pcsrc[1],regwrite,memtoreg,memwrite,memread,aluop,alusrc,readdata1 ,readdata2,SEout,instr[24:
20],instr[19:15],instr[11:7]}, clk, reset, enable);
ForwardingUnit FU(ForwardA, ForwardB, writeregm, writeregw, IDEX_Rs1, IDEX_Rs2, regwritem,
regwritew);
//Mux_2_to_1_32bit(out, s, i1, i0); for the input b of the ALU
Mux_3_to_1_32bit FORWORDA(ForA,ForwardA ,final ,address ,readdata1e);
Mux_3_to_1_32bit FORWORDB(ForB,ForwardB ,final ,address ,readdata2e);
// ALU_32(result, a, b, m);
ALU_32 alu(result, ForA, outmux2, aluope);
Mux_2_to_1_32bit mux(outmux2, alusrce, SEoute,ForB);
EXMEM xm({pc4m,regwritem,memtoregm,memwritem,memreadm,address,writedatam,writeregm},
{pc4e,regwritee,memtorege,memwritee,memreade,result,readdata2e,writerege}, clk, reset, enable);
Data_Memory DM(r1 , address, writedatam, memwritem , memreadm, clk);
MEMWB mw({pc4w,regwritew,memtoregw,r1w,addressm,writeregw},
{pc4m,regwritem,memtoregm,r1,address,writeregm}, clk, reset, enable);
//ShiftLeft32_by1(out, in);
//RegFile(readdata1 ,readdata2, readreg1, readreg2, writedata, writereg, regwrite, clk, reset);
//Data_Memory(readdata , address, writedata , memwrite , memread , clk);
//ControlUnit(aluop, alusrc, pcsrc, memtoreg, regwrite ,memread, memwrite, branch, Iformat, LW, SW,
BEQ, JAL, JALR, opcode, func3, func7);
//SignExtend (SEout, in, Iformat, LW, SW, BEQ, JAL, JALR);
//RegFile(readdata1 ,readdata2, readreg1, readreg2, writedata, writereg, regwrite, clk, reset);
//Mux_2_to_1_32bit(out, s, i1, i0); for the input b of the ALU
// ALU_32(result, a, b, m);
// Mux_2_to_1_32bit(out, s, i1, i0);
//Data_Memory(readdata , address, writedata , memwrite , memread , clk);
endmodule