core: Remove fetch2 pipeline stage
authorPaul Mackerras <paulus@ozlabs.org>
Sun, 10 May 2020 08:18:03 +0000 (18:18 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Sat, 13 Jun 2020 10:07:50 +0000 (20:07 +1000)
commitb5a7dbb78dff640ee18b6662ea007a946a4ebb09
tree7b7a963ffc29eaa45c924c9970bd66bb804422f9
parent49a4d9f67a21438a4af703027baa72211409857a
core: Remove fetch2 pipeline stage

The fetch2 stage existed primarily to provide a stash buffer for the
output of icache when a stall occurred.  However, we can get the same
effect -- of having the input to decode1 stay unchanged on a stall
cycle -- by using the read enable of the BRAMs in icache, and by
adding logic to keep the outputs unchanged on a clock cycle when
stall_in = 1.  This reduces branch and interrupt latency by one
cycle.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Makefile
common.vhdl
core.vhdl
decode1.vhdl
fetch2.vhdl [deleted file]
icache.vhdl
icache_tb.vhdl
microwatt.core