Looks like icap clk from the pll is shared with the frontend clock. So instead I opted to divide the icap clk down inside s6_icap_wb.v. The image checked in reset reliably after many trials, which is a good sign that this may be an acceptable fix.