This module implements a write-back blocking cache that you can instantiate several times with different parameters to build up a full memory hierarchy. This cache module is compatible with bus snooping.
The cache module has two different sides. The side connected to the CPU (or to a lower level cache) and the side connected to the memory (or to a higher level cache). For the purpose of this documentation we’ll consider the port on the cpu side inCPU and outCPU as port connected to a cpu, and the port on the memory side inMEM and outMEM as memory ports as shown on the figure below.
The cache module has a dedicated pair of port on each side, to receive requests and send answers on the cpu side, and to send request and receive answers on the memory side.