⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alu.v

📁 初学cpu设计(完全教程)包括verilog代码以及文档说明那个
💻 V
字号:
module alu(alus,ac, bus, dout);
input [6:0]alus;
input [7:0]ac,bus;
output [7:0]dout;
reg[7:0] dout;
always@(alus or ac or bus)

	casex(alus)
	7'b0??0100:dout=bus;   //LDAC5,MOVR1
	7'b0??0101:dout=bus+ac;//ADD1
	7'b0??1011:dout=ac-bus;//sub1 just for simulate nor for syn
	7'b0??1001:dout=ac+1;//INAC1
	7'b0??0000:dout=0;//CLAC1
	7'b100????:begin
			dout[7]=ac[7]&&bus[7];
			dout[6]=ac[6]&&bus[6];
			dout[5]=ac[5]&&bus[5];
			dout[4]=ac[4]&&bus[4];
			dout[3]=ac[3]&&bus[3];
			dout[2]=ac[2]&&bus[2];
			dout[1]=ac[1]&&bus[1];
			dout[0]=ac[0]&&bus[0];
		end
		
	7'b101????:
		begin
			dout[7]=ac[7]||bus[7];
			dout[6]=ac[6]||bus[6];
			dout[5]=ac[5]||bus[5];
			dout[4]=ac[4]||bus[4];
			dout[3]=ac[3]||bus[3];
			dout[2]=ac[2]||bus[2];
			dout[1]=ac[1]||bus[1];
			dout[0]=ac[0]||bus[0];
		end
	7'b110????:
		begin
			dout[7]=ac[7]^bus[7];
			dout[6]=ac[6]^bus[6];
			dout[5]=ac[5]^bus[5];
			dout[4]=ac[4]^bus[4];
			dout[3]=ac[3]^bus[3];
			dout[2]=ac[2]^bus[2];
			dout[1]=ac[1]^bus[1];
			dout[0]=ac[0]^bus[0];
		end
	7'b111????:
		begin
			dout[7]=!ac[7];
			dout[6]=!ac[6];
			dout[5]=!ac[5];
			dout[4]=!ac[4];
			dout[3]=!ac[3];
			dout[2]=!ac[2];
			dout[1]=!ac[1];
			dout[0]=!ac[0];
		end
	 
	endcase

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -