Home

Awesome

OpenHW Core-V High-Performance L1 Dcache (CV-HPDcache)

HPDcache CI

The HPDcache is an open-source High-Performance, Multi-requester, Out-of-Order L1 Dcache for RISC-V cores and accelerators.

Directory Structure

<table> <tr> <th style="text-align:left;width:20%">Directory</th> <th style="text-align:left">Description</th> </tr> <tr> <td>rtl</td> <td>Contains the file lists to be used for the compiling of the HPDcache</td> </tr> <tr> <td>rtl/src</td> <td>Contains the SystemVerilog RTL sources of the HPDcache</td> </tr> <tr> <td>rtl/lint</td> <td>Contains a linter wrapper and a Mafile to run a lint tool on the RTL</td> </tr> <tr> <td>rtl/tb</td> <td>Contains a HPDcache standalone testbench for validation of the RTL</td> </tr> <tr> <td>docs</td> <td>Contains documentation of the HPDcache</td> </tr> </table>

Documentation

The HPDcache User Guide document can be found in the docs folder. It is written in reStructuredText format.

If you need to compile the User Guide document, a dedicated Makefile is in the docs folder.

You can find some pre-compiled User Guide documents (in both HTML or PDF) in Releases

Licensing

The HPDcache is released under the Solderpad Hardware License (version 2.1). Please refer to the LICENSE file for further information.

Integration Examples of the HPDcache

CVA6

The HPDcache is integrated with the CVA6 core. The HPDcache repository (this repository) is included as a submodule of the CVA6 Git. After you clone the CVA6 repository, be sure to pass the config_pkg::HPDCACHE value to the DCacheType parameter. This selects the HPDcache as the L1 Data Cache of the core. For example, the CVA6 configuration package cv64a6_imafdc_sv39_hpdcache_config_pkg.sv does this.

The HPDcache is instantiated in the cva6_hpdcache_subsystem.sv file. You may take a look if you want to integrate the HPDcache with another core.

Integration Template

You may look into the docs/lint subdirectory of this repository to see an integration example of the HPDcache (hpdcache_lint.sv).

This example uses the macros defined in the hpdcache_typedef.svh file. These macros ease the definition of types required by the interface of the HPDcache module.

HPDcache Validation and Verification

For a complete UVM testbench of the HPDcache, please see the HPDcache Verif repository.

There is another simpler testbench (hence not as complete as the one above) into the rtl/tb subdirectory of this repository . This testbench is compatible with the Verilator simulation tool.

HPDcache Publications & Tutorials