Library of Efficient Data types and Algorithms (LEDA)

Slides:



Advertisements
Similar presentations
Robust Window-based Multi-node Technology- Independent Logic Minimization Jeff L.Cobb Kanupriya Gulati Sunil P. Khatri Texas Instruments, Inc. Dept. of.
Advertisements

Technology Mapping. Perform the final gate selection from a particular library Two basic approaches 1. ruled based technique 2. graph covering technique.
13-Optimization Assoc.Prof.Dr. Ahmet Zafer Şenalp Mechanical Engineering Department Gebze Technical.
Figure 4.1. The function f (x1, x2, x3) =  m(0, 2, 4, 5, 6).
Graphs CSC 220 Data Structure. Introduction One of the Most versatile data structures like trees. Terminology –Nodes in trees are vertices in graphs.
Timing Optimization. Optimization of Timing Three phases 1globally restructure to reduce the maximum level or longest path Ex: a ripple carry adder ==>
ECE 667 Synthesis & Verificatioin - FPGA Mapping 1 ECE 667 Synthesis and Verification of Digital Systems Technology Mapping for FPGAs D.Chen, J.Cong, DAOMap.
FPGA Technology Mapping Dr. Philip Brisk Department of Computer Science and Engineering University of California, Riverside CS 223.
ECE 667 Synthesis and Verification of Digital Systems
➢ Performing Technology Mapping and Optimization by DAG Covering: A Review of Traditional Approaches Evriklis Kounalakis.
Combining Technology Mapping and Retiming EECS 290A Sequential Logic Synthesis and Verification.
1 DAOmap: A Depth-optimal Area Optimization Mapping Algorithm for FPGA Designs Deming Chen, Jacon Cong ICCAD 2004 Presented by: Wei Chen.
4/27/2006 ELEC7250: White 1 ELEC7250 VLSI Testing: Final Project Andrew White.
Technology Mapping.
EDA (CS286.5b) Day 3 Clustering (LUT Map and Delay) N.B. no lecture Thursday.
CSC 171 – FALL 2004 COMPUTER PROGRAMMING LECTURE 0 ADMINISTRATION.
CS294-6 Reconfigurable Computing Day 15 October 13, 1998 LUT Mapping.
 Last lesson  Graphs  Today  Graphs (Implementation, Traversal)
 2000 M. CiesielskiPTL Synthesis1 Synthesis for Pass Transistor Logic Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts,
