Proj Rybczynski FIR Filter
Proj Rybczynski FIR Filter
Six States meaning 3 bit State Variable Each Multiply is in a separate state Asynchronous Reset
Take out extra calculate steps and place all the multiplies in one CALC state Add the values from the multiply step together in ADD state Place value directly into result before you raise output_ready
FIR Optimization Jeff Rybczynski 5
Array Multiplier
Array Multiplier
A3=1 0 B0=1 1
A B CO CI S
A2=0 0 0 0
A B CO CI S
A1=1 0 0 1
A B CO CI S
A0=1 0 0 1
A B CO CI S
0 0
B1=0
0
A B CO CI S
0
A B CO CI S
0
A B CO CI S
0
A B CO CI S
0 0 B2=1 1
A B CO CI S
0
A B CO CI S
1
A B CO CI S
1
A B CO CI S
0 0 B3=1 1
A B CO CI S
0
A B CO CI S
1
A B CO CI S
1
A B CO CI S
0 0
A B CO CI S
A B CO CI S
A B CO CI S
A B CO CI S
0 1 1 1 1
10
Old Code:
temp1 <= rin * 24'h702a78; temp2 <= rs0 * 24'h800000; temp3 <= rs1 * 24'h4fd547;
New Code:
array_multi a(temp1,rin, 24'h702a78); array_multi b(temp2,rs0, 24'h800000); array_multi c(temp3,rs1, 24'h4fd547);
11
FIR Designs
Area Time
77182.453125
76806.578125 91060.187500
FIR Optimization Jeff Rybczynski
9.77 ns
9.61 ns 9.73 ns
12