Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Dear asmer,
If you have to stay with your FPGA and have no other alternative, then you need to start thinking about a way to slow down the flow of data.
One quick idea, it to find a high speed FIFO, with 1GHz, it will be really difficult, but if you find a FIFO that has the possibility to change the data width of the information. According to the datasheet for the component, the output of the ADC is 16 bits LVDS at max 500 MHz. By putting a 16/32 FIFO between the ADC and your FPGA, your datarate will go down to 250 MHz. It maybe OK for your FPGA to handle, but I would really look for something else if I was you.
Todays FPGAs can handle up to 650MHz datarate, I would deffinitely go for a faster FPGA, then you connect the FPGA pins to the output of the ADC directly, it will be a much cleaner design with the minimum amount of components on that board.
There are other way to slve this, depending on what you want to do with the captured data, 1G Bytes of information is a hell of a lot and you need a really big FPGA or a gigantic memory of you want to do any signal processing on it. And big FPGAs today, can handle really high speed LVDS signals and 500MHz data rate will not be a big problem for them.
You can use a highspeed demux, Atmel makes one that will take 10bits LVDS at 1GHz in 1:8 mode, or 2GHz input in 1:4 mode. That will get your input freq to the FPGA down to 125Mhz or 250MHz...
Dear Asmer,
I think you can easily connect your ADC to your Virtex-E device. If you are designing a new PCB, then with good layout work, you can connect the output of the ADC to our FPGA and internally use a 1:2 or 1:4 to lower the data flow to 250 or 125MHz.
You can do that in 2 steps, the first step is to create a demux, as close to the pin as possible, and then send that data to a CLB based FIFO created by the coregen and it will create a 64bits @ 125MHz that is pretty easy to handle inside the V200E device. One additional help is to add a register immediately after the FIFO to make the P&R program a change to handle the data flow easier.
One good example on how to use internal memory of Virtex devices in Data-Width converion is this applications note:
Hello!
I have the same task: 8 bit 1Ghz ADC + FPGA. I'm going to use demux. But I need in REAL TIME DSP functions. Is it possible to realise math functions <,>,+,*, and FIR working with 64bit samples, as if it is 8 bit samples?
Many thanks!
The Xilinx Virtex-4 and Virtex-5 can input 1 gigabit/sec per differential input, so you may be able to connect your ADC directly to the FPGA. Inside the FPGA, you could split the data into several parallel paths, and process them at a comfortable clock rate.
Why would you want to use 64-bit math if your data is only 8-bit?
Thank you for reply, echo47!
I know, that Virtex-4 and Virtex-5 like StratixII, StratixIII can input > 1 gigabit/sec, but they are rather expensive. In my plans use low costs Cyclone/Spartan FPGAs with 840Mbps LVDS inputs, so I use 1:2 demux.
It's a good idea of splitting data into several parallel paths, and process them at a comfortable clock rate, as you wrote. But I have confronted with a problem, how to realise this(e.g. how to filter or compare data distributed in different path in real time with immediate result?). Please, recommend me any literature, examples or reference designs about it, if know
You probably should design your signal processing algorithm using only modules that are easily implemented with parallel processing. For example, a FIR filter uses a sum-of-products that is relatively easy to split into parallel sections. However, an IIR filter is recursive and could be trouble. I haven't seen any great books on this subject. Maybe you can find some inspiration here:
"DSP: Designing for Optimal Results"
**broken link removed**
Do you plan to output 1 gigabyte/sec from the FPGA, or will it be doing some sort of bandwidth reduction?
I don't know your application, but just in case your ADC input is narrow-bandwidth .... Don't overkill by sampling a narrow-bandwidth signal at HighestFrequency*2. A sample rate of bandwidth*2 is sufficient. (Well, maybe a little faster than *2, of course.)
Hopefully your DSP algorithm isn't very complex. In a Spartan-* or Cyclone-* FPGA, multiply-accumulate operations run about 150 MHz to 250 MHz. To achieve 1 GHz data rate, the parallel processing will consume FPGA resources quickly.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.