Research Article

Layout Aware Optimization of High Speed Fixed Coefficient FIR Filters for FPGAs

Algorithm 1

Modified CSE algorithm to reduce area: The divisors are generated for a set of expressions and the one with the greatest value is extracted. Then the common subexpressions can be extracted and a new list of terms is generated. The iterative algorithm continues with generating new divisors from the new terms, and add them to the dynamic list of divisors. The algorithm stops when there is no valuable divisor remaining in the set of divisors
ReduceArea( )
= Set of expressions in polynomial form;
= Set of divisors = ;
//Step : Creating divisors and calculating minimum
number of registers required
for each expression Pi in
= FindDivisors(Pi);
Update frequency statistics of divisors in
Pi->MinRegisters = Calculate Minimum registers required
for fastest evaluation of Pi;
//Step : Iterative selection and elimination of best divisor
while
Find d = Divisor in with greatest Value;
// Value = Num Additions reduced – Num Registers Added;
if( d == NULL) break;
Rewrite affected expressions in using d;
Remove divisors in that have become invalid;
Update frequency statistics of affected divisors;
= Set of new divisors from new terms added
by division;
=