杭电计算机组成原理实验3 实现一个多功能ALU

很多人应该看过
杭电计算机组成实验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这种,易于验收

本文用于备忘和分享

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值