Title: Technology Mapping
1- Technology Mapping
- as a Binate Covering Problem
Slides adapted from A. Kuehlmann, UC Berkeley 2003
2Circuit as DAG (Subject Graph)
- A Directed Acyclic Graph, also called a DAG, is a
directed graph with - no directed cycles that is, for any vertex v,
there is no nonempty - directed path starting and ending on v.
3Pattern Graphs used for the cover
4Binate Covering Problem Example
Gate Cost Input Produces Covers
m1 inv 1 a g1 g1
m2 inv 1 b g2 g2
m3 nand2 2 g1, g2 g3 g3
m4 nand2 2 a, b g4 g4
m5 nand2 2 g3, g4 g5 g5
m6 inv 1 g4 g6 g6
m7 nand2 2 g6, c g7 g7
m8 nand3 3 a, b g7 g4, g6, g7
m9 xnor2 5 a, b g5 g1, g2, g3, g4, g5
m10 oai21 3 a, b, g4 g5 g1, g2, g3, g5
5Binate Covering Problem
- Compute all possible matches mk for each node.
- Using a variable mi for each match of a pattern
graph in the subject graph, (mi 1 if match is
chosen mi 0 otherwise) - Write a clause for each node of the subject graph
indicating which matches cover this node. Each
node has to be covered. - e.g., if a subject node is covered by matches
m2, m5, m10 , then the clause would be (m2 m5
m10). - Repeat for each subject node and take the
product over all subject nodes (CNF).
m1 m2 . . . mk
n1 n2 . . . nl
nodes
6Binate Covering Problem Example
m1 m2 m3 m4 m5 m6 m7 m8 m9 m10
n1 1 0 0 0 0 0 0 0 1 1
n2 0 1 0 0 0 0 0 0 1 1
n3 0 0 1 0 0 0 0 0 1 1
n4 0 0 0 1 0 0 0 1 1 0
n5 0 0 0 0 1 0 0 0 1 1
n6 0 0 0 0 0 1 0 1 0 0
n7 0 0 0 0 0 0 1 1 0 0
- Generate constraints that each node ni be covered
by some match.(m1 m9 m10)(m2 m9 m10)(m3
m9 m10)(m4 m8 m9) - (m5 m9 m10)(m6 m8) (m7 m9)
7Binate Covering
- A Unate Covering Problem is a product-of-sums
expression, containing Boolean propositions (i.e.
variables which can have value 0 or 1).The
propositions are all uncomplemented. - For example
- P (P1 P3)(P1 P4 P5)(P6 P8)
- A BINATE COVERING PROBLEM is similar, but now the
propositions can be both uncomplemented and
complemented. For example - P (P1' P3)(P1 P4' P5)(P2 P5)(P2'
P3')
8Create Outputs for a Legal Cover
- Any satisfying assignment guarantees that all
subject nodes are covered, but - It does not guarantee that other matches create
outputs needed as inputs for a given match (legal
covering). - Rectify this by adding additional clauses.
9Binate Covering Problem
- Let match mi have subject nodes si1,,sin as
inputs. If mi is chosen, one of the matches that
realizes sij must also be chosen for each
intermediate input j - Let Sij be the disjunctive expression in the
variables mk giving the possible matches which
realize sij as an output node. Selecting match mi
implies satisfying each of the expressions Sij
for j 1 n.This can be written as - (mi ? (Si1 Sin ) )? (?mi (Si1 Sin ) ) ?
((?mi Si1) (?mi Sin ) )
10Binate Covering Problem Example
- For example, selecting m3 requires that
- a match be chosen which produces g2 as an output,
and a match be chosen which produces g1 as an
output. - The only match which produces g1 is m1 same for
g2 and m2, etc. - So, two extra clauses are required
11Binate Covering Example
- Finally, we get
-
- seven additional clauses.
- Note
- A match which requires a primary input as an
input is satisfied trivially. - Matches m1,m2,m4,m8,m9 are driven only by
primary inputs and do not require additional
clauses
12Binate Covering Problem
- An assignment of values to variables mi that
satisfies P, the above covering expression, is a
legal graph cover. - For area optimization, each match mi has a cost
ci the area of the gate the match represents. - The goal is a satisfying assignment with the
least total cost. - Find a least-cost prime
- if a variable mi 0 its cost is 0, else its
cost is ci - mi 1 means that match i is chosen
- mi 0 means that match i is not chosen
13Binate Covering Example
- The least cost prime implicant is
- This uses two gates for a cost of eight gate
units, for matches - m8 (nand3) and m9 (xnor2).
Note that the node g4 is covered by both matches
14Summary
- Given a subject graph, the binate covering
provides the exact solution to the
technology-mapping problem. - Finding a feasible solution to a binate covering
is NP-complete. - Problems that are NP-complete can be solved by
algorithms that run in exponential time. No
polynomial time algorithms are known to exist for
any of the NP-complete problems and it is very
unlikely that polynomial time algorithms should
indeed exist although nobody has yet been able to
prove their non-existence.