SlideShare uma empresa Scribd logo
1 de 22
Technology Mapping for Area
Minimization without breaking DAGs
into trees(updated red)
Lakshmi Yasaswi Kamireddy
RajKumar Balachandaran
Problem Formulation :
Technology Mapping for a DAG w/o breaking the DAG into trees
Heuristics for Area optimal Mapping
General ASICs hence the problem is very complex (NP - hard)
A cover is a collection of pattern graphs such that every node of the subject graph is
contained in one or more of the pattern graphs .The cover is further constrained so that each
input required by a pattern graph is actually an output of some other pattern.
For minimum area ,cost of cover is the sum of areas of gates in the cover .The technology
mapping problem is the optimization problem of finding a minimum cost covering of the
subject graph by choosing from the collection of pattern graphs for all gates in the library.
Introduction:
Library:
DAG:
TM:
Area cost = 23
Area cost = 19
Area cost = 14
http://www.ece.tamu.edu/~sunil
Earlier Algorithms for Area optimal mapping
Decomposing DAG into forest of trees and apply Technology Mapping for the forest of trees.
Disadvantage: Loss of some optimality
Advantage: Can be solved in polynomial time
Every node that has fan out greater than one will lead to creation of new tree
[K. Keutzer, IEEE DAC’87]
Tech Mapping for FPGAs [Flowmap-r]
 Maximum Fan out Free Cone (MFFCV) - is an FFC of v such that for any non-PI node w, if
output(w) is a subset of MFFCV , then w is a node element of MFFCV
Algorithm:
This algorithm is a Dynamic Programming based algorithm
first form MFFCs for each individual node starting from nodes connected to output nodes
that is all the internal nodes MFFCs should also be formed then the algorithms starts
[Cong & Ding,IEEE DAC’93]
Tech Mapping for FPGAs [Flowmap-r] contd
 Form all partitions P (X, X̅) in MFFCV such that X̅ is a FFCV , input (X̅) should be no more than K and hence the cut P of
MFFCV is K-feasible and can be mapped by K-input LUT
 For each k-feasible cut P = (X,X̅) of MFFCV
- Cover X̅ with a K-LUT LUTV
P and partition X= MFFCV – X̅ into a set of disjoint MFFCs MFFCV1
P, MFFCV2
P…..
MFFCVM
P
- Then we recursively compute area optimal DF-mapping of each MFFCVi
P (1 ≤ i ≤ m)
- Cost P = 1 + 𝑖=1
𝑚
𝑎𝑟𝑒𝑎(MFFCVi
P) is computed where area(MFFCVi
P) is the area of the optimal DF-mapping
 Choose the cut P with the least cost and this cost (P) gives the best area DF-mapping of MFFCV
 Repeat the algorithm for all other N- MFFCV MFFC’s
[Cong & Ding,IEEE DAC’93]
Tech Mapping for DAG w/o Breaking into Trees
 Extension of Flowmap-r --Approach1
 Divide and conquer with DP --Approach2
Why MFFC formation:
 Primary objective of forming MFFC is not to break DAGs into trees.
 Secondary objective is that forming MFFCs makes the bigger problem into a set
of sub problems i.e, each MFFC is a sub DAG of the bigger DAG.
Generating MFFCs
The previous algorithm [Flowmap-r] was based on K-input LUTs but a standard library can have gates varying from 1 to K-
input. The following is the algorithm for technology mapping without breaking into trees using extension of Flowmap-r.
Algorithm:
1. Form all partitions P (X, X̅ ) in MFFCV such that X̅ is a FFCV , input (X̅) should be equal to K and check if at least 1
partition in set P matches a library gate and if it does then proceed to Step 2 .
• Else, clear the partition set P and form new partitions P (X, X̅) such that X̅̅ is a FFCV, input (X¯) should be equal to K-
1 and check if at least 1 partition in set P matches a library gate and if it does then proceed to Step 2
• Else keep on continuing with input(X̅) =K-2. Map able proceed to step 2
• Therefore finally if none of the before formed partition does not match a library gate then we will take only the root
node as our FFCv because a single node of any gate type is map able in the library.
2. For each k-feasible cut P = (X,X̅) of MFFCV
• Cover X̅ with a K-input Library gate and partition X= MFFCV – X̅ into a set of disjoint MFFCs MFFCV1P,
MFFCV2P….. MFFCVMP
• Then we recursively compute area optimal mapping of each MFFCViP (1 ≤ i ≤ m)
• Cost P = 1 + 𝑖=1
𝑚
𝑎𝑟𝑒𝑎(MFFCViP) is computed where area(MFFCViP) is the area of the optimal mapping
3. Choose the cut P with the least cost and this cost (P) gives the best area DF-mapping of MFFCV
4. Repeat the algorithm for all other N- MFFCV MFFC’s
Approach 1 – Extension of Flowmap-r
 Problem – Best area cover for DAG.
 Form MFFC s for each node in the circuit.
 Sub problem set 1- Best area cover for MFFCs of
output nodes and the other MFFCs that are left
over in the circuit.
 Divide the problem until leaf nodes which are the
nodes connected to Primary Inputs.
 Find the least cost area for the leaf node which will
be the gate itself.
 Then add the leaf node solutions with the node for
which the leaf nodes are inputs to form the sub
problem solution.
 Do this until you reach the output nodes and the
