A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projeto de Circuitos Integrados

Apresentações semelhantes


Apresentação em tema: "Projeto de Circuitos Integrados"— Transcrição da apresentação:

1 Projeto de Circuitos Integrados
Um estudo dos algoritmos envolvidos e sua aplicabilidade em relação ao desenho de grafos, baseado no livro: “Combinatorial Algorithms for Integrated Circuit Layout” de Thomas Lengauer e Estrutura de Roteamento em Circuitos VLSI Por MARCELO DE OLIVEIRA JOHANN Vitor Pastor Baracho

2 Introdução O problema de layout de circuitos integrados é um problema de otimização com restrições. Isto é, dado um circuito (sua descrição, com os componentes e interconectividade entre eles), o problema se resume a buscar as coordenadas geométricas dos componentes em um plano (ou em uma das poucas camadas planares) que satisfaz as condições do fabricante. Tudo isto deve ser feito minimizando o critério de custo. Porém, praticamente todas as versões deste problema são NP-difíceis, e portanto um método heurístico deve ser utilizado. Inicialmente, quebramos o problema em uma série de subproblemas cuja solução heurística é mais facilmente aplicável. Desta séries de subproblemas, dois se mostram úteis ao nosso projeto: o PLACEMENT e o ROUTING (global-routing + detailed-routing).

3 Obs.: O livro cita que muitas vezes o algoritmo utilizado não é ótimo devido ao fato de utilizar o posicionamento dos componentes (placement) antes da conexão entre eles (routing) – “incompatibilidade entre as funções de custo”. Isto causa a otimização de um fator de custo que pode não ser o mais significativo, pois prioriza a economia da área de circuito em detrimento das conexões (que podem ser maiores devido à necessidade de contornar componentes previamente posicionados). Isto porém não prejudica nosso problema, visto que a tela sinótica prioriza o tamanho (limitado por uma tela) em relação as conexões (que podem até mesmo se cruzar).

4 Placement, Assignment and Floorplanning
Dependendo do estilo do layout, PLACEMENT pode ter diferentes objetivos. No nosso caso, o objetivo será de minimizar a área utilizada. A medida de área considera o espaço utilizado pelos componentes, assim como pelas conexões. E também os componentes, podem ser atômicos (como transformadores) ou blocos inteiros (como o transformador, juntamente com um bypass e outros componentes). O problema de PLACEMENT possui duas vertentes principais: um problema de empacotamento em duas dimensões e a questão da minimização do comprimento das conexões. O problema do empacotamento (“packing”) consiste em “encaixar” um número de componentes (ou blocos) de diferentes tamanhos e formatos no menor retângulo possível. A maior dificuldade está no fato de não ser possível estimar precisamente a área a ser gasta com as subseqüentes conexões.

5 A seção de “Regular Placement” leva em consideração apenas a função de custo de conexão, não considerando o empacotamento. Desta forma, ela não é útil ao nosso problema. Portanto irei descrever apenas a seção 7.2, sobre “General Placement and Floorplanning” que leva em conta os dois lados: o empacotamento e as conexões. Não é possível (hoje) tratar os dois casos simultaneamente (empacotamento e conexões), por isto o livro aborda primeiro a otimização das conexões para depois otimizar o empacotamento – o que pode ser ruim para o nosso caso. Como os componentes do nosso problema possuem tamanho definido, não será preciso realizar as estimativas de tamanho para células variáveis descritas no livro (o chamado FLOORPLANNING). Assim sendo, nosso problema se encaixa no caso de “GENERAL-CELL PLACEMENT” que é um caso particular do floorplanning, onde as células possuem tamanhos e formatos fixos.

6 General-Cells Placement
A estrutura de dados manipulada neste problema é chamada “floorplan”, e pode ser do tipo sized ou unsized. Consideraremos apenas o floorplan do tipo sized, visto que o tamanho da área do nosso posicionamento é limitada.

7 Definições: Um floorplan para um circuito G é um grafo planar direcionado F, representando a subdivisão de um retângulo (chamado base) em subretângulos, chamados salas. Os vértices de F são os cantos das salas, e as arestas são as paredes (que são sempre orientadas na vertical ou horizontal). Cada vértice "e" (edge) é marcado com uma "orientation label": dir(e) que pode ser {hor,ver}. Um floorplan que não possui nenhum vértice com grau 4 (4 arestas saindo/chegando nele) é chamado normal. Um sized floorplan é definido como o par (F,L) onde L é chamado sizing de F. “L” pode ser definido para cada sala ou para o flooplan inteiro, determinando a altura e largura destes (hL e wL) além dos layouts escolhidos para cada bloco. Obs.: o fato de um floorplan ser normal simplifica conceitos e algoritmos, e como um floorplan não-normal pode ser facilmente transformado em um normal, todos serão assumidos normais.

