alu.v
来自「2對4解多工可以用來擴充至4對8解多工經硬體驗證過可用」· Verilog 代码 · 共 32 行
V
32 行
module alu(alu_out,zero,opcode,data,accum,clock);
input [7:0] data,accum;
input [4:0] opcode;
input clock;
output [7:0] alu_out;
output zero;
reg zero;
reg [7:0] temp_out,alu_out;
always@(accum)
zero=(!accum);
always@(negedge clock)
begin
case(opcode[4:2])
3'b000:temp_out = data;
3'b001:temp_out = accum + data;
3'b010:temp_out = accum - data;
3'b011:temp_out = accum & data;
3'b100:temp_out = accum | data;
3'b101:temp_out = accum + 1;
3'b110:temp_out = accum - 1;
3'b111:temp_out = accum;
default:temp_out = 8'b0;
endcase
case(opcode[1:0])
2'b00:alu_out = temp_out;
2'b01:alu_out = {temp_out[6:0],1'b0};
2'b10:alu_out = {1'b0,temp_out[7:1]};
default:alu_out = 8'b0;
endcase
end
endmodule
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?