// Generated by CIRCT firtool-1.139.0 module Frontend( input clock, reset, io_redirectValid, input [63:0] io_redirectPc, output io_imemReqValid, output [63:0] io_imemReqAddr, input io_imemRespValid, input [31:0] io_imemRespBits_0, io_imemRespBits_1, input io_outReady, output io_outValid, output [63:0] io_out_pc, output [31:0] io_out_inst_0, io_out_inst_1, output io_out_laneValid_0, io_out_laneValid_1 ); wire _icache_io_respValid; wire [63:0] _icache_io_resp_pc; wire _icache_io_resp_laneValid_0; wire _icache_io_resp_laneValid_1; reg [63:0] pc; always @(posedge clock) begin if (reset) pc <= 64'h80000000; else if (io_redirectValid) pc <= io_redirectPc; else if (_icache_io_respValid & io_outReady) pc <= _icache_io_resp_pc + {60'h0, {1'h0, _icache_io_resp_laneValid_0} + {1'h0, _icache_io_resp_laneValid_1}, 2'h0}; end // always @(posedge) ICache icache ( .clock (clock), .reset (reset), .io_reqAddr (pc), .io_reqPc (pc), .io_flush (io_redirectValid), .io_respReady (io_outReady), .io_memReqValid (io_imemReqValid), .io_memReqAddr (io_imemReqAddr), .io_memRespValid (io_imemRespValid), .io_memRespBits_0 (io_imemRespBits_0), .io_memRespBits_1 (io_imemRespBits_1), .io_respValid (_icache_io_respValid), .io_resp_pc (_icache_io_resp_pc), .io_resp_inst_0 (io_out_inst_0), .io_resp_inst_1 (io_out_inst_1), .io_resp_laneValid_0 (_icache_io_resp_laneValid_0), .io_resp_laneValid_1 (_icache_io_resp_laneValid_1) ); assign io_outValid = _icache_io_respValid; assign io_out_pc = _icache_io_resp_pc; assign io_out_laneValid_0 = _icache_io_resp_laneValid_0; assign io_out_laneValid_1 = _icache_io_resp_laneValid_1; endmodule