8 Sizing function “s”: Função que determina as possibilidade de layout para um bloco.
Função escolha (choice function) “a”: é uma função que escolhe o layout para cada sala. Um sizing “L” é válido para uma escolha “a”, se cada sala “r” acomodar a alternativa com as proporções a(r) x s(a(r)), onde “s” é a sizing function de r. O floorplan size measure é uma função Φ(w,h). Algumas versões populares dela consideram a área “wh” ou o semi-perímetro “w + h”. (isto vai depender do que considerarmos melhor no problema da cemig, mas imagino que considerar a área seja uma boa alternativa). O problema então, consiste em determinar “a” com “L” válido, de modo a obter Φ mínimo. Com estes conceitos, é possível começar a estudar os algoritmos!

9

10 Mincut A heurística Mincut consiste em:
1- Biparticionar recursivamente o circuito; 2- É necessário que cada bloco do circuito G possua um peso correspondente à sua área. Então, o floorplan inicial é uma base retangular vazia com peso total igual ao peso dos vértices de G. O processo de bipartição vai processando cada nó da árvore, e o separando em dois novos nós, considerando os pesos dos vértices de G realocados em cada sala (nó). O processo se repete até que cada sala contenha apenas 1 vértice de G (um bloco). 3- O processo de partição recursivo gera uma árvore binária. Cada nó da árvore representa um subgrafo do circuito G e uma sala retangular na área de layout;

11 O livro cita um trabalho realizado por Ulrich Lauther (General-Cell Placement baseado em Oriented MinCut), que mostrou ser mais próximo do nosso problema, por otimizar o general-cell placement utilizando otimizações baseadas no fato de os blocos possuírem tamanhos definidos. Este trabalho é focado em rotacionar e reposicionar os elementos de modo a otimizar a área ocupada, sempre visando deixar o roteamento possível. Como a posição, tamanho e ordem dos elementos do problema da CEMIG são fixos, não é interessante analisar a fundo este trabalho. O enfoque a seguir será dado na questão do roteamento entre os elementos pré-fixados.

12 B8 Algoritmos para Síntese Física Marcelo Johann EMICRO2004

13 Examinando a parte de roteamento do trabalho do Marcelo Johann...

14 Roteamento - Introdução
Estabelece as rotas de conexão entre pinos de E/S usando camadas metálicas e furos. Classificação Algoritmos de Roteamento Genéricos Roteamento de Canal Roteamento Planar Roteamento Global

15 Classificação Classificação de roteamento por objetivos:

16 Roteamento detalhado O roteamento detalhado, cuja definição é intuitiva, é a tarefa de especificar completa e detalhadamente as rotas de cada conexão, seus materiais, furos, posições e dimensões exatas. Sendo um problema muito complexo para o circuito inteiro, é normalmente tratado por partes.

17 Roteamento global O roteamento global é a etapa responsável por dividir o problema de roteamento de todo o circuito para um conjunto completamente especificado de roteamentos detalhados suficientemente pequenos para que sejam tratáveis. Esta divisão certamente tira proveito da localidade de conexões e espaços. Entretanto, em todos os casos, o roteamento global necessita planejar as conexões mais longas decompondo-as em pequenas conexões locais a cada roteamento detalhado.

18 Roteamento especializado
O roteamento funcionalmente especializado é aquele necessário para conexões com características especiais, como alimentação, relógio, barramento, ou sinais de entrada e saída. O roteamento tecnologicamente especializado ocorre em situações específicas da tecnologia de fabricação de equipamentos eletrônicos.

19 Classificação de roteamento quanto ao espaço:
espaços dedicados: canais e switch boxes; sobre as células, roteamento de área... general cell standard cell roteamento de área

20 Classificação quanto à modelagem do espaço:
roteamento sobre grade (e simbólico); roteamento topológico (semântica do problema); roteamento ortogonal ou com ângulos (45o); larguras e espaçamentos arbitrários; modelos: forma da área, número de camadas, modelo de células, posição dos terminais, terminais eqüipotenciais, restrições,...

21 Classificação quanto ao processamento:
incrementais ou seqüenciais: fazem uma conexão a cada vez. Problema: ordenação; <- ruim integrais ou paralelos: consideram todas as conexões ao mesmo tempo; refinadores ou iterativos: partem de uma solução inicial e repetem a operação de desfazer e refazer conexões até o fim;

