34
C2: C2: VLSI CAD Tools VLSI CAD Tools Problems and Algorithms Problems and Algorithms Marcelo Johann Marcelo Johann EAMTA 2006 EAMTA 2006

C2: VLSI CAD Tools Problems and Algorithms

  • Upload
    zuzela

  • View
    90

  • Download
    8

Embed Size (px)

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 Presentation

Citation preview

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