Transcript
Page 1: C2:  VLSI CAD Tools  Problems and Algorithms

C2:C2: VLSI CAD Tools VLSI CAD Tools Problems and AlgorithmsProblems and Algorithms

Marcelo JohannMarcelo Johann

EAMTA 2006EAMTA 2006

Page 2: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 3: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 4: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.4

ToolsToolsA long time ago we discovered the first tools…

Page 5: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.5

ToolsTools…tools started to get more sophisticated…

Page 6: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.6

ToolsTools…more sophisticated and complex…

Page 7: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.7

ToolsTools…and then came VLSI CAD tools!

Page 8: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.8

ToolsToolsDesigners use CAD tools to make Chips

Page 9: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.9

ToolsToolsAnd there is a chain of tools that make tools.

g++g++STLSTL

MathCSEE

CEEE

Page 10: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.10

ToolsTools

g++g++STLSTL

MathCSEE

CEEE

EEPhyChe

ProgrammingAlgorithmsGraph TheoryOptimization

VLSI Design

Foundry

Page 11: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.11

But why CAD tools???But why CAD tools???

• Complexity

> 100.000.000 xtores

• Efficiency

– Effort, + productivity

Page 12: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 13: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 14: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.14

The Routing ProblemThe Routing Problem

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Page 15: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.15

The Placement ProblemThe Placement Problem

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Page 16: C2:  VLSI CAD Tools  Problems and Algorithms

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?

Page 17: C2:  VLSI CAD Tools  Problems and Algorithms

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?

Page 18: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.18

The Placement ProblemThe Placement ProblemBecause in some dispositions cells to connect are a lot closer

Page 19: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 20: C2:  VLSI CAD Tools  Problems and Algorithms

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;

Page 21: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 22: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 23: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.23

A Placement AlgorithmA Placement Algorithm

SA512.ppt

Page 24: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 25: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.25

The Maze RouterThe Maze Router

Page 26: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.26

The Maze RouterThe Maze Router

Page 27: C2:  VLSI CAD Tools  Problems and Algorithms

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'; }

Page 28: C2:  VLSI CAD Tools  Problems and Algorithms

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]

Page 29: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 30: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 31: C2:  VLSI CAD Tools  Problems and Algorithms

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

Page 32: C2:  VLSI CAD Tools  Problems and Algorithms

EAMTA 2006 - Marcelo Johann - C21.32

AlgorithmsAlgorithms• Exact Algorithms• Heuristic and Meta-Heuristic Algorithms• Randomized Algorithms

Page 33: C2:  VLSI CAD Tools  Problems and 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

Page 34: C2:  VLSI CAD Tools  Problems and Algorithms

C2:C2: VLSI CAD Tools VLSI CAD Tools Problems and AlgorithmsProblems and Algorithms

EAMTA 2006EAMTA 2006

Marcelo JohannMarcelo Johann

[email protected]

www.inf.ufrgs.br/~johann

Part 1 ends


Recommended