ch5 1
ch5 1
Technology Mapping
Step 2:
Library
inv(2) nand2(3)
rooted at v
. select the best matching
which has the least cost
Graph Covering (Mapping)
Step 1:
(a) Graph => tree
weak points:
• loss of global view due to the step of
partition into trees
• cover cross bounding is not allowed
• xor type gate can not be explored
Graph Covering (Mapping)
(b)
– only primary output is selected as root
– the mapping starts at a primary output
– mapping continues until either a primar
y input is encountered or until another i
nternal node that already mapped is enc
ounter which is an output of a cell
– select the most critical output first (map
ping without interruption)
Technology Mapping Minimizing Area
under Delay Constraint
Two steps:
(1) Compute delay function (arrival time-area
trade off curve) at all nodes bottom up
(2) Generate the mapping solution based on
the delay function and required time at
each nodes top down
Technology Mapping Minimizing Area
under Delay Constraint
D
c
e b
area d
C a
delay
B A
delay
d
area area a
e b
C c
g1 g2
delay
delay
delay curve due to B A
match g1
Step 2:
Timing recalculation (shift the delay curve)
Step 3:
According to the delay function and required
time, select mappings. (preorder traversal)
Technology Mapping
for FPGA
Technology Mapping for FPGA
Interconnection
Resources
Logic Block
I/O Cell
X
Inputs
A
B Look-up Y
C Table Outputs
S
D D
Q
R
Note: = User-programmed
Multiplexor
XC2000 CLB
Technology Mapping for FPGA
e
f
c (a+b)’(c’e+cf)
g +(a+b)(d’g+dh)
h
d
a b
Logic description
literal counts as criterion
f1=x1 | x2 | x3 | x4 | x5 | x6
f2= x1 x2’ x3’ x4’ x5’|
Decomposition process
x1’ x2 x3’ x4’ x5’
...| x1 x2 x3 x4 x5
Technology mapping
gate library
(For a 5-input RAM cell,
5
2 gates are needed.)
2
1. Decomposition
k=3
F G
f g
y x
a b c d
Technology Mapping For FPGA
2. Covering
k=5
– partition
• kernel extraction
f = ciki+ri
cost(ki) =
• and-or fdecomposition
f = ab+bc+cd
sup( k i ) sup( ri )
=> g = bc+cd
f = ab+g
Unate Covering
A1 A2 A3
a1 1 1
a2 1 1
a3 1 1
a4 -1
c = { A1,A3 }
Covering
• Covering
– find all supernode(i) for each node i
– Supernode(i) : a cluster that rooted at i a
nd some nodes in the transitive fan-in of
i. The constraint is that it has a maximu
m of m inputs.
supernode
Covering
S5
n6
S1
n1 n7
n2 n3
S2 S4
n4 n5
S3
Covering constraint:
Every intermediate node should be included in
at least one selected FPGA node
Implication constraint:
If a supernode is chosen, each input to the
supernode must be chosen.
Output constraint:
For every primary output, one supernode rooted
at the outputs should be selected.
Example
S5
n6
S1
n1 n7
n2 n3
S2 S4
n4 n5
S3
Binate Covering
( 一 ) Covering constraint
For every intermediate node, we construct
a row.
The column index is the node of supernode
If ni intermediate node is covered by
supernode Sj, then Mij = 1
Example :
S1 S2 S3 S4
n1 1
n2 1
n3 1 1
n4 1
Binate Covering
( 二 ) Implication constraint:
For every input j to the supernode Si
one row has to be added.
entry under Mj Si = -1 and
all supernode Sja has j as output Mj Sja = 1
Example
Si ...... Sj1....Sj2
j1 -1 1
j2 -1 1
Si
j1 j2
j
Sja Sjb
Binate Covering
( 三 ) Output constraint:
For every primary output, we should
create a row so that one supernode
rooted at the output will be selected.
primary output
S1 S2
Si ..... Sj
O1 1 1