-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBranch.sv
More file actions
39 lines (38 loc) · 953 Bytes
/
Copy pathBranch.sv
File metadata and controls
39 lines (38 loc) · 953 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
module Branch (
input logic [31:0] rdata1,
rdata2,
input logic [2:0] br_type,
output logic br_taken
);
always_comb begin
case (br_type)
3'b000: begin
if (rdata1 == rdata2) br_taken = 1;
else br_taken = 0;
end
3'b001: begin
if (rdata1 != rdata2) br_taken = 1;
else br_taken = 0;
end
3'b010: begin
if ($signed(rdata1) < $signed(rdata2)) br_taken = 1;
else br_taken = 0;
end
3'b011: begin
if ($signed(rdata1) >= $signed(rdata2)) br_taken = 1;
else br_taken = 0;
end
3'b100: begin
if (rdata1 < rdata2) br_taken = 1;
else br_taken = 0;
end
3'b101: begin
if (rdata1 >= rdata2) br_taken = 1;
else br_taken = 0;
end
3'b110: br_taken = 0;
3'b111: br_taken = 1;
default: br_taken = 0;
endcase
end
endmodule