Files
gps/hardware/generated/genesys2-soc-verilog/Rocket.sv
T
2026-08-06 22:14:52 +03:00

3191 lines
148 KiB
Systemverilog

// Generated by CIRCT firtool-1.151.0
// Users can define 'PRINTF_COND' to add an extra gate to prints.
`ifndef PRINTF_COND_
`ifdef PRINTF_COND
`define PRINTF_COND_ (`PRINTF_COND)
`else // PRINTF_COND
`define PRINTF_COND_ 1
`endif // PRINTF_COND
`endif // not def PRINTF_COND_
module Rocket(
input clock,
reset,
io_interrupts_debug,
io_interrupts_mtip,
io_interrupts_msip,
io_interrupts_meip,
output io_imem_might_request,
io_imem_req_valid,
output [33:0] io_imem_req_bits_pc,
output io_imem_req_bits_speculative,
io_imem_resp_ready,
input io_imem_resp_valid,
input [33:0] io_imem_resp_bits_pc,
input [31:0] io_imem_resp_bits_data,
input io_imem_resp_bits_xcpt_pf_inst,
io_imem_resp_bits_xcpt_gf_inst,
io_imem_resp_bits_xcpt_ae_inst,
io_imem_resp_bits_replay,
output io_imem_btb_update_valid,
io_imem_bht_update_valid,
io_imem_flush_icache,
input io_dmem_req_ready,
output io_dmem_req_valid,
output [33:0] io_dmem_req_bits_addr,
output [6:0] io_dmem_req_bits_tag,
output [4:0] io_dmem_req_bits_cmd,
output [1:0] io_dmem_req_bits_size,
output io_dmem_req_bits_signed,
io_dmem_s1_kill,
output [63:0] io_dmem_s1_data_data,
input io_dmem_s2_nack,
io_dmem_resp_valid,
input [6:0] io_dmem_resp_bits_tag,
input [1:0] io_dmem_resp_bits_size,
input [63:0] io_dmem_resp_bits_data,
input io_dmem_resp_bits_replay,
io_dmem_resp_bits_has_data,
input [63:0] io_dmem_resp_bits_data_word_bypass,
input io_dmem_replay_next,
io_dmem_s2_xcpt_ma_ld,
io_dmem_s2_xcpt_ma_st,
io_dmem_s2_xcpt_pf_ld,
io_dmem_s2_xcpt_pf_st,
io_dmem_s2_xcpt_ae_ld,
io_dmem_s2_xcpt_ae_st,
io_dmem_ordered,
io_dmem_perf_grant,
output io_ptw_status_debug,
io_ptw_pmp_0_cfg_l,
output [1:0] io_ptw_pmp_0_cfg_a,
output io_ptw_pmp_0_cfg_x,
io_ptw_pmp_0_cfg_w,
io_ptw_pmp_0_cfg_r,
output [29:0] io_ptw_pmp_0_addr,
output [31:0] io_ptw_pmp_0_mask,
output io_ptw_pmp_1_cfg_l,
output [1:0] io_ptw_pmp_1_cfg_a,
output io_ptw_pmp_1_cfg_x,
io_ptw_pmp_1_cfg_w,
io_ptw_pmp_1_cfg_r,
output [29:0] io_ptw_pmp_1_addr,
output [31:0] io_ptw_pmp_1_mask,
output io_ptw_pmp_2_cfg_l,
output [1:0] io_ptw_pmp_2_cfg_a,
output io_ptw_pmp_2_cfg_x,
io_ptw_pmp_2_cfg_w,
io_ptw_pmp_2_cfg_r,
output [29:0] io_ptw_pmp_2_addr,
output [31:0] io_ptw_pmp_2_mask,
output io_ptw_pmp_3_cfg_l,
output [1:0] io_ptw_pmp_3_cfg_a,
output io_ptw_pmp_3_cfg_x,
io_ptw_pmp_3_cfg_w,
io_ptw_pmp_3_cfg_r,
output [29:0] io_ptw_pmp_3_addr,
output [31:0] io_ptw_pmp_3_mask,
output io_ptw_pmp_4_cfg_l,
output [1:0] io_ptw_pmp_4_cfg_a,
output io_ptw_pmp_4_cfg_x,
io_ptw_pmp_4_cfg_w,
io_ptw_pmp_4_cfg_r,
output [29:0] io_ptw_pmp_4_addr,
output [31:0] io_ptw_pmp_4_mask,
output io_ptw_pmp_5_cfg_l,
output [1:0] io_ptw_pmp_5_cfg_a,
output io_ptw_pmp_5_cfg_x,
io_ptw_pmp_5_cfg_w,
io_ptw_pmp_5_cfg_r,
output [29:0] io_ptw_pmp_5_addr,
output [31:0] io_ptw_pmp_5_mask,
output io_ptw_pmp_6_cfg_l,
output [1:0] io_ptw_pmp_6_cfg_a,
output io_ptw_pmp_6_cfg_x,
io_ptw_pmp_6_cfg_w,
io_ptw_pmp_6_cfg_r,
output [29:0] io_ptw_pmp_6_addr,
output [31:0] io_ptw_pmp_6_mask,
output io_ptw_pmp_7_cfg_l,
output [1:0] io_ptw_pmp_7_cfg_a,
output io_ptw_pmp_7_cfg_x,
io_ptw_pmp_7_cfg_w,
io_ptw_pmp_7_cfg_r,
output [29:0] io_ptw_pmp_7_addr,
output [31:0] io_ptw_pmp_7_mask,
output [63:0] io_ptw_customCSRs_csrs_0_value,
output [31:0] io_fpu_inst,
output [63:0] io_fpu_fromint_data,
output [2:0] io_fpu_fcsr_rm,
input io_fpu_fcsr_flags_valid,
input [4:0] io_fpu_fcsr_flags_bits,
input [63:0] io_fpu_store_data,
io_fpu_toint_data,
output io_fpu_ll_resp_val,
output [2:0] io_fpu_ll_resp_type,
output [4:0] io_fpu_ll_resp_tag,
output [63:0] io_fpu_ll_resp_data,
output io_fpu_valid,
input io_fpu_fcsr_rdy,
io_fpu_nack_mem,
io_fpu_illegal_rm,
output io_fpu_killx,
io_fpu_killm,
input io_fpu_dec_wen,
io_fpu_dec_ren1,
io_fpu_dec_ren2,
io_fpu_dec_ren3,
io_fpu_sboard_set,
io_fpu_sboard_clr,
input [4:0] io_fpu_sboard_clra,
output io_wfi
);
wire io_dmem_req_valid_0;
wire ll_arb_io_out_ready;
wire take_pc_wb;
wire take_pc_mem;
wire _ll_arb_io_in_0_ready;
wire _ll_arb_io_out_valid;
wire [63:0] _ll_arb_io_out_bits_data;
wire [4:0] _ll_arb_io_out_bits_tag;
wire _div_io_req_ready;
wire _div_io_resp_valid;
wire [63:0] _div_io_resp_bits_data;
wire [4:0] _div_io_resp_bits_tag;
wire [63:0] _alu_io_out;
wire [63:0] _alu_io_adder_out;
wire _alu_io_cmp_out;
wire _bpu_io_xcpt_if;
wire _bpu_io_xcpt_ld;
wire _bpu_io_xcpt_st;
wire _bpu_io_debug_if;
wire _bpu_io_debug_ld;
wire _bpu_io_debug_st;
wire [63:0] _csr_io_rw_rdata;
wire _csr_io_decode_0_fp_illegal;
wire _csr_io_decode_0_fp_csr;
wire _csr_io_decode_0_read_illegal;
wire _csr_io_decode_0_write_illegal;
wire _csr_io_decode_0_write_flush;
wire _csr_io_decode_0_system_illegal;
wire _csr_io_decode_0_virtual_access_illegal;
wire _csr_io_csr_stall;
wire _csr_io_eret;
wire _csr_io_singleStep;
wire _csr_io_status_debug;
wire [31:0] _csr_io_status_isa;
wire _csr_io_status_dv;
wire _csr_io_status_v;
wire [33:0] _csr_io_evec;
wire [63:0] _csr_io_time;
wire _csr_io_interrupt;
wire [63:0] _csr_io_interrupt_cause;
wire _csr_io_bp_0_control_action;
wire [1:0] _csr_io_bp_0_control_tmatch;
wire _csr_io_bp_0_control_x;
wire _csr_io_bp_0_control_w;
wire _csr_io_bp_0_control_r;
wire [32:0] _csr_io_bp_0_address;
wire _csr_io_inhibit_cycle;
wire _csr_io_trace_0_valid;
wire [33:0] _csr_io_trace_0_iaddr;
wire [31:0] _csr_io_trace_0_insn;
wire _csr_io_trace_0_exception;
wire [63:0] _csr_io_customCSRs_0_value;
wire [63:0] _rf_ext_R0_data;
wire [63:0] _rf_ext_R1_data;
wire [33:0] _ibuf_io_pc;
wire _ibuf_io_inst_0_valid;
wire _ibuf_io_inst_0_bits_xcpt0_pf_inst;
wire _ibuf_io_inst_0_bits_xcpt0_gf_inst;
wire _ibuf_io_inst_0_bits_xcpt0_ae_inst;
wire _ibuf_io_inst_0_bits_xcpt1_pf_inst;
wire _ibuf_io_inst_0_bits_xcpt1_gf_inst;
wire _ibuf_io_inst_0_bits_xcpt1_ae_inst;
wire _ibuf_io_inst_0_bits_replay;
wire _ibuf_io_inst_0_bits_rvc;
wire [31:0] _ibuf_io_inst_0_bits_inst_bits;
wire [4:0] _ibuf_io_inst_0_bits_inst_rd;
wire [4:0] _ibuf_io_inst_0_bits_inst_rs1;
wire [4:0] _ibuf_io_inst_0_bits_inst_rs2;
wire [4:0] _ibuf_io_inst_0_bits_inst_rs3;
wire [31:0] _ibuf_io_inst_0_bits_raw;
reg id_reg_pause;
reg imem_might_request_reg;
reg ex_ctrl_fp;
reg ex_ctrl_branch;
reg ex_ctrl_jal;
reg ex_ctrl_jalr;
reg ex_ctrl_rxs2;
reg ex_ctrl_rxs1;
reg [2:0] ex_ctrl_sel_alu2;
reg [1:0] ex_ctrl_sel_alu1;
reg [2:0] ex_ctrl_sel_imm;
reg ex_ctrl_alu_dw;
reg [4:0] ex_ctrl_alu_fn;
reg ex_ctrl_mem;
reg [4:0] ex_ctrl_mem_cmd;
reg ex_ctrl_rfs1;
reg ex_ctrl_rfs2;
reg ex_ctrl_wfd;
reg ex_ctrl_div;
reg ex_ctrl_wxd;
reg [2:0] ex_ctrl_csr;
reg ex_ctrl_fence_i;
reg mem_ctrl_fp;
reg mem_ctrl_rocc;
reg mem_ctrl_branch;
reg mem_ctrl_jal;
reg mem_ctrl_jalr;
reg mem_ctrl_rxs2;
reg mem_ctrl_rxs1;
reg mem_ctrl_mem;
reg mem_ctrl_rfs1;
reg mem_ctrl_rfs2;
reg mem_ctrl_wfd;
reg mem_ctrl_mul;
reg mem_ctrl_div;
reg mem_ctrl_wxd;
reg [2:0] mem_ctrl_csr;
reg mem_ctrl_fence_i;
reg mem_ctrl_vec;
reg wb_ctrl_rocc;
reg wb_ctrl_rxs2;
reg wb_ctrl_rxs1;
reg wb_ctrl_mem;
reg wb_ctrl_rfs1;
reg wb_ctrl_rfs2;
reg wb_ctrl_wfd;
reg wb_ctrl_div;
reg wb_ctrl_wxd;
reg [2:0] wb_ctrl_csr;
reg wb_ctrl_fence_i;
reg wb_ctrl_vec;
reg ex_reg_xcpt_interrupt;
reg ex_reg_valid;
reg ex_reg_rvc;
reg ex_reg_xcpt;
reg ex_reg_flush_pipe;
reg ex_reg_load_use;
reg [63:0] ex_reg_cause;
reg ex_reg_replay;
reg [33:0] ex_reg_pc;
reg [1:0] ex_reg_mem_size;
reg [31:0] ex_reg_inst;
reg [31:0] ex_reg_raw_inst;
reg mem_reg_xcpt_interrupt;
reg mem_reg_valid;
reg mem_reg_rvc;
reg mem_reg_xcpt;
reg mem_reg_replay;
reg mem_reg_flush_pipe;
reg [63:0] mem_reg_cause;
reg mem_reg_slow_bypass;
reg mem_reg_load;
reg mem_reg_store;
reg [33:0] mem_reg_pc;
reg [31:0] mem_reg_inst;
reg mem_reg_hls_or_dv;
reg [31:0] mem_reg_raw_inst;
reg [63:0] mem_reg_wdata;
reg [63:0] mem_reg_rs2;
reg mem_br_taken;
reg wb_reg_valid;
reg wb_reg_xcpt;
reg wb_reg_replay;
reg wb_reg_flush_pipe;
reg [63:0] wb_reg_cause;
reg [33:0] wb_reg_pc;
reg wb_reg_hls_or_dv;
reg [31:0] wb_reg_inst;
reg [31:0] wb_reg_raw_inst;
reg [63:0] wb_reg_wdata;
wire ibuf_io_kill = take_pc_wb | take_pc_mem;
wire [29:0] id_ctrl_decoder_decoded_invInputs =
~(_ibuf_io_inst_0_bits_inst_bits[31:2]);
wire id_ctrl_decoder_decoded_andMatrixOutputs_63_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_9_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[11]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_0_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_60_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_27_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[4]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_82_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_120_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_7_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_62_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_rfs3 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_18_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_84_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_jalr =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_jal =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6]};
wire id_ctrl_fence_i =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_80_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_64_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[3],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_14_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_118_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[12]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_92_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_15_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_12_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_99_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[13]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_117_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_102_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[14]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_48_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_114_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[3],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_54_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_8_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[14],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_74_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12],
_ibuf_io_inst_0_bits_inst_bits[27],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_88_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[28],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_45_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[28],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_6_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_86_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_70_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_111_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[20],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_73_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_87_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[24],
_ibuf_io_inst_0_bits_inst_bits[27],
_ibuf_io_inst_0_bits_inst_bits[28],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_71_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_65_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_101_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[28],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_26_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]};
wire id_ctrl_decoder_decoded_andMatrixOutputs_46_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[28],
_ibuf_io_inst_0_bits_inst_bits[29],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]};
wire id_ctrl_amo =
|{id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_88_2};
wire id_ctrl_wxd =
|{id_ctrl_decoder_decoded_andMatrixOutputs_63_2,
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[12]},
id_ctrl_decoder_decoded_andMatrixOutputs_60_2,
id_ctrl_decoder_decoded_andMatrixOutputs_27_2,
id_ctrl_decoder_decoded_andMatrixOutputs_120_2,
id_ctrl_decoder_decoded_andMatrixOutputs_7_2,
id_ctrl_decoder_decoded_andMatrixOutputs_62_2,
id_ctrl_jalr,
id_ctrl_jal,
id_ctrl_decoder_decoded_andMatrixOutputs_80_2,
id_ctrl_decoder_decoded_andMatrixOutputs_64_2,
id_ctrl_decoder_decoded_andMatrixOutputs_118_2,
id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
id_ctrl_decoder_decoded_andMatrixOutputs_99_2,
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
id_ctrl_decoder_decoded_andMatrixOutputs_114_2,
id_ctrl_decoder_decoded_andMatrixOutputs_54_2,
id_ctrl_decoder_decoded_andMatrixOutputs_8_2,
id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_88_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28],
_ibuf_io_inst_0_bits_inst_bits[31]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28],
_ibuf_io_inst_0_bits_inst_bits[31]},
id_ctrl_decoder_decoded_andMatrixOutputs_65_2,
id_ctrl_decoder_decoded_andMatrixOutputs_26_2};
wire id_ctrl_div =
|{&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_8_2};
wire id_ctrl_mem =
|{&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10]},
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
id_ctrl_decoder_decoded_andMatrixOutputs_0_2,
id_ctrl_decoder_decoded_andMatrixOutputs_92_2,
id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_45_2};
wire id_ctrl_rxs1 =
|{id_ctrl_decoder_decoded_andMatrixOutputs_63_2,
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
id_ctrl_decoder_decoded_andMatrixOutputs_0_2,
id_ctrl_decoder_decoded_andMatrixOutputs_60_2,
id_ctrl_decoder_decoded_andMatrixOutputs_120_2,
id_ctrl_decoder_decoded_andMatrixOutputs_7_2,
id_ctrl_decoder_decoded_andMatrixOutputs_62_2,
id_ctrl_decoder_decoded_andMatrixOutputs_84_2,
id_ctrl_decoder_decoded_andMatrixOutputs_80_2,
id_ctrl_decoder_decoded_andMatrixOutputs_64_2,
id_ctrl_decoder_decoded_andMatrixOutputs_14_2,
id_ctrl_decoder_decoded_andMatrixOutputs_92_2,
id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
id_ctrl_decoder_decoded_andMatrixOutputs_117_2,
id_ctrl_decoder_decoded_andMatrixOutputs_102_2,
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
id_ctrl_decoder_decoded_andMatrixOutputs_114_2,
id_ctrl_decoder_decoded_andMatrixOutputs_54_2,
id_ctrl_decoder_decoded_andMatrixOutputs_8_2,
id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_88_2,
id_ctrl_decoder_decoded_andMatrixOutputs_101_2,
id_ctrl_decoder_decoded_andMatrixOutputs_46_2};
wire id_ctrl_rxs2 =
|{id_ctrl_decoder_decoded_andMatrixOutputs_82_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12]},
id_ctrl_decoder_decoded_andMatrixOutputs_120_2,
id_ctrl_decoder_decoded_andMatrixOutputs_7_2,
id_ctrl_decoder_decoded_andMatrixOutputs_62_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
id_ctrl_decoder_decoded_andMatrixOutputs_102_2,
id_ctrl_decoder_decoded_andMatrixOutputs_54_2,
id_ctrl_decoder_decoded_andMatrixOutputs_8_2,
id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_88_2};
wire id_ctrl_fp =
|{id_ctrl_rfs3,
id_ctrl_decoder_decoded_andMatrixOutputs_18_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]},
id_ctrl_decoder_decoded_andMatrixOutputs_6_2,
id_ctrl_decoder_decoded_andMatrixOutputs_86_2,
id_ctrl_decoder_decoded_andMatrixOutputs_70_2,
id_ctrl_decoder_decoded_andMatrixOutputs_111_2,
id_ctrl_decoder_decoded_andMatrixOutputs_73_2,
id_ctrl_decoder_decoded_andMatrixOutputs_87_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]},
id_ctrl_decoder_decoded_andMatrixOutputs_71_2};
wire [2:0] id_ctrl_csr =
{|{&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[5],
id_ctrl_decoder_decoded_invInputs[6],
id_ctrl_decoder_decoded_invInputs[7],
id_ctrl_decoder_decoded_invInputs[8],
id_ctrl_decoder_decoded_invInputs[9],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[13],
id_ctrl_decoder_decoded_invInputs[14],
id_ctrl_decoder_decoded_invInputs[15],
id_ctrl_decoder_decoded_invInputs[16],
id_ctrl_decoder_decoded_invInputs[17],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_118_2,
id_ctrl_decoder_decoded_andMatrixOutputs_99_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[5],
id_ctrl_decoder_decoded_invInputs[6],
id_ctrl_decoder_decoded_invInputs[7],
id_ctrl_decoder_decoded_invInputs[8],
id_ctrl_decoder_decoded_invInputs[9],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[13],
id_ctrl_decoder_decoded_invInputs[14],
id_ctrl_decoder_decoded_invInputs[15],
id_ctrl_decoder_decoded_invInputs[16],
id_ctrl_decoder_decoded_invInputs[17],
_ibuf_io_inst_0_bits_inst_bits[20],
id_ctrl_decoder_decoded_invInputs[19],
_ibuf_io_inst_0_bits_inst_bits[22],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[28],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[5],
id_ctrl_decoder_decoded_invInputs[6],
id_ctrl_decoder_decoded_invInputs[7],
id_ctrl_decoder_decoded_invInputs[8],
id_ctrl_decoder_decoded_invInputs[9],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[13],
id_ctrl_decoder_decoded_invInputs[14],
id_ctrl_decoder_decoded_invInputs[15],
id_ctrl_decoder_decoded_invInputs[16],
id_ctrl_decoder_decoded_invInputs[17],
id_ctrl_decoder_decoded_invInputs[18],
_ibuf_io_inst_0_bits_inst_bits[21],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[28],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[5],
id_ctrl_decoder_decoded_invInputs[6],
id_ctrl_decoder_decoded_invInputs[7],
id_ctrl_decoder_decoded_invInputs[8],
id_ctrl_decoder_decoded_invInputs[9],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[13],
id_ctrl_decoder_decoded_invInputs[14],
id_ctrl_decoder_decoded_invInputs[15],
id_ctrl_decoder_decoded_invInputs[16],
id_ctrl_decoder_decoded_invInputs[17],
id_ctrl_decoder_decoded_invInputs[18],
_ibuf_io_inst_0_bits_inst_bits[21],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
_ibuf_io_inst_0_bits_inst_bits[24],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
_ibuf_io_inst_0_bits_inst_bits[27],
_ibuf_io_inst_0_bits_inst_bits[28],
_ibuf_io_inst_0_bits_inst_bits[29],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]}},
id_ctrl_decoder_decoded_andMatrixOutputs_99_2,
id_ctrl_decoder_decoded_andMatrixOutputs_118_2};
reg id_reg_fence;
wire _id_csr_ren_T = id_ctrl_csr == 3'h6;
wire _id_csr_ren_T_1 = &id_ctrl_csr;
wire id_csr_en = _id_csr_ren_T | _id_csr_ren_T_1 | id_ctrl_csr == 3'h5;
wire id_mem_busy = ~io_dmem_ordered | io_dmem_req_valid_0;
wire bypass_sources_3_1 = mem_reg_valid & mem_ctrl_wxd;
wire _fp_data_hazard_ex_T_1 =
ex_reg_inst[11:7] == _ibuf_io_inst_0_bits_inst_rs1;
wire _fp_data_hazard_mem_T_1 =
mem_reg_inst[11:7] == _ibuf_io_inst_0_bits_inst_rs1;
wire _fp_data_hazard_ex_T_3 =
ex_reg_inst[11:7] == _ibuf_io_inst_0_bits_inst_rs2;
wire _fp_data_hazard_mem_T_3 =
mem_reg_inst[11:7] == _ibuf_io_inst_0_bits_inst_rs2;
reg ex_reg_rs_bypass_0;
reg ex_reg_rs_bypass_1;
reg [1:0] ex_reg_rs_lsb_0;
reg [1:0] ex_reg_rs_lsb_1;
reg [61:0] ex_reg_rs_msb_0;
reg [61:0] ex_reg_rs_msb_1;
wire [3:0][63:0] _GEN =
{{io_dmem_resp_bits_data_word_bypass}, {wb_reg_wdata}, {mem_reg_wdata}, {64'h0}};
wire [63:0] ex_rs_0 =
ex_reg_rs_bypass_0 ? _GEN[ex_reg_rs_lsb_0] : {ex_reg_rs_msb_0, ex_reg_rs_lsb_0};
wire [63:0] ex_rs_1 =
ex_reg_rs_bypass_1 ? _GEN[ex_reg_rs_lsb_1] : {ex_reg_rs_msb_1, ex_reg_rs_lsb_1};
wire _ex_imm_b0_T_4 = ex_ctrl_sel_imm == 3'h5;
wire ex_imm_sign = ~_ex_imm_b0_T_4 & ex_reg_inst[31];
wire _ex_imm_b4_1_T = ex_ctrl_sel_imm == 3'h2;
wire _ex_imm_b4_1_T_2 = ex_ctrl_sel_imm == 3'h1;
wire _ex_imm_b0_T = ex_ctrl_sel_imm == 3'h0;
wire [3:0][63:0] _GEN_0 =
{{64'h0}, {{{30{ex_reg_pc[33]}}, ex_reg_pc}}, {ex_rs_0}, {64'h0}};
wire [3:0] _ex_op2_T_1 = ex_reg_rvc ? 4'h2 : 4'h4;
wire div_io_req_valid = ex_reg_valid & ex_ctrl_div;
wire ex_pc_valid = ex_reg_valid | ex_reg_replay | ex_reg_xcpt_interrupt;
wire wb_dcache_miss = wb_ctrl_mem & ~io_dmem_resp_valid;
wire replay_ex =
ex_reg_replay | ex_reg_valid
& (ex_ctrl_mem & ~io_dmem_req_ready | ex_ctrl_div & ~_div_io_req_ready
| wb_dcache_miss & ex_reg_load_use);
wire ctrl_killx = ibuf_io_kill | replay_ex | ~ex_reg_valid;
wire _mem_cfi_taken_T = mem_ctrl_branch & mem_br_taken;
wire [3:0] _mem_br_target_T_6 = mem_reg_rvc ? 4'h2 : 4'h4;
wire [31:0] _mem_br_target_T_8 =
_mem_cfi_taken_T
? {{20{mem_reg_inst[31]}},
mem_reg_inst[7],
mem_reg_inst[30:25],
mem_reg_inst[11:8],
1'h0}
: mem_ctrl_jal
? {{12{mem_reg_inst[31]}},
mem_reg_inst[19:12],
mem_reg_inst[20],
mem_reg_inst[30:21],
1'h0}
: {{28{_mem_br_target_T_6[3]}}, _mem_br_target_T_6};
wire [33:0] _mem_br_target_T_9 =
mem_reg_pc + {{2{_mem_br_target_T_8[31]}}, _mem_br_target_T_8};
wire [32:0] _mem_npc_T_4 =
mem_ctrl_jalr
? {mem_reg_wdata[63:33] == 31'h0 | (&(mem_reg_wdata[63:33]))
? mem_reg_wdata[33]
: ~(mem_reg_wdata[32]),
mem_reg_wdata[32:1]}
: _mem_br_target_T_9[33:1];
wire [33:0] mem_npc = {_mem_npc_T_4, 1'h0};
wire mem_cfi_taken = _mem_cfi_taken_T | mem_ctrl_jalr | mem_ctrl_jal;
assign take_pc_mem = mem_reg_valid & ~mem_reg_xcpt & mem_cfi_taken;
wire mem_debug_breakpoint =
mem_reg_load & _bpu_io_debug_ld | mem_reg_store & _bpu_io_debug_st;
wire mem_ldst_xcpt =
mem_debug_breakpoint | mem_reg_load & _bpu_io_xcpt_ld | mem_reg_store
& _bpu_io_xcpt_st;
wire dcache_kill_mem = bypass_sources_3_1 & io_dmem_replay_next;
wire fpu_kill_mem = mem_reg_valid & mem_ctrl_fp & io_fpu_nack_mem;
wire killm_common =
dcache_kill_mem | take_pc_wb | mem_reg_xcpt | ~mem_reg_valid;
reg div_io_kill_REG;
wire _GEN_1 = wb_reg_valid & wb_ctrl_mem;
wire _GEN_2 = _GEN_1 & io_dmem_s2_xcpt_pf_st;
wire _GEN_3 = _GEN_1 & io_dmem_s2_xcpt_pf_ld;
wire _GEN_4 = _GEN_1 & io_dmem_s2_xcpt_ae_st;
wire _GEN_5 = _GEN_1 & io_dmem_s2_xcpt_ae_ld;
wire _GEN_6 = _GEN_1 & io_dmem_s2_xcpt_ma_st;
wire wb_xcpt =
wb_reg_xcpt | _GEN_2 | _GEN_3 | _GEN_4 | _GEN_5 | _GEN_6 | _GEN_1
& io_dmem_s2_xcpt_ma_ld;
wire wb_wxd = wb_reg_valid & wb_ctrl_wxd;
wire wb_set_sboard =
wb_ctrl_div | wb_dcache_miss | wb_ctrl_rocc | wb_ctrl_vec;
wire _replay_wb_T =
io_dmem_s2_nack | wb_reg_replay | wb_reg_valid & wb_ctrl_rocc;
assign take_pc_wb = _replay_wb_T | wb_xcpt | _csr_io_eret | wb_reg_flush_pipe;
wire dmem_resp_valid = io_dmem_resp_valid & io_dmem_resp_bits_has_data;
wire dmem_resp_replay = dmem_resp_valid & io_dmem_resp_bits_replay;
wire _GEN_7 = dmem_resp_replay & ~(io_dmem_resp_bits_tag[0]);
assign ll_arb_io_out_ready = ~_GEN_7 & ~wb_wxd;
wire [4:0] ll_waddr =
_GEN_7 ? io_dmem_resp_bits_tag[5:1] : _ll_arb_io_out_bits_tag;
wire ll_wen = _GEN_7 | ll_arb_io_out_ready & _ll_arb_io_out_valid;
wire wb_valid = wb_reg_valid & ~_replay_wb_T & ~wb_xcpt;
wire wb_wen = wb_valid & wb_ctrl_wxd;
wire rf_wen = wb_wen | ll_wen;
wire [4:0] rf_waddr = ll_wen ? ll_waddr : wb_reg_inst[11:7];
wire [63:0] rf_wdata =
dmem_resp_valid & ~(io_dmem_resp_bits_tag[0])
? io_dmem_resp_bits_data
: ll_wen
? _ll_arb_io_out_bits_data
: (|wb_ctrl_csr) ? _csr_io_rw_rdata : wb_reg_wdata;
wire _GEN_8 = |rf_waddr;
wire [63:0] id_rs_0 =
rf_wen & _GEN_8 & rf_waddr == _ibuf_io_inst_0_bits_inst_rs1
? rf_wdata
: _rf_ext_R1_data;
wire [63:0] id_rs_1 =
rf_wen & _GEN_8 & rf_waddr == _ibuf_io_inst_0_bits_inst_rs2
? rf_wdata
: _rf_ext_R0_data;
wire _htval_valid_imem_T = wb_reg_cause == 64'h14;
wire tval_any_addr =
~wb_reg_xcpt | wb_reg_cause == 64'h3 | wb_reg_cause == 64'h1 | wb_reg_cause == 64'hC
| _htval_valid_imem_T;
wire htval_valid_imem = wb_reg_xcpt & _htval_valid_imem_T;
wire hazard_targets_0_1 = id_ctrl_rxs1 & (|_ibuf_io_inst_0_bits_inst_rs1);
wire hazard_targets_1_1 = id_ctrl_rxs2 & (|_ibuf_io_inst_0_bits_inst_rs2);
wire hazard_targets_2_1 = id_ctrl_wxd & (|_ibuf_io_inst_0_bits_inst_rd);
reg [31:0] _r;
wire [31:0] r = {_r[31:1], 1'h0};
wire [31:0] _GEN_9 = {27'h0, _ibuf_io_inst_0_bits_inst_rs1};
wire [31:0] _id_sboard_hazard_T = r >> _GEN_9;
wire [31:0] _GEN_10 = {27'h0, _ibuf_io_inst_0_bits_inst_rs2};
wire [31:0] _id_sboard_hazard_T_7 = r >> _GEN_10;
wire [31:0] _GEN_11 = {27'h0, _ibuf_io_inst_0_bits_inst_rd};
wire [31:0] _id_sboard_hazard_T_14 = r >> _GEN_11;
wire _fp_data_hazard_ex_T_7 =
_ibuf_io_inst_0_bits_inst_rd == ex_reg_inst[11:7];
wire _fp_data_hazard_mem_T_7 =
_ibuf_io_inst_0_bits_inst_rd == mem_reg_inst[11:7];
wire data_hazard_mem =
mem_ctrl_wxd
& (hazard_targets_0_1 & _fp_data_hazard_mem_T_1 | hazard_targets_1_1
& _fp_data_hazard_mem_T_3 | hazard_targets_2_1 & _fp_data_hazard_mem_T_7);
wire _fp_data_hazard_wb_T_1 =
_ibuf_io_inst_0_bits_inst_rs1 == wb_reg_inst[11:7];
wire _fp_data_hazard_wb_T_3 =
_ibuf_io_inst_0_bits_inst_rs2 == wb_reg_inst[11:7];
wire _fp_data_hazard_wb_T_7 =
_ibuf_io_inst_0_bits_inst_rd == wb_reg_inst[11:7];
reg [31:0] _id_stall_fpu_r;
wire [31:0] _id_stall_fpu_T_20 = _id_stall_fpu_r >> _GEN_9;
wire [31:0] _id_stall_fpu_T_23 = _id_stall_fpu_r >> _GEN_10;
wire [31:0] _id_stall_fpu_T_26 = _id_stall_fpu_r >> _ibuf_io_inst_0_bits_inst_rs3;
wire [31:0] _id_stall_fpu_T_29 = _id_stall_fpu_r >> _GEN_11;
reg dcache_blocked_blocked;
wire _ctrl_stalld_T_32 =
ex_reg_valid
& (ex_ctrl_wxd
& (hazard_targets_0_1 & _fp_data_hazard_ex_T_1 | hazard_targets_1_1
& _fp_data_hazard_ex_T_3 | hazard_targets_2_1 & _fp_data_hazard_ex_T_7)
& ((|ex_ctrl_csr) | ex_ctrl_jalr | ex_ctrl_mem | ex_ctrl_div | ex_ctrl_fp)
| id_ctrl_fp & ex_ctrl_wfd
& (io_fpu_dec_ren1 & _fp_data_hazard_ex_T_1 | io_fpu_dec_ren2
& _fp_data_hazard_ex_T_3 | io_fpu_dec_ren3
& _ibuf_io_inst_0_bits_inst_rs3 == ex_reg_inst[11:7] | io_fpu_dec_wen
& _fp_data_hazard_ex_T_7)) | mem_reg_valid
& (data_hazard_mem
& ((|mem_ctrl_csr) | mem_ctrl_mem & mem_reg_slow_bypass | mem_ctrl_mul
| mem_ctrl_div | mem_ctrl_fp | mem_ctrl_rocc | mem_ctrl_vec) | id_ctrl_fp
& mem_ctrl_wfd
& (io_fpu_dec_ren1 & _fp_data_hazard_mem_T_1 | io_fpu_dec_ren2
& _fp_data_hazard_mem_T_3 | io_fpu_dec_ren3
& _ibuf_io_inst_0_bits_inst_rs3 == mem_reg_inst[11:7] | io_fpu_dec_wen
& _fp_data_hazard_mem_T_7)) | wb_reg_valid
& (wb_ctrl_wxd
& (hazard_targets_0_1 & _fp_data_hazard_wb_T_1 | hazard_targets_1_1
& _fp_data_hazard_wb_T_3 | hazard_targets_2_1 & _fp_data_hazard_wb_T_7)
& wb_set_sboard | id_ctrl_fp & wb_ctrl_wfd
& (io_fpu_dec_ren1 & _fp_data_hazard_wb_T_1 | io_fpu_dec_ren2
& _fp_data_hazard_wb_T_3 | io_fpu_dec_ren3
& _ibuf_io_inst_0_bits_inst_rs3 == wb_reg_inst[11:7] | io_fpu_dec_wen
& _fp_data_hazard_wb_T_7)) | hazard_targets_0_1 & _id_sboard_hazard_T[0]
& ~(ll_wen & ll_waddr == _ibuf_io_inst_0_bits_inst_rs1) | hazard_targets_1_1
& _id_sboard_hazard_T_7[0] & ~(ll_wen & ll_waddr == _ibuf_io_inst_0_bits_inst_rs2)
| hazard_targets_2_1 & _id_sboard_hazard_T_14[0]
& ~(ll_wen & ll_waddr == _ibuf_io_inst_0_bits_inst_rd) | _csr_io_singleStep
& (ex_reg_valid | mem_reg_valid | wb_reg_valid) | id_csr_en & _csr_io_decode_0_fp_csr
& ~io_fpu_fcsr_rdy | id_ctrl_fp
& (io_fpu_dec_ren1 & _id_stall_fpu_T_20[0] | io_fpu_dec_ren2 & _id_stall_fpu_T_23[0]
| io_fpu_dec_ren3 & _id_stall_fpu_T_26[0] | io_fpu_dec_wen & _id_stall_fpu_T_29[0])
| id_ctrl_mem & dcache_blocked_blocked & ~io_dmem_perf_grant | id_ctrl_div
& (~(_div_io_req_ready | _div_io_resp_valid & ~wb_wxd) | div_io_req_valid)
| id_mem_busy
& (id_ctrl_amo & _ibuf_io_inst_0_bits_inst_bits[25] | id_ctrl_fence_i | id_reg_fence
& id_ctrl_mem) | _csr_io_csr_stall | id_reg_pause;
wire ctrl_killd =
~_ibuf_io_inst_0_valid | _ibuf_io_inst_0_bits_replay | ibuf_io_kill
| _ctrl_stalld_T_32 | _csr_io_interrupt;
assign io_dmem_req_valid_0 = ex_reg_valid & ex_ctrl_mem;
reg [63:0] coreMonitorBundle_rd0val_REG;
reg [63:0] coreMonitorBundle_rd0val_REG_1;
reg [63:0] coreMonitorBundle_rd1val_REG;
reg [63:0] coreMonitorBundle_rd1val_REG_1;
`ifndef SYNTHESIS
always @(posedge clock) begin
if ((`PRINTF_COND_) & ~reset & htval_valid_imem)
$fwrite(32'h80000002,
"Assertion failed\n at RocketCore.scala:885 assert(!htval_valid_imem || io.imem.gpa.valid)\n");
if ((`PRINTF_COND_) & _csr_io_trace_0_valid & ~reset) begin
automatic logic coreMonitorBundle_wrenx = wb_wen & ~wb_set_sboard;
automatic logic _GEN_12 = wb_ctrl_rxs1 | wb_ctrl_rfs1;
automatic logic _GEN_13 = wb_ctrl_rxs2 | wb_ctrl_rfs2;
$fwrite(32'h80000002,
"C%d: %d [%d] pc=[%x] W[r%d=%x][%d] R[r%d=%x] R[r%d=%x] inst=[%x] DASM(%x)\n",
1'h0, _csr_io_time[31:0],
_csr_io_trace_0_valid & ~_csr_io_trace_0_exception,
{{30{_csr_io_trace_0_iaddr[33]}}, _csr_io_trace_0_iaddr},
wb_ctrl_wxd | wb_ctrl_wfd ? wb_reg_inst[11:7] : 5'h0,
coreMonitorBundle_wrenx ? rf_wdata : 64'h0, coreMonitorBundle_wrenx,
_GEN_12 ? wb_reg_inst[19:15] : 5'h0,
_GEN_12 ? coreMonitorBundle_rd0val_REG_1 : 64'h0,
_GEN_13 ? wb_reg_inst[24:20] : 5'h0,
_GEN_13 ? coreMonitorBundle_rd1val_REG_1 : 64'h0, _csr_io_trace_0_insn,
_csr_io_trace_0_insn);
end
end // always @(posedge)
`endif // not def SYNTHESIS
always @(posedge clock) begin
automatic logic id_ctrl_fence;
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_59_2;
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_23_2;
automatic logic id_ctrl_legal;
automatic logic _GEN_14;
automatic logic id_bypass_src_1_0;
automatic logic id_system_insn;
automatic logic id_csr_ren;
automatic logic id_illegal_insn;
automatic logic id_virtual_insn;
automatic logic id_xcpt;
automatic logic bypass_sources_1_1;
automatic logic bypass_sources_2_1;
automatic logic id_bypass_src_1_1;
automatic logic id_bypass_src_1_2;
automatic logic do_bypass_1;
automatic logic _GEN_15;
automatic logic mem_pc_valid =
mem_reg_valid | mem_reg_replay | mem_reg_xcpt_interrupt;
automatic logic _mem_npc_misaligned_T_3;
automatic logic _GEN_16 = mem_reg_valid & mem_reg_flush_pipe;
automatic logic _GEN_17 = _GEN_16 | ~ex_pc_valid;
automatic logic _GEN_18;
automatic logic _GEN_19;
automatic logic _GEN_20;
automatic logic mem_xcpt;
automatic logic ctrl_killm;
id_ctrl_fence =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12]};
id_ctrl_decoder_decoded_andMatrixOutputs_59_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11]};
id_ctrl_decoder_decoded_andMatrixOutputs_23_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[20],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]};
id_ctrl_legal =
|{id_ctrl_decoder_decoded_andMatrixOutputs_63_2,
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
id_ctrl_decoder_decoded_andMatrixOutputs_0_2,
id_ctrl_fence,
id_ctrl_decoder_decoded_andMatrixOutputs_60_2,
id_ctrl_decoder_decoded_andMatrixOutputs_27_2,
id_ctrl_decoder_decoded_andMatrixOutputs_120_2,
id_ctrl_decoder_decoded_andMatrixOutputs_7_2,
id_ctrl_decoder_decoded_andMatrixOutputs_62_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[24]},
id_ctrl_decoder_decoded_andMatrixOutputs_18_2,
id_ctrl_decoder_decoded_andMatrixOutputs_84_2,
id_ctrl_jal,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[5],
id_ctrl_decoder_decoded_invInputs[6],
id_ctrl_decoder_decoded_invInputs[7],
id_ctrl_decoder_decoded_invInputs[8],
id_ctrl_decoder_decoded_invInputs[9],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[13],
id_ctrl_decoder_decoded_invInputs[14],
id_ctrl_decoder_decoded_invInputs[15],
id_ctrl_decoder_decoded_invInputs[16],
id_ctrl_decoder_decoded_invInputs[17],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_80_2,
id_ctrl_decoder_decoded_andMatrixOutputs_64_2,
id_ctrl_decoder_decoded_andMatrixOutputs_59_2,
id_ctrl_decoder_decoded_andMatrixOutputs_92_2,
id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
id_ctrl_decoder_decoded_andMatrixOutputs_99_2,
id_ctrl_decoder_decoded_andMatrixOutputs_102_2,
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
id_ctrl_decoder_decoded_andMatrixOutputs_114_2,
id_ctrl_decoder_decoded_andMatrixOutputs_54_2,
id_ctrl_decoder_decoded_andMatrixOutputs_8_2,
id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_45_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[5],
id_ctrl_decoder_decoded_invInputs[6],
id_ctrl_decoder_decoded_invInputs[7],
id_ctrl_decoder_decoded_invInputs[8],
id_ctrl_decoder_decoded_invInputs[9],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[13],
id_ctrl_decoder_decoded_invInputs[14],
id_ctrl_decoder_decoded_invInputs[15],
id_ctrl_decoder_decoded_invInputs[16],
id_ctrl_decoder_decoded_invInputs[17],
_ibuf_io_inst_0_bits_inst_bits[20],
id_ctrl_decoder_decoded_invInputs[19],
_ibuf_io_inst_0_bits_inst_bits[22],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[28],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_6_2,
id_ctrl_decoder_decoded_andMatrixOutputs_86_2,
id_ctrl_decoder_decoded_andMatrixOutputs_70_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[5],
id_ctrl_decoder_decoded_invInputs[6],
id_ctrl_decoder_decoded_invInputs[7],
id_ctrl_decoder_decoded_invInputs[8],
id_ctrl_decoder_decoded_invInputs[9],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[13],
id_ctrl_decoder_decoded_invInputs[14],
id_ctrl_decoder_decoded_invInputs[15],
id_ctrl_decoder_decoded_invInputs[16],
id_ctrl_decoder_decoded_invInputs[17],
id_ctrl_decoder_decoded_invInputs[18],
_ibuf_io_inst_0_bits_inst_bits[21],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[28],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_111_2,
id_ctrl_decoder_decoded_andMatrixOutputs_73_2,
id_ctrl_decoder_decoded_andMatrixOutputs_87_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[5],
id_ctrl_decoder_decoded_invInputs[6],
id_ctrl_decoder_decoded_invInputs[7],
id_ctrl_decoder_decoded_invInputs[8],
id_ctrl_decoder_decoded_invInputs[9],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[13],
id_ctrl_decoder_decoded_invInputs[14],
id_ctrl_decoder_decoded_invInputs[15],
id_ctrl_decoder_decoded_invInputs[16],
id_ctrl_decoder_decoded_invInputs[17],
id_ctrl_decoder_decoded_invInputs[18],
_ibuf_io_inst_0_bits_inst_bits[21],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
_ibuf_io_inst_0_bits_inst_bits[24],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
_ibuf_io_inst_0_bits_inst_bits[27],
_ibuf_io_inst_0_bits_inst_bits[28],
_ibuf_io_inst_0_bits_inst_bits[29],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_71_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[29],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]},
id_ctrl_decoder_decoded_andMatrixOutputs_26_2};
_GEN_14 = |_ibuf_io_inst_0_bits_inst_rs1;
id_bypass_src_1_0 = _ibuf_io_inst_0_bits_inst_rs2 == 5'h0;
id_system_insn = id_ctrl_csr == 3'h4;
id_csr_ren = (_id_csr_ren_T | _id_csr_ren_T_1) & ~_GEN_14;
id_illegal_insn =
~id_ctrl_legal | id_ctrl_div & ~(_csr_io_status_isa[12]) | id_ctrl_amo
& ~(_csr_io_status_isa[0]) | id_ctrl_fp
& (_csr_io_decode_0_fp_illegal | io_fpu_illegal_rm)
| (|{&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[12],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_23_2,
id_ctrl_decoder_decoded_andMatrixOutputs_73_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
_ibuf_io_inst_0_bits_inst_bits[27],
_ibuf_io_inst_0_bits_inst_bits[28],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
_ibuf_io_inst_0_bits_inst_bits[29],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
_ibuf_io_inst_0_bits_inst_bits[30],
_ibuf_io_inst_0_bits_inst_bits[31]}}) & ~(_csr_io_status_isa[3])
| _ibuf_io_inst_0_bits_rvc & ~(_csr_io_status_isa[2]) | id_csr_en
& (_csr_io_decode_0_read_illegal | ~id_csr_ren & _csr_io_decode_0_write_illegal)
| ~_ibuf_io_inst_0_bits_rvc & id_system_insn & _csr_io_decode_0_system_illegal;
id_virtual_insn =
id_ctrl_legal & id_csr_en & ~(~id_csr_ren & _csr_io_decode_0_write_illegal)
& _csr_io_decode_0_virtual_access_illegal;
id_xcpt =
_csr_io_interrupt | _bpu_io_debug_if | _bpu_io_xcpt_if
| _ibuf_io_inst_0_bits_xcpt0_pf_inst | _ibuf_io_inst_0_bits_xcpt0_gf_inst
| _ibuf_io_inst_0_bits_xcpt0_ae_inst | _ibuf_io_inst_0_bits_xcpt1_pf_inst
| _ibuf_io_inst_0_bits_xcpt1_gf_inst | _ibuf_io_inst_0_bits_xcpt1_ae_inst
| id_virtual_insn | id_illegal_insn;
bypass_sources_1_1 = ex_reg_valid & ex_ctrl_wxd;
bypass_sources_2_1 = bypass_sources_3_1 & ~mem_ctrl_mem;
id_bypass_src_1_1 = bypass_sources_1_1 & _fp_data_hazard_ex_T_3;
id_bypass_src_1_2 = bypass_sources_2_1 & _fp_data_hazard_mem_T_3;
do_bypass_1 =
id_bypass_src_1_0 | id_bypass_src_1_1 | id_bypass_src_1_2 | bypass_sources_3_1
& _fp_data_hazard_mem_T_3;
_GEN_15 = id_ctrl_rxs2 & ~do_bypass_1;
_mem_npc_misaligned_T_3 = ~(_csr_io_status_isa[2]) & _mem_npc_T_4[0];
_GEN_18 = ex_ctrl_jalr & _csr_io_status_debug;
_GEN_19 = mem_reg_xcpt_interrupt | mem_reg_xcpt;
_GEN_20 = mem_reg_valid & _mem_npc_misaligned_T_3;
mem_xcpt = _GEN_19 | _GEN_20 | mem_reg_valid & mem_ldst_xcpt;
ctrl_killm = killm_common | mem_xcpt | fpu_kill_mem;
id_reg_pause <=
~(_csr_io_time[4:0] == 5'h0 | _csr_io_inhibit_cycle | ibuf_io_kill)
& (~ctrl_killd & id_ctrl_fence & _ibuf_io_inst_0_bits_inst_bits[23:20] == 4'h0
| id_reg_pause);
imem_might_request_reg <= ex_pc_valid | mem_pc_valid | _csr_io_customCSRs_0_value[1];
if (~ctrl_killd) begin
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_61_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_40_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_21_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[3],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_19_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[3],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[29]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_42_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[14]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_55_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[14]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_95_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[13],
_ibuf_io_inst_0_bits_inst_bits[14]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_4_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[13],
_ibuf_io_inst_0_bits_inst_bits[14]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_41_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12],
_ibuf_io_inst_0_bits_inst_bits[27],
_ibuf_io_inst_0_bits_inst_bits[28],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_22_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_113_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_16_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[3],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]};
automatic logic id_ctrl_decoder_decoded_andMatrixOutputs_90_2 =
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]};
automatic logic _id_ctrl_decoder_decoded_invMatrixOutputs_T_14 =
|{id_ctrl_decoder_decoded_andMatrixOutputs_82_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]},
id_ctrl_decoder_decoded_andMatrixOutputs_41_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29]}};
automatic logic _id_ctrl_decoder_decoded_invMatrixOutputs_T_15 =
|{id_ctrl_decoder_decoded_andMatrixOutputs_88_2,
id_ctrl_decoder_decoded_andMatrixOutputs_41_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[30]}};
automatic logic _id_ctrl_decoder_decoded_invMatrixOutputs_T_16 =
|{id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_88_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
_ibuf_io_inst_0_bits_inst_bits[3],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[31]}};
automatic logic id_bypass_src_0_1;
automatic logic id_bypass_src_0_2;
automatic logic _GEN_21 =
|{_ibuf_io_inst_0_bits_xcpt1_pf_inst,
_ibuf_io_inst_0_bits_xcpt1_gf_inst,
_ibuf_io_inst_0_bits_xcpt1_ae_inst};
automatic logic do_bypass;
automatic logic _GEN_22;
automatic logic _GEN_23;
automatic logic [31:0] inst;
id_bypass_src_0_1 = bypass_sources_1_1 & _fp_data_hazard_ex_T_1;
id_bypass_src_0_2 = bypass_sources_2_1 & _fp_data_hazard_mem_T_1;
do_bypass =
~_GEN_14 | id_bypass_src_0_1 | id_bypass_src_0_2 | bypass_sources_3_1
& _fp_data_hazard_mem_T_1;
_GEN_22 = id_ctrl_rxs1 & ~do_bypass;
_GEN_23 = id_illegal_insn | id_virtual_insn;
inst =
_ibuf_io_inst_0_bits_rvc
? {16'h0, _ibuf_io_inst_0_bits_raw[15:0]}
: _ibuf_io_inst_0_bits_raw;
ex_ctrl_fp <= id_ctrl_fp;
ex_ctrl_branch <=
|{id_ctrl_decoder_decoded_andMatrixOutputs_61_2,
id_ctrl_decoder_decoded_andMatrixOutputs_102_2};
ex_ctrl_jal <= id_ctrl_jal;
ex_ctrl_jalr <= id_ctrl_jalr;
ex_ctrl_rxs2 <= id_ctrl_rxs2;
ex_ctrl_rxs1 <= id_ctrl_rxs1;
ex_ctrl_sel_alu2 <=
id_xcpt
? ((|{_bpu_io_xcpt_if,
_ibuf_io_inst_0_bits_xcpt0_pf_inst,
_ibuf_io_inst_0_bits_xcpt0_gf_inst,
_ibuf_io_inst_0_bits_xcpt0_ae_inst})
? 3'h0
: {2'h0, _GEN_21})
: {1'h0,
|{id_ctrl_decoder_decoded_andMatrixOutputs_63_2,
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
id_ctrl_decoder_decoded_andMatrixOutputs_0_2,
id_ctrl_decoder_decoded_andMatrixOutputs_60_2,
id_ctrl_decoder_decoded_andMatrixOutputs_27_2,
id_ctrl_decoder_decoded_andMatrixOutputs_120_2,
id_ctrl_decoder_decoded_andMatrixOutputs_7_2,
id_ctrl_decoder_decoded_andMatrixOutputs_62_2,
id_ctrl_decoder_decoded_andMatrixOutputs_61_2,
id_ctrl_decoder_decoded_andMatrixOutputs_84_2,
id_ctrl_decoder_decoded_andMatrixOutputs_80_2,
id_ctrl_decoder_decoded_andMatrixOutputs_64_2,
id_ctrl_decoder_decoded_andMatrixOutputs_92_2,
id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
id_ctrl_decoder_decoded_andMatrixOutputs_114_2,
id_ctrl_decoder_decoded_andMatrixOutputs_54_2,
id_ctrl_decoder_decoded_andMatrixOutputs_42_2,
id_ctrl_decoder_decoded_andMatrixOutputs_95_2,
id_ctrl_decoder_decoded_andMatrixOutputs_8_2},
|{id_ctrl_decoder_decoded_andMatrixOutputs_63_2,
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
id_ctrl_decoder_decoded_andMatrixOutputs_0_2,
id_ctrl_decoder_decoded_andMatrixOutputs_60_2,
id_ctrl_decoder_decoded_andMatrixOutputs_27_2,
id_ctrl_jalr,
id_ctrl_jal,
id_ctrl_decoder_decoded_andMatrixOutputs_40_2,
id_ctrl_decoder_decoded_andMatrixOutputs_21_2,
id_ctrl_decoder_decoded_andMatrixOutputs_92_2,
id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
id_ctrl_decoder_decoded_andMatrixOutputs_19_2,
id_ctrl_decoder_decoded_andMatrixOutputs_55_2,
id_ctrl_decoder_decoded_andMatrixOutputs_4_2}};
ex_ctrl_sel_alu1 <=
id_xcpt
? ((|{_bpu_io_xcpt_if,
_ibuf_io_inst_0_bits_xcpt0_pf_inst,
_ibuf_io_inst_0_bits_xcpt0_gf_inst,
_ibuf_io_inst_0_bits_xcpt0_ae_inst,
_ibuf_io_inst_0_bits_xcpt1_pf_inst,
_ibuf_io_inst_0_bits_xcpt1_gf_inst,
_ibuf_io_inst_0_bits_xcpt1_ae_inst})
? 2'h2
: 2'h1)
: {|{&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4]},
id_ctrl_jal},
|{id_ctrl_decoder_decoded_andMatrixOutputs_63_2,
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
id_ctrl_decoder_decoded_andMatrixOutputs_0_2,
id_ctrl_decoder_decoded_andMatrixOutputs_60_2,
id_ctrl_decoder_decoded_andMatrixOutputs_120_2,
id_ctrl_decoder_decoded_andMatrixOutputs_7_2,
id_ctrl_decoder_decoded_andMatrixOutputs_62_2,
id_ctrl_decoder_decoded_andMatrixOutputs_84_2,
id_ctrl_decoder_decoded_andMatrixOutputs_80_2,
id_ctrl_decoder_decoded_andMatrixOutputs_64_2,
id_ctrl_decoder_decoded_andMatrixOutputs_14_2,
id_ctrl_decoder_decoded_andMatrixOutputs_92_2,
id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
id_ctrl_decoder_decoded_andMatrixOutputs_117_2,
id_ctrl_decoder_decoded_andMatrixOutputs_102_2,
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
id_ctrl_decoder_decoded_andMatrixOutputs_114_2,
id_ctrl_decoder_decoded_andMatrixOutputs_54_2,
id_ctrl_decoder_decoded_andMatrixOutputs_8_2,
id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_88_2,
id_ctrl_decoder_decoded_andMatrixOutputs_101_2,
id_ctrl_decoder_decoded_andMatrixOutputs_46_2}};
ex_ctrl_sel_imm <=
{|{id_ctrl_decoder_decoded_andMatrixOutputs_63_2,
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
id_ctrl_decoder_decoded_andMatrixOutputs_60_2,
id_ctrl_jalr,
id_ctrl_decoder_decoded_andMatrixOutputs_40_2,
id_ctrl_decoder_decoded_andMatrixOutputs_21_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]},
id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
id_ctrl_decoder_decoded_andMatrixOutputs_19_2,
id_ctrl_decoder_decoded_andMatrixOutputs_55_2,
id_ctrl_decoder_decoded_andMatrixOutputs_4_2},
|{id_ctrl_decoder_decoded_andMatrixOutputs_27_2, id_ctrl_jal},
|{id_ctrl_decoder_decoded_andMatrixOutputs_61_2,
id_ctrl_jal,
id_ctrl_decoder_decoded_andMatrixOutputs_42_2,
id_ctrl_decoder_decoded_andMatrixOutputs_95_2}};
ex_ctrl_alu_dw <=
id_xcpt
| (|{id_ctrl_decoder_decoded_andMatrixOutputs_63_2,
id_ctrl_decoder_decoded_andMatrixOutputs_9_2,
id_ctrl_decoder_decoded_andMatrixOutputs_0_2,
id_ctrl_decoder_decoded_andMatrixOutputs_27_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_7_2,
id_ctrl_decoder_decoded_andMatrixOutputs_84_2,
id_ctrl_jal,
id_ctrl_decoder_decoded_andMatrixOutputs_80_2,
id_ctrl_decoder_decoded_andMatrixOutputs_59_2,
id_ctrl_decoder_decoded_andMatrixOutputs_92_2,
id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
id_ctrl_decoder_decoded_andMatrixOutputs_99_2,
id_ctrl_decoder_decoded_andMatrixOutputs_102_2,
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_74_2,
id_ctrl_decoder_decoded_andMatrixOutputs_88_2});
ex_ctrl_alu_fn <=
id_xcpt
? 5'h0
: {1'h0,
|{&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_102_2,
id_ctrl_decoder_decoded_andMatrixOutputs_22_2,
id_ctrl_decoder_decoded_andMatrixOutputs_113_2,
id_ctrl_decoder_decoded_andMatrixOutputs_16_2,
id_ctrl_decoder_decoded_andMatrixOutputs_90_2},
|{id_ctrl_decoder_decoded_andMatrixOutputs_15_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
id_ctrl_decoder_decoded_invInputs[10],
_ibuf_io_inst_0_bits_inst_bits[14]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_102_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[3],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[23],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_8_2},
|{&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[11],
id_ctrl_decoder_decoded_invInputs[12]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[13]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
_ibuf_io_inst_0_bits_inst_bits[14]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[13],
_ibuf_io_inst_0_bits_inst_bits[14]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
_ibuf_io_inst_0_bits_inst_bits[14],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_22_2,
id_ctrl_decoder_decoded_andMatrixOutputs_113_2,
id_ctrl_decoder_decoded_andMatrixOutputs_16_2,
id_ctrl_decoder_decoded_andMatrixOutputs_90_2},
|{id_ctrl_decoder_decoded_andMatrixOutputs_80_2,
id_ctrl_decoder_decoded_andMatrixOutputs_64_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[12],
id_ctrl_decoder_decoded_invInputs[11]},
id_ctrl_decoder_decoded_andMatrixOutputs_48_2,
id_ctrl_decoder_decoded_andMatrixOutputs_114_2,
id_ctrl_decoder_decoded_andMatrixOutputs_54_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[14],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
_ibuf_io_inst_0_bits_inst_bits[6],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[14]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[13],
_ibuf_io_inst_0_bits_inst_bits[14]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
_ibuf_io_inst_0_bits_inst_bits[4],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[12],
_ibuf_io_inst_0_bits_inst_bits[14],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]}}};
ex_ctrl_mem <= id_ctrl_mem;
ex_ctrl_mem_cmd <=
{1'h0,
id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
_id_ctrl_decoder_decoded_invMatrixOutputs_T_16,
_id_ctrl_decoder_decoded_invMatrixOutputs_T_15,
_id_ctrl_decoder_decoded_invMatrixOutputs_T_14};
ex_ctrl_rfs1 <=
|{id_ctrl_rfs3,
id_ctrl_decoder_decoded_andMatrixOutputs_18_2,
id_ctrl_decoder_decoded_andMatrixOutputs_6_2,
id_ctrl_decoder_decoded_andMatrixOutputs_86_2,
id_ctrl_decoder_decoded_andMatrixOutputs_70_2,
id_ctrl_decoder_decoded_andMatrixOutputs_111_2,
id_ctrl_decoder_decoded_andMatrixOutputs_73_2,
id_ctrl_decoder_decoded_andMatrixOutputs_87_2,
id_ctrl_decoder_decoded_andMatrixOutputs_65_2,
id_ctrl_decoder_decoded_andMatrixOutputs_26_2};
ex_ctrl_rfs2 <=
|{id_ctrl_rfs3,
id_ctrl_decoder_decoded_andMatrixOutputs_18_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
_ibuf_io_inst_0_bits_inst_bits[5],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]},
id_ctrl_decoder_decoded_andMatrixOutputs_6_2,
id_ctrl_decoder_decoded_andMatrixOutputs_86_2,
id_ctrl_decoder_decoded_andMatrixOutputs_70_2,
id_ctrl_decoder_decoded_andMatrixOutputs_87_2};
ex_ctrl_wfd <=
|{id_ctrl_rfs3,
id_ctrl_decoder_decoded_andMatrixOutputs_18_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
_ibuf_io_inst_0_bits_inst_bits[2],
id_ctrl_decoder_decoded_invInputs[1],
id_ctrl_decoder_decoded_invInputs[2],
id_ctrl_decoder_decoded_invInputs[3],
id_ctrl_decoder_decoded_invInputs[4],
_ibuf_io_inst_0_bits_inst_bits[13],
id_ctrl_decoder_decoded_invInputs[12]},
id_ctrl_decoder_decoded_andMatrixOutputs_70_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[10],
id_ctrl_decoder_decoded_invInputs[12],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
_ibuf_io_inst_0_bits_inst_bits[29],
id_ctrl_decoder_decoded_invInputs[28],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_23_2,
&{_ibuf_io_inst_0_bits_inst_bits[0],
_ibuf_io_inst_0_bits_inst_bits[1],
id_ctrl_decoder_decoded_invInputs[0],
id_ctrl_decoder_decoded_invInputs[1],
_ibuf_io_inst_0_bits_inst_bits[4],
id_ctrl_decoder_decoded_invInputs[3],
_ibuf_io_inst_0_bits_inst_bits[6],
id_ctrl_decoder_decoded_invInputs[18],
id_ctrl_decoder_decoded_invInputs[19],
id_ctrl_decoder_decoded_invInputs[20],
id_ctrl_decoder_decoded_invInputs[21],
id_ctrl_decoder_decoded_invInputs[22],
_ibuf_io_inst_0_bits_inst_bits[25],
id_ctrl_decoder_decoded_invInputs[24],
id_ctrl_decoder_decoded_invInputs[25],
id_ctrl_decoder_decoded_invInputs[26],
id_ctrl_decoder_decoded_invInputs[27],
_ibuf_io_inst_0_bits_inst_bits[30],
id_ctrl_decoder_decoded_invInputs[29]},
id_ctrl_decoder_decoded_andMatrixOutputs_87_2,
id_ctrl_decoder_decoded_andMatrixOutputs_101_2,
id_ctrl_decoder_decoded_andMatrixOutputs_46_2};
ex_ctrl_div <= id_ctrl_div;
ex_ctrl_wxd <= id_ctrl_wxd;
ex_ctrl_csr <=
id_system_insn & id_ctrl_mem ? 3'h0 : id_csr_ren ? 3'h2 : id_ctrl_csr;
ex_ctrl_fence_i <= id_ctrl_fence_i;
ex_reg_rvc <= id_xcpt & _GEN_21 | _ibuf_io_inst_0_bits_rvc;
ex_reg_flush_pipe <=
id_ctrl_fence_i | id_system_insn | id_csr_en & ~id_csr_ren
& _csr_io_decode_0_write_flush;
ex_reg_load_use <= mem_reg_valid & data_hazard_mem & mem_ctrl_mem;
ex_reg_mem_size <=
{id_ctrl_decoder_decoded_andMatrixOutputs_12_2,
_id_ctrl_decoder_decoded_invMatrixOutputs_T_16,
_id_ctrl_decoder_decoded_invMatrixOutputs_T_15,
_id_ctrl_decoder_decoded_invMatrixOutputs_T_14} == 4'h5
? {|_ibuf_io_inst_0_bits_inst_rs2, |_ibuf_io_inst_0_bits_inst_rs1}
: _ibuf_io_inst_0_bits_inst_bits[13:12];
ex_reg_rs_bypass_0 <= ~_GEN_23 & do_bypass;
ex_reg_rs_bypass_1 <= do_bypass_1;
ex_reg_rs_lsb_0 <=
_GEN_23
? inst[1:0]
: _GEN_22
? id_rs_0[1:0]
: _GEN_14 ? (id_bypass_src_0_1 ? 2'h1 : {1'h1, ~id_bypass_src_0_2}) : 2'h0;
ex_reg_rs_lsb_1 <=
_GEN_15
? id_rs_1[1:0]
: id_bypass_src_1_0
? 2'h0
: id_bypass_src_1_1 ? 2'h1 : {1'h1, ~id_bypass_src_1_2};
if (_GEN_23)
ex_reg_rs_msb_0 <= {32'h0, inst[31:2]};
else if (_GEN_22)
ex_reg_rs_msb_0 <= id_rs_0[63:2];
end
if (_GEN_17) begin
end
else
mem_ctrl_fp <= ex_ctrl_fp;
mem_ctrl_rocc <= _GEN_17 & mem_ctrl_rocc;
if (_GEN_17) begin
end
else begin
mem_ctrl_branch <= ex_ctrl_branch;
mem_ctrl_jal <= ex_ctrl_jal;
mem_ctrl_jalr <= ex_ctrl_jalr;
mem_ctrl_rxs2 <= ex_ctrl_rxs2;
mem_ctrl_rxs1 <= ex_ctrl_rxs1;
mem_ctrl_mem <= ex_ctrl_mem;
mem_ctrl_rfs1 <= ex_ctrl_rfs1;
mem_ctrl_rfs2 <= ex_ctrl_rfs2;
mem_ctrl_wfd <= ex_ctrl_wfd;
end
mem_ctrl_mul <= _GEN_17 & mem_ctrl_mul;
if (_GEN_17) begin
end
else begin
mem_ctrl_div <= ex_ctrl_div;
mem_ctrl_wxd <= ex_ctrl_wxd;
mem_ctrl_csr <= ex_ctrl_csr;
mem_ctrl_fence_i <= _GEN_18 | ex_ctrl_fence_i;
end
mem_ctrl_vec <= _GEN_17 & mem_ctrl_vec;
if (mem_pc_valid) begin
wb_ctrl_rocc <= mem_ctrl_rocc;
wb_ctrl_rxs2 <= mem_ctrl_rxs2;
wb_ctrl_rxs1 <= mem_ctrl_rxs1;
wb_ctrl_mem <= mem_ctrl_mem;
wb_ctrl_rfs1 <= mem_ctrl_rfs1;
wb_ctrl_rfs2 <= mem_ctrl_rfs2;
wb_ctrl_wfd <= mem_ctrl_wfd;
wb_ctrl_div <= mem_ctrl_div;
wb_ctrl_wxd <= mem_ctrl_wxd;
wb_ctrl_csr <= mem_ctrl_csr;
wb_ctrl_fence_i <= mem_ctrl_fence_i;
wb_ctrl_vec <= mem_ctrl_vec;
wb_reg_cause <=
_GEN_19
? mem_reg_cause
: {60'h0, _GEN_20 ? 4'h0 : mem_debug_breakpoint ? 4'hE : 4'h3};
wb_reg_pc <= mem_reg_pc;
wb_reg_hls_or_dv <= mem_reg_hls_or_dv;
wb_reg_inst <= mem_reg_inst;
wb_reg_raw_inst <= mem_reg_raw_inst;
wb_reg_wdata <=
~mem_reg_xcpt & mem_ctrl_fp & mem_ctrl_wxd
? io_fpu_toint_data
: ~mem_reg_xcpt & (mem_ctrl_jalr ^ _mem_npc_misaligned_T_3)
? {{30{_mem_br_target_T_9[33]}}, _mem_br_target_T_9}
: mem_reg_wdata;
end
ex_reg_xcpt_interrupt <= ~ibuf_io_kill & _ibuf_io_inst_0_valid & _csr_io_interrupt;
ex_reg_valid <= ~ctrl_killd;
ex_reg_xcpt <= ~ctrl_killd & id_xcpt;
if (~ctrl_killd | _csr_io_interrupt | _ibuf_io_inst_0_bits_replay) begin
ex_reg_cause <=
_csr_io_interrupt
? _csr_io_interrupt_cause
: {59'h0,
_bpu_io_debug_if
? 5'hE
: _bpu_io_xcpt_if
? 5'h3
: _ibuf_io_inst_0_bits_xcpt0_pf_inst
? 5'hC
: _ibuf_io_inst_0_bits_xcpt0_gf_inst
? 5'h14
: _ibuf_io_inst_0_bits_xcpt0_ae_inst
? 5'h1
: _ibuf_io_inst_0_bits_xcpt1_pf_inst
? 5'hC
: _ibuf_io_inst_0_bits_xcpt1_gf_inst
? 5'h14
: _ibuf_io_inst_0_bits_xcpt1_ae_inst
? 5'h1
: id_virtual_insn ? 5'h16 : 5'h2};
ex_reg_pc <= _ibuf_io_pc;
ex_reg_inst <= _ibuf_io_inst_0_bits_inst_bits;
ex_reg_raw_inst <= _ibuf_io_inst_0_bits_raw;
end
ex_reg_replay <= ~ibuf_io_kill & _ibuf_io_inst_0_valid & _ibuf_io_inst_0_bits_replay;
mem_reg_xcpt_interrupt <= ~ibuf_io_kill & ex_reg_xcpt_interrupt;
mem_reg_valid <= ~ctrl_killx;
if (_GEN_17) begin
end
else
mem_reg_rvc <= ex_reg_rvc;
mem_reg_xcpt <= ~ctrl_killx & (ex_reg_xcpt_interrupt | ex_reg_xcpt);
mem_reg_replay <= ~ibuf_io_kill & replay_ex;
if (_GEN_17) begin
end
else begin
automatic logic _io_dmem_req_bits_no_resp_T_3 = ex_ctrl_mem_cmd == 5'h7;
automatic logic _mem_reg_store_T_5 = ex_ctrl_mem_cmd == 5'h4;
automatic logic _mem_reg_store_T_6 = ex_ctrl_mem_cmd == 5'h9;
automatic logic _mem_reg_store_T_7 = ex_ctrl_mem_cmd == 5'hA;
automatic logic _mem_reg_store_T_8 = ex_ctrl_mem_cmd == 5'hB;
automatic logic _mem_reg_store_T_12 = ex_ctrl_mem_cmd == 5'h8;
automatic logic _mem_reg_store_T_13 = ex_ctrl_mem_cmd == 5'hC;
automatic logic _mem_reg_store_T_14 = ex_ctrl_mem_cmd == 5'hD;
automatic logic _mem_reg_store_T_15 = ex_ctrl_mem_cmd == 5'hE;
automatic logic _mem_reg_store_T_16 = ex_ctrl_mem_cmd == 5'hF;
mem_reg_flush_pipe <= _GEN_18 | ex_reg_flush_pipe;
mem_reg_cause <= ex_reg_cause;
mem_reg_slow_bypass <= _io_dmem_req_bits_no_resp_T_3 | ~(ex_reg_mem_size[1]);
mem_reg_load <=
ex_ctrl_mem
& (ex_ctrl_mem_cmd == 5'h0 | ex_ctrl_mem_cmd == 5'h10 | ex_ctrl_mem_cmd == 5'h6
| _io_dmem_req_bits_no_resp_T_3 | _mem_reg_store_T_5 | _mem_reg_store_T_6
| _mem_reg_store_T_7 | _mem_reg_store_T_8 | _mem_reg_store_T_12
| _mem_reg_store_T_13 | _mem_reg_store_T_14 | _mem_reg_store_T_15
| _mem_reg_store_T_16);
mem_reg_store <=
ex_ctrl_mem
& (ex_ctrl_mem_cmd == 5'h1 | ex_ctrl_mem_cmd == 5'h11
| _io_dmem_req_bits_no_resp_T_3 | _mem_reg_store_T_5 | _mem_reg_store_T_6
| _mem_reg_store_T_7 | _mem_reg_store_T_8 | _mem_reg_store_T_12
| _mem_reg_store_T_13 | _mem_reg_store_T_14 | _mem_reg_store_T_15
| _mem_reg_store_T_16);
mem_reg_pc <= ex_reg_pc;
mem_reg_inst <= ex_reg_inst;
mem_reg_hls_or_dv <= _csr_io_status_dv;
mem_reg_raw_inst <= ex_reg_raw_inst;
mem_reg_wdata <= _alu_io_out;
end
if (_GEN_16 | ~(ex_pc_valid & ex_ctrl_rxs2 & ex_ctrl_mem)) begin
end
else begin
automatic logic [3:0][63:0] _GEN_24 =
{{ex_rs_1}, {{2{ex_rs_1[31:0]}}}, {{4{ex_rs_1[15:0]}}}, {{8{ex_rs_1[7:0]}}}};
mem_reg_rs2 <= _GEN_24[ex_reg_mem_size];
end
if (_GEN_17) begin
end
else
mem_br_taken <= _alu_io_cmp_out;
wb_reg_valid <= ~ctrl_killm;
wb_reg_xcpt <= mem_xcpt & ~take_pc_wb;
wb_reg_replay <= (dcache_kill_mem | mem_reg_replay | fpu_kill_mem) & ~take_pc_wb;
wb_reg_flush_pipe <= ~ctrl_killm & mem_reg_flush_pipe;
if (~ctrl_killd & _GEN_15)
ex_reg_rs_msb_1 <= id_rs_1[63:2];
div_io_kill_REG <= _div_io_req_ready & div_io_req_valid;
dcache_blocked_blocked <=
~io_dmem_req_ready & ~io_dmem_perf_grant
& (dcache_blocked_blocked | io_dmem_req_valid_0 | io_dmem_s2_nack);
coreMonitorBundle_rd0val_REG <= ex_rs_0;
coreMonitorBundle_rd0val_REG_1 <= coreMonitorBundle_rd0val_REG;
coreMonitorBundle_rd1val_REG <= ex_rs_1;
coreMonitorBundle_rd1val_REG_1 <= coreMonitorBundle_rd1val_REG;
if (reset) begin
id_reg_fence <= 1'h0;
_r <= 32'h0;
_id_stall_fpu_r <= 32'h0;
end
else begin
automatic logic [31:0] _GEN_25;
automatic logic _GEN_26;
automatic logic [31:0] _id_stall_fpu_T_4;
automatic logic _id_stall_fpu_T_7 =
((wb_dcache_miss | wb_ctrl_vec) & wb_ctrl_wfd | io_fpu_sboard_set) & wb_valid;
automatic logic [31:0] _id_stall_fpu_T_5;
automatic logic _id_stall_fpu_T_9 =
dmem_resp_replay & io_dmem_resp_bits_tag[0];
automatic logic [31:0] _id_stall_fpu_T_13;
automatic logic _id_stall_fpu_T_14 = _id_stall_fpu_T_7 | _id_stall_fpu_T_9;
_GEN_25 = r & ~(ll_wen ? 32'h1 << ll_waddr : 32'h0);
_GEN_26 = wb_set_sboard & wb_wen;
_id_stall_fpu_T_4 = 32'h1 << wb_reg_inst[11:7];
_id_stall_fpu_T_5 = _id_stall_fpu_T_7 ? _id_stall_fpu_T_4 : 32'h0;
_id_stall_fpu_T_13 =
(_id_stall_fpu_r | _id_stall_fpu_T_5)
& ~(_id_stall_fpu_T_9 ? 32'h1 << io_dmem_resp_bits_tag[5:1] : 32'h0);
id_reg_fence <=
~ctrl_killd & (id_ctrl_fence | id_ctrl_amo & _ibuf_io_inst_0_bits_inst_bits[26])
| id_mem_busy & id_reg_fence;
if (ll_wen | _GEN_26)
_r <= _GEN_25 | (_GEN_26 ? _id_stall_fpu_T_4 : 32'h0);
else if (ll_wen)
_r <= _GEN_25;
_id_stall_fpu_r <=
_id_stall_fpu_T_14 | io_fpu_sboard_clr
? _id_stall_fpu_T_13
& ~(io_fpu_sboard_clr ? 32'h1 << io_fpu_sboard_clra : 32'h0)
: _id_stall_fpu_T_14
? _id_stall_fpu_T_13
: {32{_id_stall_fpu_T_7}} & _id_stall_fpu_T_5 | _id_stall_fpu_r;
end
end // always @(posedge)
IBuf ibuf (
.clock (clock),
.reset (reset),
.io_imem_ready (io_imem_resp_ready),
.io_imem_valid (io_imem_resp_valid),
.io_imem_bits_pc (io_imem_resp_bits_pc),
.io_imem_bits_data (io_imem_resp_bits_data),
.io_imem_bits_xcpt_pf_inst (io_imem_resp_bits_xcpt_pf_inst),
.io_imem_bits_xcpt_gf_inst (io_imem_resp_bits_xcpt_gf_inst),
.io_imem_bits_xcpt_ae_inst (io_imem_resp_bits_xcpt_ae_inst),
.io_imem_bits_replay (io_imem_resp_bits_replay),
.io_kill (ibuf_io_kill),
.io_pc (_ibuf_io_pc),
.io_inst_0_ready (~_ctrl_stalld_T_32),
.io_inst_0_valid (_ibuf_io_inst_0_valid),
.io_inst_0_bits_xcpt0_pf_inst (_ibuf_io_inst_0_bits_xcpt0_pf_inst),
.io_inst_0_bits_xcpt0_gf_inst (_ibuf_io_inst_0_bits_xcpt0_gf_inst),
.io_inst_0_bits_xcpt0_ae_inst (_ibuf_io_inst_0_bits_xcpt0_ae_inst),
.io_inst_0_bits_xcpt1_pf_inst (_ibuf_io_inst_0_bits_xcpt1_pf_inst),
.io_inst_0_bits_xcpt1_gf_inst (_ibuf_io_inst_0_bits_xcpt1_gf_inst),
.io_inst_0_bits_xcpt1_ae_inst (_ibuf_io_inst_0_bits_xcpt1_ae_inst),
.io_inst_0_bits_replay (_ibuf_io_inst_0_bits_replay),
.io_inst_0_bits_rvc (_ibuf_io_inst_0_bits_rvc),
.io_inst_0_bits_inst_bits (_ibuf_io_inst_0_bits_inst_bits),
.io_inst_0_bits_inst_rd (_ibuf_io_inst_0_bits_inst_rd),
.io_inst_0_bits_inst_rs1 (_ibuf_io_inst_0_bits_inst_rs1),
.io_inst_0_bits_inst_rs2 (_ibuf_io_inst_0_bits_inst_rs2),
.io_inst_0_bits_inst_rs3 (_ibuf_io_inst_0_bits_inst_rs3),
.io_inst_0_bits_raw (_ibuf_io_inst_0_bits_raw)
);
rf_31x64 rf_ext (
.R0_addr (~_ibuf_io_inst_0_bits_inst_rs2),
.R0_en (1'h1),
.R0_clk (clock),
.R0_data (_rf_ext_R0_data),
.R1_addr (~_ibuf_io_inst_0_bits_inst_rs1),
.R1_en (1'h1),
.R1_clk (clock),
.R1_data (_rf_ext_R1_data),
.W0_addr (~rf_waddr),
.W0_en (rf_wen & _GEN_8),
.W0_clk (clock),
.W0_data (rf_wdata)
);
CSRFile csr (
.clock (clock),
.reset (reset),
.io_ungated_clock (clock),
.io_interrupts_debug (io_interrupts_debug),
.io_interrupts_mtip (io_interrupts_mtip),
.io_interrupts_msip (io_interrupts_msip),
.io_interrupts_meip (io_interrupts_meip),
.io_rw_addr (wb_reg_inst[31:20]),
.io_rw_cmd (wb_ctrl_csr & {wb_reg_valid, 2'h3}),
.io_rw_rdata (_csr_io_rw_rdata),
.io_rw_wdata (wb_reg_wdata),
.io_decode_0_inst (_ibuf_io_inst_0_bits_inst_bits),
.io_decode_0_fp_illegal (_csr_io_decode_0_fp_illegal),
.io_decode_0_fp_csr (_csr_io_decode_0_fp_csr),
.io_decode_0_read_illegal (_csr_io_decode_0_read_illegal),
.io_decode_0_write_illegal (_csr_io_decode_0_write_illegal),
.io_decode_0_write_flush (_csr_io_decode_0_write_flush),
.io_decode_0_system_illegal (_csr_io_decode_0_system_illegal),
.io_decode_0_virtual_access_illegal (_csr_io_decode_0_virtual_access_illegal),
.io_csr_stall (_csr_io_csr_stall),
.io_eret (_csr_io_eret),
.io_singleStep (_csr_io_singleStep),
.io_status_debug (_csr_io_status_debug),
.io_status_wfi (io_wfi),
.io_status_isa (_csr_io_status_isa),
.io_status_dv (_csr_io_status_dv),
.io_status_v (_csr_io_status_v),
.io_evec (_csr_io_evec),
.io_exception (wb_xcpt),
.io_retire (wb_valid),
.io_cause
(wb_reg_xcpt
? wb_reg_cause
: {59'h0,
_GEN_2
? 5'hF
: _GEN_3
? 5'hD
: {2'h0, _GEN_4 ? 3'h7 : _GEN_5 ? 3'h5 : {1'h1, _GEN_6, 1'h0}}}),
.io_pc (wb_reg_pc),
.io_tval
(wb_xcpt & (tval_any_addr | wb_reg_cause == 64'h2)
? {wb_reg_wdata[63:33] == 31'h0 | (&(wb_reg_wdata[63:33]))
? wb_reg_wdata[33]
: ~(wb_reg_wdata[32]),
wb_reg_wdata[32:0]}
: 34'h0),
.io_gva
(wb_xcpt & (tval_any_addr & _csr_io_status_v | ~wb_reg_xcpt & wb_reg_hls_or_dv)),
.io_time (_csr_io_time),
.io_fcsr_rm (io_fpu_fcsr_rm),
.io_fcsr_flags_valid (io_fpu_fcsr_flags_valid),
.io_fcsr_flags_bits
(io_fpu_fcsr_flags_valid ? io_fpu_fcsr_flags_bits : 5'h0),
.io_interrupt (_csr_io_interrupt),
.io_interrupt_cause (_csr_io_interrupt_cause),
.io_bp_0_control_action (_csr_io_bp_0_control_action),
.io_bp_0_control_tmatch (_csr_io_bp_0_control_tmatch),
.io_bp_0_control_x (_csr_io_bp_0_control_x),
.io_bp_0_control_w (_csr_io_bp_0_control_w),
.io_bp_0_control_r (_csr_io_bp_0_control_r),
.io_bp_0_address (_csr_io_bp_0_address),
.io_pmp_0_cfg_l (io_ptw_pmp_0_cfg_l),
.io_pmp_0_cfg_a (io_ptw_pmp_0_cfg_a),
.io_pmp_0_cfg_x (io_ptw_pmp_0_cfg_x),
.io_pmp_0_cfg_w (io_ptw_pmp_0_cfg_w),
.io_pmp_0_cfg_r (io_ptw_pmp_0_cfg_r),
.io_pmp_0_addr (io_ptw_pmp_0_addr),
.io_pmp_0_mask (io_ptw_pmp_0_mask),
.io_pmp_1_cfg_l (io_ptw_pmp_1_cfg_l),
.io_pmp_1_cfg_a (io_ptw_pmp_1_cfg_a),
.io_pmp_1_cfg_x (io_ptw_pmp_1_cfg_x),
.io_pmp_1_cfg_w (io_ptw_pmp_1_cfg_w),
.io_pmp_1_cfg_r (io_ptw_pmp_1_cfg_r),
.io_pmp_1_addr (io_ptw_pmp_1_addr),
.io_pmp_1_mask (io_ptw_pmp_1_mask),
.io_pmp_2_cfg_l (io_ptw_pmp_2_cfg_l),
.io_pmp_2_cfg_a (io_ptw_pmp_2_cfg_a),
.io_pmp_2_cfg_x (io_ptw_pmp_2_cfg_x),
.io_pmp_2_cfg_w (io_ptw_pmp_2_cfg_w),
.io_pmp_2_cfg_r (io_ptw_pmp_2_cfg_r),
.io_pmp_2_addr (io_ptw_pmp_2_addr),
.io_pmp_2_mask (io_ptw_pmp_2_mask),
.io_pmp_3_cfg_l (io_ptw_pmp_3_cfg_l),
.io_pmp_3_cfg_a (io_ptw_pmp_3_cfg_a),
.io_pmp_3_cfg_x (io_ptw_pmp_3_cfg_x),
.io_pmp_3_cfg_w (io_ptw_pmp_3_cfg_w),
.io_pmp_3_cfg_r (io_ptw_pmp_3_cfg_r),
.io_pmp_3_addr (io_ptw_pmp_3_addr),
.io_pmp_3_mask (io_ptw_pmp_3_mask),
.io_pmp_4_cfg_l (io_ptw_pmp_4_cfg_l),
.io_pmp_4_cfg_a (io_ptw_pmp_4_cfg_a),
.io_pmp_4_cfg_x (io_ptw_pmp_4_cfg_x),
.io_pmp_4_cfg_w (io_ptw_pmp_4_cfg_w),
.io_pmp_4_cfg_r (io_ptw_pmp_4_cfg_r),
.io_pmp_4_addr (io_ptw_pmp_4_addr),
.io_pmp_4_mask (io_ptw_pmp_4_mask),
.io_pmp_5_cfg_l (io_ptw_pmp_5_cfg_l),
.io_pmp_5_cfg_a (io_ptw_pmp_5_cfg_a),
.io_pmp_5_cfg_x (io_ptw_pmp_5_cfg_x),
.io_pmp_5_cfg_w (io_ptw_pmp_5_cfg_w),
.io_pmp_5_cfg_r (io_ptw_pmp_5_cfg_r),
.io_pmp_5_addr (io_ptw_pmp_5_addr),
.io_pmp_5_mask (io_ptw_pmp_5_mask),
.io_pmp_6_cfg_l (io_ptw_pmp_6_cfg_l),
.io_pmp_6_cfg_a (io_ptw_pmp_6_cfg_a),
.io_pmp_6_cfg_x (io_ptw_pmp_6_cfg_x),
.io_pmp_6_cfg_w (io_ptw_pmp_6_cfg_w),
.io_pmp_6_cfg_r (io_ptw_pmp_6_cfg_r),
.io_pmp_6_addr (io_ptw_pmp_6_addr),
.io_pmp_6_mask (io_ptw_pmp_6_mask),
.io_pmp_7_cfg_l (io_ptw_pmp_7_cfg_l),
.io_pmp_7_cfg_a (io_ptw_pmp_7_cfg_a),
.io_pmp_7_cfg_x (io_ptw_pmp_7_cfg_x),
.io_pmp_7_cfg_w (io_ptw_pmp_7_cfg_w),
.io_pmp_7_cfg_r (io_ptw_pmp_7_cfg_r),
.io_pmp_7_addr (io_ptw_pmp_7_addr),
.io_pmp_7_mask (io_ptw_pmp_7_mask),
.io_inhibit_cycle (_csr_io_inhibit_cycle),
.io_inst_0
({(&(wb_reg_raw_inst[1:0])) ? wb_reg_inst[31:16] : 16'h0, wb_reg_raw_inst[15:0]}),
.io_trace_0_valid (_csr_io_trace_0_valid),
.io_trace_0_iaddr (_csr_io_trace_0_iaddr),
.io_trace_0_insn (_csr_io_trace_0_insn),
.io_trace_0_exception (_csr_io_trace_0_exception),
.io_customCSRs_0_value (_csr_io_customCSRs_0_value)
);
BreakpointUnit bpu (
.io_status_debug (_csr_io_status_debug),
.io_bp_0_control_action (_csr_io_bp_0_control_action),
.io_bp_0_control_tmatch (_csr_io_bp_0_control_tmatch),
.io_bp_0_control_x (_csr_io_bp_0_control_x),
.io_bp_0_control_w (_csr_io_bp_0_control_w),
.io_bp_0_control_r (_csr_io_bp_0_control_r),
.io_bp_0_address (_csr_io_bp_0_address),
.io_pc (_ibuf_io_pc[32:0]),
.io_ea (mem_reg_wdata[32:0]),
.io_xcpt_if (_bpu_io_xcpt_if),
.io_xcpt_ld (_bpu_io_xcpt_ld),
.io_xcpt_st (_bpu_io_xcpt_st),
.io_debug_if (_bpu_io_debug_if),
.io_debug_ld (_bpu_io_debug_ld),
.io_debug_st (_bpu_io_debug_st)
);
RocketALU alu (
.io_dw (ex_ctrl_alu_dw),
.io_fn (ex_ctrl_alu_fn),
.io_in2
(ex_ctrl_sel_alu2 == 3'h1
? {{60{_ex_op2_T_1[3]}}, _ex_op2_T_1}
: ex_ctrl_sel_alu2 == 3'h3
? {{33{ex_imm_sign}},
_ex_imm_b4_1_T ? ex_reg_inst[30:20] : {11{ex_imm_sign}},
ex_ctrl_sel_imm != 3'h2 & ex_ctrl_sel_imm != 3'h3
? {8{ex_imm_sign}}
: ex_reg_inst[19:12],
~(_ex_imm_b4_1_T | _ex_imm_b0_T_4)
& (ex_ctrl_sel_imm == 3'h3
? ex_reg_inst[20]
: _ex_imm_b4_1_T_2 ? ex_reg_inst[7] : ex_imm_sign),
_ex_imm_b4_1_T | _ex_imm_b0_T_4 ? 6'h0 : ex_reg_inst[30:25],
_ex_imm_b4_1_T
? 4'h0
: _ex_imm_b0_T | _ex_imm_b4_1_T_2
? ex_reg_inst[11:8]
: _ex_imm_b0_T_4 ? ex_reg_inst[19:16] : ex_reg_inst[24:21],
_ex_imm_b0_T
? ex_reg_inst[7]
: ex_ctrl_sel_imm == 3'h4
? ex_reg_inst[20]
: _ex_imm_b0_T_4 & ex_reg_inst[15]}
: ex_ctrl_sel_alu2 == 3'h2 ? ex_rs_1 : 64'h0),
.io_in1 (_GEN_0[ex_ctrl_sel_alu1]),
.io_out (_alu_io_out),
.io_adder_out (_alu_io_adder_out),
.io_cmp_out (_alu_io_cmp_out)
);
MulDiv div (
.clock (clock),
.reset (reset),
.io_req_ready (_div_io_req_ready),
.io_req_valid (div_io_req_valid),
.io_req_bits_fn (ex_ctrl_alu_fn),
.io_req_bits_dw (ex_ctrl_alu_dw),
.io_req_bits_in1 (ex_rs_0),
.io_req_bits_in2 (ex_rs_1),
.io_req_bits_tag (ex_reg_inst[11:7]),
.io_kill (killm_common & div_io_kill_REG),
.io_resp_ready (_ll_arb_io_in_0_ready),
.io_resp_valid (_div_io_resp_valid),
.io_resp_bits_data (_div_io_resp_bits_data),
.io_resp_bits_tag (_div_io_resp_bits_tag)
);
Arbiter3_LLWB ll_arb (
.io_in_0_ready (_ll_arb_io_in_0_ready),
.io_in_0_valid (_div_io_resp_valid),
.io_in_0_bits_data (_div_io_resp_bits_data),
.io_in_0_bits_tag (_div_io_resp_bits_tag),
.io_out_ready (ll_arb_io_out_ready),
.io_out_valid (_ll_arb_io_out_valid),
.io_out_bits_data (_ll_arb_io_out_bits_data),
.io_out_bits_tag (_ll_arb_io_out_bits_tag)
);
PlusArgTimeout PlusArgTimeout (
.clock (clock),
.reset (reset),
.io_count (_csr_io_time[31:0])
);
assign io_imem_might_request = imem_might_request_reg;
assign io_imem_req_valid = ibuf_io_kill;
assign io_imem_req_bits_pc =
wb_xcpt | _csr_io_eret ? _csr_io_evec : _replay_wb_T ? wb_reg_pc : mem_npc;
assign io_imem_req_bits_speculative = ~take_pc_wb;
assign io_imem_btb_update_valid =
mem_reg_valid & ~take_pc_wb
& (ex_pc_valid
? mem_npc != ex_reg_pc
: ~(_ibuf_io_inst_0_valid | io_imem_resp_valid) | mem_npc != _ibuf_io_pc)
& (~(mem_ctrl_branch | mem_ctrl_jalr | mem_ctrl_jal) | mem_cfi_taken);
assign io_imem_bht_update_valid = mem_reg_valid & ~take_pc_wb;
assign io_imem_flush_icache = wb_reg_valid & wb_ctrl_fence_i & ~io_dmem_s2_nack;
assign io_dmem_req_valid = io_dmem_req_valid_0;
assign io_dmem_req_bits_addr =
{ex_rs_0[63:33] == 31'h0 | (&(ex_rs_0[63:33]))
? _alu_io_adder_out[33]
: ~(_alu_io_adder_out[32]),
_alu_io_adder_out[32:0]};
assign io_dmem_req_bits_tag = {1'h0, ex_reg_inst[11:7], ex_ctrl_fp};
assign io_dmem_req_bits_cmd = ex_ctrl_mem_cmd;
assign io_dmem_req_bits_size = ex_reg_mem_size;
assign io_dmem_req_bits_signed = ~(ex_reg_inst[14]);
assign io_dmem_s1_kill = killm_common | mem_ldst_xcpt | fpu_kill_mem;
assign io_dmem_s1_data_data = mem_ctrl_fp ? io_fpu_store_data : mem_reg_rs2;
assign io_ptw_status_debug = _csr_io_status_debug;
assign io_ptw_customCSRs_csrs_0_value = _csr_io_customCSRs_0_value;
assign io_fpu_inst = _ibuf_io_inst_0_bits_inst_bits;
assign io_fpu_fromint_data = ex_rs_0;
assign io_fpu_ll_resp_val = dmem_resp_valid & io_dmem_resp_bits_tag[0];
assign io_fpu_ll_resp_type = {1'h0, io_dmem_resp_bits_size};
assign io_fpu_ll_resp_tag = io_dmem_resp_bits_tag[5:1];
assign io_fpu_ll_resp_data = io_dmem_resp_bits_data_word_bypass;
assign io_fpu_valid = ~ctrl_killd & id_ctrl_fp;
assign io_fpu_killx = ctrl_killx;
assign io_fpu_killm = killm_common;
endmodule