entire circuit is covered.
Sub problem 1
Sub problem 3
Sub problem 2
Approach 2 – Divide and conquer
The solution cost might be equal to the tree.
But the time complexity will be higher than the
tree.
In each sub problem again form sub problems until a
leaf problem is encountered (kind of a Divide and
Conquer approach)
Keep on dividing until we reach the leaf nodes.
Once we reach the leaf node find the best area gate to
map with the leaf node
Combine the solution of the leaf nodes(36,37) to
form the solution of the sub problem(38).
For each sub problem we get a best cost and we
combine with other sub problems(combine 38 and 39
to form 40) until we reach the main problem(41).
Approach 2 – Divide and conquer
MFFC Creation Algorithm
To get mffc, we perform the process in 2 steps.
• First generate mffc_dictionary, where for each node, we add itself and also, its
children with only one parent
• For children with shared parents, check if all the parents are in the grand parents,
then add child to each of grandparent
• Repeat the steps for every level on DAG and fill the mffc_dictionary
New slide
MFFC Pseudo Code
• def rget_mffc_single_parent(G, list_of_nodes, mffc_dict):
# temp list
temp_list = set()
for node in list_of_nodes:
# add node itself
mffc_dict[node].add(node)
# add parents of leaf to a new list
temp_list |= set(G.successors(node))
# check for children
children = G.predecessors(node)
if len(children) > 0:
for child in children:
if len(G.successors(child)) == 1:
mffc_dict[node] |= mffc_dict[child]
if len(temp_list) != 0:
rget_mffc(G, temp_list, mffc_dict)
return mffc_dict
MFFC Pseudo Code contd
• def rget_mffc(G, list_of_nodes, mffc_dict):
temp_list = set()
for node in list_of_nodes:
mffc_dict[node].add(node) //add node to itself
temp_list |= set(G.successors(node)) //get its parents
children = G.predecessors(node) //get its children for the current node
if len(children) > 0: //if it is not leaf node
for child in children:
parents_list = G.successors(child) //get its parent list
for parent in parents_list:
grand_parents_set |= set(G.successors(parent)) //get its grandparent
list
for grand_parent in grand_parents_set:
if set(parents_list).issubset(set(mffc_dict[grand_parent])):
mffc_dict[grand_parent].add(child)
• if len(temp_list) != 0:
rget_mffc(G, temp_list, mffc_dict)
return mffc_dict
Mappable MFFCs
• From the library for each logic expression extract variables and extract
operators based on parentheses.
• Pass inputs combinations to a parser and generate the truth tables
• This truth table parsing function is used to generate truth table for the
library gates
• So the outputs for all combination of inputs are compared with the
MFFC outputs and the map able MFFC are generated.
New slide
Best Possible Cover for minimum Area
• Our problem is to find the maximal cover (number of nodes) with minimal area.
• For the algorithm we have explained this turned out to be a weighted set cover problem which is one of the NP-complete
problems.
Set cover problem :Given a set of elements {1,2,...,m} (called the universe) and collection S of n sets whose union equals the
universe, the set cover problem is to identify the smallest sub-collection of S whose union equals the universe.
For example, consider the universe U={1,2,3,4,5} and the collection of sets S={{1,2,3},{2,4},{3,4},{4,5}}. Clearly the union
of S is U. However, we can cover all of the elements with the following, smaller number of sets: {{1,2,3},{4,5}}
In our case we find the min area MFFC to cover the entire DAG.
https://en.wikipedia.org/wiki/Set_cover_problem
New slide
Best Possible Cover for minimum Area
Inputs to the function are list of mappable MFFC ,G(V,E)
The nodes in the graph will be the universal set and the nodes in the MFFCs are the subsets.
Initially
area =0; // area of the nodes covered
Covered nodes=0 //number nodes covered
Create a priority queue sorted basing on least area MFFC
For each MFFC in list of MFFCs
Insert into priority queue
While covered nodes < length(number of nodes in DAG)
{
Pop an MFFC from priority queue
Update the area
Update covered nodes
Update sets with newly covered MFFC
{
For each newly covered MFFC
For each MFFC in the number of nodes in DAG
If this MFFC is not the popped from the priority queue
{Then discard this MFFC from the list of MFFCs
And push it to priority queue}
}
}
All the combinations are pushed
continuously into the priority queue
and the best is picked from it.
New slide
Sample results
27 --> 27
28 --> 28
29 --> 29
30 --> 27, 30
31 --> 29, 31
32 --> 32
33 --> 33
34 --> 34
35 --> 35
36 --> 36
37 --> 37
38 --> 36, 37, 38
39 --> 39
40 --> 36, 37, 38, 39, 40
41 --> 36, 37, 38, 39, 40, 41
42 --> 34, 42
43 --> 32, 33, 43
44 --> 27, 28, 29, 30, 31, 44
45 --> 45
46 --> 46
47 --> 32, 33, 34, 42, 43, 47
48 --> 27, 28, 29, 30, 31, 44, 45, 48
49 --> 49
50 --> 27, 28, 29, 30, 31, 44, 45, 48, 50
51 --> 32, 33, 34, 42, 43, 47, 51
52 --> 27, 28, 29, 30, 31, 32, 33, 34, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52
53 --> 53
54 --> 27, 28, 29, 30, 31, 32, 33, 34, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54
MFFC
1,BUFX1,1856.00,a
1,INVX1,928.00,!(a)
3,AND3X1,1856.00,a*(b*(c))
2,AND2X1,1392.00,a*(b)
4,AOI211X1,4176.00,!(a*(b+(c+(d)))+!a*(c+(d)))
3,AOI21X1,3248.00,!(a*(b+(c))+!a*(c))
4,AND4X1,2320.00,a*(b*(c*d))
4,AOI31X1,5104.00,!(a*(b*(c+(d))+!b*(d))+!a*(d))
6,AOI222X1,9744.00,!(a*(b+(c*(d+(e*(f)))+!c*(e*(f))))+!a*(c*(d+(e*(f)))+
!c*(e*(f))))
5,AOI221X1,7888.00,!(a*(b+(c*(d+(e))+!c*(e)))+!a*(c*(d+(e))+!c*(e)))
4,AOI22X1,4176.00,!(a*(b+(c*(d)))+!a*(c*(d)))
4,AOI2UM2X1,4640.00,!(a*(c*(d))+!a*((c*(d))+!b))
3,AOI2UM1X1,3712.00,!(a*(c)+!a*((c)+!b))
6,AOI33X1,8352.00,!(a*(b*(c+(d*(e*(f))))+!b*(c*(e*(f))))+!a*(c*(e*(f))))
4,AO22X1,4176.00,a*(b+(c*(d)))+!a*(c*(d))
3,AO21X1,3248.00,a*(b+(c))+!a*(c)
4,NAND4X1,3766.00,!(a*(b*(c*(d))))
4,NAND4UMX1,2784.00,a+(b+!(c*(d)))
4,NAND4BX1,2784.00,a+!(b*(c*(d)))
3,NAND3BX1,2320.00,a+!(b*(c))
2,NAND2BX1,1856.00,a+!(b)
4,NAND4X6,2320.00,!(a*(b*(c*(d))))
4,NOR4X1,2320.00,!(a+(b+(c+(d))))
3,NOR3X1,1856.00,!(a+(b+(c)))
2,NOR2X1,1392.00,!(a+(b))
4,NOR4UMX1,3248.00,!(((c+(d))+!b)+!a)
4,NOR4BX1,2784.00,!((b+(c+(d)))+!a)
3,NOR3BX1,2320.00,!((b+(c))+!a)
2,NOR2BX1,1856.00,!((b)+!a)
4,NOR4X6,2320.00,!(a+(b+(c+(d))))
4,OR4X1,2320.00,a+(b+(c+(d)))
3,OR3X1,1856.00,a+(b+(c))
2,OR2X1,1392.00,a+(b)
5,OAI221X1,7888.00,!(a*(c*(e)+!c*(d*(e)))+!a*(b*(c*(e)+!c*(d*(e)))))
4,OAI22X1,4176.00,!(a*(c+(d))+!a*(b*(c+(d))))
6,OAI33X1,7888.00,!(a*(d+(e+(f)))+!a*(b*(d+(e+(f)))+!b*(c*(d+(e+(f))))))
5,OAI32X1,6496.00,!(a*(c+(d))+!a*(b*(c+(d))+!b*(e*(c+(d)))))
5,OAI31X1,5104.00,!(a*(c)+!a*(b*(c)+!b*(d*(e))))
6,OAI222X1,9744.00,!(a*(c*(e+(f))+!c*(d*(e+(f))))+!a*(b*(c*(e+(f))+!c*(d
*(e+(f))))))
4,OA22X1,4176.00,a*(c+(d))+!a*(b*(c+(d)))
3,OA21X1,3248.00,a*(c)+!a*(b*(c))
3,OAI2UM1X1,4176.00,a*(b+!(c))+!a*!(c)
2,XNOR2X1,3248.00,a*(b)+!a*!(b)
3,XOR3X1,7888.00,a*(b*(c)+!b*!(c))+!a*!(b*(c)+!b*!(c))
2,XOR2X1,3248.00,!(a*(b)+!a*!(b))
3,XNOR3X4,7888.00,!(a*(b*(c)+!b*!(c))+!a*!(b*(c)+!b*!(c)))
3,XNOR3X2,7888.00,!(a*(b*(c)+!b*!(c))+!a*!(b*(c)+!b*!(c)))
4,type1,3248.00,!(!(!(a*(b)*c)*(d)))
2,type2,1392.00,!(a*(b))
3,type3,1856.00,!(a*(b*c))
2,type4,3248.00,(a*(!b))+(b*(!a))
2,type5,2784.00,(a*(!b))
New slideLibrary
Sample results
The area calculated is only for the gates that are mapped from the library in
Mappable MFFC’s and the type of gate it is mapped to and the area for mappable
part.
NOTE:Please ignore the percentage it is for our reference to check for how much
percentage of the file has completed processing.
Number of nodes 6
Number of edges 6
Number of inputs 5
MFFC 16.67% 5 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0
MFFC 33.33% 7 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0
MFFC 50.00% 6 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0
MFFC 83.33% 8 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0
Mappable MFFC's 4
[['5'], ['7'], ['6'], ['8']]
Area=5568.0
IPT_0 [label = IPT ];
IPT_1 [label = IPT ];
IPT_2 [label = IPT ];
IPT_3 [label = IPT ];
IPT_4 [label = IPT ];
NND_5 [gate = NND ];
NND_6 [gate = NND ];
NND_7 [gate = NND ];
NND_8 [gate = NND ];
NND_9 [gate = NND ];
NND_10 [gate = NND ];
IPT_0 -> NND_5 [ name = 0 ];
IPT_2 -> NND_5 [ name = 1 ];
IPT_2 -> NND_6 [ name = 2 ];
IPT_3 -> NND_6 [ name = 3 ];
IPT_1 -> NND_7 [ name = 4 ];
NND_6 -> NND_7 [ name = 5 ];
NND_6 -> NND_8 [ name = 6 ];
IPT_4 -> NND_8 [ name = 7 ];
NND_5 -> NND_9 [ name = 8 ];
NND_7 -> NND_9 [ name = 9 ];
NND_7 -> NND_10 [ name = 10 ];
NND_8 -> NND_10 [ name = 11 ];
10 --> 10, 8
5 --> 5
6 --> 6
7 --> 7
8 --> 8
9 --> 5, 9
Dot file
MFFC
Final OutputC17.bench New slide
IPT_0 [label = IPT ];
IPT_1 [label = IPT ];
IPT_2 [label = IPT ];
IPT_3 [label = IPT ];
IPT_4 [label = IPT ];
IPT_5 [label = IPT ];
NND_6 [gate = NND ];
NND_7 [gate = NND ];
NND_8 [gate = NND ];
NND_9 [gate = NND ];
NND_10 [gate = NND ];
NND_11 [gate = NND ];
IPT_0 -> NND_6 [ name = 0 ];
IPT_1 -> NND_6 [ name = 1 ];
IPT_2 -> NND_7 [ name = 2 ];
IPT_3 -> NND_7 [ name = 3 ];
IPT_4 -> NND_8 [ name = 4 ];
IPT_5 -> NND_8 [ name = 5 ];
NND_6 -> NND_9 [ name = 6 ];
NND_7 -> NND_9 [ name = 7 ];
NND_7 -> NND_10 [ name = 8 ];
NND_8 -> NND_10 [ name = 9 ];
NND_9 -> NND_11 [ name = 10 ];
NND_10 -> NND_11 [ name = 11 ];
10 --> 10, 8
11 --> 10, 11, 6, 7, 8, 9
6 --> 6
7 --> 7
8 --> 8
9 --> 6, 9
Number of nodes 6
Number of edges 6
Number of inputs 6
MFFC 33.33% 7 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0
MFFC 50.00% 6 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0
MFFC 83.33% 8 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0
Mappable MFFC's 3
[['7'], ['6'], ['8']]
Area = 4176.0
C1 example we have taken
Dot file
MFFC
Final Output
For bigger files please check the input output folder
New slide
References
[1] K. Keutzer and D. Richards. Computational complexity of logic synthesis and optimization in
Proceedings of International Workshop on Logic Synthesis, 1989.
[2] K. Keutzer. Dagon: Technology binding and local optimization by dag matching in Proceedings of
24th ACM/IEEE Design Automation Conference, 1987.
[3] J Cong , Y Ding “On Area/Depth Trade-off in LUT-Based FPGA Technology Mapping”, Design
Automation Conference (DAC), 1993
[4] Performing Technology Mapping and Optimization by DAG covering: A review of Traditional
Approaches.

