Hi everyone!
Here is the first version of the controller I’ve been working on for the PSRAM, which I’ve now refocused for Jesus's shield.
https://github.com/cavearr/psram_phy
I think if we start developing things for the shield, we should probably open separate threads to make it easier to follow.
Back to the PSRAM: this is going to give us superpowers! We have 8MBytes of memory on the shield, and based on my tests, access is relatively decent. If we use a BRAM cache in front of it... things get very interesting for many applications.
The module I’m sharing supports:
SINGLE Mode: 1 word of 32 bits, 1 bit at a time.
QUAD Mode: 4 bits at a time.
BURST Mode (SINGLE and QUAD): I’ve set this up like a DMA with a destination BRAM. Basically, you tell the memory "copy X bytes from this BRAM address to the PSRAM" (or vice versa), and it flies (it's blazing fast).
I’ve also added CDC (Clock Domain Crossing) support. This means the system can run at one speed and the PSRAM at another. I’ve tested with non-integer ratios, for example, the system at 12MHz and the PSRAM at 80MHz or 100MHz.
This is the first version and it's pure Verilog. Once it stabilizes a bit more, I’ll make some blocks for Icestudio.
The tests I’m sharing are simple; it’s fresh out of the oven and might have bugs. However, testing gave me a feeling of robustness—I don't know if it's because it took a lot of effort to get it running and I debugged it so much that it feels solid, or if it really turned out robust XD.
In any case, I think it’s a great first step to do cool things with the shield. I’ll keep working on it this weekend and try more complex stuff (maybe a video framebuffer), so bugs will likely pop up. But here it is in case anyone is curious or wants to start testing.
If you don't have the shield but find the idea interesting: I had actually been working on this for a few weeks before Jesus's shield came up (planetary alignment!). I was using a home-made prototype with a Lyontek PSRAM and a generic SMD breakout board. I’m attaching a photo—it’s very easy to build, just plug it into a breadboard and play.

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/b19cf6b0-8dc1-4d35-be33-00d687618cc3n%40googlegroups.com.