FIR Filter cores for Virtex-][

Hello All, I'd like to know if the generally held advice that Distributed Arithmetic (DA) filters are the "best" way to implement FIR filters on an FPGA still holds good when one uses a Virtex-][. In my application, I require a 256-tap filter which takes in

18-bit samples at 50 MSPS and decimates it down to 10 MSPS (coeffs are 16-bit). I use an XC2V3000. Currently, we don't have the hardware required to synthesize the complete design (not enough memory), so I've synthesized just the filter with a simple testbench. It turns out that MAC FIR filters require far less resources than a DA-FIR one with an equivalent spec. Could this be due to Virtex-]['s multipliers or is this some quirk I'm not taking into account? Thanks in advance. -Jim.
Reply to
Jim George
Loading thread data ...

You should definitely use the multipliers if you are using a V2. Why burn up the fabric with DA logic if you have unused, fast, embedded multipliers? If your output sample rate is 10Msps, then you should only need 256 * 10/200 multipliers, where 200MHz is the estimated pipeline multiplier speed. You will need about the same number of adders and you will accumulate over

200/10=20 cycles. You will need to store 20 coeffs for each multiplier, which you can do with LUT RAMs or with blockRAMs if you have extra. If the coeffs are symmetric, you can halve the number of multipliers required (if you are short) by adding symmetry adders in the CLB fabric.

-Kevin

Reply to
Kevin Neilson

--

--Ray Andraka, P.E. President, the Andraka Consulting Group, Inc.

401/884-7930 Fax 401/884-7950 email snipped-for-privacy@andraka.com
formatting link

"They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin, 1759

Reply to
Ray Andraka

Reply to
Jim George

Ah yes, without placement, the DA filters, especially with parallel bits don't fare well with the place and route tools. I've got a design I'm putting the finishing touches on right now that has DA filters implemented in a 2V3000-4 (stepping 0). It has 30 bit coefficients, and in some places up to 40 bits arithmetic. I have no problem getting to to run at a 160 MHz clock in the -4 part. The areas I have had timing difficulties are in routing to-from the brams that are used as delay queues, mostly because I was too lazy to place them and the placer does a lousy job placing brams. Anyway, in this case, using multipliers would have required a bigger part. The multipliers in the stepping 0 devices can't be clocked at 160 MHz, plus due to the data widths I'd need to use four multiplies to complete each multiplication. In this design, the DA approach was a clear winner.

There is a data order> Thanks for the quick answers. From what I've seen, the DA filter (with

--

--Ray Andraka, P.E. President, the Andraka Consulting Group, Inc.

401/884-7930 Fax 401/884-7950 email snipped-for-privacy@andraka.com
formatting link

"They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin, 1759

Reply to
Ray Andraka

This may be sheer laziness, but how do I find out the stepping of a V2? I had worked out a design where I ran a MAC-based filter at 130 MHz, I hope my V2's multipliers (-5 grade) can take it. I'm not looking at very large precision, so I wont need multiple passes through the multipliers. -Jim.

fare well with the place and route

has DA filters implemented in a 2V3000-4

arithmetic. I have no problem getting to

difficulties are in routing to-from the brams

the placer does a lousy job placing

part. The multipliers in the stepping 0

use four multiplies to complete each

similar quirk with a DA filter if you are

won't fix.

>
Reply to
Jim George

You can do well over 180MHz with the multipliers (registered version) in a -5. You have to layout the in/outs precisely and force very specific routing via timing constraints. Check out XAPP636

formatting link

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Euredjian

To send private email:
0_0_0_0_@pacbell.net
where
"0_0_0_0_"  =  "martineu"
Reply to
Martin Euredjian

don't fare well with the place and route

that has DA filters implemented in a 2V3000-4

arithmetic. I have no problem getting to

difficulties are in routing to-from the brams

and the placer does a lousy job placing

part. The multipliers in the stepping 0

use four multiplies to complete each

similar quirk with a DA filter if you are

won't fix.

--

--Ray Andraka, P.E. President, the Andraka Consulting Group, Inc.

401/884-7930 Fax 401/884-7950 email snipped-for-privacy@andraka.com
formatting link

"They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin, 1759

Reply to
Ray Andraka

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.