Mais conteúdo relacionado

Mais procurados

WVKULAK13_submission_14
WVKULAK13_submission_14WVKULAK13_submission_14
WVKULAK13_submission_14Max De Koninck
 
DIT-Radix-2-FFT in SPED
DIT-Radix-2-FFT in SPEDDIT-Radix-2-FFT in SPED
DIT-Radix-2-FFT in SPEDAjay Kumar
 
fft using labview
fft using labviewfft using labview
fft using labviewkiranrockz
 
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
AI optimizing HPC simulations (presentation from  6th EULAG Workshop)AI optimizing HPC simulations (presentation from  6th EULAG Workshop)
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)byteLAKE
 
pptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacespptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacesbutest
 
SchNet: A continuous-filter convolutional neural network for modeling quantum...
SchNet: A continuous-filter convolutional neural network for modeling quantum...SchNet: A continuous-filter convolutional neural network for modeling quantum...
SchNet: A continuous-filter convolutional neural network for modeling quantum...Kazuki Fujikawa
 
Fast fourier transform
Fast fourier transformFast fourier transform
Fast fourier transformAshraf Khan
 

Mais procurados (15)

Parallel algorithms
Parallel algorithms Parallel algorithms
Parallel algorithms
 
WVKULAK13_submission_14
WVKULAK13_submission_14WVKULAK13_submission_14
WVKULAK13_submission_14
 
