pop signal is driven by a combinational loop, here is the path I collected from verilator:
buf:pop -> core: icache_wb_ready -> icache: wb_hit -> fetch:cache_stall ->fetch: uncached_inst_read -> core: icache_wb_req -> buf: o_valid -> buf:pop
one solution might be flop the pop signal as pop_r, and use pop_r as the drive for others.
Combinational loops are not always bugs. What functional issues does this look cause?