fix: resolve OoO simulation timeout
This commit is contained in:
62
generated-ooo/Frontend.sv
Normal file
62
generated-ooo/Frontend.sv
Normal file
@@ -0,0 +1,62 @@
|
||||
// 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
|
||||
|
||||
Reference in New Issue
Block a user