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

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

Projeto de Circuitos Integrados Um estudo dos algoritmos envolvidos e sua aplicabilidade em relação ao desenho de grafos, baseado no livro: Combinatorial.

Apresentações semelhantes


Apresentação em tema: "Projeto de Circuitos Integrados Um estudo dos algoritmos envolvidos e sua aplicabilidade em relação ao desenho de grafos, baseado no livro: Combinatorial."— 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. 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}. 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 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 (h L e w L ) além dos layouts escolhidos para cada bloco. 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 (h L e w L ) 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 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; Mincut

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 Algoritmos para Síntese Física B8 EMICRO2004 Marcelo Johann

13 Examinando a parte de roteamento do trabalho do Marcelo Johann... 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 Classificação Algoritmos de Roteamento Genéricos Algoritmos de Roteamento Genéricos Roteamento de Canal Roteamento de Canal Roteamento Planar Roteamento Planar Roteamento Global Roteamento Global

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

16 Roteamento detalhado 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 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 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; espaços dedicados: canais e switch boxes; sobre as células, roteamento de área... sobre as células, roteamento de área... general cellstandard cell roteamento de área

20 Classificação quanto à modelagem do espaço: roteamento sobre grade (e simbólico); roteamento sobre grade (e simbólico); roteamento topológico (semântica do problema); roteamento topológico (semântica do problema); roteamento ortogonal ou com ângulos (45 o ); roteamento ortogonal ou com ângulos (45 o ); larguras e espaçamentos arbitrários; 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,... 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 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; 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; 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; genéricos: podem ser aplicados a muitos problemas diferentes de roteamento; ex:maze routers = breadth-first search 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; 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 expansão retraço retraço reinicialização reinicialização problemas tempo tempo memória memória ordenação ordenação garantiageneralidade

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

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

27 Algoritmo Left-Edge segmentos que unam todos os pinos das redes segmentos que unam todos os pinos das redes Instância de um canal HCG

28 Algoritmo Left-Edge segmentos que unam todos os pinos das redes segmentos que unam todos os pinos das redes Instância de um canal HCG VCG

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

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

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

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

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

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

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

36 Roteamento planar de uma caixa: Roteamento Planar

37 Roteamento em rio (river routing): Roteamento Planar

38 Single Row Routing Problem (SRRP): Roteamento Planar

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

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

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

42 Referencias df?arnumber= df?arnumber= df?arnumber= df?arnumber= ee2443_2/ ee2443_2/


Carregar ppt "Projeto de Circuitos Integrados Um estudo dos algoritmos envolvidos e sua aplicabilidade em relação ao desenho de grafos, baseado no livro: Combinatorial."

Apresentações semelhantes


Anúncios Google