22 O artigo apresenta diversos modelos que condicionam o roteamento, porém não é interessante abordá-los visto que eles estão intimamente ligado à características dos circuitos que não interessam ao problema da CEMIG.

23 Algoritmos de Roteamento:
genéricos: podem ser aplicados a muitos problemas diferentes de roteamento; ex: maze routers = breadth-first search restritos: exploram características ou restrições particulares de um problema para encontrar soluções com maior eficiência; ex: roteamento de canal caixas de conexão roteamento planar ...

24 Maze Router (BFS) pesquisa em largura numa grade (Lee 1961) expansão
retraço reinicialização problemas tempo memória ordenação garantia generalidade

25 Roteamento de Canal Modelo de canal: espaço entre duas bandas;
definição: terminais superiores e inferiores; dificuldade de roteamento: horizontal;

26 Roteamento de Canal Algoritmos para roteamento de canal: Left-Edge;
Dogleg; Greedy; YACR;

27 Algoritmo Left-Edge segmentos que unam todos os pinos das redes 1 5 6
5 6 2 3 4 Instância de um canal HCG 1 2 3 4 5 6 1 3 5 2 4 6

28 Algoritmo Left-Edge segmentos que unam todos os pinos das redes 1 5 6
5 6 2 3 4 Instância de um canal HCG 1 2 3 4 5 6 1 VCG 1 2 3 4 5 6 3 5 2 4 6

29 Algoritmo Left-Edge máximo clique de HCG define mínima altura 1 5 6 2
5 6 2 3 4 Instância de um canal HCG 1 2 3 4 5 6 trilha 1 trilha 2 trilha 3 trilha 4 1 VCG 1 2 3 4 5 6 3 5 2 4 6

30 Algoritmo Left-Edge máximo clique de HCG define mínima altura 1 5 6 2
5 6 2 3 4 Instância de um canal HCG 1 2 3 4 5 6 1 4 trilha 1 trilha 2 trilha 3 trilha 4 3 5 6 2 VCG 1 2 3 4 5 6

31 Algoritmo Left-Edge combinar os nodos de VCG na mesma trilha 1 5 6 2 3
5 6 2 3 4 Instância de um canal HCG 1 2 3 4 5 6 trilha 1 trilha 2 trilha 3 trilha 4 VCG VCG 1 2 3 4 5 6 VCG 1 2 3 4 5 6 1 4 3 5 6 2

32 Algoritmo Left-Edge combinar os nodos de VCG na mesma trilha 1 5 6 2 3
5 6 2 3 4 Instância de um canal HCG 1 2 3 4 5 6 trilha 1 trilha 2 trilha 3 trilha 4 VCG 5,6 1,4 2 3 1 4 3 5 6 2

33 Algoritmo Left-Edge Não resolve problema de ciclos! (dogleg)
VCG não pode ter ciclos para fazer conexões 1 5 6 2 3 4 Instância de um canal HCG 1 2 3 4 5 6 1 4 trilha 1 trilha 2 trilha 3 trilha 4 2 5 6 3 VCG 5,6 1,4 2 3 Não resolve problema de ciclos! (dogleg)

34 Algoritmo Greedy opera da esquerda para a direita estendendo trilhas
busca unir ou aproximar redes divididas a cada coluna executa 5 passos:

35 Roteamento Planar Roteamento usando apenas uma camada, não possui vias (furos). As vias: tem menor confiabilidade de fabricação; geram maior atraso por aumento de R; reduzem imunidade a ruído pela introdução de resistências em série; necessitam maior área devido a margem dos metais sobre os furos;

36 Roteamento Planar Roteamento planar de uma caixa:

37 Roteamento Planar Roteamento em rio (river routing):

38 Roteamento Planar Single Row Routing Problem (SRRP):

39 Roteamento Global Roteamento Global para General Cells:
reconhecimento e/ou definição dos espaços; ordenação dos canais; grafo modela espaços como vértices ou arestas

40 Roteamento Global Roteamento Global de Área:
divide-se a área em células globais; distribuir as conexões

41 Roteamento Global Roteamento Global para leiaute em bandas:
conexões verticais com feedthroughs; Encontrar árvores para cada rede

42 Referencias http://cadapplets.lafayette.edu/ChannelRouter.html


Carregar ppt "Projeto de Circuitos Integrados"

Apresentações semelhantes


Anúncios Google