Close

Memory Selection

A project log for HDMI FPGA FeatherWing

A Lattice ECP5 FPGA with DDR3 RAM and 1080p HDMI in a Feather form factor.

brian-gilbertBrian Gilbert 11/17/2019 at 05:090 Comments

I've been looking into memory options for the system. To be specific, I want some RAM for storing image data, so it needs to be fast and plentiful.

Since I'm aiming for RGBA8888 graphics capabilities, it was logical to look for 32-bit memory. Options are limited in this space, but I found some 4Mx32 SDRAM for a reasonable price. This could hold two entire frames of 1920x1080, operates at 166MHz, and could make for a decent system. But, 32-bit architecture means 32 traces to route on my board. If I'm going to fit this on a 4-layer board, that's not going to be a trivial matter.

Next, I looked at some of the DDR options. Speeds increase (good), and since it reads on the rising and falling edges of the clock, a 16-bit word size can still read 32-bits-per-clock-cycle. This will still let me read 32-bits-per-pixel no problem, and memory becomes cheaper in more abundance as a result. This DDR2 memory would work really well, and at clock speeds of 400 MHz, the ECP5 will have nearly-instant access to any data it needs.

Turns out that looking at other designs, most go with DDR3 memory. At speeds of 667MHz or more, this memory certain outperforms what I need it to do, but remarkably the memory is actually cheaper in addition to being faster. As a result, I'm ultimately going to settle on something like this Winbond DDR3 chip. The faster speed might not help functionally, but it will more forgiving of slight mismatches in trace lengths when I route the PCB. As long as the clk traces are equal to or slightly longer than the rest of my traces, the address bits should all be present together at the memory IC.

For the other designs I mentioned above, look no further than these two dev boards, one official dev board by Lattice and another unofficial dev board designed for college students. Another example that is all too similiar to this FeatherWing (but still different) is the Orange Crab board by Greg Davill. All of these include DDR3 memory, so it will be useful to keep some compatibility to make code more easily portable.

Discussions