Logic Synthesis Primer
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++
The Design and Analysis of Algorithms
FPGA Technology Mapping. 2 Technology mapping:  Implements the optimized nodes of the Boolean network to the target device library.  For FPGA, library.
Trees, Tre-Like Structures, Binary Search Trees, Balanced Trees, Tree Traversals, DFS and BFS Svetlin Nakov Telerik Software Academy academy.telerik.com.
Upcrc.illinois.edu OpenMP Lab Introduction. Compiling for OpenMP Open project Properties dialog box Select OpenMP Support from C/C++ -> Language.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Lucas Bang Lecture 15: Linked data structures.
Java Programming, 3e Concepts and Techniques Chapter 3 Section 62 – Manipulating Data Using Methods – Day 1.
LEDA A Library of Efficient Data-Types and Algorithms Presentation by Amitai Armon.
Shashi Kumar 1 Logic Synthesis: Course Introduction Shashi Kumar Embedded System Group Department of Electronics and Computer Engineering Jönköping Univ.
POWER-DRIVEN MAPPING K-LUT-BASED FPGA CIRCUITS I. Bucur, N. Cupcea, C. Stefanescu, A. Surpateanu Computer Science and Engineering Department, University.
Electrical and Computer Engineering Archana Rengaraj ABC Logic Synthesis basics ECE 667 Synthesis and Verification of Digital Systems Spring 2011.
40551 Logic Synthesis Optimization Dr. Yaser M. Agami Khalifa Fall 2004 Lecture # 1.
Khoros Yongqun He Dept. of Computer Science, Virginia Tech.
05/04/06 1 Integrating Logic Synthesis, Tech mapping and Retiming Presented by Atchuthan Perinkulam Based on the above paper by A. Mishchenko et al, UCAL.
A Routing Approach to Reduce Glitches in Low Power FPGAs Quang Dinh, Deming Chen, Martin D. F. Wong Department of Electrical and Computer Engineering University.
Beginning C++ Through Game Programming, Second Edition
IR Homework #2 By J. H. Wang Mar. 31, Programming Exercise #2: Query Processing and Searching Goal: to search relevant documents for a given query.
FlowMap: An Optimal Technology Mapping Algorithm for Delay Optimisation in Lookup- Table Based FPGA Designs 04/06/ Presented by Qiwei Jin.
DAOmap: A Depth-optimal Area Optimization Mapping Algorithm for FPGA Designs Deming Chen and Jason Cong Computer Science Department University of California,
Library of Efficient Data types and Algorithms (LEDA)
Algorithms  Problem: Write pseudocode for a program that keeps asking the user to input integers until the user enters zero, and then determines and outputs.
1 A Min-Cost Flow Based Detailed Router for FPGAs Seokjin Lee *, Yongseok Cheon *, D. F. Wong + * The University of Texas at Austin + University of Illinois.
Timing-Driven Routing for FPGAs Based on Lagrangian Relaxation
Lecture 6: Mapping to Embedded Memory and PLAs September 27, 2004 ECE 697F Reconfigurable Computing Lecture 6 Mapping to Embedded Memory and PLAs.
Runtime O(VE), for +/- edges, Detects existence of neg. loops
ICS 252 Introduction to Computer Design Lecture 12 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Wenlong Yang Lingli Wang State Key Lab of ASIC and System Fudan University, Shanghai, China Alan Mishchenko Department of EECS University of California,
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
Give qualifications of instructors: DAP
Hello Everyone!!! 1. Tree And Graphs 2 Features of Trees  Tree Nodes Each node have 0 or more children A node have must one parent  Binary tree Tree.
DAOmap: A Depth-optimal Area Optimization Mapping Algorithm for FPGA Designs Deming Chen, Jason Cong , Computer Science Department , UCLA Presented.
IR Homework #2 By J. H. Wang Apr. 13, Programming Exercise #2: Query Processing and Searching Goal: to search for relevant documents Input: a query.
Certifying Algorithms [MNS11]R.M. McConnell, K. Mehlhorn, S. Näher, P. Schweitzer. Certifying algorithms. Computer Science Review, 5(2), , 2011.
Global Delay Optimization using Structural Choices Alan Mishchenko Robert Brayton UC Berkeley Stephen Jang Xilinx Inc.
The Design and Analysis of Algorithms
Algorithms Problem: Write pseudocode for a program that keeps asking the user to input integers until the user enters zero, and then determines and outputs.
Delay Optimization using SOP Balancing
Overview Part 1 – Design Procedure Beginning Hierarchical Design
ME 521 Computer Aided Design 15-Optimization
Robert Brayton Alan Mishchenko Niklas Een
Logic Synthesis Primer
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
Reconfigurable Computing
SAT-Based Area Recovery in Technology Mapping
Alan Mishchenko University of California, Berkeley
ECE 667 Synthesis and Verification of Digital Systems
Timing Optimization.
Technology Mapping I based on tree covering
Delay Optimization using SOP Balancing
Presentation transcript:

Library of Efficient Data types and Algorithms (LEDA)

Outline Introduction to LEDA -Basic data type -Graphs -GraphWin Resources of LEDA

LEDA Overview C++ class library for efficient data types and algorithms -Graph and network problems, geometric computations, combinatorial optimization Graphs Embedded Graphs Graph Algorithms Advance Data Types Basic Data Types GraphWin Windows Geometry Kernels Geometry Algorithms Numbers Ref: "LEDA A Platform for Combinatorial and Geometric Computing" CH.0 P.14 Fig.A

Basic Data Type String Tuple #include int main() { leda::string a="thomas"; leda::string b="christian"; leda::string c="thomas"; if (a==c) std::cout << "a==c\n"; //strings can be compared with == std::cout << b(0,4) << std::endl; //outputs the first five letters of b return 0; } #include using namespace leda; int main() { three_tuple triple(17,"triple",3.1413); std::cout << triple << std::endl; return 0; }

