-
Olof Kindgren authored
Combinatorial processes without explicit XXX can cause circular dependencies which causes simulators to endlessly reschedule a loop. Different tools have different heuristics for detecting this and breaking up loops. This isn't an exact science, but the following changes seems to avoid an endless loop under Vivado XSim. Note: There is a small behavioural change in the code: If `ax_valid` is asserted while `ax_select >= NoMstPorts` (where `x` is `r` or `w`), the behaviour is undefined. In the old code this would just not assert the `ax_ready` flag. This is only an issue if `ax_select` for some reason gets out of bound, which probably causes other issues. On the upside, the new code likely uses slightly less logic. If the old behaviour is required, a check to see that the select signal is in range could be added. Alternatively, this could be added as an assertion. Signed-off-by:
Olof Kindgren <olof.kindgren@gmail.com>
e1722178
To find the state of this project's repository at the time of any of these versions, check out the tags.