On May 13, 10:13*pm, bigca...@gmail.com wrote:
> Dear All:
>
> I am thinking about my system, the picture is here:
>
> http://www.flickr.com/photos/2691408...43109/sizes/l/
>
> I want to transfer the raw/processed image sensor data to USB 2.0 or
> dpram.
>
> Two choices:
>
> 1. ADC -> DSP, this means parallel ADC, then DSP processed data ->
> USB, FPGA works as a coprocessor, use FPGA's DSP (difficult), FPGA-
>
> >DPRAM
>
> 2. ADC -> FPGA, this means serial ADC or whatever, then FPGA<----
> EMIF---->DSP processed data, data feedbacked from DSP to FPGA -> USB,
> DSP works as a coprocessor.
> In choice 2, the USB could also connect from DSP but this will
> accelerate processed data transfer, decelerate the raw data transfer.
>
> Other questions:
>
> I also need to store raw data, thus the data saving path will be
> different:
> Choice 1: the raw data will be from ADC -> DSP -> FLASH
> Choice 2: the raw data will be from ADC -> FPGA -> FLASH (Is Flash
> good for fast data saving, or use EEPROM instead?)
>
> It will meet the same question when I save processed data on board.
>
> The last question is FIFO vs. DPRAM, FIFO could be implemented in
> FPGA, could DPRAM be implemented in FPGA? the DPRAM has more
> flexibility for sure.
>
> Thanks!
It would be easier to interface your ADC channel(s) to the
FPGA. You
could then capture the data in your
FPGA and store the samples or
frames to an external memory like SDRAM/ZBT SRAM (to offer a larger
storage capacity than FIFO/DPRAM). It would be relatively easy to
implement your ADC control in the
FPGA.
Then your
FPGA would be connected to the EMIF_A, and the DSP would
access the
FPGA like an external "memory device". You can have a look
at the Xilinx application note XAPP753:
http://www.xilinx.com/support/docume...es/xapp753.pdf
Your DSP would ideally have a dedicated bank of SDRAM, and also be
connected to the Flash memory that would be used to store your DSP
bootloader,
FPGA bitstream and even your application. This would allow
you to have a standalone system if required and it may also be
possible to store some user data in Flash. However, I would recommend
to use a microSD socket/Flash if you wish to store some of your data,
or directly use the external memory devices attached to the DSP and
the
FPGA since they may be faster and give you better performance.
You could use a USB chip directly interface to the DSP, and then
transfer data fast. But you may not reach more than 20-40MB/s using a
USB. If your application requires a faster throughput ot the host, you
may have to consider PCI/PCI-64 or similar systems.
Such solutions exist off the shelf from COTS hardware vendors. I would
recommend that you have a look at the exisiting solutions before
starting such a design.
- Sebatsien
www.sundance.com