<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">CS</journal-id><journal-title-group><journal-title>Circuits and Systems</journal-title></journal-title-group><issn pub-type="epub">2153-1285</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/cs.2016.78121</article-id><article-id pub-id-type="publisher-id">CS-67244</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject><subject> Engineering</subject><subject> Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  Area and Speed Efficient Implementation of Symmetric FIR Digital Filter through Reduced Parallel LUT Decomposed DA Approach
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>S.</surname><given-names>C. Prasanna</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>S.</surname><given-names>P. Joy Vasantha Rani</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Department of EIE, Valliammai Engineering College, Anna University, Chennai, India</addr-line></aff><aff id="aff2"><addr-line>Department of Electronics, MIT Campus, Anna University, Chennai, India</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>mail2scprasanna@yahoo.co.in(SCP)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>02</day><month>06</month><year>2016</year></pub-date><volume>07</volume><issue>08</issue><fpage>1379</fpage><lpage>1391</lpage><history><date date-type="received"><day>25</day>	<month>March</month>	<year>2016</year></date><date date-type="rev-recd"><day>accepted</day>	<month>22</month>	<year>April</year>	</date><date date-type="accepted"><day>9</day>	<month>June</month>	<year>2016</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  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.
 
</p></abstract><kwd-group><kwd>Distributed Arithmetic</kwd><kwd> Field Programmable Gate Array (FPGA)</kwd><kwd> Finite-Impulse Response (FIR) Filter</kwd><kwd> High Speed</kwd><kwd> Reduced Look-Up Table (LUT)</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>These Finite impulse response (FIR) digital filters are extensively used in many digital signal processing (DSP) applications and communication systems [<xref ref-type="bibr" rid="scirp.67244-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.67244-ref2">2</xref>] . Due to the advancement in very large scale integration (VLSI) technology, DSP has become increasingly popular over the years, and demands the realization of FIR filters with high speed, less area and less power consumption.</p><p>The general form of FIR filter is represented by the equation,</p><disp-formula id="scirp.67244-formula581"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x6.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x7.png" xlink:type="simple"/></inline-formula> is the output; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x8.png" xlink:type="simple"/></inline-formula>is the delayed input; <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x9.png" xlink:type="simple"/></inline-formula>is the coefficient; and N is the number of taps of the filter. This representation shows that one of the major issue or complexity lying in the realization of FIR filter is dominated by the complexity in the implementation of multipliers. In performing multiplication operation, the number of partial products generated increases with the increase in width of filter input and filter coefficient. This in turn increases the number of adder units and logic levels needed and hence logic depth of the structure, which consequently decreases the speed of operation of filter structure [<xref ref-type="bibr" rid="scirp.67244-ref3">3</xref>] . Since the complexity of implementation grows further with the filter order, which maximizes area and power consumption, real-time realization of these filters with desired level of accuracy is a challenging task. Such compute-intensive applications can be implemented efficiently over field-programmable gate arrays (FPGA) platform than application specific integrated circuits (ASICs) [<xref ref-type="bibr" rid="scirp.67244-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.67244-ref5">5</xref>] platform due to its speed, flexibility, and price performance over ASIC. Thus several researchers have contributed towards designing a low-power, low-area, and high speed dedicated and reconfigurable architectures for realization of FIR filters in FPGA platforms.</p><p>Several multiplier less approaches are proposed for implementing cost, area and time efficient computing structures for realizing FIR filters. Multiplier less DA based technique [<xref ref-type="bibr" rid="scirp.67244-ref6">6</xref>] stores the precomputed partial results of inner product, which are read and shift ? accumulated to get the filter output. It yields faster output compared with the multiplier-accumulator-based designs The high-throughput processing capability, and increased regularity make this a popular approach for FIR filter implementation. DA was first introduced by Croisier et al. [<xref ref-type="bibr" rid="scirp.67244-ref7">7</xref>] and was further developed by Peled and Liu [<xref ref-type="bibr" rid="scirp.67244-ref8">8</xref>] for efficient implementation of digital filters. DA based design suggested for adaptive filter presented in [<xref ref-type="bibr" rid="scirp.67244-ref9">9</xref>] [<xref ref-type="bibr" rid="scirp.67244-ref10">10</xref>] cannot support high sampling frequency, as it requires several clock cycles for processing each input signal.</p><p>The DA based design for adaptive filter suggested in [<xref ref-type="bibr" rid="scirp.67244-ref11">11</xref>] offers high throughput at the expense of hardware cost. The memory requirement for DA-based implementation of FIR filters, however, exponentially increases with the filter order. To eliminate the problem of such a large memory requirement, Meher et al. [<xref ref-type="bibr" rid="scirp.67244-ref12">12</xref>] suggested systolic decomposition techniques for DA-based implementation, which was found to involve less area-delay complexity. Park and Meher [<xref ref-type="bibr" rid="scirp.67244-ref13">13</xref>] present high speed implementation of DA based reconfigurable FIR filter, which involves flexible frequency of operation, however, lesser the frequency, area utilized is less, and higher the frequency, area utilized is more. The structure in [<xref ref-type="bibr" rid="scirp.67244-ref13">13</xref>] employs parallel LUTs to speed up the computation similar to the proposed structure. Area optimization is done in the proposed design when compared to [<xref ref-type="bibr" rid="scirp.67244-ref13">13</xref>] , by using the proposed reduced LUT decomposed DA algorithm for symmetric FIR filter.</p><p>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.</p><p>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.</p></sec><sec id="s2"><title>2. Formulation of Algorithm for Conventional and Decomposed DA Based FIR Filter</title><p>This section briefly outlines the formulation of algorithm for conventional DA based realization, and for the decomposed DA based realization of FIR filters [<xref ref-type="bibr" rid="scirp.67244-ref14">14</xref>] .</p><sec id="s2_1"><title>2.1. Conventional DA Algorithm for FIR Filter Realization</title><p>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 <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x10.png" xlink:type="simple"/></inline-formula> and the input vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x11.png" xlink:type="simple"/></inline-formula> To simplify the derivation, the N-tap FIR filter represented by (1), is written again in its compact form without time index n as,</p><disp-formula id="scirp.67244-formula582"><label>(2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x12.png"  xlink:type="simple"/></disp-formula><p>where the coefficients <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x13.png" xlink:type="simple"/></inline-formula> <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x14.png" xlink:type="simple"/></inline-formula> are constants, and the input vector <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x15.png" xlink:type="simple"/></inline-formula> <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x16.png" xlink:type="simple"/></inline-formula> is a variable. Assuming B to be the word length of<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x17.png" xlink:type="simple"/></inline-formula>, and also assume that the signal samples <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x18.png" xlink:type="simple"/></inline-formula> are unsigned, then <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x19.png" xlink:type="simple"/></inline-formula> can be represented as,</p><disp-formula id="scirp.67244-formula583"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x20.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x21.png" xlink:type="simple"/></inline-formula> denotes the b<sub>th</sub> bit of<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x21.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x22.png" xlink:type="simple"/></inline-formula>. By applying the expression in (3) into the expression in (2) the expanded form of inner product is represented as,</p><disp-formula id="scirp.67244-formula584"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x23.png"  xlink:type="simple"/></disp-formula><p>To get the distributed structure the order of summation over the indexes k and b are interchanged, and this results in</p><disp-formula id="scirp.67244-formula585"><label>(5)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x24.png"  xlink:type="simple"/></disp-formula><p>Expressing it in simpler form</p><disp-formula id="scirp.67244-formula586"><label>(6a)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x25.png"  xlink:type="simple"/></disp-formula><p>where</p><disp-formula id="scirp.67244-formula587"><label>(6b)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x26.png"  xlink:type="simple"/></disp-formula><p>This shows that the filter output is the shifted accumulation of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x27.png" xlink:type="simple"/></inline-formula> for B bits. Ultimately the implementation of function <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x27.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x28.png" xlink:type="simple"/></inline-formula> requires special attention. Here <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x27.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x28.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x29.png" xlink:type="simple"/></inline-formula> is a constant vector and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x27.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x28.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x30.png" xlink:type="simple"/></inline-formula> is a variable of length B, which can take either 0 or 1 for all the N samples. Since <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x27.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x28.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x30.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x31.png" xlink:type="simple"/></inline-formula> is constant, all the possible 2<sup>N</sup> values of product <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x27.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x28.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x29.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x30.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x31.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x32.png" xlink:type="simple"/></inline-formula> is precomputed and stored in LUT. Now the input vector,</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x33.png" xlink:type="simple"/></inline-formula>forming the address lines for accessing the LUT to get the desired inner product<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x33.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x34.png" xlink:type="simple"/></inline-formula>. Thus inner product computation is performed using multiplier less DA based LUT. Finally</p><p>shifted accumulation of B number of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x35.png" xlink:type="simple"/></inline-formula> provides the filter output.</p><p>Therefore the conventional DA algorithm represented by (5) or (6) shows that, the inner product is computed using (6b), which requires LUT of size 2<sup>N</sup> 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 <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p></sec><sec id="s2_2"><title>2.2. Decomposed DA Algorithm for FIR Filter Realization</title><p>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.</p><p>When N is a composite number given by N = LM (L and M may be any two positive integers), then expression in (2) becomes,</p><disp-formula id="scirp.67244-formula588"><label>(7)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x36.png"  xlink:type="simple"/></disp-formula><p>Now mapping the index k into (m + lM) for <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x37.png" xlink:type="simple"/></inline-formula> and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x38.png" xlink:type="simple"/></inline-formula>, the sum can be partitioned into L independent M<sup>th</sup> parallel DA LUTs resulting in</p><disp-formula id="scirp.67244-formula589"><label>(8)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x39.png"  xlink:type="simple"/></disp-formula><p>Using the representation of <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x40.png" xlink:type="simple"/></inline-formula> given in (3), into (8), and re-distributing the summation we get,</p><disp-formula id="scirp.67244-formula590"><label>(9)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x41.png"  xlink:type="simple"/></disp-formula><p>Expressing it in simpler form</p><disp-formula id="scirp.67244-formula591"><label>(10a)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x42.png"  xlink:type="simple"/></disp-formula><p>where</p><disp-formula id="scirp.67244-formula592"><label>(10b)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x43.png"  xlink:type="simple"/></disp-formula><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x44.png" xlink:type="simple"/></inline-formula>is the inner product of decomposed form of DA FIR. These inner products can be computed using LUTs of size 2<sup>M</sup> words rather than 2<sup>N</sup> words in conventional DA approach. According to (10), in the decomposed form of DA FIR, L number of LUTs of size 2<sup>M</sup> words are accessed in parallel, then these L outputs are added (the 2nd summation) to get the inner product, finally this sum is shift-accumulated (the 1st summation). This process is repeated for B cycles to get the filter output. Hence the size of the LUT can be greatly reduced using decomposed form of DA FIR, at the expense of additional adders. This structure requires B clock cycles (for the input word width of B) to get the filter output, as it has to fetch the LUT sequentially for B bit positions. In the proposed structure in order to speed up the computation process, LUTs corresponding to each L, is duplicated B times, so that the read operation from LUT, corresponding to each bit position is made in parallel, hence speeds up the computation, at the expense of additional (B-1)L LUTs. The number of LUTs is reduced by a factor of 2 by employing the proposed algorithm as explained in the next section.</p></sec></sec><sec id="s3"><title>3. Derivation of Algorithm for the Proposed Structure</title><p>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.</p><sec id="s3_1"><title>3.1. Derivation of Proposed Algorithm for Symmetric FIR Filter Realization</title><p>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, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x45.png" xlink:type="simple"/></inline-formula>is exploited to reduce the number of LUTs needed for storing the inner products, by a factor of about 2, that is L/2 for L even and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x45.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x46.png" xlink:type="simple"/></inline-formula> for L odd. This is possible by computing the inner product outputs for lower half of LUTs {<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x45.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x46.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x47.png" xlink:type="simple"/></inline-formula> to L} from the corresponding and respective equivalent upper half LUTs itself by generating appropriate address signal as is discussed below.</p><p>To derive this algorithm let us first express the filter output in (9) as a function of inner product, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x48.png" xlink:type="simple"/></inline-formula>as,</p><disp-formula id="scirp.67244-formula593"><label>(11a)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x49.png"  xlink:type="simple"/></disp-formula><p>where</p><disp-formula id="scirp.67244-formula594"><label>(11b)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x50.png"  xlink:type="simple"/></disp-formula><p>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</p><disp-formula id="scirp.67244-formula595"><label>(12a)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x51.png"  xlink:type="simple"/></disp-formula><p>is the expression for computing the inner product corresponding to first half of LUTs<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x52.png" xlink:type="simple"/></inline-formula>, and</p><disp-formula id="scirp.67244-formula596"><label>(12b)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x53.png"  xlink:type="simple"/></disp-formula><p>is the expression for computing the inner product corresponding to second half of LUTs<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x54.png" xlink:type="simple"/></inline-formula>. Now applying coefficient symmetry property, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x54.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x55.png" xlink:type="simple"/></inline-formula>for realizing second half of LUTs, in (12b), we get</p><disp-formula id="scirp.67244-formula597"><label>(13)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x56.png"  xlink:type="simple"/></disp-formula><p>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,</p><disp-formula id="scirp.67244-formula598"><label>(14)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x57.png"  xlink:type="simple"/></disp-formula><p>This equation shows that it utilizes first half of LUTs<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x58.png" xlink:type="simple"/></inline-formula>, hence the first half of coefficients, and the address bits are generated for second half of LUTs in the bit reversed order (since <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x58.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x59.png" xlink:type="simple"/></inline-formula>). Therefore the algorithm for the proposed reduced LUT decomposed DA FIR, is obtained by combining Equations (12a) and (14) and applying it in (11a),</p><disp-formula id="scirp.67244-formula599"><label>(15)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/21-7600635x60.png"  xlink:type="simple"/></disp-formula><p>where</p><disp-formula id="scirp.67244-formula600"><graphic  xlink:href="http://html.scirp.org/file/21-7600635x61.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.67244-formula601"><graphic  xlink:href="http://html.scirp.org/file/21-7600635x62.png"  xlink:type="simple"/></disp-formula><p>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 <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x63.png" xlink:type="simple"/></inline-formula> for L odd.</p></sec><sec id="s3_2"><title>3.2. Illustrative Example</title><p>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 2<sup>3</sup> 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 <xref ref-type="table" rid="table1">Table 1</xref>. Then by applying coefficient symmetry property, the row wise equivalent precomputed value for LUT 2 (column 4) in LUT 1 is given in the column 5. The corresponding address for fetching the LUT 1 for these equivalent values is shown in column 6 of the same table.</p><p>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.</p><p>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 <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x64.png" xlink:type="simple"/></inline-formula> for L odd. In general the equivalent LUTs for L even and for L odd are tabulated in <xref ref-type="table" rid="table2">Table 2</xref>.</p></sec><sec id="s3_3"><title>3.3. Result of Application of Proposed Algorithm to High Speed Decomposed DA FIR Filter</title><p>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 <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x65.png" xlink:type="simple"/></inline-formula> for L odd, thus area as well as speed optimization is done in proposed structure. Consequently the resulting structure would give area optimized result for high speed DA FIR and also speed optimization over conventional and decomposed DA FIR.</p></sec></sec><sec id="s4"><title>4. Proposed Structure for Symmetric FIR Filter</title><p>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</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Precomputed values stored in LUT 1, LUT 2 and Equivalent value for LUT 2</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="2"  >LUT 1</th><th align="center" valign="middle"  colspan="2"  >LUT 2</th><th align="center" valign="middle"  colspan="2"  >Equivalent value and corresponding address of LUT 1 for LUT 2</th></tr></thead><tr><td align="center" valign="middle"  colspan="2"  ></td><td align="center" valign="middle"  colspan="2"  ></td><td align="center" valign="middle"  colspan="2"  ></td></tr><tr><td align="center" valign="middle" >Address</td><td align="center" valign="middle" >Precomputed stored value</td><td align="center" valign="middle" >Address</td><td align="center" valign="middle" >Precomputed stored value</td><td align="center" valign="middle" >Equivalent value</td><td align="center" valign="middle" >Corresponding address</td></tr><tr><td align="center" valign="middle" >000</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >000</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >000</td></tr><tr><td align="center" valign="middle" >001</td><td align="center" valign="middle" >h(0)</td><td align="center" valign="middle" >001</td><td align="center" valign="middle" >h(3)</td><td align="center" valign="middle" >h(2)</td><td align="center" valign="middle" >100</td></tr><tr><td align="center" valign="middle" >010</td><td align="center" valign="middle" >h(1)</td><td align="center" valign="middle" >010</td><td align="center" valign="middle" >h(4)</td><td align="center" valign="middle" >h(1)</td><td align="center" valign="middle" >010</td></tr><tr><td align="center" valign="middle" >011</td><td align="center" valign="middle" >h(1) + h(0)</td><td align="center" valign="middle" >011</td><td align="center" valign="middle" >h(4) + h(3)</td><td align="center" valign="middle" >h(2) + h(1)</td><td align="center" valign="middle" >110</td></tr><tr><td align="center" valign="middle" >100</td><td align="center" valign="middle" >h(2)</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >h(5)</td><td align="center" valign="middle" >h(0)</td><td align="center" valign="middle" >001</td></tr><tr><td align="center" valign="middle" >101</td><td align="center" valign="middle" >h(2) + h(0)</td><td align="center" valign="middle" >101</td><td align="center" valign="middle" >h(5) + h(3)</td><td align="center" valign="middle" >h(2) + h(0)</td><td align="center" valign="middle" >101</td></tr><tr><td align="center" valign="middle" >110</td><td align="center" valign="middle" >h(2) + h(1)</td><td align="center" valign="middle" >110</td><td align="center" valign="middle" >h(5) + h(4)</td><td align="center" valign="middle" >h(1) + h(0)</td><td align="center" valign="middle" >011</td></tr><tr><td align="center" valign="middle" >111</td><td align="center" valign="middle" >h(2) + h(1) + h(0)</td><td align="center" valign="middle" >111</td><td align="center" valign="middle" >h(5) + h(4) + h(3)</td><td align="center" valign="middle" >h(2) + h(1) + h(0)</td><td align="center" valign="middle" >000</td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Equivalent LUTs for symmetric FIR filter</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Equivalent LUTs for L even</th><th align="center" valign="middle" >Equivalent LUTs for L odd</th></tr></thead><tr><td align="center" valign="middle" >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)</td><td align="center" valign="middle" >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 <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x66.png" xlink:type="simple"/></inline-formula> equivalent to LUT <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x67.png" xlink:type="simple"/></inline-formula> LUT <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x68.png" xlink:type="simple"/></inline-formula></td></tr></tbody></table></table-wrap><p>DA FIR filter is described. The direct form of FIR filter is used for all the DA based implementation.</p><p>・ Conventional DA FIR filter</p><p>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 (<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x69.png" xlink:type="simple"/></inline-formula>as least significant bit (LSB) and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x69.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x70.png" xlink:type="simple"/></inline-formula> as most significant bit (MSB)) for accessing the LUTs as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>. In conventional DA based realization of an N-tap FIR filter, N-bit address is formed from input and its delayed form, and requires single LUT of size 2<sup>N</sup> words for generating inner products. Then these are simply shift-accumulated for B bits to get the filter output. But this implementation becomes impractical for larger values of N as LUT size grows exponentially with N. This lead into the development of decomposed DA algorithm as explained in Section 2.</p><p>・ Decomposed DA FIR filter and reduced LUT decomposed DA FIR filter</p><p>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 <xref ref-type="fig" rid="fig2">Figure 2</xref> and <xref ref-type="fig" rid="fig3">Figure 3</xref> respectively. Comparison of these two implementation shows that the number of LUTs in the proposed structure is reduced from L to <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x71.png" xlink:type="simple"/></inline-formula> for L even and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x71.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/21-7600635x72.png" xlink:type="simple"/></inline-formula> (shown for L ? even in <xref ref-type="fig" rid="fig4">Figure 4</xref>) for L odd, at the cost of additional address mapping logic circuit and dual port LUTs. However these additional logics do not affect the performance of the filter.</p><p>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.</p><p>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.</p><p>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.</p><p>・ High speed DA FIR filter and its proposed modified structure</p><p>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</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Conventional DA FIR filter</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/21-7600635x73.png"/></fig><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> The general block diagram of decomposed DA FIR filter</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/21-7600635x74.png"/></fig><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> The general block diagram of reduced LUT decomposed DA FIR filter using proposed algorithm</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/21-7600635x75.png"/></fig><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> High speed decomposed decomposed DA FIR filter</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/21-7600635x76.png"/></fig><p>the high speed decomposed DA FIR filter for an N-tap FIR filter with N = LM derived from <xref ref-type="fig" rid="fig2">Figure 2</xref> is shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p><p>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.</p><p>Each LUT is duplicated B-1 times. That is LUT<sub>1</sub>_1, LUT<sub>1</sub>_2, …, LUT<sub>1</sub>_B-1 are the duplication of LUT<sub>1</sub>_0. The LUT<sub>1</sub>_0 is accessed using the address bits formed from the least significant bit (LSB) of x(0), x(1), …, x(M-1). The LUT<sub>1</sub>_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 LUT<sub>1</sub>_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).</p><p>In a similar manner in the second set of LUTs, LUT<sub>2</sub>_1, LUT<sub>2</sub>_2, …, LUT<sub>2</sub>_B-1 are the duplication of LUT<sub>2</sub>_0, and are accessed using the respective bits of x(M), x(M+1), …, x(2M-1) and so on. Finally LUT<sub>L</sub>_1, LUT<sub>L</sub>_2, …, LUT<sub>L</sub>_B-1 are the duplication of LUT<sub>L</sub>_0 and are accessed using the respective bits of x(LM-M), x(LM-M+1), …, x(LM-1).</p><p>The output of all the LUTs (LUT<sub>1</sub>_0, LUT<sub>2</sub>_0, …, LUT<sub>L</sub>_0) corresponding to bit position 0 are added using adder array_0, the output of all the LUTs (LUT<sub>1</sub>_1, LUT<sub>2</sub>_1, …, LUT<sub>L</sub>_1) corresponding to bit position 1 are added using adder array_1, and so on. Finally the output of all the LUTs (LUT<sub>1</sub>_B-1, LUT<sub>2</sub>_B-1, …, LUT<sub>L</sub>_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 <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p><p>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 <xref ref-type="fig" rid="fig4">Figure 4</xref>. The modification is done over address generation logic and LUT input-output structure, and the remaining circuitry is the same in the proposed design. The proposed modified address generation logic and LUT structure is shown in <xref ref-type="fig" rid="fig5">Figure 5</xref>.</p><p>The comparison of <xref ref-type="fig" rid="fig5">Figure 5</xref> with <xref ref-type="fig" rid="fig4">Figure 4</xref> shows that the number of LUTs in the proposed structure is reduced from BL to B(L/2). But the proposed structure requires dual port LUTs, whereas the high speed decomposed DA requires single port LUT. The address generated for accessing second half of LUTs are bit reversed using address mapping logic, which are then used to access respective equivalent LUTs as shown in <xref ref-type="fig" rid="fig5">Figure 5</xref>. Let i and j be the integers, then LUT<sub>i_out</sub>j<sub>,</sub> corresponds to output of i-th LUT for the address bits generated from bit position j. Similarly rLUT<sub>i_out</sub>j<sub>,</sub> corresponds to output of i-th LUT for reversed form of address bits generated from bit position j for upper half of equivalent LUT.</p><p>The precomputed values stored in LUT<sub>1_</sub>j and LUT<sub>2_</sub>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 <xref ref-type="fig" rid="fig6">Figure 6</xref>. The inputs A<sub>1</sub> and rA<sub>1</sub> to LUT<sub>1_</sub>j and the inputs A<sub>2</sub> and rA<sub>2</sub> to LUT<sub>2_</sub>j are the address bits generated for upper half and reversed address bits corresponding to lower half of LUTs respectively.</p><p>The LUT outputs shown in <xref ref-type="fig" rid="fig5">Figure 5</xref>, LUT<sub>i_out</sub>0, and rLUT<sub>i_out</sub>0 for i = 1, 2, 3, …, L/2 are given to adder array_0, the outputs LUT<sub>i_out</sub>1, and rLUT<sub>i_out</sub>1 for i = 1, 2, 3, …, L/2 are given to adder array_1, and so on. Similarly the outputs LUT<sub>i_outB-1</sub>, and rLUT<sub>i_outB-1</sub> for i = 1, 2, 3, …, L/2 are given to adder array_B-1. The rest of the process is similar to high speed decomposed DA FIR as explained before.</p></sec><sec id="s5"><title>5. Results and Discussion</title><p>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 <xref ref-type="table" rid="table3">Table 3</xref>. For the purpose of performance comparison, number of slice registers (NSR), number of slice LUTs (NSL), number of slices (NS), delay, frequency and slice-delay product (SDP) improvement percentage of the proposed design is compared with the existing high throughput DA based structure in [<xref ref-type="bibr" rid="scirp.67244-ref13">13</xref>] and DA based systolic structure in [<xref ref-type="bibr" rid="scirp.67244-ref12">12</xref>] . The structure in [<xref ref-type="bibr" rid="scirp.67244-ref13">13</xref>] also employs parallel LUTs to speed up the computation similar to the proposed structure. Area optimization is done in the proposed design when compared to [<xref ref-type="bibr" rid="scirp.67244-ref13">13</xref>] , by using the proposed reduced LUT decomposed DA algorithm for symmetric FIR filter. From <xref ref-type="table" rid="table3">Table 3</xref>, it is seen that the proposed structure provides area as well as speed improvement over earlier designs. The proposed structure requires 60%, 34.3%, and 27.4% less NSR, NSL, and NS respectively compared to [<xref ref-type="bibr" rid="scirp.67244-ref13">13</xref>] , resulting in SDP improvement of 53.98% for the proposed design. Similarly comparison with sequential access LUT design in [<xref ref-type="bibr" rid="scirp.67244-ref12">12</xref>] , shows that the proposed structure offers 60.62% rise in speed of operation over [<xref ref-type="bibr" rid="scirp.67244-ref12">12</xref>] . The area utilization metrics such as NSR, NSL, and NOS also less for the proposed structure compared to systolic structure.</p></sec><sec id="s6"><title>6. Conclusions</title><p>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</p><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Proposed Modified address generation logic and LUT structure for high speed decomposed DA FIR filter</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/21-7600635x77.png"/></fig><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> LUTs with precomputed stored values for N = 16, L = M = 4</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/21-7600635x78.png"/></fig><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Performance comparison of proposed design with existing design implemented on Virtex-5 FPGA (XC5VSX95T- 1FF1136)</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Design Method</th><th align="center" valign="middle" >NSR</th><th align="center" valign="middle" >NSL</th><th align="center" valign="middle" >NS</th><th align="center" valign="middle" >Delay (ns)</th><th align="center" valign="middle" >Frequency (MHz)</th><th align="center" valign="middle" >SDP</th></tr></thead><tr><td align="center" valign="middle" >Proposed</td><td align="center" valign="middle" >448</td><td align="center" valign="middle" >496</td><td align="center" valign="middle" >225</td><td align="center" valign="middle" >1.646</td><td align="center" valign="middle" >607</td><td align="center" valign="middle" >370</td></tr><tr><td align="center" valign="middle" >High throughput DA based (R = 1) [<xref ref-type="bibr" rid="scirp.67244-ref13">13</xref>]</td><td align="center" valign="middle" >1120</td><td align="center" valign="middle" >755</td><td align="center" valign="middle" >310</td><td align="center" valign="middle" >2.27</td><td align="center" valign="middle" >440</td><td align="center" valign="middle" >804</td></tr><tr><td align="center" valign="middle" >Systolic DA based [<xref ref-type="bibr" rid="scirp.67244-ref12">12</xref>]</td><td align="center" valign="middle" >688</td><td align="center" valign="middle" >833</td><td align="center" valign="middle" >275</td><td align="center" valign="middle" >4.17</td><td align="center" valign="middle" >239</td><td align="center" valign="middle" >1146</td></tr></tbody></table></table-wrap><p>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.</p><p>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.</p></sec><sec id="s7"><title>Cite this paper</title><p>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</p></sec></body><back><ref-list><title>References</title><ref id="scirp.67244-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Proakis, J.G. and Manolakis, D.G. (1996) Digital Signal Processing: Principles, Algorithms and Applications. Prentice- Hall, Upper Saddle River.</mixed-citation></ref><ref id="scirp.67244-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Antoniou, A. (1993) Digital Filters: Analysis, Design, and Applications. McGraw-Hill, New York.</mixed-citation></ref><ref id="scirp.67244-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Ashour, M.A. and Saleh, H.I. (2000) An FPGA Implementation Guide for Some Different Types of Serial-Parallel Multiplier Structures. Microelectronics Journal, 31, 161-168. http://dx.doi.org/10.1016/S0026-2692(99)00110-X</mixed-citation></ref><ref id="scirp.67244-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Qasim, S.M., Telba, A.A. and AlMazroo, A.Y. (2010) FPGA Design and Implementation of Matrix Multiplier Architectures for Image and Signal Processing Applications. International Journal of Computer Science and Network Security, 10, 168-176.</mixed-citation></ref><ref id="scirp.67244-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Obeid, A.M., Qasim, S.M., BenSaleh, M.S., Marrakchi, Z., Mehrez, H., Ghariani, H. and Abid, M. (2014) Flexible Reconfigurable Architecture for DSP Applications. Proceedings of 27th IEEE International System-on-Chip Conference (SOCC), Qasim, September 2014, 204-209.</mixed-citation></ref><ref id="scirp.67244-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">White, S.A. (1989) Applications of the Distributed Arithmetic to Digital Signal Processing: A Tutorial Review. IEEE ASSP Magazine, 6, 5-19. http://dx.doi.org/10.1109/53.29648</mixed-citation></ref><ref id="scirp.67244-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Croisier, A., Esteban, D.J., Levilion, M.E. and Rizo, V. (1973) Digital Filter for PCM Encoded Signals. US Patent 3 777 130, 4 December 1973.</mixed-citation></ref><ref id="scirp.67244-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Peled, A. and Liu, B. (1974) A New Hardware Realization of Digital Filters. IEEE Transactions on Acoustics, Speech, and Signal Processing, 22, 456-462. http://dx.doi.org/10.1109/TASSP.1974.1162619</mixed-citation></ref><ref id="scirp.67244-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Allred, D., Yoo, H., Krishnan, V., Huang, W. and Anderson, D. (2004) A Novel High Performance Distributed Arithmetic Adaptive Filter Implementation on an FPGA. Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP’04), 2004, 161-164. http://dx.doi.org/10.1109/icassp.2004.1327072</mixed-citation></ref><ref id="scirp.67244-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Allred, D.J., Yoo, H., Krishnan, V., Huang, W. and Anderson, D.V. (2005) LMS Adaptive Filters Using Distributed Arithmetic for High Throughput. IEEE Transactions on Circuits and Systems—I: Regular Papers, 52, 1327-1337.http://dx.doi.org/10.1109/TCSI.2005.851731</mixed-citation></ref><ref id="scirp.67244-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Meher, P.K. and Park, S.Y. (2011) High-Throughput Pipelined Realization of Adaptive FIR Filter Based on Distributed Arithmetic. IEEE/IFIP 19th International Conference on VLSI and System-on-Chip, Hong Kong, 3-5 October 2011, 428-433. http://dx.doi.org/10.1109/vlsisoc.2011.6081621</mixed-citation></ref><ref id="scirp.67244-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Meher, P.K., Chandrasekaran, S. and Amira, A. (2008) FPGA Realization of FIR Filters by Efficient and Flexible Systolization Using Distributed Arithmetic. IEEE Transactions on Signal Processing, 56, 3009-3017.http://dx.doi.org/10.1109/TSP.2007.914926</mixed-citation></ref><ref id="scirp.67244-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Park, S.Y. and Meher, P.K. (2014) Efficient FPGA and ASIC Realizations of a DA-Based Reconfigurable FIR Digital Filter. IEEE Transactions on Circuits and Systems—II: Express Briefs, 61, 511-515.</mixed-citation></ref><ref id="scirp.67244-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Meyer-Baese, U. (2003) Digital Signal Processing with Field Programmable Gate Arrays. Springer Pvt. Ltd., India.</mixed-citation></ref></ref-list></back></article>