Re: Capture 10 sec with 25 MSamples/s (4 - 8 Bits)... how to do ?



I am not clear on your requirements for reading the data once you
capture it. In one place you mention slow reading of the data by an
AVR but with the USB you talk like the data must be read at the full 25
MB/s rate.

If you need a high speed interface to a PC, you may need to either use
USB or PCI. I did a design once that captured data at up to 50 MSPS
with samples up to 8 bits wide on a PCI card. We used an FPGA, a four
bank SDRAM and a PCI interface chip. Data was buffered to make a 32
bit word which was written to memory at 33 MHz (the PCI rate). FIFO
buffers isolated the two clock rates and allowed transfers to SDRAM to
be bursted since you transfer data on every clock cycle only after some
setup. Once a bank was full, the writing moved to the next bank and
the first bank was read out through the PCI chip by the PC and written
to a RAID drive. This was pretty good for 10 years ago in a standard
PC running Windows2K.

The SDRAM controller was done in the same FPGA and refresh was not at
all hard to do. As someone else said, if you access all rows within
the refresh period, either 2, 4, 8 or 16 ms depending on the chips,
then you don't need to refresh it. Just read the SDRAM data sheet
carefully. A memory controller is not at all hard.

The size of memory that you need is not all that large. 256 MB is just
one module or maybe just two chips. If you were doing the software, I
think I could have the board designed in a couple of weeks ready for
layout and have the FPGA code done before the assembled boards were in
house. It really is not all that hard of a design.

I expect the memory module is a bad idea because the interface is very
high speed and hard to design to. They are pushing the limits of
commercial design and fabrication to get >400 MHz busses to work
reliably with multiple memory module types. It would be difficult to
meet all the SI issues with a custom board in a standard motherboard
memory slot I think.

Another interface you might consider is the ATA disk drive interface.
They run at speeds from 33 MB/s up to >=133 MB/s. Parallel ATA is
still very common and not hard to use at your speeds. Serial ATA is
available and offers much higher data rates with a very small cable. I
don't know much about how hard it is to design to. I don't know that
standard FPGAs will directly support SATA.


Martin Maurer wrote:
Hello,

i am in the need to capture around 10 seconds (ok, 5 to 8 seconds would also
be enough) with 25 MSamples / s. Each sample should be 4 to 8 digital lines.
It would be nice if i can use an external clock.

But how to do this ? The amount of data for 10s * 25 MSamples / s * 1 Byte =
250 MByte. So it is not a small amount !?!

So at the moment i have 3 ideas to solve this:

1) FPGA with SRAM: SRAM in this size is expensive.

2) FPGA with DRAM. I think i saw a page where a DRAM was connected to an
AVR. AVR can handle only static RAM. But i think i need an dram memory
controller for doing the refresh. Are there ready to use chips or programmed
CPLD's or FPGA solutions which can do this ? So i can put a second FPGA (or
even the same) to collect the data very fast and i read them out via PC in a
slow way.

3) I found digitial IO card with PCI interface. But usually they are using
io access, to the bandwidth is very limited (don't reach the 25 MByte/s).
Are there faster memory accessable IO card, which can transfer 25 MBytes/s
into pc memory ? I think i must forget the external clock, because PC is not
synchronitzed to external clock... Are there much faster ones ? E.g. with 50
MHz ?

4) Another new idea: Do you think it is possible to add a own build memory
module (DIMM), but instead of memory modules, add own circutry to external
world. I think then you can do some kind of memcpy from one module the real
main memory. Found a news article where such an idea was realized to connect
an FPGA to a PC and do crypt algorithms. But they used a modified linux,
because OS isn't allowed to use the memory area.

5) USB 2.0 (high speed) board, but i think also there it is very difficult
to reach / sample with 25 MByte/s...

What do you think about this ? Any other solutions ?

Regards,

Martin

.



Relevant Pages

  • Re: Xilinx 3s8000?
    ... first to factor an RSA number using a standalone FPGA development ... the design requires far more LUTs than are currently available ... I presently have Xilinx xc3s500e and Actel ... has encountered a memory conflict. ...
    (comp.arch.fpga)
  • Re: FPGA Selection Question
    ... Some considerations as I'm working on a similar design. ... I assume that you will demux the incoming datastream to 125MHz @16bit. ... This datastream can be fed to the DDR memory (also running at 125MHz - ... want to interface this to a FPGA, then place the samples into a DDR ...
    (comp.arch.fpga)
  • Re: Fusion & CoreMP7 versus standard microcontroller
    ... Fusion the design has more to do with embedded system design than ... softcore FPGA based design concepts. ... The Actel system with the Fusion ... The code memory usually cannot fit on chip, ...
    (comp.arch.embedded)
  • Re: 66MIPS 8bit microcontroller
    ... The FPSLIC runs at 40 MHz and has max 32 kB code memory and no external bus. ... It's pretty simple to knock over a FPGA on Priceand Icc, ... Plus, it skews design decisions. ... course there are the complications of any combination of FPGA and CPU ...
    (comp.arch.embedded)
  • Re: Problems with Marvell PXA320 using CS0 and CS1
    ... I was guessing that there might be a bug in the FPGA code. ... let's say that somewhere in the range of memory ... When caching is on, you get something back, presumably ... If we have caching turned on we can write to the second bank (CS1) ...
    (microsoft.public.windowsce.platbuilder)