This brief proposes an area and speed efficient implementation of symmetric finite impulse response (FIR) digital filter using reduced parallel look-up table (LUT) distributed arithmetic (DA) based approach. The complexity lying in the realization of FIR filter is dominated by the multiplier structure. This complexity grows further with filter order, which results in increased area, power, and reduced speed of operation. The speed of operation is improved over multiply-accumulate approach using multiplier less conventional DA based design and decomposed DA based design. Both the structure requires B clock cycles to get the filter output for the input width of B, which limits the speed of DA structure. This limitation is addressed using parallel LUTs, called high speed DA FIR, at the expense of additional hardware cost. With large number of taps, the number of LUTs and its size also becomes large. In the proposed method, by exploiting coefficient symmetry property, the number of LUTs in the decomposed DA form is reduced by a factor of about 2. This proposed approach is applied in high speed DA based FIR design, to obtain area and speed efficient structure. The proposed design offers around 40% less area and 53.98% less slice-delay product (SDP) than the high throughput DA based structure when it’s implemented over Xilinx Virtex-5 FPGA device-XC5VSX95T-1FF1136 for 16-tap symmetric FIR filter. The proposed design on the same FPGA device, supports up to 607 MHz input sampling frequency, and offers 60.5% more speed and 67.71% less SDP than the systolic DA based design.
These Finite impulse response (FIR) digital filters are extensively used in many digital signal processing (DSP) applications and communication systems [
The general form of FIR filter is represented by the equation,
where
Several multiplier less approaches are proposed for implementing cost, area and time efficient computing structures for realizing FIR filters. Multiplier less DA based technique [
The DA based design for adaptive filter suggested in [
This paper proposes reduced LUT decomposed DA approach to reduce the area in high speed implementation of DA based filter using parallel LUTs, to achieve area as well as speed optimization in symmetric FIR filter realization.
The rest of the paper is organized as follows. Section 2 presents the formulation of algorithm for conventional DA based scheme, and decomposed DA based scheme. The derivation of algorithm for the proposed structure for symmetric FIR filter is described in Section 3. The architectural details of conventional and proposed scheme are described in Section 4. In Section 5, implementation results and discussion on the comparison of proposed design with the earlier reported result are presented. Finally the proposed work is concluded in Section 6.
This section briefly outlines the formulation of algorithm for conventional DA based realization, and for the decomposed DA based realization of FIR filters [
The general form of representation of FIR filter given in (1) shows that the output of an FIR is the sum of product of coefficient (impulse response) vector
where the coefficients
where
To get the distributed structure the order of summation over the indexes k and b are interchanged, and this results in
Expressing it in simpler form
where
This shows that the filter output is the shifted accumulation of
shifted accumulation of B number of
Therefore the conventional DA algorithm represented by (5) or (6) shows that, the inner product is computed using (6b), which requires LUT of size 2N words, and B cycles of memory (LUT) read operation for an input word length of B bits, followed by B number of shift―accumulation to get the filter output (6b). The structure used for implementing this conventional DA based FIR is shown in
In conventional DA based FIR implementation, the size of LUT grows exponentially with number of coefficients (taps) N. For large values of N, however, the LUT size becomes too large, and the LUT access time also becomes large. The conventional DA-based implementation is, therefore, not suitable for large filter orders. This complexity can be resolved by decomposing single LUT into multiple LUTs, at the expense of additional adders as explained below.
When N is a composite number given by N = LM (L and M may be any two positive integers), then expression in (2) becomes,
Now mapping the index k into (m + lM) for
Using the representation of
Expressing it in simpler form
where
This section describes the derivation of algorithm for implementing the proposed structure, which reduces the number of LUTs in the decomposed DA based symmetric FIR filter. Then this algorithm is explained with an example. The result of application of this algorithm to high speed DA FIR realized using parallel LUTs in decomposed form of DA FIR is discussed.
As explained in Section 2 the number of LUTs needed for realizing FIR filter using decomposed DA algorithm is L. However when the value of N is very large that would result in the use of large number of LUTs, that is larger L. This complexity for symmetric FIR filter is reduced in the proposed structure. In the proposed structure, the coefficient symmetry property of FIR filter,
To derive this algorithm let us first express the filter output in (9) as a function of inner product,
where
Now splitting the first summation in the inner product function in (11b) as first half and as second half with reference to summation index l, with the assumption that L is even. Then
is the expression for computing the inner product corresponding to first half of LUTs
is the expression for computing the inner product corresponding to second half of LUTs
When we compare the pre-computation values to be stored in the LUTs, computed using (12a) for the first half LUTs and (13) for the second half of the LUTs, coefficient values considered for the respective equivalent LUTs (L = 0 and L − 1, L = 1 and L − 2, etc.) are the same, but it is in the reversed order for second half when compared to the first half. Therefore the required inner product corresponding to the second half of LUTs is obtained using first half of LUTs itself, by reversing the order of address bits generated for the second half of LUTs, and using these reversed bits for accessing respective first half of LUTs to get the required inner product. Then the algorithm for realizing the second half of LUTs becomes,
This equation shows that it utilizes first half of LUTs
where
Let LUT L shares with the LUT 1, and a3a2a1a0 be the address bits of LUT 1, b3b2b1b0 be the address bits of LUT L. Then the inner product corresponding to LUT L(b3b2b1b0) is accessed using LUT 1 with the address b0b1b2b3, that is LUT L(b3b2b1b0) = LUT 1(b0b1b2b3). Hence according to proposed method in (15), the number of LUTs needed, is reduced by a factor of about 2, that is L/2 for L even and
Consider for example a symmetric 6-tap FIR filter. Let us chose L = 2 and M = 3 for N = 6. The decomposed form as per (9), requires 2 LUTs of size 23 words. Let h(0), h(1), h(2), h(3), h(4), and h(5) be the symmetric coefficients, that is h(0) = h(5), h(1) = h(4), and h(2) = h(3). The precomputed values stored in the LUT 1 and LUT 2 with its corresponding address is shown in
From this table it is understood that all the precomputed values of LUT 2 is available in LUT 1 and it is possible to realize inner product computation using LUT 2 by LUT 1 itself. Now row wise comparison of address bits of LUT 2 in column 3 with the corresponding address for LUT 1 in column 6 reveals that, the address bits in column 6 are in the bit reversed form of address bits in column 3. Therefore the inner product computation using LUT 2 can be performed using its equivalent LUT, LUT 1 itself, by reversing the address bits generated for LUT 2, and using this to access LUT 1 for the generation of inner product as explained in proposed reduced LUT decomposed DA based symmetric FIR filter implementation.
Therefore for an N-tap FIR filter with symmetric coefficients, when realized using the proposed reduced LUT DA algorithm (15) with N = LM, the number of LUTs are reduced from L to L/2 for L even and
Application of this proposed algorithm to high speed decomposed DA FIR filter, that employs parallel LUTs, results in the reduction of LUTs from BL to B(L/2) for L even and
This section first describes about the conventional and decomposed DA form of FIR filter. Then describes about reduced LUT decomposed DA form of FIR filter using the proposed algorithm, followed by this, high speed DA FIR structure and the proposed modified form of address generation logic and LUT structure of this high speed
LUT 1 | LUT 2 | Equivalent value and corresponding address of LUT 1 for LUT 2 | |||
---|---|---|---|---|---|
Address | Precomputed stored value | Address | Precomputed stored value | Equivalent value | Corresponding address |
000 | 0 | 000 | 0 | 0 | 000 |
001 | h(0) | 001 | h(3) | h(2) | 100 |
010 | h(1) | 010 | h(4) | h(1) | 010 |
011 | h(1) + h(0) | 011 | h(4) + h(3) | h(2) + h(1) | 110 |
100 | h(2) | 100 | h(5) | h(0) | 001 |
101 | h(2) + h(0) | 101 | h(5) + h(3) | h(2) + h(0) | 101 |
110 | h(2) + h(1) | 110 | h(5) + h(4) | h(1) + h(0) | 011 |
111 | h(2) + h(1) + h(0) | 111 | h(5) + h(4) + h(3) | h(2) + h(1) + h(0) | 000 |
Equivalent LUTs for L even | Equivalent LUTs for L odd |
---|---|
LUT L equivalent to LUT 1 LUT L-1 equivalent to LUT 2 LUT L-2 equivalent to LUT 3 LUT L-3 equivalent to LUT 4 LUT L-4 equivalent to LUT 5 …….. LUT (L/2)+1 equivalent to LUT (L/2) | LUT L equivalent to LUT 1 LUT L-1 equivalent to LUT 2 LUT L-2 equivalent to LUT 3 LUT L-3 equivalent to LUT 4 LUT L-4 equivalent to LUT 5 …….. LUT |
DA FIR filter is described. The direct form of FIR filter is used for all the DA based implementation.
・ Conventional DA FIR filter
In general an N-tap FIR filter requires, N registers (shift registers) of B bits wide for an input width of B for storing the input, and the delayed form of inputs. The least significant bit of each register is considered for forming the address bits (
・ Decomposed DA FIR filter and reduced LUT decomposed DA FIR filter
The general block diagram of the decomposed DA based N-tap FIR filter according to (9) and the general block diagram of the reduced LUT decomposed DA based symmetric N-tap FIR filter according to the proposed algorithm in (15) is shown in
The major blocks of the decomposed DA FIR using proposed algorithm are address generation logic and address mapping logic, inner product generation unit using LUTs, pipelined adder array and shift ? accumulator.
In addition it requires clock divider block to generate frequency clk/B from frequency clk, as this structure requires two different clock frequency signals for its operation.
Address generation logic is implemented using one parallel-in-serial-out shift register (PISOSR) and N-1 serial-in-serial-out shift registers (SISOSR) of B bits wide. The filter input signal (filter_in) of width B is loaded in parallel to PISOSR in synchronization with the clock signal clk/B. The same register performs serial-out operation in synchronization with the clock signal clk. Similarly all the SISOSRs operating in synchronization with clock signal clk. Therefore output bit of these shift registers forming the address bits for accessing LUTs. Address mapping logic is needed for lower half of address bits, which just performs bit reversal task to get the required address to make use of upper half of LUTs for realizing lower half of LUTs. Each LUT is stored with the all the possible combinations precomputed values of corresponding decomposed coefficients for inner product generation. The output of LUTs is added using pipelined adder array to get the inner product corresponding to particular bit position. Finally these inner products are shift ? accumulated for all B bit positions to get the filter output and shift-accumulator is reset once in B cycles. Therefore the filter output is made available once in B cycles only, which limits the speed of operation, especially when B becomes larger.
・ High speed DA FIR filter and its proposed modified structure
The frequency of operation of the decomposed DA FIR and reduced LUT decomposed DA FIR is improved by using parallel LUTs as stated in previous section, resulting in high speed DA FIR filter. First the structure of
the high speed decomposed DA FIR filter for an N-tap FIR filter with N = LM derived from
The entire structure operates at single clock frequency (not explicitly shown in figure) and the output is computed in single clock period. Here the input and its delayed form are stored in parallel- in parallel-out shift registers (PIPOSR), it is represented as x(0), x(1), …, x(LM-1) [x(0) = x(n), x(1) = x(n-1), …, x(LM-1) = x(n-(LM-1))] in figure. The B bit output of these registers, grouped into form L number of M bit address for accessing respective LUTs.
Each LUT is duplicated B-1 times. That is LUT1_1, LUT1_2, …, LUT1_B-1 are the duplication of LUT1_0. The LUT1_0 is accessed using the address bits formed from the least significant bit (LSB) of x(0), x(1), …, x(M-1). The LUT1_1 is accessed using the address bits formed from the second LSB (bit position 1) of x(0), x(1), …, x(M-1) and so on. Similarly LUT1_B-1 is accessed using the address bits formed from the most significant bit (MSB) (bit position B-1) of x(0), x(1), …, x(M-1).
In a similar manner in the second set of LUTs, LUT2_1, LUT2_2, …, LUT2_B-1 are the duplication of LUT2_0, and are accessed using the respective bits of x(M), x(M+1), …, x(2M-1) and so on. Finally LUTL_1, LUTL_2, …, LUTL_B-1 are the duplication of LUTL_0 and are accessed using the respective bits of x(LM-M), x(LM-M+1), …, x(LM-1).
The output of all the LUTs (LUT1_0, LUT2_0, …, LUTL_0) corresponding to bit position 0 are added using adder array_0, the output of all the LUTs (LUT1_1, LUT2_1, …, LUTL_1) corresponding to bit position 1 are added using adder array_1, and so on. Finally the output of all the LUTs (LUT1_B-1, LUT2_B-1, …, LUTL_B-1) corresponding to bit position B-1 are added using adder array_B-1. Next the output of adder array_1 is shifted left by one bit position, the output of adder array_2 is shifted left by two bit positions and so on. Finally the output of adder array_B-1 is shifted left by B-1 bit positions. Then all these shifted outputs’ and the output of adder array_0 are added using another adder array to get the filter output as shown in
Therefore it is understood that the speed of operation in the decomposed DA FIR is improved by employing parallel access using multiple duplicate LUTs, and combining their outputs using multiple adder arrays to yield the output in single clock period, which eliminates the need of shift-accumulation unit as in conventional and decomposed DA FIR. However this speed improvement is achieved at the expense of additional hardware cost. This hardware cost is reduced in the proposed structure by applying reduced LUT decomposed DA approach according to (15) over the high speed decomposed DA FIR shown in
The comparison of
The precomputed values stored in LUT1_j and LUT2_j corresponding to all bit positions, for N = 16, L = M = 4, and coefficient and input width of W and B bits respectively are shown in
The LUT outputs shown in
The proposed reduced parallel LUT DA based structure for symmetric FIR filter for N = 16, L = M = 4, and with coefficient and input word length of 8 bits is implemented on Xilinx Virtex-5 XC5VSX95T-1FF1136 field-programmable gate array device, and the result is tabulated in
The FIR digital filters are the core unit in many digital signal processing (DSP) applications and communication systems. The implementation of FIR filter through one of the multiplier less DA based approach is considered in
Design Method | NSR | NSL | NS | Delay (ns) | Frequency (MHz) | SDP |
---|---|---|---|---|---|---|
Proposed | 448 | 496 | 225 | 1.646 | 607 | 370 |
High throughput DA based (R = 1) [ | 1120 | 755 | 310 | 2.27 | 440 | 804 |
Systolic DA based [ | 688 | 833 | 275 | 4.17 | 239 | 1146 |
this work. The algorithm for conventional DA based implementation is described. The limitation of this algorithm is exponential increase of LUT size with filter taps. Then the algorithm, which overcomes this limitation, called decomposed DA based implementation is discussed, which partitions single LUT into many LUTs of smaller size at the cost of additional adder array. We proposed and derived algorithm to optimize the area further, called reduced LUT decomposed DA based implementation for symmetric FIR filter, in which the number of LUTs were further reduced by a factor of about 2. This approach is implemented over high speed DA based FIR filter, which employs parallel LUTs for each decomposed group L, to speed up the computation in the decomposed DA based structure. Thus the resulting proposed structure is an area and speed efficient structure for the implementation of symmetric FIR filter.
The 16-tap FIR filter with L = M = 4, and input and coefficient widths of 8 bits is considered for implementation to analyze the performance with existing high throughput DA based design and with systolic DA based design, implemented over Xilinx Virtex-5, XC5VSX95T-1FF1136 FPGA device. The performance comparison of area utilization indices, NSR, NSL, and NS of the proposed structure with high throughput DA based structure, implies that the proposed structure requires 60%, 34.3%, and 27.4% less NSR, NSL, and NS respectively, resulting in an average area improvement of around 40%. The proposed design also requires lesser clock period than the high throughput DA based design. It is also found that the proposed design offers 60.5% less delay and requires less area than the systolic DA based design, and can support up to the maximum operating frequency of 607 MHz.
S. C. Prasanna,S. P. Joy Vasantha Rani, (2016) Area and Speed Efficient Implementation of Symmetric FIR Digital Filter through Reduced Parallel LUT Decomposed DA Approach. Circuits and Systems,07,1379-1391. doi: 10.4236/cs.2016.78121