DIT-Radix-2-FFT in SPED
DIT-Radix-2-FFT in SPEDDIT-Radix-2-FFT in SPED
DIT-Radix-2-FFT in SPED
 
fft using labview
fft using labviewfft using labview
fft using labview
 
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
AI optimizing HPC simulations (presentation from  6th EULAG Workshop)AI optimizing HPC simulations (presentation from  6th EULAG Workshop)
AI optimizing HPC simulations (presentation from 6th EULAG Workshop)
 
Matrix multiplication
Matrix multiplicationMatrix multiplication
Matrix multiplication
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
pptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspacespptx - Psuedo Random Generator for Halfspaces
pptx - Psuedo Random Generator for Halfspaces
 
Analysis_molf
Analysis_molfAnalysis_molf
Analysis_molf
 
Dsp lab manual
Dsp lab manualDsp lab manual
Dsp lab manual
 
Chap4 slides
Chap4 slidesChap4 slides
Chap4 slides
 
SchNet: A continuous-filter convolutional neural network for modeling quantum...
SchNet: A continuous-filter convolutional neural network for modeling quantum...SchNet: A continuous-filter convolutional neural network for modeling quantum...
SchNet: A continuous-filter convolutional neural network for modeling quantum...
 
Fast fourier transform
Fast fourier transformFast fourier transform
Fast fourier transform
 
Parallel searching
Parallel searchingParallel searching
Parallel searching
 
Fcm1
Fcm1Fcm1
Fcm1
 

Destaque (9)

ECE 565 presentation
ECE 565 presentationECE 565 presentation
ECE 565 presentation
 
ECE 368 Lab Project 1
ECE 368 Lab Project 1ECE 368 Lab Project 1
ECE 368 Lab Project 1
 
ECE 467 Final Project
ECE 467 Final Project ECE 467 Final Project
ECE 467 Final Project
 
самоврядування
самоврядуваннясамоврядування
самоврядування
 
finalized MGMT4230_Presentation
finalized MGMT4230_Presentationfinalized MGMT4230_Presentation
finalized MGMT4230_Presentation
 
Портфоліо
ПортфоліоПортфоліо
Портфоліо
 
податки
податкиподатки
податки
 
географічні задачі
географічні задачігеографічні задачі
географічні задачі
 
SunumTürkiye'de Kadın Hakları
SunumTürkiye'de Kadın HaklarıSunumTürkiye'de Kadın Hakları
SunumTürkiye'de Kadın Hakları
 

Semelhante a Technology Mapping for Area Minimization without Breaking DAGs into Trees

Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)Universitat Politècnica de Catalunya
 
Parallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationParallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationGeoffrey Fox
 
Signals And Systems Lab Manual, R18 Batch
Signals And Systems Lab Manual, R18 BatchSignals And Systems Lab Manual, R18 Batch
Signals And Systems Lab Manual, R18 BatchAmairullah Khan Lodhi
 
designanalysisalgorithm_unit-v-part2.pptx
designanalysisalgorithm_unit-v-part2.pptxdesignanalysisalgorithm_unit-v-part2.pptx
designanalysisalgorithm_unit-v-part2.pptxarifimad15
 
Introduction to data structures and complexity.pptx
Introduction to data structures and complexity.pptxIntroduction to data structures and complexity.pptx
Introduction to data structures and complexity.pptxPJS KUMAR
 
Spark 4th Meetup Londond - Building a Product with Spark
Spark 4th Meetup Londond - Building a Product with SparkSpark 4th Meetup Londond - Building a Product with Spark
Spark 4th Meetup Londond - Building a Product with Sparksamthemonad
 
Subproblem-Tree Calibration: A Unified Approach to Max-Product Message Passin...
Subproblem-Tree Calibration: A Unified Approach to Max-Product Message Passin...Subproblem-Tree Calibration: A Unified Approach to Max-Product Message Passin...
Subproblem-Tree Calibration: A Unified Approach to Max-Product Message Passin...Varad Meru
 
A Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB SimulinkA Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB SimulinkJaewook. Kang
 
dynamic programming Rod cutting class
dynamic programming Rod cutting classdynamic programming Rod cutting class
dynamic programming Rod cutting classgiridaroori
 
01 - DAA - PPT.pptx
01 - DAA - PPT.pptx01 - DAA - PPT.pptx
01 - DAA - PPT.pptxKokilaK25
 
Digital Signal Processing Lab Manual
Digital Signal Processing Lab Manual Digital Signal Processing Lab Manual
Digital Signal Processing Lab Manual Amairullah Khan Lodhi
 
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORMDESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORMsipij
 
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)Amr E. Mohamed
 
lecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdflecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdfAnaNeacsu5
 
Parallel Implementation of K Means Clustering on CUDA
Parallel Implementation of K Means Clustering on CUDAParallel Implementation of K Means Clustering on CUDA
Parallel Implementation of K Means Clustering on CUDAprithan
 

