<?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">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2021.93004</article-id><article-id pub-id-type="publisher-id">JCC-107855</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></subj-group></article-categories><title-group><article-title>
 
 
  A Low-Area, Low-Power Dynamically Reconfigurable 64-Bit Media Signal Processing Adder
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Priscilla</surname><given-names>Sharon Allwin</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>Chien-In</surname><given-names>Henry Chen</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Wright State University, Dayton, OH, USA</addr-line></aff><pub-date pub-type="epub"><day>26</day><month>02</month><year>2021</year></pub-date><volume>09</volume><issue>03</issue><fpage>54</fpage><lpage>69</lpage><history><date date-type="received"><day>14,</day>	<month>February</month>	<year>2021</year></date><date date-type="rev-recd"><day>19,</day>	<month>March</month>	<year>2021</year>	</date><date date-type="accepted"><day>22,</day>	<month>March</month>	<year>2021</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>
 
 
  Multimedia devices like cellphones, radios, televisions, and computers require low-area and energy-efficient dynamically reconfigurable data paths to process the greedy computation algorithms for real-time audio/video signal
   and image processing. In this paper, a novel low-area, energy-efficient 64-bit dynamically reconfigurable adder is presented. This adder can be run-time configured to different reconfigurable word lengths based on the partition signal commands provided. Moreover, the design is partitioned into sub-blocks based on functionality to save power, 
  i.e.
  , configuring the computation only for the necessary data path, thus avoiding the unnecessary switching power from the data path computed values that do not get used. Only functions that are needed are powered on, and the rest of the functionality is powered off. The proposed 64-bit dynamically reconfigurable media signal processing (MSP) adder is implemented in the 180 nm CMOS technology at 1.8 V, requiring an area of 39,478 μm
  <sup>2</sup>
   and a power of 79.24 mW. The dynamic MSP adder achieves a 15.7% reduction in area and a 59.2% reduction in power than the 64-bit MSP adder.
 
