Critical Path Delay and Net Delay Reduced Tree Structure for

advertisement
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
Critical Path Delay and Net Delay Reduced
Tree Structure for Combinational Logic Circuits
Padmanabhan Balasubramanian, and R.T. Naayagi
the technology-mapping phase. A number of techniques
mentioned in [7] [8] [9] are technology-independent and aim
at reducing the depth of the networks by restructuring. Even
extraction of kernels, that can be shared, may lead to an
increase in the depth of the network as an associated effect.
This makes it clear that sharing logic is not always deemed to
be a good approach, when considering the issue of timing
optimization. A technique that performs logic decomposition
during technology mapping has been proposed in [10] [11].
However, the accuracy of this approach is traded off for a
higher computational cost. A recent activity [12] addresses the
issue of delay improvement through functional decomposition.
It actually builds on logic bi-decomposition of Boolean
functions [13] [14] and also uses weak algebraic factorization
operations. It implicitly relies upon OR disjunction for
functional bi-decomposition. Then it combines this strategy
with tree-height reduction of resulting Boolean expressions.
Though it results in timing optimization, vis-à-vis achieving
logic depth reduction, the quasi-algebraic decomposition was
normally performed on the minimized Disjunctive Normal
Form (DNF) [15], by recursively applying a combination of
Associative, Distributive and Commutative (ACD) laws.
This work considers another dimension, where a combine
operation is performed on the reduced Conjunctive Normal
Form (CNF) [15] of the original Boolean expression. The
combine operation is basically carried out as a post-processing
step after identifying the appropriate terms. We basically
combine the terms using the distributive axiom of Boolean
algebra (also known as D rule). We introduce a new
terminology to identify the terms, which when combined,
would result in compact tree structure for the sub-functions
composing the original function. Subsequently, this will
translate into a simple and compact logic tree construction for
the desired functionality. In view of the above, it becomes
clear that this method is clearly contrary to decompose and
factoring operations, which are performed on the reduced
DNF expression as in [12]. The latter method is extensively
used to a great advantage in [12], while we find that the
former provides much better optimization results, not only in
terms of logic depth and the delay component, but
subsequently with a simultaneous reduction in the resource
utilization factor as well, for various logic functions belonging
to different categories. Hence, here, the design space has been
much more thoughtfully and thoroughly exploited to include
another critical objective of utilizing lesser technology
resources for implementing the requisite Boolean
Abstract—In this paper, a technique for synthesizing binary tree
structure of a non-regenerative logic circuit functionality is proposed,
that achieves delay optimization by reducing the logic depth. It also
helps in minimizing the resources needed to implement the logic tree
structure with FPGA as target technology. Although it is a
technology–independent scheme, it guarantees better results overall,
even after the technology-mapping phase. This is evident from the
experimental results obtained and is due to the nature of the proposed
heuristic. The practical results derived by targeting Spartan II
(XC2S30-6PQ208) and Virtex II Pro (XC2VP2-7FG256) FPGA
logic families show that there is an explicit maximum combinational
path delay optimization by about 7.14%, on an average; reduction in
maximum net delay by about 11.8% and overall decrease in resource
utilization by 44.07%, and mean savings in input-output buffer count
by 43.57%, in comparison with the results corresponding to a recent
scheme in literature [12], for both the target devices.
Keywords—Synthesis, Delay optimization, Binary logic tree,
Logic depth, Boolean distance.
M
I. INTRODUCTION
INIMIZATION and decomposition of Boolean functions
addressing the issue of timing optimization has been a
subject matter of much research in the last half of the previous
century [1] [2] [3] [4] [5]. Also the relevance of FPGAs based
on LUTs in the last decade has fostered numerous efforts in
finding effective methods to decompose functions. Rooted
DAGs usually represent single output combinational logic
circuits. A directed acyclic graph (DAG) can be unfolded in
such a way that no multiple-fanout nodes exist, except for the
primary inputs of the circuit. Each internal node is labeled
with a Boolean operator (AND or OR). Let us have a rather
valid assumption that all DAGs are reduced and that
isomorphism is not exhibited in the sub-DAGs. Tree-height
reduction was indeed proposed [6] in the scope of compiler
optimization, for code generation in multiprocessor systems.
Given the underlying complexity of the problem, timing
optimization is sought after, after the size of the Boolean
network representing the circuit has been reduced. This paper
deals with a novel technology-independent logic synthesis
method for combinational logic circuits that generally precede
Padmanabhan Balasubramanian is with the School of Computer Science,
The University of Manchester, Lancashire, MAN M13 9PL UK (phone: +44161-275 6294; e-mail: spbalan04@gmail.com).
R.T. Naayagi is with the School of Electrical and Electronic Engineering,
The University of Manchester, Lancashire, MAN M60 1QD UK (e-mail:
naayagi@india.com).
19
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
functionality.
The remaining part of this paper is organized as follows. In
Section 2, we discuss the motivation for this work through an
illustrative example. We also introduce a new definition in
this section. In Section 3, we present our proposed heuristic
for construction of a tree structure representing the binary
DAG (BDAG) of the logic circuit. Section 4 depicts the
simulation results obtained for several Unate, Binate, Sum of
Disjoint Products (SoDP) and Product of Disjoint Sums
(PoDS) Boolean functions. The timing report description and
design summary is also listed in this section. We briefly
discuss the results in section 5 and conclude in section 6.
II. MOTIVATION FOR THE WORK
We highlight the inspiration behind this work by first
introducing a new definition and then explain the rationale
behind our approach with an illustrative example.
Fig. 1 BDAG created using ACD rules for (1)
III. PROPOSED BDAG CONSTRUCTION
A. Description of a Boolean term
A new terminology is proposed, namely the description set
of a Boolean term (sum term or product term). The description
set of a sum term [product term], shall be represented by the
notation D(Si) [D(Pi)]. D(Si) specifies the set of all literals in
their actual form, that the particular sum term Si is dependent
upon for its evaluation to a logic value of ‘0’ and D(Pi)
indicates the set of all literals in their respective actual form,
that a product term Pi depends upon for its evaluation to a
logic value of ‘1’.
For e.g.: If F = A’BD + B’CD’, where P1 = A’BD and P2 =
B’CD’ are two product terms; then D(P1) = {A’,B,D} and
D(P2) = {B’,C,D’}. Hence the description of a Boolean
function would be the union of the description sets of all its
individual terms. For the above example, it is given by,
D(F) = D(P1) ∪ D(P2).
The algorithm proposed for constructing a delay optimized
compact tree structure by means of reducing the network
depth of an arbitrary Boolean function, is given below.
A. Algorithm –Delay_Depth_Resources
Given a Boolean function F;
Minimize F into two-level logic;
Obtain the reduced product-of-sums-form, FPOS;
•
{Step 1: Let FPOS = (S1)
(S2)
….
(SN);
N → number of sum terms
Step 2: initialize I = 1, J = 2;
Step 3: Create an array of order [I:J], where I =
1,2,….,N-1 and J = 2,3,….,N
Step 4: Compute D(SI) ∪ D(SJ) | I ≠ J, I and J are
constants
Step 5: Enumerate | D(SI) ∪ D(SJ) | and save it in the
array file with index I and J;
Step 6: J = J+1;
Step 7: if J ≤ N then go to step 4
Step 8: else, I = I+1;
Step 9: if I > (N-1) then go to step 12
Step 10: else J = I+1;
Step 11: go to step 4;
Step 12: else, terminate the loops;
Step 13: if all elements in the array [I:J] = 0, then go to
step 26
Step 14: else, initialize I = 1, J = 2;
Step 15: sort the array element in the array [I:J]
Step 16: J = J + 1;
Step 17: if J ≤ N, then go to step 15
Step 18: else, find the array element with the maximum
value
Step 19: combine that SI with the corresponding SJ
using D rule [(a+b) (a+c) = a + bc]
Step 20: I = I+1;
Step 21: if I > (N-1) then go to step 24
Step 22: else, J = I+1;
•
•
•
•
B. Illustrative Example
Let us consider an example problem to tag our theoretical
observation with experimental result. We will characterize the
synthesized tree structure using a quadruple valued metric
(QVM) denoted by, QVM(MPD,MND,LD,BEL). MPD
represents the maximum path delay (in ns), MND refers to the
maximum net delay (in ns), LD denotes the logic depth of the
binary tree and BEL stands for the basic logic elements (LUTs
of FPGA) utilized for implementation of the logic tree. The
symbols
and
denote logical multiplication (AND)
and logical addition (OR) respectively and we will refer to
these as atomic operators (AO) [16].
Consider a reduced Boolean function, F(Q,R,S,T,U,V,W,X)
obtained using a two-level logic minimizer [17] as follows,
F = QRS + QT +QU + RWS + RWT + RWU
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
(1)
•
The logic tree structure for (1), created as per [12], is shown
in fig. 1. The quadruple valued metric for the same is denoted
by
QVMF(9.06,0.97,4,4)
for
Spartan
II
and
F
QVM (9.97,1.00,4,3) for Virtex II Pro FPGA logic families.
•
•
•
20
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
•
•
•
•
BDAG representation for the combinational circuits were
realized using the ACD rules employed by [12]. VHDL
coding were done for the functionalities using structural
modeling style and the design summary and timing report was
obtained after the place and route stage. The reduced
conjunctive normal forms for the functions can be obtained by
two methods; either by running a sum-of-products to productof-sums subroutine or by considering the complementary
phase of the function and a straightforward conversion to
reduced product-of-sums expression could be done. Next, the
terms were grouped in the manner based on our proposed
algorithm and distributive axiom was applied, so that the
functions now tend to comprise non-repetitive tree
functionality. Then the gate level netlist was created using the
atomic operators and VHDL coding in structural modeling
style was done. The design summary and timing reports were
extracted after post placement and routing phase. The
simulations were performed with Xilinx project navigator
suite targeting Spartan II and Virtex II Pro FPGA boards.
Table 1 gives a description of the comparison between the two
schemes in terms of atomic operators required and literal cost.
Table 2 shows the maximum combinational path delay or
critical path delay for the synthesized tree according to the
two different methods for Spartan II and Virtex II Pro logic
families. Table 3 mentions the maximum net delay values
obtained for the logic trees constructed according to the two
techniques for Spartan II and Virtex II Pro FPGA logic targets
respectively. Table 4 highlights the amount of basic logic
elements utilized (BEL) for the different techniques with
Spartan II and Virtex II Pro FPGA targets, while Table 5
gives an account of the input-output buffers required for the
two methods for realization with two different FPGA families.
Step 23: go to step 15
Step 24: obtain new FPOS;
Step 25: go to step 1;
Step 26: end of algorithm };
The heuristic given above can be used for obtaining a
factored sum-of-products form with the only exception being
that the D rule [ab + ac = a(b+c)] is used instead of that
mentioned in step 19. It is found that this heuristic when used
with a minimized sum-of-products expression results in the
same structure, as that which is obtained by [12]. The literal
cost of the final product-of-sums expression obtained from the
heuristic is estimated and the logic tree representing the
BDAG of the function is also created to determine the logic
depth. It is then compared with similar parameters of a
factored sum-of-products expression to arrive at a decision in
choosing the compact expression.
Based on the above heuristic for BDAG construction,
the resulting tree realization would be as shown in fig. 2. The
tree structure is characterized by: QVMF(7.90,0.89,4,2) for
Spartan II, and QVMF(9.03,0.89,4,2) for Virtex II Pro FPGA
logic family targets.
TABLE I
ATOMIC OPERATORS AND LITERAL COST COMPARISON
ACD_BDAG
P_BDAG
Function ID
Fig. 2 BDAG obtained using proposed algorithm for (1)
Z15
Z27
Z39
Z411
Z58
Z69
Z77
Z88
Z96
Z108
Z115
Z127
Z136
Z149
Z158
Z166
Z1711
Z1810
Z199
Z209
Z218
Z2210
The percentage improvement in critical path delay for the
above function (1), based on the proposed method, after the
technology mapping stage is found to be 12.8% and 9.43% for
implementation with Spartan II and Virtex II Pro
programmable logic families respectively. In terms of
maximum interconnect delay, the savings for the proposed
method compared with [12] was calculated and found to be
8.25% and 11% for the above logic families in order.
IV. SIMULATION METHODOLOGY AND RESULTS
A significant number of combinational logic functions in
canonical form of various types were considered to validate
and substantiate the theoretical conclusions with simulation
results. The functionalities in PLA format were first
minimized using a standard two-level logic minimizer,
ESPRESSO [17] and listed in Table 6 (made available in the
Appendix). Then the binary tree structures highlighting the
21
NAO
NIL
NAO
NIL
3
5
6
6
6
5
5
5
4
5
4
5
3
5
5
5
6
7
6
5
4
5
8
12
18
24
17
14
10
15
10
17
7
15
8
16
18
8
24
26
13
20
7
15
3
3
4
4
4
4
4
4
3
4
3
3
3
4
4
4
4
4
4
4
3
3
6
8
10
12
9
10
10
9
7
9
6
8
7
10
9
7
12
11
10
10
6
8
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
Z2310
Z2411
Z2512
Z2612
Z2714
Z2816
Z2912
Z3010
Z318
Z3211
Z3310
Z3412
Z3510
Z3615
Z3711
Z3811
Z3913
Z4014
TABLE III
MAXIMUM NET DELAY FOR SPARTAN II AND VIRTEX II PRO FPGA FAMILIES
Spartan II
Virtex II Pro
Function ID
(XC2S30-6PQ208)
(XC2VP2-7FG256)
ACD_BDAG P_BDAG ACD_BDAG P_BDAG
(in ns)
(in ns)
(in ns)
(in ns)
Z15
0.92
0.89
0.78
0.95
Z27
1.02
0.97
1.01
1.00
Z39
1.18
0.94
1.35
0.84
Z411
1.12
1.12
1.14
1.09
Z58
1.19
0.97
1.03
0.99
Z69
1.10
1.19
1.04
0.94
Z77
1.13
0.97
1.11
1.00
Z88
1.14
1.10
0.94
0.99
Z96
0.97
0.89
1.00
0.89
Z108
1.13
1.10
0.97
0.95
Z115
0.89
0.89
0.89
1.00
Z127
1.14
0.97
1.00
0.97
Z136
0.97
0.89
1.03
0.84
Z149
1.13
0.94
1.24
0.99
Z158
1.11
0.97
1.06
0.89
Z166
0.92
0.89
1.34
1.01
Z1711
1.22
1.17
0.94
1.29
Z1810
1.05
1.14
1.04
1.27
Z199
1.17
1.08
1.03
1.27
9
Z20
1.19
1.12
1.16
0.99
Z218
1.42
0.99
1.22
1.00
Z2210
1.33
1.00
1.38
0.84
Z2310
1.18
1.15
1.06
0.84
Z2411
1.39
1.01
1.22
1.29
Z2512
1.38
1.06
0.77
1.02
Z2612
1.00
0.97
1.19
1.02
Z2714
1.12
0.94
1.19
1.25
Z2816
1.06
0.94
1.65
1.12
Z2912
1.39
0.87
1.00
1.08
Z3010
1.15
1.17
1.29
0.84
Z318
1.54
1.17
0.93
1.00
Z3211
1.33
1.19
1.22
1.29
Z3310
1.52
1.14
1.38
0.84
Z3412
1.25
1.12
0.77
1.20
Z3510
1.13
0.94
1.29
0.84
Z3615
1.13
0.97
1.52
1.05
Z3711
1.39
0.87
1.48
1.20
Z3811
1.38
0.94
1.69
1.02
Z3913
1.16
1.00
1.24
1.25
Z4014
1.13
0.94
1.16
1.11
3
8
3
7
5
16
4
10
5
18
4
9
5
8
4
7
6
24
4
12
7
26
4
11
6
13
4
10
5
20
4
10
3
8
3
6
5
12
3
8
6
18
4
10
6
24
4
12
6
17
4
9
5
14
4
10
5
10
4
10
5
15
4
9
4
10
3
7
5
17
4
9
ZIN; I – Function identity, N – Number of inputs;
NAO – Number of atomic operators; NIL – Number of input literals
TABLE II
MAXIMUM COMBINATIONAL PATH DELAY FOR SPARTAN II AND VIRTEX II PRO
FPGA LOGIC FAMILY TARGETS
Spartan II
Virtex II Pro
Function ID
(XC2S30-6PQ208)
(XC2VP2-7FG256)
ACD_BDAG P_BDAG ACD_BDAG P_BDAG
(in ns)
(in ns)
(in ns)
(in ns)
Z15
8.00
7.75
9.38
8.86
Z27
9.45
9.35
9.57
9.87
Z39
10.37
9.23
9.53
9.65
Z411
9.93
9.17
9.61
9.97
Z58
10.19
9.07
10.15
9.62
Z69
9.66
8.27
9.99
9.43
Z77
8.31
9.35
10.21
9.87
Z88
9.55
8.27
9.73
9.43
Z96
9.06
7.90
9.97
9.03
Z108
9.69
8.27
9.11
8.86
Z115
7.97
7.77
10.10
9.87
Z127
9.61
9.35
9.87
9.11
Z136
9.35
7.97
9.93
9.65
Z149
9.68
9.23
9.79
9.62
Z158
10.27
9.07
9.21
9.03
Z166
8.00
7.90
10.77
9.69
Z1711
10.56
9.24
10.23
10.33
Z1810
10.79
8.68
10.11
10.40
Z199
9.86
8.80
9.94
10.39
Z209
10.37
8.38
9.74
9.43
Z218
11.50
9.25
10.44
9.87
Z2210
9.74
9.45
9.94
9.65
Z2310
10.98
9.26
10.07
9.65
Z2411
9.97
9.95
10.49
10.38
Z2512
10.69
9.77
9.67
9.83
Z2612
9.51
9.35
12.44
9.93
Z2714
10.36
9.23
10.20
10.64
Z2816
9.63
9.23
12.44
10.42
Z2912
10.62
8.47
10.22
9.60
10
Z30
10.26
9.44
10.31
9.65
Z318
11.46
9.47
9.98
9.87
Z3211
10.21
9.76
10.49
10.38
Z3310
10.92
9.69
10.39
9.65
Z3412
11.24
9.05
9.67
10.19
Z3510
9.68
9.23
10.31
9.65
Z3615
9.70
9.35
12.23
9.37
Z3711
10.62
8.47
9.93
10.19
Z3811
10.63
9.23
12.22
9.91
Z3913
10.35
9.45
10.37
9.67
Z4014
9.68
9.23
9.91
9.75
ACD_BDAG – ACD rules based BDAG construction [12] and
P_BDAG – Proposed BDAG realization
TABLE IV
BASIC LOGIC ELEMENTS UTILIZATION WITH SPARTAN II AND VIRTEX II PRO
TARGETS
Function ID
Z15
Z27
Z39
Z411
Z58
Z69
Z77
Z88
Z96
Z108
Z115
Z127
Z136
Z149
Z158
Z166
22
Spartan II
(XC2S30-6PQ208)
ACD_BDAG P_BDAG
3
6
7
9
7
5
4
6
4
7
2
6
3
7
7
3
2
3
5
5
3
3
3
3
2
3
2
2
2
5
3
2
Virtex II Pro
(XC2VP2-7FG256)
ACD_BDAG P_BDAG
3
6
7
9
7
5
4
6
4
7
2
6
3
7
7
3
2
3
5
5
3
3
3
3
2
3
2
2
2
5
3
2
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
Z1711
Z1810
Z199
Z209
Z218
Z2210
Z2310
Z2411
Z2512
Z2612
Z2714
Z2816
Z2912
Z3010
Z318
Z3211
Z3310
Z3412
Z3510
Z3615
Z3711
Z3811
Z3913
Z4014
9
11
5
5
13
7
12
8
10
6
8
7
9
8
12
9
13
12
7
6
9
8
8
7
5
5
4
3
5
5
5
7
7
3
5
5
5
5
5
6
5
4
5
3
5
5
5
5
9
11
5
5
13
7
12
8
10
6
8
7
9
8
12
9
13
12
7
6
9
8
8
7
Z3913
Z4014
5
5
4
3
5
5
5
7
7
3
5
5
5
5
5
6
5
4
5
3
5
5
5
5
9
15
19
25
18
15
11
16
11
18
8
16
9
17
19
9
25
27
14
21
37
19
33
21
24
16
24
18
22
20
33
23
37
34
18
16
22
24
7
9
11
13
10
11
9
10
8
10
7
9
8
11
10
8
13
12
11
11
17
13
13
15
16
9
11
11
12
13
12
15
17
13
11
9
12
11
9
15
19
25
18
15
11
16
11
18
8
16
9
17
19
9
25
27
14
21
37
19
33
21
24
16
24
18
22
20
33
23
37
34
18
16
22
24
13
11
20
18
13
11
V. DISCUSSION OF RESULTS
At the technology independent stage, we find that with
respect to the atomic operators and literal cost, the proposed
method enabled savings of 26.73% and 40% respectively.
From the experimental results obtained, we find that the
average improvement in critical path delay or longest path
delay for the proposed method has been 9.81% and 4.48% for
Spartan II and Virtex II Pro FPGA logic families respectively;
while the mean reduction in maximum net delay for the
proposed algorithm over the ACD rules based heuristic has
been 13.79% and 9.81% for Spartan II and Virtex II Pro
technology targets. The corresponding decrease in resource
utilization (BEL) for the logic families, stated in the above
order has been same and is around 44.07%, which is
significant. Even with respect to the number of input-output
buffers required for implementation of the functionality, the
proposed method effects considerable savings to the tune of
43.57% for both Spartan II and Virtex II Pro FPGA targets.
Fig. 3 and fig. 4 show the comparison in the number of
atomic operators and literal count needed for implementing
the Boolean tree structure corresponding to a combinational
logic functionality. Fig. 5 and fig. 6 depict the difference in
the maximum combinational path delay between the two
methods with Spartan II and Virtex II Pro as FPGA target
families; fig. 7 and fig. 8 show the variation in maximum net
delay for comparison of a similar sort as above. Fig. 9
graphically depicts the number of basic logic elements (BEL LUTs of a FPGA) for the two schemes with Spartan II and
Virtex II Pro targets, while fig. 10 highlights the input-output
buffer requirement for a similar comparison.
TABLE V
INPUT-OUTPUT BUFFER COUNT COMPARISON WITH SPARTAN II AND VIRTEX II
PRO FPGA LOGIC TARGETS
Spartan II
Virtex II Pro
Function ID
(XC2S30-6PQ208)
(XC2VP2-7FG256)
ACD_BDAG P_BDAG ACD_BDAG P_BDAG
Z15
Z27
Z39
Z411
Z58
Z69
Z77
Z88
Z96
Z108
Z115
Z127
Z136
Z149
Z158
Z166
Z1711
Z1810
Z199
Z209
Z218
Z2210
Z2310
Z2411
Z2512
Z2612
Z2714
Z2816
Z2912
Z3010
Z318
Z3211
Z3310
Z3412
Z3510
Z3615
Z3711
Z3811
20
18
7
9
11
13
10
11
9
10
8
10
7
9
8
11
10
8
13
12
11
11
17
13
13
15
16
9
11
11
12
13
12
15
17
13
11
9
12
11
VI. CONCLUSION
This work primarily focuses on a technology-independent
synthesis technique for non-regenerative logic circuits [18]
that typically precedes the technology-mapping phase. An
effective technique to address the important issue of timing
improvement by means of reducing the logic depth in a binary
logic tree realization is discussed in this paper. A good degree
of correlation exists between the depth of the Boolean
network at the technology-independent stage represented by a
tree and the practical worst case delay value obtained
experimentally; though it turns out to be contrary in very few
cases after the technology-mapping phase. The approach
seems to yield optimization in results for a wide variety of
functions which tend to have compact conjunctive normal
forms in comparison with disjunctive normal forms, in terms
of literal count. We have been able to obtain good
optimization with respect to critical delay by reducing the
logic depth and subsequently lesser resource utilization when
mapped onto a technology target. The effectiveness of our
contribution is supported by improved results of reachability
along the computationally intensive path. From extensive
simulation studies, we infer that the proposed algorithm is
promising, as it enables good timing optimization by means of
23
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
depth reduction in parallel. So far we have succeeded in
addressing some of the concerns raised in [12], by exploring
the available design space and achieved optimization in delay
by means of reducing logic depth and resources required for
physical realization of the desired non-regenerative logic
functionality.
Z39
Z37
Z35
Z39
Z33
Z37
Z31
Z35
Z29
Z33
Z27
Z31
Z25
Z27
Z23
F u n ctio n ID
Z29
Z25
Function ID
Z23
Z21
NIL : P_BDAG
NIL : ACD_BDAG
Z19
NAO : P_BDAG
Z21
Z17
NAO : ACD_BDAG
Z19
Z15
Z17
Z13
Z15
Z13
Z11
Z11
Z9
Z9
Z7
Z7
Z5
Z5
Z3
Z3
Z1
Z1
0
0
2
4
6
10
20
30
8
Literal cost comparison
Atom ic Operators com parison
Fig. 3 Comparison in terms of logical operators required
Fig. 4 Comparison with respect to number of input literals
24
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
We observe that a prudent decision would be to consider
the function representation corresponding to both the
minimized forms, factorize them according to the proposed
algorithm and then make a choice based on literal cost and
logic depth at the technology independent stage. For functions
with DNF forms more compact than its CNF forms, the
proposed heuristic returns the same results as that of [12],
while for the contrary, the approach enables decent delay
optimization whilst ensuring minimum resource utilization.
Our approach is pragmatic and promises improved
performance, evident from the practical results obtained for
the various sample cases considered for simulation studies.
Z39
Z37
Z35
Z33
Z31
Z29
Z39
Z37
Z27
Z35
Z25
Z33
Z23
Function Id
Z31
Z29
Z27
Z21
P_BDAG
ACD_BDAG
Z19
Z25
Z17
Function ID
Z23
P_BDAG
Z21
Z15
ACD_BDAG
Z19
Z13
Z17
Z15
Z11
Z13
Z9
Z11
Z7
Z9
Z7
Z5
Z5
Z3
Z3
Z1
Z1
0
5
10
0
15
5
10
15
Maxim um Com binational Path
Delay (in ns)
Maxim um Com binational Path
Delay (in ns)
Fig. 5 Critical path delay (in ns) for Spartan II FPGA target
Fig. 6 Critical path delay (in ns) for Virtex II Pro FPGA target
25
Z39
Z39
Z37
Z37
Z35
Z35
Z33
Z33
Z31
Z31
Z29
Z29
Z27
Z27
Z25
Z25
Z23
Z23
Z21
Function ID
Function ID
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
P_BDAG
ACD_BDAG
Z19
Z21
ACD_BDAG
Z19
Z17
Z17
Z15
Z15
Z13
Z13
Z11
Z11
Z9
Z9
Z7
Z7
Z5
Z5
Z3
Z3
Z1
Z1
0
0.5
1
1.5
2
P_BDAG
0
Maxim um Net Delay (in ns)
0.5
1
1.5
2
Maxim um Net Delay (in ns)
Fig. 8 Worst case net delay (in ns) with Virtex II Pro as target family
Fig. 7 Worst case net delay (in ns) with Spartan II as target family
26
Z39
Z39
Z37
Z37
Z35
Z35
Z33
Z33
Z31
Z31
Z29
Z29
Z27
Z27
Z25
Z25
Z23
Z23
Z21
F u n ctio n ID
Function ID
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
P_BDAG
ACD_BDAG
Z19
Z21
ACD_BDAG
Z19
Z17
Z17
Z15
Z15
Z13
Z13
Z11
Z11
Z9
Z9
Z7
Z7
Z5
Z5
Z3
Z3
Z1
Z1
0
5
10
15
P_BDAG
0
BEL utilization
10
20
30
40
Input-Output Buffers requirement
Fig. 9 Basic logic elements (LUTs in a FPGA) utilized for Spartan II and
Virtex II Pro families
Fig. 10 Input-Output buffer requirement for the two methods with Spartan II
and Virtex II Pro FPGA families as technology targets
27
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
Padmanabhan Balasubramanian received his B.E degree in Electronics and
Communication Engineering discipline from University of Madras, TN, India
in 1998 and his M.Tech in VLSI System from National Institute of
Technology, Tiruchirappalli, TN, India in 2005. He was earlier Lecturer in the
School of Electrical Sciences at Vellore Institute of Technology (University
and IET, UK Accredited), Vellore, TN, India. He is working towards his PhD
in the School of Computer Science at The University of Manchester,
Lancashire, UK. His research interests are in logic synthesis for low power,
asynchronous design; CMOS based design and timing optimization issues.
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
R. Ashenhurst, “The decomposition of switching functions,” Proc. of
International Symosium. on Switching Theory, 1959, pp. 74-116.
J. Baer, and D. Bovet, “Compilation of arithmetic expressions for
parallel computations,” Proc. of IFIP Congress, 1968, pp. 340-346.
J. Beatty, “An axiomatic approach to code optimization for expressions,”
Journal of ACM, vol. 19(4), 1972, pp. 613-640.
R. Brayton, and C. McMullen, “The decomposition and factorization of
Boolean expressions,” Proc. of International Symposium on Circuits and
Systems, 1982, pp. 49-54.
J. Vasudevamurthy, and J. Rajski, “A method for concurrent
decomposition and factorization of Boolean expressions,” Proc. of
International Conf. on Computed-Aided Design, 1990, pp. 510-513.
D. Kuck, The Structure of Computers and Computation, Wiley, 1978.
K. Singh, A. Wang, R. Brayton, and A. Sangiovanni-Vincentelli,
“Timing optimization of combinational logic,” Proc. of IEEE/ACM
International Conf. on Computer-Aided Design, 1988, pp. 282-285.
K. Chen, and S. Muroga, “Timing optimization for multi-level
combinational circuits,” Proc. of ACM/IEEE Design Automation Conf.,
1990, pp. 339–344.
H.Touati, H.Savoj, and R.Brayton, “Delay optimization of
combinational circuits by clustering and partial collapsing,” Proc. of
IEEE/ACM International Conf. on Computer-Aided Design, 1991, pp.
188-191.
Eric Lehman, and Yosinori Watanabe, “Logic Decomposition during
Technology Mapping,” Proc. of IEEE/ACM International Conf. on
Computer-Aided Design, 1995, pp. 264-271.
E. Lehman, Y. Watanabe, J. Grodstein, and H. Harkness, “Logic
decomposition during technology mapping,” IEEE Transactions on CAD
of Integrated Circuits and Systems, vol. 16(8), August 1997, pp. 813834.
J. Cortadella, “Timing-Driven Logic Bi-Decomposition,” IEEE
Transactions on CAD of Integrated Circuits and Systems, vol. 22(6),
June 2003, pp. 675–685.
S. Yamashita, H. Sawada, and A. Nagoya, “New methods to find optimal
nondisjoint bi-decompositions,” Proc. of ACM/IEEE Design Automation
Conf., 1998, pp. 59-68.
A. Mishchenko, B. Steinbach, and M. Perkowski, “An algorithm for bidecomposition of logic functions,” Proc. of ACM/IEEE Design
Automation Conf., 2001, pp. 282-285.
Zvi Kohavi, Switching and Finite Automata Theory, McGraw Hill, 1999.
Srinivas Devadas, Abhijit Ghosh, and Kurt Kuetzer, Logic Synthesis
McGraw-Hill series on Computer Engineering, 1994.
P.C. McGeer, J.V. Sanghavi, R.K. Brayton, and A.L. SangiovanniVincentelli, “ESPRESSO-SIGNATURE: a new exact minimizer for
logic functions,” IEEE Transactions on VLSI Systems, vol. 1(4),
December 1993, pp. 432-440.
M.Fujita, and R.Murgai, “Delay estimation and optimization of logic
circuits: a survey,” Proc. of Asia South Pacific Design Automation
Conference, 1997, pp. 25-30.
R.T. Naayagi received her B.E degree in Electrical and Electronics
Engineering from Bharathidasan University, TN, India by securing University
I Rank with Gold Medal in 2000. She was conferred the T.R. Rajagopalan
Award for the Best Outgoing Female Graduate of her batch (1996-2000). She
completed her M.Sc in Information Technology from Alagappa University,
TN, India in 2003. She subsequently obtained her M.E degree with
specialization in Power Electronics and Drives from Anna University, TN,
India in 2005, by securing University II Rank. She has received several
scholarships and merit certificates in her academics for outstanding
performance. She also received the Best Outstanding Master’s Student Award
in 2005 in her institution. She secured the Dorothy Hodgkin Postgraduate
Award in the School of Electrical and Electronic Engineering of The
University of Manchester, Lancashire, UK to pursue her PhD programme. Her
research interests include power electronic circuits and systems, special
machines and digital design.
28
International Journal of Electronics, Circuits and Systems Volume 1 Number 1
APPENDIX
Function ID
TABLE VI
BOOLEAN FUNCTION IDENTITY AND MINIMIZED FUNCTION DESCRIPTION
Reduced two-level logic from ESPRESSO [17]
Z15
agb+agc+abf+fc
Z2
7
Z39
Z4
11
Z58
Z69
Z77
Z88
Z96
Z108
Z115
Z127
Z136
Z149
Z158
Z166
Z1711
Z1810
Z199
Z209
Z218
Z2210
Z2310
Z2411
Z2512
Z2612
Z2714
Z2816
Z2912
Z3010
Z318
Z3211
Z3310
Z3412
Z3510
Z3615
Z3711
Z3811
Z3913
Z4014
afe+afd+afg+aec+cd+cg+abe+bd+bg
dbfcg+dbfgh+dbfi+dceg+eh+ei+adcg+ah+ai
mnqst+mnqu+mnqv+mnqw+msto+uo+vo+wo+mstp+up+vp+wp+mstr+ur+vr+wr
ijn+ijo+ijp+kin+ko+kp+inl+ol+pl+min+mo+mp
pqrsuvw+pqrsx+puvwt+xt
mnpq+mnpr+mnqo+ro
qrwx+qru+qrv+qwxs+su+sv+qwxt+tu+tv
bgc+bgd+bge+abc+ad+ae
abe+abf+abg+abh+aec+fc+gc+hc+aed+fd+gd+hd
stw+s’vu+uw
tru+trv+t’ws+us+vs+t’wq+qu+qv
pmr+p’qn+nr+p’qo+or
abch+abci+a’fgh+dh+di+a’fge+eh+ei
pmx+pmy+qp’v+qx+qy+p’vw+wx+wy+p’vu+ux+uy
mnr+m’pqo+or
ijkq+ijkr+ijks+i’opl+ql+rl+sl+i’opm+qm+rm+sm+i’opm+qn+rn+sn
mnv+mnw+mnx+m’uq+vq+wq+xq+m’ur+vr+wr+xr+m’us+vs+ws+xs+m’ut+vt+wt+xt
abci+a’ghd+di+a’ghe+ei+a’ghf+fi
wxn+wxo+wxp+wxq+w’my+ny+oy+py+qy+w’mz+nz+oz+pz+qz
pqrsm+pqrsn+pqrso+pqrsp+p’xyzt+mt+nt+ot+pt+p’xyzu+mu+nu+ou+pu+
p’xyzv+ mv+nv+ov+pv+p’xyzw+mw+nw+ow+pw
defgl+defgk+d’onmh+lh+kh+d’onmi+li+ki
ijp+ijq+ijr+ijs+i’ok+pk+qk+rk+sk+i’ol+pl+ql+rl+sl+i’om+pm+qm+rm+sm+
i’on+pn+qn+rn+sn
cdefgn+cdefgo+c’jklmh+nh+oh+c’jklmi+ni+oi
fghijq+fghijr+fghijs+f’mnopk+qk+rk+sk+f’mnopl+ql+rl+sl
a’be’f+a’bg+a’bh+ce’f+cg+ch+de’f+dg+dh
m’nr’s+m’nt+m’nu+m’nv+r’so+to+uo+vo+r’sp+tp+up+vp+r’sq+tq+uq+vq
i’jkn’op+i’jkq+i’jkr+n’opl+ql+rl+n’opm+ qm+rm
p’qrv’wx+p’qry+p’qrz+v’wxs+sy+sz+v’wxt+ty+tz+uv’wx+uy+uz
a’bcdg’hij+a’bcdk+a’bcdl+g’hije+ke+le+g’hijf+kf+lf
r’sx’y+r’sz+r’sm+r’sn+r’so+x’yt+zt+mt+nt+ot+x’yu+zu+mu+nu+ou+x’yv+
zv+mv+nv+ov+x’yw+zw+mw+nw+ow
c’defgjklmn+c’defgo+c’defgp+j’klmnh+ho+hp+j’klmni+io+ip
p’qrsx’yzm+p’qrsn+p’qrso+p’qrsk+p’qrsl+x’yzmt+nt+ot+kt+lt+x’yzmu+nu+
ou+ku+lu+x’yzmv+nv+ov+kv+lv+x’yzmw+nw+ow+kw+lw
i’jo’p+i’jq+i’jr+i’js+i’jt+o’pk+qk+rk+sk+tk+o’pl+ql+rl+sl+tl+o’pm+qm+
rmsm+tm+o’pn+qn+rn+sn+tn
a’bcf’gh+a’bci+a’bcj+f’ghd+id+jd+f’ghe+ie+je
g’hk’l+g’hm+g’hn+k’li+mi+ni+k’lj+mj+nj
o’pqu’vw+o’pqx+o’pqy+u’vwr+rx+ry+u’vws+xs+ys+u’wvt+xt+yt
e’fj’k+e’fl+e’fm+e’fn+j’kg+lg+mg+ng+j’kh+lh+mh+nh+j’ki+li+mi+ni
d’efgo’nml+d’efgk+d’efgj+o’nmlh+kh+jh+o’nmli+ki+ij
q’rsv’wx+q’rsy+q’rsz+v’wxt+yt+zt+v’wxu+uy+uz
ZXN; X – function ID, N – number of inputs
29
Download