/* | |
* | |
* This file is part of the Elpis processor project. | |
* | |
* Copyright © 2020-present. All rights reserved. | |
* Authors: Aurora Tomas and Rodrigo Huerta. | |
* | |
* This file is licensed under both the BSD-3 license for individual/non-commercial | |
* use. Full text of both licenses can be found in LICENSE file. | |
*/ | |
`default_nettype none | |
`ifdef TESTS | |
`include "elpis/definitions.v" | |
`else | |
`include "/project/openlane/user_proj_example/../../verilog/rtl/elpis/definitions.v" | |
`endif | |
module branchComparer(input[2:0] branch_code_in, input[31:0] reg_a_content_in, input[31:0] reg_b_content_in, output reg is_branch_taken_out); | |
always@(*)begin | |
case(branch_code_in) | |
`FUNCT3_BRANCH_BEQ : is_branch_taken_out = (reg_a_content_in == reg_b_content_in); | |
`FUNCT3_BRANCH_BNE : is_branch_taken_out = (reg_a_content_in != reg_b_content_in); | |
`FUNCT3_BRANCH_BLT : is_branch_taken_out = (reg_a_content_in < reg_b_content_in); | |
`FUNCT3_BRANCH_BGE : is_branch_taken_out = (reg_a_content_in >= reg_b_content_in); | |
default : is_branch_taken_out = 0; | |
endcase | |
end | |
endmodule |