This pull request fixes a bug which caused some memory reads by the execution unit to return 0 if a DMA device accesses a memory-mapped I/O address in the same clock cycle.
The execution unit code now checks the eu_per_en signal instead of the per_en to decide whether it needs to access the peripheral data output bus. (The latter signal is high when a DMA device accesses a MMIO address, while the former is only high if the execution unit initiates the access.)
The pull request also contains a test for this fix.
This pull request fixes a bug which caused some memory reads by the execution unit to return 0 if a DMA device accesses a memory-mapped I/O address in the same clock cycle.
The execution unit code now checks the
eu_per_en
signal instead of theper_en
to decide whether it needs to access the peripheral data output bus. (The latter signal is high when a DMA device accesses a MMIO address, while the former is only high if the execution unit initiates the access.)The pull request also contains a test for this fix.