This tool generates a Transposed Direct Form implementation of a Finite Impulse Response (FIR) filter, or an Infinite Impulse Response (IIR) filter, from a standard difference equation. The multiplier blocks within the design are generated from the Spiral Multiplier Block Generator. An FIR can be generated by simply setting a_0 to one and all other a_k constants to zero. The values of the b_k constants form the notches of the FIR. In the Transposed Direct Form I implementation, the IIR is generated from two separate FIR filters, connected by an adder. In the Transposed Direct Form II implementation, the FIR filter tool is not used at all, and the two multiplier block outputs are taken directly through adders and input into the flip flop array.
Input: | Two lists of integer or fixed-point constants: a_0, ..., a_n-1 and b_0, ..., b_n-1 |
Output: | FIR/IIR Verilog code. The only operations used in the generated multiply blocks are additions, subtractions, shifts and negations. |
The filter generator uses the following paper work as core routine.
Copyrights to many of the above papers are held by the publishers. The attached PDF files are preprints. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder. Some links to papers above connect to IEEE Xplore with permission from IEEE, and viewers must follow all of IEEE's copyright policies.
Our software is available under GNU GPL license (a commercial license can be obtained on request): firgen.tgz (30 KB),
Note that the software needs the Spiral Multiplier block generator as subroutine.
Copyright (c) 2006 by Joseph Trapasso for the SPIRAL Project, Carnegie Mellon University
Contact: help at spiral dot net