C2: VLSI CAD Tools Problems and Algorithms

Preview:

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

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

johann@inf.ufrgs.br

www.inf.ufrgs.br/~johann

Part 1 ends

Recommended