很多人应该看过
杭电计算机组成实验3(三)多功能ALU设计实验
这个实验的代码,但是老师要求验收的内容还有SF,PF,CF
所以为了完成验收,我对大佬的代码进行修改,修改了运算部分的部分代码,先上代码
module Third_experiment_first(OF,ZF,SF,PF,CF,ALU_OP,A,B,F);
input [2:0]ALU_OP;
input [31:0]A,B;
output reg[31:0]F;
reg C32;
output reg OF=0;
output reg ZF=0;
output reg SF=0;
output reg PF=0;
output reg CF=0;
always @(ALU_OP or A or B)
begin
case(ALU_OP)
3'b000:F=A&B;
3'b001:F=A|B;
3'b010:F=A^B;
3'b011:F=A~^B;
3'b100:begin {C32,F}=A+B;CF=FC32;end
3'b101:begin {C32,F}=A-B;CF=1^C32;end
3'b110:begin if(A<B) F=32'h0000_0001;else F=32'h0000_0000;end
3'b111:begin F=B<<A;end
endcase
if(F==32'h0000_0000)
ZF=1;
else
ZF=0;
OF=C32^F[31]^A[31]^B[31];
SF=F[31];
if((F[31]+F[30]+F[29]+F[28]+F[27]+F[26]+F[25]+F[24]+F[23]+F[22]+
F[21]+F[20]+F[19]+F[18]+F[17]+F[16]+F[15]+F[14]+F[13]+F[12]+F[11]
+F[10]+F[9]+F[8]+F[7]+F[6]+F[5]+F[4]+F[3]+F[2]+F[1]+F[0])%2==0)
PF=1;
else
PF=0;
end
endmodule
这些代码替换那个第二部分的代码,并在定义及输出部分加上,SF,PF,CF
可以通过验收,写的暴力点易于验收
注意替换一点名称,如Third_experiment_first
这种,易于验收
本文用于备忘和分享