Semelhante a Technology Mapping for Area Minimization without Breaking DAGs into Trees (20)

Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
Attention is all you need (UPC Reading Group 2018, by Santi Pascual)
 
Parallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationParallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel application
 
Signals And Systems Lab Manual, R18 Batch
Signals And Systems Lab Manual, R18 BatchSignals And Systems Lab Manual, R18 Batch
Signals And Systems Lab Manual, R18 Batch
 
designanalysisalgorithm_unit-v-part2.pptx
designanalysisalgorithm_unit-v-part2.pptxdesignanalysisalgorithm_unit-v-part2.pptx
designanalysisalgorithm_unit-v-part2.pptx
 
Introduction to data structures and complexity.pptx
Introduction to data structures and complexity.pptxIntroduction to data structures and complexity.pptx
Introduction to data structures and complexity.pptx
 
Spark 4th Meetup Londond - Building a Product with Spark
Spark 4th Meetup Londond - Building a Product with SparkSpark 4th Meetup Londond - Building a Product with Spark
Spark 4th Meetup Londond - Building a Product with Spark
 
Chapter 4 pc
Chapter 4 pcChapter 4 pc
Chapter 4 pc
 
Subproblem-Tree Calibration: A Unified Approach to Max-Product Message Passin...
Subproblem-Tree Calibration: A Unified Approach to Max-Product Message Passin...Subproblem-Tree Calibration: A Unified Approach to Max-Product Message Passin...
Subproblem-Tree Calibration: A Unified Approach to Max-Product Message Passin...
 
A Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB SimulinkA Simple Communication System Design Lab #4 with MATLAB Simulink
A Simple Communication System Design Lab #4 with MATLAB Simulink
 
Network Design Assignment Help
Network Design Assignment HelpNetwork Design Assignment Help
Network Design Assignment Help
 
dynamic programming Rod cutting class
dynamic programming Rod cutting classdynamic programming Rod cutting class
dynamic programming Rod cutting class
 
01 - DAA - PPT.pptx
01 - DAA - PPT.pptx01 - DAA - PPT.pptx
01 - DAA - PPT.pptx
 
Fortran induction project. DGTSV DGESV
Fortran induction project. DGTSV DGESVFortran induction project. DGTSV DGESV
Fortran induction project. DGTSV DGESV
 
Digital Signal Processing Lab Manual
Digital Signal Processing Lab Manual Digital Signal Processing Lab Manual
Digital Signal Processing Lab Manual
 
Recurrent Instance Segmentation (UPC Reading Group)
Recurrent Instance Segmentation (UPC Reading Group)Recurrent Instance Segmentation (UPC Reading Group)
Recurrent Instance Segmentation (UPC Reading Group)
 
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORMDESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
 
Lecture12
Lecture12Lecture12
Lecture12
 
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
DSP_FOEHU - MATLAB 04 - The Discrete Fourier Transform (DFT)
 
lecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdflecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdf
 
Parallel Implementation of K Means Clustering on CUDA
Parallel Implementation of K Means Clustering on CUDAParallel Implementation of K Means Clustering on CUDA
Parallel Implementation of K Means Clustering on CUDA
 

Mais de Lakshmi Yasaswi Kamireddy (9)

Memory Access Scheduling
Memory Access SchedulingMemory Access Scheduling
Memory Access Scheduling
 
ECE 468 Lab Project 1
ECE 468 Lab Project 1ECE 468 Lab Project 1
ECE 468 Lab Project 1
 
ECE 468 Lab Project 2
ECE 468 Lab Project 2ECE 468 Lab Project 2
ECE 468 Lab Project 2
 
ECE 467 Mini project 2
ECE 467 Mini project 2ECE 467 Mini project 2
ECE 467 Mini project 2
 
ECE 467 Mini project 1
ECE 467 Mini project 1ECE 467 Mini project 1
ECE 467 Mini project 1
 
Survey paper _ lakshmi yasaswi kamireddy(651771619)
Survey paper _ lakshmi yasaswi kamireddy(651771619)Survey paper _ lakshmi yasaswi kamireddy(651771619)
Survey paper _ lakshmi yasaswi kamireddy(651771619)
 
Survey on Prefix adders
Survey on Prefix addersSurvey on Prefix adders
Survey on Prefix adders
 
ECE469 Project1
ECE469 Project1ECE469 Project1
ECE469 Project1
 
ECE469 proj2_Lakshmi Yasaswi Kamireddy
ECE469 proj2_Lakshmi Yasaswi KamireddyECE469 proj2_Lakshmi Yasaswi Kamireddy
ECE469 proj2_Lakshmi Yasaswi Kamireddy
 

Último

Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfDrew Moseley
 
70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical trainingGladiatorsKasper
 
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...shreenathji26
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTSneha Padhiar
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfBalamuruganV28
 
Secure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech LabsSecure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech Labsamber724300
 
tourism-management-srs_compress-software-engineering.pdf
tourism-management-srs_compress-software-engineering.pdftourism-management-srs_compress-software-engineering.pdf
tourism-management-srs_compress-software-engineering.pdfchess188chess188
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organizationchnrketan
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Amil baba
 
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...KrishnaveniKrishnara1
 
Novel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsNovel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsResearcher Researcher
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...IJAEMSJORNAL
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
Module-1-Building Acoustics(Introduction)(Unit-1).pdf
Module-1-Building Acoustics(Introduction)(Unit-1).pdfModule-1-Building Acoustics(Introduction)(Unit-1).pdf
Module-1-Building Acoustics(Introduction)(Unit-1).pdfManish Kumar
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSsandhya757531
 

Último (20)

Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdf
 
70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training70 POWER PLANT IAE V2500 technical training
70 POWER PLANT IAE V2500 technical training
 
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdf
 
Secure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech LabsSecure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech Labs
 
tourism-management-srs_compress-software-engineering.pdf
tourism-management-srs_compress-software-engineering.pdftourism-management-srs_compress-software-engineering.pdf
tourism-management-srs_compress-software-engineering.pdf
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organization
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
 
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
 
Novel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsNovel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending Actuators
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
Module-1-Building Acoustics(Introduction)(Unit-1).pdf
Module-1-Building Acoustics(Introduction)(Unit-1).pdfModule-1-Building Acoustics(Introduction)(Unit-1).pdf
Module-1-Building Acoustics(Introduction)(Unit-1).pdf
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
 

