mise en œuvre d'un processeur mips à un seul cycle )

j'ai un mini projet , dans ce projet, j'ai besoin de mettre en œuvre un MIPS cycle unique processeur, en Verilog.
ici, j'écris l'ALU et ALUControl et FileRegister mais j'ai un problème pour mettre en œuvre le Pc ( program counter ) pour ce ... je veux que ce Pc la direction générale du soutien et de sauter.
J'ai besoin d'instructions pour le soutien de la branche, mais je ne sais pas comment accéder à l'instruction.
merci de m'aider à mettre en œuvre InstructionMemory et Pc.
voici mon code :

module ALU(ALUctl, A, B, ALUOut, Zero);
input [3:0] ALUctl;
input [31:0] A,B;
output reg [31:0] ALUOut;
output Zero;
assign Zero = (ALUOut==0); //Zero is true if ALUOut is 0
always @(ALUctl, A, B) begin //reevaluate if these change
    case (ALUctl)
        0: ALUOut <= A & B;
        1: ALUOut <= A | B;
        2: ALUOut <= A + B;
        6: ALUOut <= A - B;
        7: ALUOut <= A < B ? 1 : 0;
        12: ALUOut <= ~(A | B); //result is nor
        default: ALUOut <= 0;
    endcase
end

endmodule

module ALUControl(ALUOp, FuncCode, ALUCtl);
input [1:0] ALUOp;
input [5:0] FuncCode;
output reg [3:0] ALUCtl;
always @(ALUOp, FuncCode) begin
    if ( ALUOp == 2 )
        case (FuncCode)
            32: ALUCtl<=2; //add
            34: ALUCtl<=6; //subtract
            36: ALUCtl<=0; //and
            37: ALUCtl<=1; //or
            39: ALUCtl<=12; //nor
            42: ALUCtl<=7; //slt
            default: ALUCtl<=15; //should not happen
        endcase
    else
        case (ALUOp)
            0:  ALUCtl<=2;
            1: ALUCtl<=6;
            default: ALUCtl<=15; //should not happen
        endcase
end

endmodule

module RegFile(ra1, rd1 , ra2 , rd2 , clk , RegWrite , wa ,wd );
input[4:0] ra1;
output[31:0] rd1;
input[4:0] ra2;
output[31:0] rd2;
input clk;
input werf ;
input[4:0] wa;
input[31:0] wd;
reg [31:0] registers[31:0];

assign rd1 = registers[ra1];
assign rd2 = registers[ra2];

always@ ( posedge clk )
    if (RegWrite)
        registers[wa] <= wd;

endmodule

Vous pouvez avoir un coup d'oeil à ce stackexchange site proposition: area51.stackexchange.com/proposals/20632/... "logique Programmable FPGA et design"

OriginalL'auteur Rojin | 2011-06-01