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
Vous devez vous connecter pour publier un commentaire.
voici le code de pc
endmodule
OriginalL'auteur Rojin
endmodule
endmodule
OriginalL'auteur Rojin