Technology Mapping for Area Minimization without Breaking DAGs into Trees

  • 1. Technology Mapping for Area Minimization without breaking DAGs into trees(updated red) Lakshmi Yasaswi Kamireddy RajKumar Balachandaran
  • 2. Problem Formulation : Technology Mapping for a DAG w/o breaking the DAG into trees Heuristics for Area optimal Mapping General ASICs hence the problem is very complex (NP - hard) A cover is a collection of pattern graphs such that every node of the subject graph is contained in one or more of the pattern graphs .The cover is further constrained so that each input required by a pattern graph is actually an output of some other pattern. For minimum area ,cost of cover is the sum of areas of gates in the cover .The technology mapping problem is the optimization problem of finding a minimum cost covering of the subject graph by choosing from the collection of pattern graphs for all gates in the library.
  • 3. Introduction: Library: DAG: TM: Area cost = 23 Area cost = 19 Area cost = 14 http://www.ece.tamu.edu/~sunil
  • 4. Earlier Algorithms for Area optimal mapping Decomposing DAG into forest of trees and apply Technology Mapping for the forest of trees. Disadvantage: Loss of some optimality Advantage: Can be solved in polynomial time Every node that has fan out greater than one will lead to creation of new tree [K. Keutzer, IEEE DAC’87]
  • 5. Tech Mapping for FPGAs [Flowmap-r]  Maximum Fan out Free Cone (MFFCV) - is an FFC of v such that for any non-PI node w, if output(w) is a subset of MFFCV , then w is a node element of MFFCV Algorithm: This algorithm is a Dynamic Programming based algorithm first form MFFCs for each individual node starting from nodes connected to output nodes that is all the internal nodes MFFCs should also be formed then the algorithms starts [Cong & Ding,IEEE DAC’93]
  • 6. Tech Mapping for FPGAs [Flowmap-r] contd  Form all partitions P (X, X̅) in MFFCV such that X̅ is a FFCV , input (X̅) should be no more than K and hence the cut P of MFFCV is K-feasible and can be mapped by K-input LUT  For each k-feasible cut P = (X,X̅) of MFFCV - Cover X̅ with a K-LUT LUTV P and partition X= MFFCV – X̅ into a set of disjoint MFFCs MFFCV1 P, MFFCV2 P….. MFFCVM P - Then we recursively compute area optimal DF-mapping of each MFFCVi P (1 ≤ i ≤ m) - Cost P = 1 + 𝑖=1 𝑚 𝑎𝑟𝑒𝑎(MFFCVi P) is computed where area(MFFCVi P) is the area of the optimal DF-mapping  Choose the cut P with the least cost and this cost (P) gives the best area DF-mapping of MFFCV  Repeat the algorithm for all other N- MFFCV MFFC’s [Cong & Ding,IEEE DAC’93]
  • 7. Tech Mapping for DAG w/o Breaking into Trees  Extension of Flowmap-r --Approach1  Divide and conquer with DP --Approach2 Why MFFC formation:  Primary objective of forming MFFC is not to break DAGs into trees.  Secondary objective is that forming MFFCs makes the bigger problem into a set of sub problems i.e, each MFFC is a sub DAG of the bigger DAG.
  • 9. The previous algorithm [Flowmap-r] was based on K-input LUTs but a standard library can have gates varying from 1 to K- input. The following is the algorithm for technology mapping without breaking into trees using extension of Flowmap-r. Algorithm: 1. Form all partitions P (X, X̅ ) in MFFCV such that X̅ is a FFCV , input (X̅) should be equal to K and check if at least 1 partition in set P matches a library gate and if it does then proceed to Step 2 . • Else, clear the partition set P and form new partitions P (X, X̅) such that X̅̅ is a FFCV, input (X¯) should be equal to K- 1 and check if at least 1 partition in set P matches a library gate and if it does then proceed to Step 2 • Else keep on continuing with input(X̅) =K-2. Map able proceed to step 2 • Therefore finally if none of the before formed partition does not match a library gate then we will take only the root node as our FFCv because a single node of any gate type is map able in the library. 2. For each k-feasible cut P = (X,X̅) of MFFCV • Cover X̅ with a K-input Library gate and partition X= MFFCV – X̅ into a set of disjoint MFFCs MFFCV1P, MFFCV2P….. MFFCVMP • Then we recursively compute area optimal mapping of each MFFCViP (1 ≤ i ≤ m) • Cost P = 1 + 𝑖=1 𝑚 𝑎𝑟𝑒𝑎(MFFCViP) is computed where area(MFFCViP) is the area of the optimal mapping 3. Choose the cut P with the least cost and this cost (P) gives the best area DF-mapping of MFFCV 4. Repeat the algorithm for all other N- MFFCV MFFC’s Approach 1 – Extension of Flowmap-r
  • 10.  Problem – Best area cover for DAG.  Form MFFC s for each node in the circuit.  Sub problem set 1- Best area cover for MFFCs of output nodes and the other MFFCs that are left over in the circuit.  Divide the problem until leaf nodes which are the nodes connected to Primary Inputs.  Find the least cost area for the leaf node which will be the gate itself.  Then add the leaf node solutions with the node for which the leaf nodes are inputs to form the sub problem solution.  Do this until you reach the output nodes and the entire circuit is covered. Sub problem 1 Sub problem 3 Sub problem 2 Approach 2 – Divide and conquer The solution cost might be equal to the tree. But the time complexity will be higher than the tree.
  • 11. In each sub problem again form sub problems until a leaf problem is encountered (kind of a Divide and Conquer approach) Keep on dividing until we reach the leaf nodes. Once we reach the leaf node find the best area gate to map with the leaf node Combine the solution of the leaf nodes(36,37) to form the solution of the sub problem(38). For each sub problem we get a best cost and we combine with other sub problems(combine 38 and 39 to form 40) until we reach the main problem(41). Approach 2 – Divide and conquer
  • 12. MFFC Creation Algorithm To get mffc, we perform the process in 2 steps. • First generate mffc_dictionary, where for each node, we add itself and also, its children with only one parent • For children with shared parents, check if all the parents are in the grand parents, then add child to each of grandparent • Repeat the steps for every level on DAG and fill the mffc_dictionary New slide
  • 13. MFFC Pseudo Code • def rget_mffc_single_parent(G, list_of_nodes, mffc_dict): # temp list temp_list = set() for node in list_of_nodes: # add node itself mffc_dict[node].add(node) # add parents of leaf to a new list temp_list |= set(G.successors(node)) # check for children children = G.predecessors(node) if len(children) > 0: for child in children: if len(G.successors(child)) == 1: mffc_dict[node] |= mffc_dict[child] if len(temp_list) != 0: rget_mffc(G, temp_list, mffc_dict) return mffc_dict
  • 14. MFFC Pseudo Code contd • def rget_mffc(G, list_of_nodes, mffc_dict): temp_list = set() for node in list_of_nodes: mffc_dict[node].add(node) //add node to itself temp_list |= set(G.successors(node)) //get its parents children = G.predecessors(node) //get its children for the current node if len(children) > 0: //if it is not leaf node for child in children: parents_list = G.successors(child) //get its parent list for parent in parents_list: grand_parents_set |= set(G.successors(parent)) //get its grandparent list for grand_parent in grand_parents_set: if set(parents_list).issubset(set(mffc_dict[grand_parent])): mffc_dict[grand_parent].add(child) • if len(temp_list) != 0: rget_mffc(G, temp_list, mffc_dict) return mffc_dict
  • 15. Mappable MFFCs • From the library for each logic expression extract variables and extract operators based on parentheses. • Pass inputs combinations to a parser and generate the truth tables • This truth table parsing function is used to generate truth table for the library gates • So the outputs for all combination of inputs are compared with the MFFC outputs and the map able MFFC are generated. New slide
  • 16. Best Possible Cover for minimum Area • Our problem is to find the maximal cover (number of nodes) with minimal area. • For the algorithm we have explained this turned out to be a weighted set cover problem which is one of the NP-complete problems. Set cover problem :Given a set of elements {1,2,...,m} (called the universe) and collection S of n sets whose union equals the universe, the set cover problem is to identify the smallest sub-collection of S whose union equals the universe. For example, consider the universe U={1,2,3,4,5} and the collection of sets S={{1,2,3},{2,4},{3,4},{4,5}}. Clearly the union of S is U. However, we can cover all of the elements with the following, smaller number of sets: {{1,2,3},{4,5}} In our case we find the min area MFFC to cover the entire DAG. https://en.wikipedia.org/wiki/Set_cover_problem New slide
  • 17. Best Possible Cover for minimum Area Inputs to the function are list of mappable MFFC ,G(V,E) The nodes in the graph will be the universal set and the nodes in the MFFCs are the subsets. Initially area =0; // area of the nodes covered Covered nodes=0 //number nodes covered Create a priority queue sorted basing on least area MFFC For each MFFC in list of MFFCs Insert into priority queue While covered nodes < length(number of nodes in DAG) { Pop an MFFC from priority queue Update the area Update covered nodes Update sets with newly covered MFFC { For each newly covered MFFC For each MFFC in the number of nodes in DAG If this MFFC is not the popped from the priority queue {Then discard this MFFC from the list of MFFCs And push it to priority queue} } } All the combinations are pushed continuously into the priority queue and the best is picked from it. New slide
  • 18. Sample results 27 --> 27 28 --> 28 29 --> 29 30 --> 27, 30 31 --> 29, 31 32 --> 32 33 --> 33 34 --> 34 35 --> 35 36 --> 36 37 --> 37 38 --> 36, 37, 38 39 --> 39 40 --> 36, 37, 38, 39, 40 41 --> 36, 37, 38, 39, 40, 41 42 --> 34, 42 43 --> 32, 33, 43 44 --> 27, 28, 29, 30, 31, 44 45 --> 45 46 --> 46 47 --> 32, 33, 34, 42, 43, 47 48 --> 27, 28, 29, 30, 31, 44, 45, 48 49 --> 49 50 --> 27, 28, 29, 30, 31, 44, 45, 48, 50 51 --> 32, 33, 34, 42, 43, 47, 51 52 --> 27, 28, 29, 30, 31, 32, 33, 34, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52 53 --> 53 54 --> 27, 28, 29, 30, 31, 32, 33, 34, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54 MFFC
  • 19. 1,BUFX1,1856.00,a 1,INVX1,928.00,!(a) 3,AND3X1,1856.00,a*(b*(c)) 2,AND2X1,1392.00,a*(b) 4,AOI211X1,4176.00,!(a*(b+(c+(d)))+!a*(c+(d))) 3,AOI21X1,3248.00,!(a*(b+(c))+!a*(c)) 4,AND4X1,2320.00,a*(b*(c*d)) 4,AOI31X1,5104.00,!(a*(b*(c+(d))+!b*(d))+!a*(d)) 6,AOI222X1,9744.00,!(a*(b+(c*(d+(e*(f)))+!c*(e*(f))))+!a*(c*(d+(e*(f)))+ !c*(e*(f)))) 5,AOI221X1,7888.00,!(a*(b+(c*(d+(e))+!c*(e)))+!a*(c*(d+(e))+!c*(e))) 4,AOI22X1,4176.00,!(a*(b+(c*(d)))+!a*(c*(d))) 4,AOI2UM2X1,4640.00,!(a*(c*(d))+!a*((c*(d))+!b)) 3,AOI2UM1X1,3712.00,!(a*(c)+!a*((c)+!b)) 6,AOI33X1,8352.00,!(a*(b*(c+(d*(e*(f))))+!b*(c*(e*(f))))+!a*(c*(e*(f)))) 4,AO22X1,4176.00,a*(b+(c*(d)))+!a*(c*(d)) 3,AO21X1,3248.00,a*(b+(c))+!a*(c) 4,NAND4X1,3766.00,!(a*(b*(c*(d)))) 4,NAND4UMX1,2784.00,a+(b+!(c*(d))) 4,NAND4BX1,2784.00,a+!(b*(c*(d))) 3,NAND3BX1,2320.00,a+!(b*(c)) 2,NAND2BX1,1856.00,a+!(b) 4,NAND4X6,2320.00,!(a*(b*(c*(d)))) 4,NOR4X1,2320.00,!(a+(b+(c+(d)))) 3,NOR3X1,1856.00,!(a+(b+(c))) 2,NOR2X1,1392.00,!(a+(b)) 4,NOR4UMX1,3248.00,!(((c+(d))+!b)+!a) 4,NOR4BX1,2784.00,!((b+(c+(d)))+!a) 3,NOR3BX1,2320.00,!((b+(c))+!a) 2,NOR2BX1,1856.00,!((b)+!a) 4,NOR4X6,2320.00,!(a+(b+(c+(d)))) 4,OR4X1,2320.00,a+(b+(c+(d))) 3,OR3X1,1856.00,a+(b+(c)) 2,OR2X1,1392.00,a+(b) 5,OAI221X1,7888.00,!(a*(c*(e)+!c*(d*(e)))+!a*(b*(c*(e)+!c*(d*(e))))) 4,OAI22X1,4176.00,!(a*(c+(d))+!a*(b*(c+(d)))) 6,OAI33X1,7888.00,!(a*(d+(e+(f)))+!a*(b*(d+(e+(f)))+!b*(c*(d+(e+(f)))))) 5,OAI32X1,6496.00,!(a*(c+(d))+!a*(b*(c+(d))+!b*(e*(c+(d))))) 5,OAI31X1,5104.00,!(a*(c)+!a*(b*(c)+!b*(d*(e)))) 6,OAI222X1,9744.00,!(a*(c*(e+(f))+!c*(d*(e+(f))))+!a*(b*(c*(e+(f))+!c*(d *(e+(f)))))) 4,OA22X1,4176.00,a*(c+(d))+!a*(b*(c+(d))) 3,OA21X1,3248.00,a*(c)+!a*(b*(c)) 3,OAI2UM1X1,4176.00,a*(b+!(c))+!a*!(c) 2,XNOR2X1,3248.00,a*(b)+!a*!(b) 3,XOR3X1,7888.00,a*(b*(c)+!b*!(c))+!a*!(b*(c)+!b*!(c)) 2,XOR2X1,3248.00,!(a*(b)+!a*!(b)) 3,XNOR3X4,7888.00,!(a*(b*(c)+!b*!(c))+!a*!(b*(c)+!b*!(c))) 3,XNOR3X2,7888.00,!(a*(b*(c)+!b*!(c))+!a*!(b*(c)+!b*!(c))) 4,type1,3248.00,!(!(!(a*(b)*c)*(d))) 2,type2,1392.00,!(a*(b)) 3,type3,1856.00,!(a*(b*c)) 2,type4,3248.00,(a*(!b))+(b*(!a)) 2,type5,2784.00,(a*(!b)) New slideLibrary
  • 20. Sample results The area calculated is only for the gates that are mapped from the library in Mappable MFFC’s and the type of gate it is mapped to and the area for mappable part. NOTE:Please ignore the percentage it is for our reference to check for how much percentage of the file has completed processing. Number of nodes 6 Number of edges 6 Number of inputs 5 MFFC 16.67% 5 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0 MFFC 33.33% 7 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0 MFFC 50.00% 6 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0 MFFC 83.33% 8 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0 Mappable MFFC's 4 [['5'], ['7'], ['6'], ['8']] Area=5568.0 IPT_0 [label = IPT ]; IPT_1 [label = IPT ]; IPT_2 [label = IPT ]; IPT_3 [label = IPT ]; IPT_4 [label = IPT ]; NND_5 [gate = NND ]; NND_6 [gate = NND ]; NND_7 [gate = NND ]; NND_8 [gate = NND ]; NND_9 [gate = NND ]; NND_10 [gate = NND ]; IPT_0 -> NND_5 [ name = 0 ]; IPT_2 -> NND_5 [ name = 1 ]; IPT_2 -> NND_6 [ name = 2 ]; IPT_3 -> NND_6 [ name = 3 ]; IPT_1 -> NND_7 [ name = 4 ]; NND_6 -> NND_7 [ name = 5 ]; NND_6 -> NND_8 [ name = 6 ]; IPT_4 -> NND_8 [ name = 7 ]; NND_5 -> NND_9 [ name = 8 ]; NND_7 -> NND_9 [ name = 9 ]; NND_7 -> NND_10 [ name = 10 ]; NND_8 -> NND_10 [ name = 11 ]; 10 --> 10, 8 5 --> 5 6 --> 6 7 --> 7 8 --> 8 9 --> 5, 9 Dot file MFFC Final OutputC17.bench New slide
  • 21. IPT_0 [label = IPT ]; IPT_1 [label = IPT ]; IPT_2 [label = IPT ]; IPT_3 [label = IPT ]; IPT_4 [label = IPT ]; IPT_5 [label = IPT ]; NND_6 [gate = NND ]; NND_7 [gate = NND ]; NND_8 [gate = NND ]; NND_9 [gate = NND ]; NND_10 [gate = NND ]; NND_11 [gate = NND ]; IPT_0 -> NND_6 [ name = 0 ]; IPT_1 -> NND_6 [ name = 1 ]; IPT_2 -> NND_7 [ name = 2 ]; IPT_3 -> NND_7 [ name = 3 ]; IPT_4 -> NND_8 [ name = 4 ]; IPT_5 -> NND_8 [ name = 5 ]; NND_6 -> NND_9 [ name = 6 ]; NND_7 -> NND_9 [ name = 7 ]; NND_7 -> NND_10 [ name = 8 ]; NND_8 -> NND_10 [ name = 9 ]; NND_9 -> NND_11 [ name = 10 ]; NND_10 -> NND_11 [ name = 11 ]; 10 --> 10, 8 11 --> 10, 11, 6, 7, 8, 9 6 --> 6 7 --> 7 8 --> 8 9 --> 6, 9 Number of nodes 6 Number of edges 6 Number of inputs 6 MFFC 33.33% 7 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0 MFFC 50.00% 6 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0 MFFC 83.33% 8 [1, 1, 1, 0] [1, 1, 1, 0] type2 1392.0 Mappable MFFC's 3 [['7'], ['6'], ['8']] Area = 4176.0 C1 example we have taken Dot file MFFC Final Output For bigger files please check the input output folder New slide
  • 22. References [1] K. Keutzer and D. Richards. Computational complexity of logic synthesis and optimization in Proceedings of International Workshop on Logic Synthesis, 1989. [2] K. Keutzer. Dagon: Technology binding and local optimization by dag matching in Proceedings of 24th ACM/IEEE Design Automation Conference, 1987. [3] J Cong , Y Ding “On Area/Depth Trade-off in LUT-Based FPGA Technology Mapping”, Design Automation Conference (DAC), 1993 [4] Performing Technology Mapping and Optimization by DAG covering: A review of Traditional Approaches.