ALU

ALU

API

  • a : 操作数1
  • b : 操作数2
  • op : 操作类型
  • f : 计算结果 f = a op b;
  • c : 判断是否跳转

alu.v

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module alu (
input [31:0] a, // 操作数
input [31:0] b, // 操作数
input [3:0] op, // 操作类型
output reg [31:0] f, // 结果
output c // 是否跳转
);
always @(*) begin
case (op)
4'b0000: f=32'b0;
4'b0001: f=a+b;
4'b0010: f=a-b;
4'b0011: f=a&b;
4'b0100: f=a|b;
4'b0101: f=a^b;
default: f=32'b0;
endcase
end

assign c = |f; // 如果 f != 0 则 c = 1

endmodule

ALU
http://yjh-2860674406.github.io/2022/09/08/编程/Verilog/ALU/
Author
Ye JinHua
Posted on
September 8, 2022
Licensed under