c2: vlsi cad tools problems and algorithms
DESCRIPTION
C2: VLSI CAD Tools Problems and Algorithms. Marcelo Johann. EAMTA 2006. Outline. FIRST PART Tools and CAD The Placement Problem The Routing Problem Complexity, Graphs and Optimization SECOND PART Routing Algorithms Placement Algorithms Interconnections Methodology Aspects. Outline. - PowerPoint PPT PresentationTRANSCRIPT
C2:C2: VLSI CAD Tools VLSI CAD Tools Problems and AlgorithmsProblems and Algorithms
Marcelo JohannMarcelo Johann
EAMTA 2006EAMTA 2006
EAMTA 2006 - Marcelo Johann - C21.2
OutlineOutlineFIRST PART
• Tools and CAD• The Placement Problem• The Routing Problem•Complexity, Graphs and Optimization
SECOND PART•Routing Algorithms• Placement Algorithms• Interconnections•Methodology Aspects
EAMTA 2006 - Marcelo Johann - C21.3
OutlineOutlineTHIRD PART
• Layout Compaction• Logic Synthesis, BDDs• Technology Mapping• Simmulation vs Formal Verification• Voltage Drop by Random Walks
FOURTH PART•High-Level Synthesis•CDFG, Allocation, Scheduling, Generation
EAMTA 2006 - Marcelo Johann - C21.4
ToolsToolsA long time ago we discovered the first tools…
EAMTA 2006 - Marcelo Johann - C21.5
ToolsTools…tools started to get more sophisticated…
EAMTA 2006 - Marcelo Johann - C21.6
ToolsTools…more sophisticated and complex…
EAMTA 2006 - Marcelo Johann - C21.7
ToolsTools…and then came VLSI CAD tools!
EAMTA 2006 - Marcelo Johann - C21.8
ToolsToolsDesigners use CAD tools to make Chips
EAMTA 2006 - Marcelo Johann - C21.9
ToolsToolsAnd there is a chain of tools that make tools.
g++g++STLSTL
MathCSEE
CEEE
EAMTA 2006 - Marcelo Johann - C21.10
ToolsTools
g++g++STLSTL
MathCSEE
CEEE
EEPhyChe
ProgrammingAlgorithmsGraph TheoryOptimization
VLSI Design
Foundry
EAMTA 2006 - Marcelo Johann - C21.11
But why CAD tools???But why CAD tools???
• Complexity
> 100.000.000 xtores
• Efficiency
– Effort, + productivity
EAMTA 2006 - Marcelo Johann - C21.12
Cresc
imen
to d
o Mer
cado
Desaparecimento do M
ercado
perd
a
atraso
tempo
rece
itaTime to Market
EAMTA 2006 - Marcelo Johann - C21.13
Design FlowDesign Flow
Projetista faz descrição inicial (ex:VHDL) e usa um método, um conjunto de operações com ferramentas para obter o circuito
• Síntese de alto-nível;
• Síntese Lógica;
• Síntese Física:
Placement
Routing
EAMTA 2006 - Marcelo Johann - C21.14
The Routing ProblemThe Routing Problem
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
EAMTA 2006 - Marcelo Johann - C21.15
The Placement ProblemThe Placement Problem
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
EAMTA 2006 - Marcelo Johann - C21.16
The Placement ProblemThe Placement Problem
a b c d e f
g h i j k l
But why this way?
EAMTA 2006 - Marcelo Johann - C21.17
The Placement ProblemThe Placement Problem
a
b c
d
e f
g
h
ij
k
l
And not this way?
EAMTA 2006 - Marcelo Johann - C21.18
The Placement ProblemThe Placement ProblemBecause in some dispositions cells to connect are a lot closer
EAMTA 2006 - Marcelo Johann - C21.19
The Placement ProblemThe Placement Problem
a
b c
d
e f
g
h
ij
k
l
12 !
Ok. Lets see how many options we have…
That’s479.001.600
for a circuit with only 12 cells!!!
The Placement The Placement ProblemProblem
EAMTA 2006 - Marcelo Johann - C21.20
Algorithms and DataAlgorithms and Data
Algorithm Sequence of steps to solve a problem• Fundamental area of math and CS theory
Data Sctructures The way data is organized is as important as
an algorithm in order to efficiently solve a problem
• Fundamental area of applied CS;
EAMTA 2006 - Marcelo Johann - C21.21
Graph TheoryGraph TheoryGraph A Set and a set or Pairs
Relation Each pair elementbelongs to the other set
Function There is a single element fromone set associated to each elementof the first set
EAMTA 2006 - Marcelo Johann - C21.22
Circuito representado por um grafo G=(V,E)
v1
v2
v3 v4
v5
v6
v7
v8
v9
componentes
redes
RepresentationRepresentation
EAMTA 2006 - Marcelo Johann - C21.23
A Placement AlgorithmA Placement Algorithm
SA512.ppt
EAMTA 2006 - Marcelo Johann - C21.24
The Routing ProblemThe Routing Problem
+ =
Back again… After placement• Lets see how we can add connections to the
cells so that we build a real circuit
• Switch to Glauco’s Routing Intro - part 1
EAMTA 2006 - Marcelo Johann - C21.25
The Maze RouterThe Maze Router
EAMTA 2006 - Marcelo Johann - C21.26
The Maze RouterThe Maze Router
EAMTA 2006 - Marcelo Johann - C21.27
Maze RouterMaze Router’s expansion’s expansion g++void print(void);int bfs(int source, int target) { queue<int> q; q.push(source); while (!q.empty()) { int n = q.front(); q.pop(); if (n==target)
return 1; if (Space[n] != 'X')
{Space[n] = 'X';print();getchar();q.push(WEST(n));q.push(EAST(n));q.push(NORTH(n));q.push(SOUTH(n));}
} return 0; }
#include <iostream>#include <queue>using namespace std;#define SIDE 20#define PLACE(x,y) ((y)*SIDE+(x))#define WEST(n) (n-1)#define EAST(n) (n+1)#define NORTH(n) (n-SIDE)#define SOUTH(n) (n+SIDE)char Space[SIDE*SIDE];void init (void) { for (int i=0; i<SIDE*SIDE; ++i) Space[i] = ' '; for (int i=0; i<SIDE; ++i) { Space[PLACE(i,0)] = 'X'; Space[PLACE(i,SIDE-1)] = 'X'; Space[PLACE(0,i)] = 'X'; Space[PLACE(SIDE-1,i)] = 'X'; } for (int i=3; i<SIDE-3; ++i) Space[PLACE(i,10)] = 'X'; }
EAMTA 2006 - Marcelo Johann - C21.28
Maze RouterMaze Router’s tracking’s tracking g++typedef pair<int,int> Ref;
char Expansion[SIDE*SIDE];char Taken[SIDE*SIDE];
int bfs(int source, int target) { queue<Ref> q; q.push(Ref(source,0)); while (!q.empty()) { int n = q.front().first; int p = q.front().second; q.pop(); if (n==target)
return 1; if (Expansion[n] == 0 &&
Taken[n] == ' '){Expansion[n] = p;q.push(Ref(WEST(n),n));. . . }
} return 0; }
1-You have to store the node and where it came from in the queue using a pair<int,int>
2-Instead of Space, use Expansion[n] to store where the nodes came from and Taken to represent obstacles and routes
4-Write backtrack(t,s) from target to source following Expansion[n]
EAMTA 2006 - Marcelo Johann - C21.29
Solution SpaceSolution SpaceMethods to find a valid solutionCombinatorial Optimazation Algorithms• Key areas of Computer Science
http://www.rci.rutgers.edu/~cfs/305_html/ProblemSolving_Planning/TOH3DiskSol.html
EAMTA 2006 - Marcelo Johann - C21.30
ComplexityComplexityfunção n = 2 n = 6 n = 10 n = 20 n = 102 n = 103 n = 106
n 2 6 10 20 102 103 106
3n 6 18 30 60 3 * 102 3 * 103 3 * 106
n log10 n 0.6 4.7 10 26 2 * 102 3 * 103 6 * 106
n2 4 36 102 4 * 102 104 106 1012
n3 8 216 103 8 * 103 106 109 1018
2n 4 64 103 106 1030 10301 > 10500
n! 2 720 3 * 106 2 * 1018 9 * 10157 > 10500 > 10500
EAMTA 2006 - Marcelo Johann - C21.31
Complexity vs SpeedComplexity vs Speed
Both are important in practice
Complexity• When the problem’s instance size increases
Speed• When the problem’s instance size is
bounded
EAMTA 2006 - Marcelo Johann - C21.32
AlgorithmsAlgorithms• Exact Algorithms• Heuristic and Meta-Heuristic Algorithms• Randomized Algorithms
EAMTA 2006 - Marcelo Johann - C21.33
Graphs RepresentationGraphs RepresentationAdjacency Matrix• Tells which pair is connectedList of Edges• Enumarates each pairList of Neighbors• Is a vector of listsGenerating function• A successor operatorDedicated• Uses implicit graph structure
C2:C2: VLSI CAD Tools VLSI CAD Tools Problems and AlgorithmsProblems and Algorithms
EAMTA 2006EAMTA 2006
Marcelo JohannMarcelo Johann
www.inf.ufrgs.br/~johann
Part 1 ends