hughperkins / VeriGPU

OpenSource GPU, in Verilog, loosely based on RISC-V ISA
MIT License
828 stars 93 forks source link

DDR4 Controller #3

Open hughperkins opened 2 years ago

hughperkins commented 2 years ago

We need a DDR4 Controller, to manage global memory, which sits in DDR chips, separate from the main GPU chip.

The DDR4 Controller will be used to copy data to and from the GPU global memory, in order to populate shared memory, caches and similar on the GPU chip itself; and in order for the GPU to be able to write data back to global memory. For now, we will assume that all communications are with a single GPU Controller module on the GPU die. For example, we will assume for now that any data copied from mainboard main memory to GPU global memory will pass via the GPU controller.

What we need for VeriGPU:

Screen Shot 2022-04-07 at 6 06 10 PM

Bear in mind that tape-out at 5nm costs $250M or so, so we want things to work first time. Therefore verification is important :)

mithro commented 2 years ago

You might find the following resources interesting;

Google has continued to work heavily with Antmicro to push forward the state of open source memory controller solutions. Our current focus has been around making sure we are able to explore current issues around RowHammer. See the following links;

While the memory controller is being actively developed on FPGAs, we have also started work on making sure that it can also be used in ASIC solutions. The current plan is to do tape outs of this controller in both SKY130 and GF12LP technologies in 2022 using only open source tooling like OpenROAD for the digital blocks. This means we will also need open source PHYs to make this possible and are actively working to build out that area too.

Also take a look at https://github.com/waviousllc/wav-lpddr-hw

mithro commented 2 years ago

There are also multiple examples of integrating LiteDRAM into non-Migen designs (like MicroWatt).