digital filter help needed

Status
Not open for further replies.

sajeev_antony

Junior Member level 2
Joined
Sep 12, 2002
Messages
21
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
India
Activity points
93
I need to inplement a 16 tap fir filter in an FPGA.
Can any one help me in this.
 

You have three basic choices:
1. Parallel (also known as unrolled) structure, this is the one that you will see in most DSP text-books, with every filter delay implemented as explicit registers and one result sample is available every clock cycle.
2. MAC (multiply-accumulate) based, this one computes one tap per cycle and stores intermediate result in an accumulator, it would take 16 cycles to produce one output sample.
3. DA (distributed arithmetic) based, this method is similar to (2), in the sense that it requires 16 cycles to produce a result and it needs an accumulator, but no multiplyers are needed since their functionality is implemented in a look-up table (LUT).

Google for the above for terms and you will find a wealth of implementations that are well documented.
 

fourth way

If your taps are symmetrical, you can save one multiplication by adding the taps (that have the same weighting factor) together two at a time and then multiplying. This will save you about 8 multiplies total.
 

The shortest way is choose what kind of your fir, and then calculate the coefficent by the FDATOOL which intergrated in Matlab, import them to any DSP tools for FPGA such as Xilinx SystemGenerator for DSP and build the system.
 

Xilinx and Altera sites contains a lot of application dealing with FIR filter design
 

Heres a site for a tool that provides Digital Filter design packages that can produce synthesisable VHDL if thats any use:

www.tyder.com

AFAIK, he has a new version due out soon that includes FFT - his website is currently being overhauled.

Yep I do know the guy who wrote the package!

J
 

ONEOVERT that is founded in www.tyde.com is very good but it's not free
and the evaluation version doesn't support the synthesisable VHDL
 

what kind of fpga are you using? if it is xilinx, you can use their core generator. It very handy and flexible. I used it to implemented 255 tap, 14bit coefficient, 12 bit input fir filter.
If you want to save resource, you can use chips with embedded MAC. It's fun. Good luck
 

oho!!255 tap ,14 bit coefficient , 12 bit input !!too complex!!
what kind of fpag are you using??
 

spartan II xc2s200
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…