prev

next

of 34

View

31Download

7

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

Apresentação do PowerPointC2: VLSI CAD Tools

Outline

Outline

FOURTH PART

High-Level Synthesis

Tools

EAMTA 2006 - Marcelo Johann - C21.*

Tools

EAMTA 2006 - Marcelo Johann - C21.*

Tools

Tools

EAMTA 2006 - Marcelo Johann - C21.*

Tools

EAMTA 2006 - Marcelo Johann - C21.*

Tools

And there is a chain of tools that make tools.

Math

CS

EE

CE

EE

g++

STL

Tools

g++

STL

Math

CS

EE

CE

EE

EE

Phy

Che

Programming

Algorithms

But why CAD tools???

Crescimento do Mercado

Desaparecimento do Mercado

Design 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;

The Routing Problem

The Placement Problem

The Placement Problem

The Placement Problem

The Placement Problem

Because in some dispositions cells to connect are a lot closer

EAMTA 2006 - Marcelo Johann - C21.*

The Placement Problem

That’s

The Placement Problem

Algorithms and Data

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.*

Graph Theory

Relation

Function

of the first set

Representation

v1

v2

v3

v4

v5

v6

v7

v8

v9

componentes

redes

A Placement Algorithm

The 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

+

=

The Maze Router

The Maze Router

Maze Router’s expansion

{

#define WEST(n) (n-1)

Space[i] = ' ';

{

Space[PLACE(i,10)] = 'X';

Maze Router’s tracking

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]

g++

{

Solution Space

Combinatorial Optimazation Algorithms

http://www.rci.rutgers.edu/~cfs/305_html/ProblemSolving_Planning/TOH3DiskSol.html

Complexity

função

Complexity vs Speed

Complexity

Speed

EAMTA 2006 - Marcelo Johann - C21.*

Algorithms

Graphs Representation

Adjacency Matrix

List of Edges

Enumarates each pair

List of Neighbors

Generating function

C2: VLSI CAD Tools

Outline

Outline

FOURTH PART

High-Level Synthesis

Tools

EAMTA 2006 - Marcelo Johann - C21.*

Tools

EAMTA 2006 - Marcelo Johann - C21.*

Tools

Tools

EAMTA 2006 - Marcelo Johann - C21.*

Tools

EAMTA 2006 - Marcelo Johann - C21.*

Tools

And there is a chain of tools that make tools.

Math

CS

EE

CE

EE

g++

STL

Tools

g++

STL

Math

CS

EE

CE

EE

EE

Phy

Che

Programming

Algorithms

But why CAD tools???

Crescimento do Mercado

Desaparecimento do Mercado

Design 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;

The Routing Problem

The Placement Problem

The Placement Problem

The Placement Problem

The Placement Problem

Because in some dispositions cells to connect are a lot closer

EAMTA 2006 - Marcelo Johann - C21.*

The Placement Problem

That’s

The Placement Problem

Algorithms and Data

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.*

Graph Theory

Relation

Function

of the first set

Representation

v1

v2

v3

v4

v5

v6

v7

v8

v9

componentes

redes

A Placement Algorithm

The 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

+

=

The Maze Router

The Maze Router

Maze Router’s expansion

{

#define WEST(n) (n-1)

Space[i] = ' ';

{

Space[PLACE(i,10)] = 'X';

Maze Router’s tracking

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]

g++

{

Solution Space

Combinatorial Optimazation Algorithms

http://www.rci.rutgers.edu/~cfs/305_html/ProblemSolving_Planning/TOH3DiskSol.html

Complexity

função

Complexity vs Speed

Complexity

Speed

EAMTA 2006 - Marcelo Johann - C21.*

Algorithms

Graphs Representation

Adjacency Matrix

List of Edges

Enumarates each pair

List of Neighbors

Generating function

C2: VLSI CAD Tools