Fix XIF ID increment logic (#393)
Created by: michael-platzer
This is a patch for issue #393 (closed).
The IF stage increments XIF instruction IDs when the issue_valid
signal of the XIF issue interface is asserted. However, if the ID stage
is stalled but the instruction currently held in it has been offloaded
and already accepted by the coprocessor, then issue_valid
signal is no
longer asserted and thus the same instruction ID is reused for the next
offloaded instruction.
This patch fixes the problem by introducing a new signal that indicates whether the instruction currently held in the ID stage is being offloaded, with that signal remaining asserted if the coprocessor has already accepted an instruction. The new signal informs the IF stage whether the instruction currently in ID is being offloaded, in which case the instruction ID is incremented.