I am in the early design stages of an FPGA-based audio / video stream source and sink. The FPGA board will be an ethernet node that will accept digitized video from a local video camera for compression as well as digitized audio. The compressed video/audio stream will be streamed out over ethernet. Simultaneously, the FPGA board will accept via incoming ethernet a compressed video/audio stream which will be decompressed and sent to a video DAC for display on a local screen.
My question is about the RAM design for the system - RAM will be needed for (1) storage & decompression of video/audio, (2) for storage and compression of audio/video, (3) a memory for the local display (really just the output from the decompression system), and (4) RAM for microblaze embedded processor. The target FPGA is Spartan 3. I was hoping to use generic DDR RAM. So there are 3 or maybe 4 subsystems competing for RAM bandwidth. Is it likely that such a design will require separate RAM for the input and output sides? What about dual port RAM? On the display side, is dual port RAM generally needed where there is contention for the RAM between a video controller reading out pixels and video decompression of an input stream to generate those pixels? What about the microblaze? I would think it would be the most tolerant of sharing of RAM bandwidth, given that wait states may be needed if the RAM is busy.
All suggestions are much appreciated. Thanks, Doug Jones