dcache: Implement the dcbz instruction
authorPaul Mackerras <paulus@ozlabs.org>
Tue, 28 Apr 2020 08:11:52 +0000 (18:11 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Tue, 28 Apr 2020 22:15:22 +0000 (08:15 +1000)
commit041d6bef60956849364c1540e7eecb6fdca77497
treebc74e85e4f196f5a914cb9fb6f76f05037a88d72
parent167e37d6675136d26acdb6f7aba0a7f7ad1e60d8
dcache: Implement the dcbz instruction

This adds logic to dcache and loadstore1 to implement dcbz.  For now
it zeroes a single cache line (by default 64 bytes), not 128 bytes
like IBM Power processors do.

The dcbz operation is performed much like a load miss, except that
we are writing zeroes to memory instead of reading.  As each ack
comes back, we write zeroes to the BRAM instead of data from memory.
In this way we zero the line in memory and also zero the line of
cache memory, establishing the line in the cache if it wasn't already
resident.  If it was already resident then we overwrite the existing
line in the cache.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
common.vhdl
dcache.vhdl
decode1.vhdl
loadstore1.vhdl