kuznia-rdzeni / coreblocks

RISC-V out-of-order core for education and research purposes
https://kuznia-rdzeni.github.io/coreblocks/
BSD 3-Clause "New" or "Revised" License
38 stars 16 forks source link

Register file using synchronous memory #737

Open tilk opened 1 month ago

tilk commented 1 month ago

Efficient register file implementation on FPGAs requires the use of block RAM, which is synchronous. Currently register reads are asynchronous: the register values are read during the RS insertion phase. Synchronous register reads could be implemented using a MemoryBank with reads initiated during RS selection and completed during RS insertion.

To materialize the gain, #734 needs to be implemented, as the register file has three ports - too much for a single block RAM.