15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

FIGURE 2.34 Dual-rail, pass-transistor logic circuits.<br />

FIGURE 2.35 BDD and other logic representations for 2-input XOR logic.<br />

restored pass-transistor logic) shown in Fig. 2.34(a,c) [2,3,6] are effective solutions. These circuits have<br />

both positive and negative polarities for all signals complementarily, so there is no need for an inverter<br />

to generate complementary signals. Thus, high-speed operation becomes possible. Moreover, the differential<br />

operation in these dual-rail pass-transistor circuits is also effective in improving the noise-margin<br />

characteristics of the pass-transistor circuit. In addition, dual-rail PTL can still provide logic circuits with<br />

fewer transistors than their CMOS counterparts [1,2], although it requires twice as many transistors as<br />

a single-rail pass-transistor circuit. In this chapter, a method for synthesizing single-rail PTL is described<br />

below, because same method can be applied to dual-rail PTL by just changing pass-transistor selector<br />

from single-rail to dual-rail PTL.<br />

BDD is one type of logic representation and expresses a logic function in a binary tree [21–23]. For<br />

example, Fig. 2.35(a–c) shows three typical logic representations for 2-input XOR logic: (a) boolean<br />

equation, (b) truth table, and (c) BDD. As shown in Fig. 2.35(c), the BDD consists of nodes and edges.<br />

The nodes are categorized into two types: variable nodes and constant nodes of “0” or “1”. A variable<br />

node represents a variable of the logic function. For example, node A in the BDD corresponds to the<br />

variable A in the logic function shown in Fig. 2.35(a,b). A variable node has one outgoing edge and two<br />

incoming edges, a 0-edge and a 1-edge. In this figure, a 0-edge is denoted by a dotted line and a 1-edge<br />

by a straight line, although there are other representations used in BDDs. These two incoming edges<br />

show the logic functions when the variable of the node is set to “0” and “1”, respectively. The logic<br />

functions are represented by the connections of these elements. For example, when (A, B) is (0, 0), Out<br />

becomes 0 in the truth table. This corresponds to selecting the 0-edge at the nodes A and B. The path<br />

to node “0” can be traced from the root in the BDD in Fig. 2.35(c). Furthermore, the fact that there are<br />

two cases, (A, B) = (0, 1) and (1, 0), for Out = 1 in the truth table corresponds to the fact that in the<br />

BDD there are two paths from the root to “1”; that is, A = 0 → B = 1 and A = 1 → B = 0.<br />

A BDD can be simplified by using complementary edges. The complementary edges are used to represent<br />

the inverted logic of a node, as shown in Fig. 2.36(a). By using complementary edges, two nodes, B and<br />

B,<br />

can be combined as one node and the BDD can be simplified. For example, Fig. 2.36(b) shows a<br />

simplified BDD with complementary edges for the BDD shown in Fig. 2.35(c).<br />

BDDs have a good correspondence with selector logic and pass-transistor circuits, as shown in Fig. 2.37,<br />

because the BDD represents logic functions in a binary tree structure. Thus, it is possible to generate<br />

a pass-transistor circuit for a target logic function by replacing the nodes in the BDD with pass-transistor<br />

selectors and connecting their control inputs with the input variables related to the nodes [10].<br />

A detailed example how to synthesize PTL from a BDD is shown in Fig. 2.38(a–i). BDD is first<br />

constructed for the logic functions shown in Fig. 2.38(a). The BDD can be built by recursively applying<br />

© 2002 by CRC Press LLC<br />

Out<br />

C<br />

V dd<br />

A A A A<br />

Out = AB + AB<br />

(a) Boolean equation<br />

B A<br />

C B<br />

(a) CPL [2]<br />

A B<br />

0 0<br />

0 1<br />

1 0<br />

1 1<br />

Out<br />

Out<br />

0<br />

1<br />

1<br />

0<br />

(b) Truth table<br />

Out<br />

B<br />

A<br />

C<br />

Out<br />

B<br />

0 1<br />

(c) BDD<br />

B A<br />

C B<br />

(b) SRPL [6]<br />

Out<br />

1-edge<br />

true if node = 1<br />

0-edge<br />

true if node = 0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!