Page 392 - Engineering Digital Design
P. 392

8.8 ARITHMETIC AND LOGIC UNITS                                       363


                               B 2(H) A 2(H)    B^H) A^H)       B 0(H) A 0(H)



                 Carry
                 ton-1
                 stage









                                   2      C 2 G 1 P t     C, G 0  P 0     C 0
                                   CGP Network of Figure 8.13

                 FIGURE 8.33
                 The three least significant stages of an n-bit carry look-ahead (CLA) ALU showing the block symbol
                 for the carry generate/propagate network used between 1-bit modules.


                    The 1-bit slice ALU module in Fig. 8.32 can be cascaded by using the CLA carry
                 generate/propagate (CGP) network given in Fig. 8.13. This is accomplished in Fig. 8.33,
                 where the three least significant 1-bit stages are shown connected to the CGP network.
                 Cascadable units of this type can be cascaded as groups to produce even larger units. This
                 is done by connecting the carry-out of one n-bit stage to the carry-in of another, etc., with
                 the mode/select inputs connected to all stages.

                 8.8.2 The MUX Approach to ALU Design

                 There are occasions when a designer requires an ALU that is fully programmable, that will
                 perform a wide variety of tasks both arithmetic and logic, and that can be put to a circuit
                 board with off-the-shelf components, or that can be designed for VLSI circuit applications.
                 The MUX approach to ALU design can provide this versatility and computational power,
                 which are difficult to achieve otherwise. In this subsection a programmable ALU (PALU)
                 will be designed by the MUX approach that can perform the following operations on two
                 n-bit operands:
                    1. Arithmetic operations
                      (a) Add with carry, or increment
                      (b) Subtract with borrow, or decrement
                      (c) Partial multiply or divide steps
                      (d) One's or 2's complement
                    2. Comparator operations
                      (a) Equal
                    3. Bitwise logic operations
                      (a) AND, OR, XOR, and EQV
                      (b) Logic-level conversion
                      (c) Transmit or complement data bit
   387   388   389   390   391   392   393   394   395   396   397