Files
Toooba/src_SSITH_P3/Verilog_RTL_sim/module_decodeBrPred.v

85 lines
2.4 KiB
Verilog

//
// Generated by Bluespec Compiler, version 2019.05.beta2 (build a88bf40db, 2019-05-24)
//
//
//
//
// Ports:
// Name I/O size props
// decodeBrPred O 65
// decodeBrPred_pc I 64
// decodeBrPred_dInst I 72
// decodeBrPred_histTaken I 1
// decodeBrPred_is_32b_inst I 1
//
// Combinational paths from inputs to outputs:
// (decodeBrPred_pc,
// decodeBrPred_dInst,
// decodeBrPred_histTaken,
// decodeBrPred_is_32b_inst) -> decodeBrPred
//
//
`ifdef BSV_ASSIGNMENT_DELAY
`else
`define BSV_ASSIGNMENT_DELAY
`endif
`ifdef BSV_POSITIVE_RESET
`define BSV_RESET_VALUE 1'b1
`define BSV_RESET_EDGE posedge
`else
`define BSV_RESET_VALUE 1'b0
`define BSV_RESET_EDGE negedge
`endif
module module_decodeBrPred(decodeBrPred_pc,
decodeBrPred_dInst,
decodeBrPred_histTaken,
decodeBrPred_is_32b_inst,
decodeBrPred);
// value method decodeBrPred
input [63 : 0] decodeBrPred_pc;
input [71 : 0] decodeBrPred_dInst;
input decodeBrPred_histTaken;
input decodeBrPred_is_32b_inst;
output [64 : 0] decodeBrPred;
// signals for module outputs
wire [64 : 0] decodeBrPred;
// remaining internal signals
reg [63 : 0] CASE_decodeBrPred_dInst_BITS_71_TO_67_8_jTarge_ETC__q2;
wire [63 : 0] imm_val__h25, jTarget__h45, pcPlusN__h24;
wire [31 : 0] decodeBrPred_dInst_BITS_31_TO_0__q1;
// value method decodeBrPred
assign decodeBrPred =
{ decodeBrPred_dInst[71:67] != 5'd9,
CASE_decodeBrPred_dInst_BITS_71_TO_67_8_jTarge_ETC__q2 } ;
// remaining internal signals
assign decodeBrPred_dInst_BITS_31_TO_0__q1 = decodeBrPred_dInst[31:0] ;
assign imm_val__h25 =
{ {32{decodeBrPred_dInst_BITS_31_TO_0__q1[31]}},
decodeBrPred_dInst_BITS_31_TO_0__q1 } ;
assign jTarget__h45 = decodeBrPred_pc + imm_val__h25 ;
assign pcPlusN__h24 =
decodeBrPred_pc + (decodeBrPred_is_32b_inst ? 64'd4 : 64'd2) ;
always@(decodeBrPred_dInst or
pcPlusN__h24 or jTarget__h45 or decodeBrPred_histTaken)
begin
case (decodeBrPred_dInst[71:67])
5'd8:
CASE_decodeBrPred_dInst_BITS_71_TO_67_8_jTarge_ETC__q2 =
jTarget__h45;
5'd10:
CASE_decodeBrPred_dInst_BITS_71_TO_67_8_jTarge_ETC__q2 =
decodeBrPred_histTaken ? jTarget__h45 : pcPlusN__h24;
default: CASE_decodeBrPred_dInst_BITS_71_TO_67_8_jTarge_ETC__q2 =
pcPlusN__h24;
endcase
end
endmodule // module_decodeBrPred