Datapath Synthesis for Standard-Cell Design

Datapath Synthesis for Standard-Cell Design

2009 19th IEEE International Symposium on Computer Arithmetic Datapath Synthesis for Standard-Cell Design Reto Zimmermann DesignWare, Solutions Group Synopsys Switzerland LLC, 8050 Zurich, Switzerland [email protected] blocks consist of a collection of SOPs, shifters and se- Abstract lectors. An SOP furthermore is composed just like a simple multiplier of partial-product generation Datapath synthesis for standard-cell design goes (PPG), carry-save addition (CSA, Wallace tree) and through extraction of arithmetic operations from RTL carry-propagate addition (CPA). All extracted opera- code, high-level arithmetic optimizations and netlist tions can handle inputs and outputs in carry-save num- generation. Numerous architectures and optimization ber representation, which allows to keep internal results strategies exist that result in circuit implementations in carry-save and therefore to improve performance by with very different performance characteristics. This eliminating internal carry propagations [1]. work summarizes the circuit architectures and tech- niques used in a commercial synthesis tool to optimize 3. Datapath Optimization cell-based datapath netlists for timing, area and power. After datapath extraction high-level arithmetic op- 1. Introduction timizations are carried out, such as common sub- expression sharing or unsharing, sharing of mutually Design Compiler is the Synopsys platform to syn- exclusive operations, comparator sharing, constant thesize RTL code into a standard-cell netlist. Arithmet- folding and other arithmetic simplifications. Sum-of- ic operations are first extracted into datapath blocks, products are converted to product-of-sums where bene- undergo high-level arithmetic optimizations and are ficial (A*B+A*C A*(B+C)). Number representa- finally mapped to gates through dedicated datapath tions for intermediate results are selected among bi- generators. This paper highlights the circuit architec- nary, carry-save and partial-product based on the de- tures and optimization techniques used to generate op- sign constraints and optimization goals. Generally bi- timized netlists for a given design context. Special nary representation is used for area optimization and emphasis is given to the relatively new area of power carry-save for delay optimization. optimization. The paper does not go into any technical details, but rather gives an overview of what mostly 4. Datapath Generation known and published architectures and techniques are successfully applied in our cell-based synthesis flow. Flexible context-driven generators are used to im- plement the gate-level netlist for a datapath under a 2. Datapath Extraction given design context. This context includes input ar- rival times, output timing constraints, area and power Arithmetic operations such as addition, multipli- constraints, operating conditions and cell library cha- cation, comparison, shift, as well as selection are first racteristics. extracted from the RTL code into datapath blocks. Thereby largest possible clusters are formed by includ- 4.1. Partial-Product Generation ing all connected operations into one single datapath block. This allows the subsequent high-level optimiza- Partial products have to be generated for multiplica- tions and number representation selection to be most tion operations. The following generators are included: effective. 1. Constant multiplication: CSD (canonic signed- The most generic arithmetic operation that is ex- digit) encoding of constant input to minimize the tracted is the sum-of-products (SOP), which also covers number of partial products that need to be summed simple addition, subtraction, increment, multiplier and up. even comparison. Therefore the extracted datapath 2. Binary multiplication: 1063-6889/09 $25.00 © 2009 IEEE 207 DOI 10.1109/ARITH.2009.28 a. Brown (unsigned), Baugh-Wooley (signed): imum fanout (= net loads). The following schemes are Best architectures for small word lengths (8- used to optimize the adder for a given context: 16 bits). 1. Parallel-prefix structure: A prefix graph optimiza- b. Radix-4 Booth: Good area, best delay for tion algorithm is used to generate area-optimized large word lengths. flexible prefix structures (unbounded fanout) for c. Radix-8 Booth: best area for large word given timing constraints [1]. The algorithm is able lengths, but longer delay. to generate a serial-prefix structure for very loose constraints, a fast parallel-prefix structure for tight 3. Special multiplication: constraints, and a mix of both for constraints in a. Square: Implemented as A*A, bit-level gate between. It takes bit-level input arrival times and simplification and equivalent bit optimization output required times into account and therefore before carry-save addition automatically re- adapts the prefix structure to any arbitrary input sults in an optimized squarer structure. and output timing profile, including late arriving b. Blend: Partial-product bits of the blend opera- single bits or U-shaped input profiles of the final tion A*B+~A*C are generated using multip- adder in multipliers. This helps reduce circuit area lexers to reduce the number of product bits. but also delay for the most critical input bits. 4. Carry-Save multiplication: One input is carry- Bounded fanout prefix structures (like Kogge- save, which allows to implement product-of-sums, Stone) can also be generated, but are not opti- like (A+B)*C, without internal carry propagation. mized for non-uniform timing profiles. Delay is reduced at the expense of larger area. 2. Sum bit generation: In the carry-lookahead a. Non-Booth: Carry-save input is converted to scheme the prefix structure calculates (look- delayed-carry representation (through a row of ahead) all the carries, which then compute the sum half-adders), then pairs of mutually exclusive bits. In the carry-select scheme the two possible partial-product bits can be added with a sim- sum bits for a carry-in of 0 and 1 are calculated in ple OR-gate. advance and then selected through a series of mul- tiplexers controlled by the carries from all levels b. Booth: Special Booth encoder for carry-save of the prefix structure. This latter scheme is used input. in carry-select and conditional-sum adders. All of the above architectures prove beneficial un- 3. Prefix signal encoding: The prefix structure can der certain conditions and constraints. More informa- either compute generate/propagate signal pairs tion and references on the individual architectures are using AND-OR gates (optimized into AOI/OAI available in [1]. structures) or carry-in-0/carry-in-1 signal pairs 4.2. Carry-Save Addition using multiplexers. 4. Prefix radix: The most common parallel-prefix All partial-product bits are added up by reducing adders use a radix-2 prefix structure (i.e., each every column from N inputs bits down to 2 output bits prefix node processes two input signal pairs to (carry-save representation). Column compression is produce one output pair). Radix-3 and radix-4 done using compressor cells, such as half-adders (2:2 prefix adders on the other hand process 3 or 4 in- compressor), full-adders (3:2 compressor) and 4:2 put pairs in each prefix node. The resulting prefix compressors. The timing-driven adder tree construc- node logic is more complex but the prefix struc- tion considers input arrival times as well as cell pin-to- ture is shallower and thus potentially faster. The pin delays, resulting in delay-optimal adder trees that high-radix parallel-prefix adders only give better are better than Wallace trees [2]. performance if special multilevel AND-OR-gates (like AOAOI) are available in the library. 4.3. Carry-Propagate Addition 5. Special architectures: Ling adder and spanning- The carry-save output from carry-save addition is tree adder architectures are also supported. converted to binary through a carry-propagate adder. All of the above schemes can be combined almost Since carry propagation is a prefix problem, most adder arbitrarily. This allows the implementation of well- architectures can be categorized as different kinds of known architectures like the Brent-Kung, Ladner- parallel-prefix adders. These adders share a prefix Fisher and Kogge-Stone parallel-prefix adders, carry- structure to propagate carries from lower to higher bits. select adders, conditional-sum adders, Ling adder, but A wide range of prefix structures exists that fulfill dif- also many more mixed alternatives. ferent performance requirements. These differ in terms Most of the described more special adder architec- of depth (= circuit speed), size (= circuit area) and max- tures only give superior performance under rare condi- 208 tions, if at all. The regular Ladner-Fisher parallel- carry-save representation. This optimization, however, prefix adder (unbounded fanout, carry-lookahead currently poses problems in formal verification. scheme, generate/propagate signal encoding, radix-2 prefix) with flexible prefix structure gives best and 5. Low Power Datapath most reliable performance in most cases and therefore is selected most of the time. Datapaths often consume large amounts of dynamic power due to their large circuit size and high switching 4.4. Shifters activity during operation. Therefore our recent focus was to lower dynamic power dissipation in synthesized Shifters are implemented with multiplexers or datapath circuits. AND-OR structures depending on the context. To im- prove timing the levels inside the shifter can be reor- 5.1. Operand Isolation dered based on the delay of the shift control inputs. The special case where a shifter actually implements a One of the most effective way to save dynamic decoder (X=1<<A) is detected and a dedicated decoder power is to turn off entire blocks when not in use. circuit is synthesized instead. Shifters can accept bi- When the output of a block is not read (e.g., deselected nary and carry-save inputs and can therefore reside by a multiplexer) the inputs into the block are either between two arithmetic operations with no need for a forced to a constant value or the previous value is kept. binary conversion (carry propagation). Synthesis can automatically apply the former technique and tries to integrate the isolation gates into the data- 4.5.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    5 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us