This project implements a quad-core cache coherency system using the MESI (Modified, Exclusive, Shared, Invalid) protocol. It ensures data consistency across multiple L1 caches while optimizing memory accesses. The system follows a write-through policy from L1 caches to the Cache Coherence Unit (CCU) and a write-back policy from L2 cache to main memory.
The system consists of the following components:
- 4 L1 Cache Controllers – Each core has a private L1 cache that follows the MESI protocol.
- FIFO – Handles memory request buffering.
- Arbiter – Manages access to the shared communication bus.
- Cache Coherence Unit (CCU) – Ensures cache coherence using MESI.
- L2 Cache Controller – A shared L2 cache that stores data before accessing main memory.
- Main Memory – Stores data permanently, accessed via L2 cache.
- Write-Through (L1 to CCU) – Ensures that writes are immediately updated in the CCU.
- Write-Back (L2 to Main Memory) – Reduces memory traffic by writing only when a cache block is evicted.
The design has been tested using:
- Vivado Simulation – RTL-level verification for functional correctness.
- UVM (Universal Verification Methodology) – Comprehensive testing using constrained-random verification and coverage analysis.
- Install Vivado for RTL simulation and synthesis.
- Install SystemVerilog UVM for verification.
- Load the source files into Vivado.
- Run the Vivado simulation to verify functionality.
- Use UVM-based testbenches for advanced verification.
- Muhammad Zeeshan Malik – Design and Verification
- Abeera Adnan – Design and Verification