Container Array Dictionary Array leda::array A(1,100); int i; for (i=A.low(); i<=A.high(); i++) A[i]=i; std::cout << A[73] << " " << A[99] << std::endl; d_array D; //objects of type string, keys of type string D["hello"]="hallo"; D["world"]="Welt"; D["book"]="Buch"; string s; forall_defined(s,D) std::cout << s << " " << D[s] << std::endl;

GraphWin The GraphWin combines Graphs and Windows Applications -An Interactive GUI -Construct and display graphs -Visualize graphs and the results of graph algorithms

Create a GraphWin GRAPH G; GraphWin gw; //initial the graph random_simple_undirected_graph(G, 4, 3); Make_Connected(G); //set graphwin gw.set_graph(G); gw.set_edge_direction(undirected_edge); //show graphwin gw.display(window::center,window::center); gw.edit();

Graph Elements in a Graph -Node set -Edge set Node Edge

Graph Representation

Graph Data Structure Node -Node name -Neighbor -Serial number -Weight Edge -Edge name -Serial number -Weight -Source -Sink class NODE{ string name; vector neighbor; int sn; int weight; }; class EDGE { string name; int sn; int weight; NODE source; NODE sink; };

Basic Graph Operation Insert a node Delete a node Insert an edge Delete an edge

Graphs GRAPH G; node n_temp1, n_temp2, n_temp3, n_temp4, n_temp5; n_temp1 = G.new_node(“A”); n_temp2 = G.new_node(“B”); n_temp3 = G.new_node(“C”); n_temp4 = G.new_node(“D”); n_temp5 = G.new_node(“E”); G.new_edge(n_temp1, n_temp2); G.new_edge(n_temp2, n_temp3); G.new_edge(n_temp3, n_temp4); G.new_edge(n_temp3, n_temp5); A B C D E

Graph Traversal Example Depth-First Search Bread-First Search 046132504613 0124365012436

Example Code Graph construction DFS BFS

Graph Traversal Visualization BFS DFS

Min Cut Example The minimum cut has value: 3 cut:[3][1]

Example Code Graph construction Min cut algorithm

Outline Introduction to LEDA -Basic data type -Graphs -GraphWin Resources of LEDA

Resource of LEDA LEDA Office Page - LEDA User Manual - LEDA Guide - The LEDA Platform of Combinatorial and Geometric Computing -

Compilation on Workstation In NTHU-CAD -g++ -c –g -I/users/student/yourid/LEDA_lib/LEDA/incl -c -o test.o test.cpp -g++ -o test test.o -L/users/student//yourid/LEDA_lib/LEDA -lG -lL -lm; g++ parameters --I: location of the LEDA header files --L: location the LEDA library files

Appendix

Final Project (FPGA Technology Mapping) Logic description Decomposition process Technology mapping A mapped logic description ( a general graph) Minimize the number of required Boolean operations from primary input to primary output Use K-input LUTs to cover networks for timing optimal

Two-input Decomposition Decompose multi-input operation to two-input operation Minimize the number of operation from inputs to outputs

Decomposed Network (1) The level of the decomposed network is 4

Decomposed Network (2) The level of the decomposed network is 5

Technology Mapping in FPGA Logic function is composed of LUT Minimize the level and number of LUT a b c d e v FvFv 3-feasible cone C v PIs Delay of 2

Inputs & Outputs

Overall Flow Two-input Decomposition FPGA technology mapping Your algorithm

Notice Both the number of LUT and the height of the circuit are scored -the level of LUT is the main consideration -the number of LUT minimization is optional The Boolean functionality of your mapped circuit must be equivalent to that of original circuit. -SIS command (eq. verify) You can download the static library file of LEDA from course web site and use the graph algorithm provided by LEDA API in your code. -

Most Important … Please follow the format of run-time example. -map –k 4 map01.blif output.blif TA will test your program with different K-input size

Due Day 1/14 (Tue) 2014 Come to TA office (R227 EECS building) and demo your program & report