</p></abstract><kwd-group><kwd>Media Signal Processing (MSP)</kwd><kwd> Reconfigurable Adder</kwd><kwd> Dynamic Reconfiguration</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Multimedia systems play an essential part in our daily lives and have drastically improved the quality of life over time. Adders are the fundamental data path blocks in media signal processors present in electronic devices such as cellphones, radios, televisions, and computers. These devices require low-area, low-power reconfigurable adders to process real-time greedy computation algorithms such as discrete cosine transform [<xref ref-type="bibr" rid="scirp.107855-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.107855-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.107855-ref3">3</xref>], inverse discrete cosine transform, fast Fourier transform, etc. Configuring an architecture on-the-go such as dynamic configuration, allows a system to be dynamically modified during its normal operation without the need for resetting the remaining circuitry or removing any reconfigurable blocks for programming. The reconfiguration also optimizes the necessary component count and power consumption, making it suitable for data path components in media signal processing, networking, and cryptography [<xref ref-type="bibr" rid="scirp.107855-ref4">4</xref>] - [<xref ref-type="bibr" rid="scirp.107855-ref18">18</xref>].</p><p>Several reconfigurable adder architectures have been proposed for MSP applications. A reconfigurable adder uses an 8-bit carry generation block as the basic unit and a prefix-based controlled carry grouping logic to reduce power consumption [<xref ref-type="bibr" rid="scirp.107855-ref9">9</xref>]. A reconfigurable carry-skip adder for minimal energy and high-speed performance was proposed in [<xref ref-type="bibr" rid="scirp.107855-ref11">11</xref>]. A reconfigurable SQRT-CSLA with a modified ripple carry adder for high speed is proposed in [<xref ref-type="bibr" rid="scirp.107855-ref12">12</xref>]. A hybrid reconfigurable adder architecture combined with variants like RCA, CLA, CSLA for reduced power and area is proposed in [<xref ref-type="bibr" rid="scirp.107855-ref13">13</xref>]. A reconfigurable adder targeted for Binary/BCD addition for high-speed performance was proposed in [<xref ref-type="bibr" rid="scirp.107855-ref19">19</xref>].</p><p>In media signal processing, the data path switching, such as in adders and multipliers, can substantially consume switching power. We aim to configure the computation only for the necessary data path, thus avoiding the unnecessary switching power from the data path computed values that do not get used. This paper focuses on a novel 64-bit reconfigurable adder architecture for MSP applications with reduced area and power consumption. Moreover, the reconfiguration of the proposed design is more dynamic than the existing design [<xref ref-type="bibr" rid="scirp.107855-ref11">11</xref>] and requires less area and power.</p><p>The proposed 64-bit dynamic reconfigurable adder includes the second stage of partition to increase the reconfigurability. This dynamic configuration is a unique feature that has not been explored in previous designs [<xref ref-type="bibr" rid="scirp.107855-ref9">9</xref>] [<xref ref-type="bibr" rid="scirp.107855-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.107855-ref12">12</xref>] [<xref ref-type="bibr" rid="scirp.107855-ref13">13</xref>] [<xref ref-type="bibr" rid="scirp.107855-ref19">19</xref>]. Multimedia Signal Processors perform millions of complex computations within seconds; therefore, they require a high-speed, low-power data-path to store and compute the signals that arrive at it. The high switching activity in the data-path components contributes to higher power consumption, which has been minimized in the proposed adder by using a new reconfiguration scheme. It gives more flexibility and control over the choice of partition, which minimizes data path hardware usage by turning off the unused components and routing the signals efficiently, leading to lower power consumption.</p><p>Section 2 describes the logic behind the 64-bit CSMT reconfigurable adder and then the 64-bit dynamic CSMT reconfigurable adder.</p></sec><sec id="s2"><title>2. 64-Bit Reconfigurable Adder for Media Signal Processing</title><sec id="s2_1"><title>2.1. Reconfigurable Adder</title><p>The architecture explained in [<xref ref-type="bibr" rid="scirp.107855-ref11">11</xref>] is taken as a reference in our first 64-bit CSMT reconfigurable adder design. <xref ref-type="fig" rid="fig1">Figure 1</xref> shows the architecture of the proposed adder. It consists of a series of non-uniform linearly increasing blocks of the order such as 1-bit, 3-bit, 4-bit, 5-bit, 6-bit, 7-bit, 8-bit, 9-bit, 10-bit, and 11-bit, with 1-bit being the Least Significant Bit (LSB) block and 11-bit being the Most Significant Bit (MSB) block. The proposed design performs run-time reconfiguration for one 64-bit, two 32-bit, four 16-bit, or eight 8-bit additions based on the partition signal command provided to it. The on-demand reconfiguration is made possible with two control signals P0 and P1. Since the 8-bit addition is the smallest precision block, the least significant blocks such as 1-bit, 3-bit, and 4-bit blocks do not require any partitioning.</p><p><xref ref-type="table" rid="table1">Table 1</xref> provides the partition configuration of the proposed adder design. Each block on the table has two sub-blocks of bits (x-bit, y-bit) where x is the least significant and y is the most significant. When partitioning is required, the control signals (P0 and P1) ensure that no carry propagation occurs between these two separate sub-blocks, x-bit, and y-bit. Consider the case of eight 8-bit additions, where every MSB block (5-bit to 11-bit) requires partitioning. The 5-bit block is split in the 1<sup>st</sup>-bit position, and the 6-bit block is split in the 3<sup>rd</sup>-bit position, and there is no carry propagation between the two partitioned blocks. <xref ref-type="table" rid="table1">Table 1</xref> shows how each block is divided concerning the configuration of addition.</p></sec><sec id="s2_2"><title>2.2. Dynamic CSMT Based 64-Bit Adder</title><p><xref ref-type="fig" rid="fig2">Figure 2</xref> shows a new modified 64-bit reconfigurable CSMT adder, which is</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Partition commands for the first 64-bit reconfigurable MSP adder</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Sub-blocks</th><th align="center" valign="middle" >P0 = 0 P1 = 0</th><th align="center" valign="middle" >P0 = 0 P1 = 1</th><th align="center" valign="middle" >P0 = 1 P1 = 0</th><th align="center" valign="middle" >P0 = 1 P1 = 1</th></tr></thead><tr><td align="center" valign="middle" >64-bit</td><td align="center" valign="middle" >32-bit</td><td align="center" valign="middle" >16-bit</td><td align="center" valign="middle" >8-bit</td></tr><tr><td align="center" valign="middle" >5-bit</td><td align="center" valign="middle" >Previous block carry</td><td align="center" valign="middle" >Previous block carry</td><td align="center" valign="middle" >Previous block carry</td><td align="center" valign="middle" >Original Cin</td></tr><tr><td align="center" valign="middle" >6-bit</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >(3-b, 3-b)</td><td align="center" valign="middle" >(3-b, 3-b)</td></tr><tr><td align="center" valign="middle" >7-bit</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >(2-b, 5-b)</td></tr><tr><td align="center" valign="middle" >8-bit</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >(2-b, 6-b)</td><td align="center" valign="middle" >(2-b, 6-b)</td><td align="center" valign="middle" >(2-b, 6-b)</td></tr><tr><td align="center" valign="middle" >9-bit</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >(3-b, 6-b)</td></tr><tr><td align="center" valign="middle" >10-bit</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >(5-b, 5-b)</td><td align="center" valign="middle" >(5-b, 5-b)</td></tr><tr><td align="center" valign="middle" >11-bit</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >(8-b, 3-b)</td></tr></tbody></table></table-wrap><p>dynamic, meaning the adder can be further partitioned into several other configurations along with the existing one (<xref ref-type="fig" rid="fig1">Figure 1</xref>) to enhance on-demand media signal processing. The red lines indicate the additional signals that were added to the existing architecture to make it dynamic. The second stage of partitioning is proposed for this purpose, which is explained in <xref ref-type="table" rid="table2">Table 2</xref>. The second stage becomes active for additional partitioning when the original configuration performs either two 32-bit additions or four 16-bit additions. The partition signals (P0 and P1) and the control signals Si1, Si2, Si3, and Si4 (enable signals of the control multiplexers) would allow users to configure the adder according to their requirements. The command signals and their functions are explained in <xref ref-type="table" rid="table3">Table 3</xref>.</p><p>Control signal Si1 enables the user to decide between either a 16-bit partition or an 8-bit partition, based on the enable signal given to the multiplexer M1. The demultiplexer M3 gets an input (P2 or off) from multiplexer M2 depending on the XOR output. This M3 directs the partition value signal (P2) to either the most significant 32-bit/16-bit block or the least significant 32-bit/16-bit block depending on the enable signal Si2. The multiplexers M4 and M5 select either the LSB or MSB side of the adder, respectively. The enable signals Si3 (MUX M4) and Si4 (MUX M5) choose between maintaining the original configuration or switching to the 2<sup>nd</sup> stage partitioning for each side individually.</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> The additional second stage partition configuration in the proposed 64-bit dynamically reconfigurable MSP adder</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="3"  >Sub-blocks</th><th align="center" valign="middle" >P0 = 0 P1 = 0</th><th align="center" valign="middle"  colspan="3"  >P0 = 0 P1 = 1</th><th align="center" valign="middle"  colspan="2"  >P0 = 1 P1 = 0</th><th align="center" valign="middle" >P0 = 1 P1 = 1</th></tr></thead><tr><td align="center" valign="middle"  rowspan="2"  >64-bit</td><td align="center" valign="middle"  colspan="3"  >32-bit</td><td align="center" valign="middle"  colspan="2"  >16-bit</td><td align="center" valign="middle"  rowspan="2"  >8-bit</td></tr><tr><td align="center" valign="middle" >32-bit Normal</td><td align="center" valign="middle" >P2 = 0 16-bit</td><td align="center" valign="middle" >P2 = 1 8-bit</td><td align="center" valign="middle" >16-bit Normal</td><td align="center" valign="middle" >P2 = 1 8-bit</td></tr><tr><td align="center" valign="middle" >5-bit</td><td align="center" valign="middle" >Previous block carry</td><td align="center" valign="middle" >Previous block carry</td><td align="center" valign="middle" >Previous block carry</td><td align="center" valign="middle" >Original Cin</td><td align="center" valign="middle" >Previous block carry</td><td align="center" valign="middle" >Original Cin</td><td align="center" valign="middle" >Original Cin</td></tr><tr><td align="center" valign="middle" >6-bit</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(3-b,3-b)</td><td align="center" valign="middle" >(3-b,3-b)</td><td align="center" valign="middle" >(3-b, 3-b)</td><td align="center" valign="middle" >(3-b, 3-b)</td><td align="center" valign="middle" >(3-b, 3-b)</td></tr><tr><td align="center" valign="middle" >7-bit</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(2-b,5-b)</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(2-b, 5-b)</td><td align="center" valign="middle" >(2-b, 5-b)</td></tr><tr><td align="center" valign="middle" >8-bit</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(2-b, 6-b)</td><td align="center" valign="middle" >(2-b, 6-b)</td><td align="center" valign="middle" >(2-b, 6-b)</td><td align="center" valign="middle" >(2-b, 6-b)</td><td align="center" valign="middle" >(2-b, 6-b)</td><td align="center" valign="middle" >(2-b, 6-b)</td></tr><tr><td align="center" valign="middle" >9-bit</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(3-b, 6-b)</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(3-b, 6-b)</td><td align="center" valign="middle" >(3-b, 6-b)</td></tr><tr><td align="center" valign="middle" >10-bit</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(5-b,5-b)</td><td align="center" valign="middle" >(5-b,5-b)</td><td align="center" valign="middle" >(5-b, 5-b)</td><td align="center" valign="middle" >(5-b, 5-b)</td><td align="center" valign="middle" >(5-b, 5-b)</td></tr><tr><td align="center" valign="middle" >11-bit</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(8-b,3-b)</td><td align="center" valign="middle" >--</td><td align="center" valign="middle" >(8-b, 3-b)</td><td align="center" valign="middle" >(8-b, 3-b)</td></tr></tbody></table></table-wrap><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Control signals and their functions</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Si1</th><th align="center" valign="middle" >Partition</th></tr></thead><tr><td align="center" valign="middle" >0</td><td align="center" valign="middle" >16-bit</td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >8-bit</td></tr><tr><td align="center" valign="middle" >Si2</td><td align="center" valign="middle" >Function</td></tr><tr><td align="center" valign="middle" >0</td><td align="center" valign="middle" >LSB</td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >MSB</td></tr><tr><td align="center" valign="middle" >Si3/Si4</td><td align="center" valign="middle" >Function</td></tr><tr><td align="center" valign="middle" >0</td><td align="center" valign="middle" >Original Partitioning</td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2<sup>nd</sup> stage partitioning</td></tr></tbody></table></table-wrap><p>Section 3 describes the design process of the proposed 64-bit reconfigurable MSP adder and the 64-bit dynamically reconfigurable MSP adder. Subsection 3.1 further explains the design and operation of the internal sub-blocks for the regular partition and the second stage partition in detail.</p></sec></sec><sec id="s3"><title>3. Design Implementation of the 64-Bit Dynamically Reconfigurable MSP Adder</title><p>The Carry Select Modified Tree adder is a multiplexer-based design with low latency and low energy consumption [<xref ref-type="bibr" rid="scirp.107855-ref20">20</xref>] [<xref ref-type="bibr" rid="scirp.107855-ref21">21</xref>]. The proposed 64-bit dynamic reconfigurable adder adopts the CSMT based adder to build the basic reconfigurable block. <xref ref-type="fig" rid="fig3">Figure 3</xref>(a) shows a bit slice of the multiplexer-based adder that is designed using the CSMT principle proposed in [<xref ref-type="bibr" rid="scirp.107855-ref21">21</xref>]. Consider a simple addition function, say</p><p>Y = A + B</p><p>where Y = Y<sub>w</sub><sub>−1</sub>….Y<sub>0</sub>, A = A<sub>w</sub><sub>−1</sub>….A<sub>0</sub> and B = B<sub>w</sub><sub>−1</sub>….B<sub>0</sub> represents W-bit binary numbers. A multiplexer-based design is implemented by defining a new recoding where,</p><p>A i r = A i ⋅ B i</p><p><sub> B i r = A i + B i </sub><sub> </sub></p><p>This creates a don’t care condition, thereby reducing the complexity of the circuit. The equations for sum and carry can be expressed as,</p><p>S i + 1 = C i ( B i r + A i r ) + C i ( A i r + B i r )</p><p>C i + 1 = C i ⋅ B i r + C i ⋅ A i</p><sec id="s3_1"><title>3.1. Sub-Block Operation</title><p>The sub-blocks fall into two categories, the one that requires partitioning and the one that does not need it. The partitioning decision is determined by the partition commands in <xref ref-type="table" rid="table2">Table 2</xref> and the control signals in <xref ref-type="table" rid="table3">Table 3</xref>. The reconfiguration is designed in such a way as to avoid unnecessary circuitry in the carry propagation path between the configured blocks.</p><sec id="s3_1_1"><title>3.1.1. Design of the Least Significant Bit Blocks</title><p>The 1-, 3- and 4-bit blocks are the LSB blocks of the design, and they do not require any configuration since the lowest bit operation is an 8-bit addition (1 + 3 + 4 = 8). The design is simple, and straight forward. <xref ref-type="fig" rid="fig3">Figure 3</xref>(a) shows the 1-bit block design having inputs A, B, and C<sub>i</sub>, where C<sub>i</sub> becomes the select line of the multiplexers to generate the sum (S) and Carry out (C<sub>o</sub>). The SKIP signal (SKIP = A ⋅ B &#175; ) is used as a select line for the Inverted multiplexer of the carry skip circuit present for each block. This block is then extended to design the 3-bit and 4-bit adder blocks, where the C<sub>o</sub> of the 1<sup>st</sup>-bit becomes the C<sub>i</sub> value for the next bit. The design of the 4-bit adder block is shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>(b).</p></sec><sec id="s3_1_2"><title>3.1.2. Design of the Most Significant Bit Blocks</title><p>The design of the MSB blocks is essential since it involves the partition process. These partitions are sub-grouped into three categories for a better understanding of the configuration. Based on the partition commands given to the blocks, they are:</p><p>1) 6-bit and 10-bit blocks—require partition only for 8- and 16-bit additions</p><p>2) 5-bit, 7-bit, 9-bit, 11-bit blocks—require partition only for 8-bit addition</p><p>3) 8-bit block—require partition only for 8-, 16- and 32-bit addition.</p><p>The 6-bit and 10-bit design uses a simple inverter and a multiplexer to decode the partition command P 0 &#175; . The 6-bit block is partitioned as (3-b, 3-b) sub-block and the 10-bit block is partitioned as (5-b, 5-b) sub-block. Depending on the decoded value, the previous block’s carry out is given to the current block or it by-passes to the next block. <xref ref-type="fig" rid="fig4">Figure 4</xref>(a) shows the 6-bit design without the second stage partition. The second stage partition is introduced into the design by adding a multiplexer. <xref ref-type="fig" rid="fig4">Figure 4</xref>(b) shows the signal flow for both the original partition and the second stage partition, where the red lines indicate the 2<sup>nd</sup> stage partition flow.</p><p>The 5-, 7-, 9- and 11-bit designs require partition only when performing eight 8-bit additions; therefore, a NAND gate along with a multiplexer is used to decode the partition command P 0 ⋅ P 1 &#175; . The blocks are partitioned as described in <xref ref-type="table" rid="table2">Table 2</xref>. The design of a regular 5-bit and a 9-bit block is presented in <xref ref-type="fig" rid="fig5">Figure 5</xref>(a) and <xref ref-type="fig" rid="fig5">Figure 5</xref>(b). By adding two multiplexers and an inverter, the second</p><p>stage partition can decode the partition command. <xref ref-type="fig" rid="fig5">Figure 5</xref>(c) and <xref ref-type="fig" rid="fig5">Figure 5</xref>(d) show the 5-bit and 9-bit design signal flow for the second stage partition. The red lines show the flow of the second stage partition signals.</p><p>The 8-bit design requires a constant partition unless the 64-bit addition is performed. A multiplexer and a NOR gate ( P 0 ⋅ P 1 &#175; ) are used to decode the partitioned signal coming into the block. <xref ref-type="fig" rid="fig6">Figure 6</xref> describes the 8-bit block partitioning.</p><p>This block does not require any additional partition for the 2<sup>nd</sup> stage partition.</p><p>The operation of the 64-bit dynamic MSP adder which is built using these sub-blocks and the significance of the second stage partition is explained in detail in the following section.</p></sec></sec></sec><sec id="s4"><title>4. The Dynamically Reconfigurable CSMT Based 64-Bit MSP Adder Operation</title><p><xref ref-type="fig" rid="fig7">Figure 7</xref> shows how the adder is configured to perform two 32-bit additions using the CSMT based 64-bit MSP adder. The highlighted green boxes indicate each of the individual 32-bit adders. The control signals P0<sub> </sub>and P1<sub> </sub>are set to 0 and 1 respectively to perform the 32-bit additions concerning the partition commands provided in <xref ref-type="table" rid="table1">Table 1</xref>. The control signals P0 and P1 activate the 8-bit block (highlighted in black) to be partitioned as (2-b, 6-b) sub-blocks and ensures that no carry bit is propagated among these sub-blocks. The drawback of this adder is that it can have only a single configuration model at a given time.</p><p>A second stage configuration is introduced in the proposed 64-bit dynamically reconfigurable adder to solve this problem. <xref ref-type="fig" rid="fig8">Figure 8</xref> shows the proposed CSMT based dynamically reconfigurable adder that has additional configuration options. Let us take the two 32-bit addition case. As a supplement to the first stage 32-bit partition, the second stage control signals Si1, Si2, Si3/Si4 allow the user to configure additional partitions to the adder if needed. Among the two 32-bit adders, either of the adders can be further partitioned to perform two 16-bit or four 8-bit additions.</p><p>In <xref ref-type="fig" rid="fig8">Figure 8</xref>, we take the LSB 32-bit adder for partitioning. The MSB still performs the original 32-bit addition. The green highlighted sections indicate the first stage 32-bit adders obtained by setting P0 = 0 and P1 = 1, therefore splitting the 8-bit block (highlighted in black) into (2-b, 6-b) sub-blocks. The red</p><p>arrows indicate the active data path signals, and the grey arrows indicate the inactive data path signals. The second stage of partition is activated when the first stage of configuration is either 32-bit or 16-bit.</p><p>In <xref ref-type="fig" rid="fig8">Figure 8</xref> the XOR output is 1 for the 32-bit configuration (P0 = 0, P1 = 1). The second stage control signal Si1 is set to 0, Si2 is set to 0, and Si3 is set to 1, according to <xref ref-type="table" rid="table3">Table 3</xref>. The enable signal En = 1. The corresponding partition selection is then sent to P2, either selecting the LSB or the MSB based on the Si2 value. For an example of two 16-bit adder configurations, the 6-bit block (highlighted in black) is split as (3-b, 3-b) sub-blocks and no carry propagation occurs among the sub-blocks. The 16-bit blocks are highlighted in pink within the 32-bit green block.</p><p>The dynamically reconfigurable adder has two advantages:</p><p>1) Internal partitions can be run-time configured without having to replace the adder blocks.</p><p>2) The MSP adder's power consumption is significantly reduced since the MSP adder computes only for the necessary data path, thus avoiding the unnecessary switching power from the data path computed values that do not get used. The performance evaluation of the CSMT based 64-bit MSP adder, the CSMT based dynamically reconfigurable 64-bit MSP adder and the 64-bit MSP adder [<xref ref-type="bibr" rid="scirp.107855-ref11">11</xref>] in terms of area, power and delay are explained in the next section.</p></sec><sec id="s5"><title>5. Performance Evaluation</title><p><xref ref-type="table" rid="table4">Table 4</xref> shows the area, power, and delay comparison for the three designs. They are 1) the 64-bit MSP adder [<xref ref-type="bibr" rid="scirp.107855-ref11">11</xref>], 2) the proposed CSMT based 64-bit MSP adder, and 3) the proposed dynamically reconfigurable CSMT based 64-bit MSP adder. All three designs were implemented, verified, synthesized, and optimized in CMOS 180 nm technology.</p><p>In comparison with the 64-bit MSP adder [<xref ref-type="bibr" rid="scirp.107855-ref11">11</xref>]:</p><p>1) the proposed CSMT based 64-bit MSP adder has a 23% reduction in area and a 53.1% reduction in power, and</p><p>2) the proposed dynamically configurable CSMT based 64-bit MSP adder has a 15.7% reduction in area and a 59.2% reduction in power.</p><p>When compared with the proposed CSMT based 64-bit MSP adder, the dynamically configurable CSMT based 64-bit MSP adder has a 13% reduction in power. The area is increased by 9.4% because of the second stage of partition</p><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Area, power and delay comparison results</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Parameters</th><th align="center" valign="middle" >64-bit MSP adder [<xref ref-type="bibr" rid="scirp.107855-ref11">11</xref>]</th><th align="center" valign="middle" >The proposed CSMT based 64-bit MSP adder</th><th align="center" valign="middle" >The proposed Dynamically configurable CSMT based 64-bit MSP adder</th></tr></thead><tr><td align="center" valign="middle" >Area (μm<sup>2</sup>)</td><td align="center" valign="middle" >46,851</td><td align="center" valign="middle" >36,085</td><td align="center" valign="middle" >39,478</td></tr><tr><td align="center" valign="middle" >Power (mW)</td><td align="center" valign="middle" >194.19</td><td align="center" valign="middle" >91.02</td><td align="center" valign="middle" >79.24</td></tr><tr><td align="center" valign="middle" >Delay (ns)</td><td align="center" valign="middle" >19.94</td><td align="center" valign="middle" >20.67</td><td align="center" valign="middle" >21.53</td></tr></tbody></table></table-wrap><p>that configures the MSP computation only for the necessary data path, thus avoiding the unnecessary switching power from the data path computed values that do not get used.</p></sec><sec id="s6"><title>6. Conclusion</title><p>It is nearly impossible to achieve a design that takes up less area, consumes less power, and runs at high speed simultaneously since there is always a trade-off. This paper has presented a low-area, low-power CSMT based 64-bit MSP adder, which can be run-time reconfigured to perform either eight 8-bits, four 16-bits, two 32-bits, or one 64-bit addition based on the partition command. This circuit is further optimized in power by adding a second stage of partition to make the design more dynamically reconfigurable. It gives the user flexibility and control over the choice of partitioning for media signal processing. The proposed CSMT based 64-bit MSP adder achieves a 23% reduction in area, 53% reduction in power with a slight 4% increase in delay than the 64-bit MSP adder. Next, the proposed dynamically configurable CSMT based 64-bit MSP adder consumes less power by 59.2% and 13% compared to the 64-bit MSP adder and the proposed CSMT based 64-bit MSP adder, respectively. The proposed dynamically configurable CSMT based 64-bit MSP adder requires less area by 15.7% than the 64-bit MSP adder. All three designs have close critical path delays; however, the low-area and low-power feature of the proposed dynamically configurable CSMT based 64-bit MSP adder makes it practical for media signal processing applications.</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>Allwin, P.S. and Chen, C.-I.H. (2021) A Low-Area, Low-Power Dynamically Reconfigurable 64-Bit Media Signal Processing Adder. Journal of Computer and Communications, 9, 54-69. https://doi.org/10.4236/jcc.2021.93004</p></sec></body><back><ref-list><title>References</title><ref id="scirp.107855-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Parhi, K.K. (2013) Comments on “Low-Energy CSMT Carry Generators and Binary Adders”. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 21, 791. https://doi.org/10.1109/TVLSI.2012.2190771</mixed-citation></ref><ref id="scirp.107855-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Parhi, K.K. (1999) Low-Energy CSMT Carry Generators and Binary Adders. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 7, 450-462. https://doi.org/10.1109/92.805752</mixed-citation></ref><ref id="scirp.107855-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Ahmed, S.E., Veeramanchaneni, S., Muthukrishnan, N.M. and Srinivas, M.B. (2011) Reconfigurable Adders for Binary/BCD Addition/Subtraction. 2011 Asia Pacific Conference on Postgraduate Research in Microelectronics &amp; Electronics, Macau, 6-7 October 2011, 106-109. https://doi.org/10.1109/PrimeAsia.2011.6075082</mixed-citation></ref><ref id="scirp.107855-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Abhilash, R., Dubey, S. and Chinnaiah, M. (2016) ASIC Design of Signed and Unsigned Multipliers Using Compressors. 2016 International Conference on Microelectronics, Computing and Communications (MicroCom), Durgapur, Durgapur, 1-6. https://doi.org/10.1109/MicroCom.2016.7522523</mixed-citation></ref><ref id="scirp.107855-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Benara, V. and Purini, S. (2016) Accurus: A Fast Convergence Technique for Accuracy Configurable Approximate Adder Circuits. 2016 IEEE Computer Society Annual Symposium on VLSI (ISVLSI), Pittsburgh, 11-13 July 2016, 577-582. https://doi.org/10.1109/ISVLSI.2016.58</mixed-citation></ref><ref id="scirp.107855-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Parmar, S. and Singh, K.P. (2013) Design of High-Speed Hybrid Carry Select Adder. 2013 3rd IEEE International Advance Computing Conference (IACC), Ghaziabad, 22-23 February 2013, 1656-1663. https://doi.org/10.1109/IAdCC.2013.6514477</mixed-citation></ref><ref id="scirp.107855-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Mohanty, B.K. and Patel, S.K. (2014) Area-Delay-Power Efficient Carry-Select Adder. IEEE Transactions on Circuits and Systems II: Express Briefs, 61, 418-422.https://doi.org/10.1109/TCSII.2014.2319695</mixed-citation></ref><ref id="scirp.107855-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Vijay, K.C.N. and Pandu, S. (2013) Design and Implementation of CVNS Based Low Power 64-Bit Adder.</mixed-citation></ref><ref id="scirp.107855-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Karthick, S., Valarmathy, S. and Prabhu, E. (2014) Reconfigurable Adder Architectures for Low Power Applications. International Journal of Computer Applications, 96, 31-36. https://doi.org/10.5120/16783-6367</mixed-citation></ref><ref id="scirp.107855-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Kumar, G.K. and Balaji, N. (2017) Reconfigurable Delay Optimized Carry Select Adder. 2017 International Conference on Innovations in Electrical, Electronics, Instrumentation and Media Technology (ICEEIMT), Coimbatore, 3-4 February 2017, 123-127. https://doi.org/10.1109/ICIEEIMT.2017.8116819</mixed-citation></ref><ref id="scirp.107855-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Stefania, P., Pasquale, C. and Giuseppe, C. (2003) A High-Speed Energy Efficient 64-Bit Reconfigurable Binary Adder. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 11, 939-943. https://doi.org/10.1109/TVLSI.2003.817109</mixed-citation></ref><ref id="scirp.107855-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Perri, S., Corsonello, P. and Cocorullo, G. (2002) 64-Bit Reconfigurable Adder for Low Power Media Processing. Electronics Letters, 38, 397-399. https://doi.org/10.1049/el:20020295</mixed-citation></ref><ref id="scirp.107855-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Chetan Kumar, V., Sai Phaneendra, P., Ahmed, S.E., Veeramachaneni, S., Muthukrishnan, N.M. and Srinivas, M.B. (2011) A Prefix Based Reconfigurable Adder. 2011 IEEE Computer Society Annual Symposium on VLSI, Chennai, 4-6 July 2011, 349-350. https://doi.org/10.1109/ISVLSI.2011.69</mixed-citation></ref><ref id="scirp.107855-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Kojima, T. and Amano, H. (2018) A Configuration Data Multicasting Method for Coarse-Grained Reconfigurable Architectures. 2018 28th International Conference on Field Programmable Logic and Applications, Dublin, 27-31 August 2018, 239-2393. https://doi.org/10.1109/FPL.2018.00048</mixed-citation></ref><ref id="scirp.107855-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Hubner, M., Tradowsky, C., Gohringer, D., Braun, L., Thoma, F., Henkel, J. and Becker, J. (2011) Dynamic Processor Reconfiguration. Proceedings of the 2011 International Conference on Reconfigurable Computing and FPGAs, Cancun, 30 November-2 December 2011, 123-128. https://doi.org/10.1109/ReConFig.2011.30</mixed-citation></ref><ref id="scirp.107855-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Vipin, K. and Fahmy, S.A. (2018) FPGA Dynamic and Partial Reconfiguration: A Survey of Architectures, Methods, and Applications. ACM Computing Surveys, 51, Article No. 72, 39 p. https://doi.org/10.1145/3193827</mixed-citation></ref><ref id="scirp.107855-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Bhandari, S., Subbaraman, S., Pujari, S., Cancare, F., Bruschi, F., Santambrogio, M.D. and Grassi, P.R. (2012) High-Speed Dynamic Partial Reconfiguration for Real-Time Multimedia Signal Processing. Proceedings of the 2012 15th Euromicro Conference on Digital System Design, 5-8 September 2012, 319-326.https://doi.org/10.1109/DSD.2012.74</mixed-citation></ref><ref id="scirp.107855-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Yang, H.Q., Zhang, F.J., Lai, J.M. and Wang, Y. (2010) Image Filtering Using Partially and Dynamically Reconfiguration. 2010 10th IEEE International Conference on Solid-State and Integrated Circuit Technology, Shanghai, 1-4 November 2010, 2067-2073. https://doi.org/10.1109/ICSICT.2010.5667280</mixed-citation></ref><ref id="scirp.107855-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Kiran, K.R., Kumar, C.A. and Suresh Kumar, M. (2015) Design and Analysis of a Novel High-Speed Adder Based Hardware Efficient Discrete Cosine Transform (DCT). 2015 5th International Conference on Advances in Computing and Communications (ICACC), Kochi, 2-4 September 2015, 169-173.https://doi.org/10.1109/ICACC.2015.88</mixed-citation></ref><ref id="scirp.107855-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Pashaeifar, M., Kamal, M., Afzali-Kusha, A. and Pedram, M. (2018) Approximate Reverse Carry Propagate Adder for Energy-Efficient DSP Applications. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 26, 2530-2541. https://doi.org/10.1109/TVLSI.2018.2859939</mixed-citation></ref><ref id="scirp.107855-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Gupta, V., Mohapatra, D., Raghunathan, A. and Roy, K. (2013) Low-Power Digital Signal Processing Using Approximate Adders. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 32, 124-137. https://doi.org/10.1109/TCAD.2012.2217962</mixed-citation></ref></ref-list></back></article>