Upload
internet
View
104
Download
1
Embed Size (px)
Citation preview
Algoritmos para Síntese FísicaAlgoritmos para Síntese FísicaB8B8
EMICRO2004
Marcelo JohannMarcelo Johann
EMICRO 2004 - Marcelo Johann - B8.2
ResumoResumo
• Introdução
• Algoritmos de Particionamento
• Algoritmos de Posicionamento
• Algoritmos de Roteamento
• Problemas de Assinalamento
• Outros Problemas de Leiaute
EMICRO 2004 - Marcelo Johann - B8.3
1 Introdução1 Introdução
Particionamento é a tarefa de dividir um circuito em duas ou mais partes:
• para dividir um problema em problemas de menor complexidade;
• para acomodar o circuito em diferentes dispositivos;
• para se obter um bom posicionamento;
EMICRO 2004 - Marcelo Johann - B8.4
1 Introdução1 Introdução
Posicionamento é a tarefa de encontrar uma posição para cada bloco ou célula que compõe o circuito sobre a área de silício:
• para planejamento topológico;
• ou em bandas;– relativo;– absoluto;
EMICRO 2004 - Marcelo Johann - B8.5
2 Particionamento2 Particionamento
Circuito representado por um grafo G=(V,E)
• bi-partitioning, multi-way-particioning;
v1
v2
v3
v4
v5
v6
v7
v8
v9
v1
v2
v3 v4
v5
v6
v7
v8
v9
componentes
redes
EMICRO 2004 - Marcelo Johann - B8.6
2 Particionamento2 Particionamento
• Algoritmos podem ser:– construtivos ou iterativos;– determinísticos ou probabilísticos;
• Critérios de qualidade:– corte mínimo;– área de cada partição;– número de partições; – número de terminais;– atraso em redes críticas;
EMICRO 2004 - Marcelo Johann - B8.7
2 Particionamento2 Particionamento
• Algoritmo de Kernighan-Lin;troca par com menor D(i) + D(j)onde D(i) = inedge(i) - outedge(i)
v1
v2
v3
v4
v5
v3
v4v3
v4 v6
i inedge outedge D
1 1 1 02 1 2 -13 0 3 -34 0 3 -35 1 2 -16 1 1 0
i inedge outedge D
1 2 0 22 2 1 13 2 1 14 2 1 15 2 1 16 2 0 2
EMICRO 2004 - Marcelo Johann - B8.8
2 Particionamento2 Particionamento
Algoritmos por migração de grupos:• Algoritmo de Kernighan-Lin;
troca pares de nodos• Algoritmo de Fiduccia-Mattheyses;
troca apenas um nodo a cada vez• Algoritmo de Goldberg e Burstein;
contração de vértices• Replicação de componentes;
Outros Algoritmos: aglomerados, simulação, multi-nível, …
EMICRO 2004 - Marcelo Johann - B8.9
3 Posicionamento3 PosicionamentoEncontrar posição das células no circuito.
Qualidade do posicionamento define a dificuldade do roteamento
EMICRO 2004 - Marcelo Johann - B8.10
• minimizar comprimento total de conexões;• minimizar densidades máximas de conexões;
3.1 Funções Objetivo3.1 Funções Objetivo
EMICRO 2004 - Marcelo Johann - B8.11
Funções objetivo para posicionamento:
• minimizar número de conexões que cortam linhas imaginárias;
3.1 Funções Objetivo3.1 Funções Objetivo
EMICRO 2004 - Marcelo Johann - B8.12
• minimizar atrasos em caminhos críticos;
Funções objetivo para posicionamento:
3.1 Funções Objetivo3.1 Funções Objetivo
EMICRO 2004 - Marcelo Johann - B8.13
3.2 Estimativas3.2 Estimativas
Estimativa do tamanho das conexões:
• semi-perímetro do retângulo envolvente;• grafo completo;
• cadeia mínima;
• fonte para carga;
• árvore de Steiner;
• árvore mínima;
EMICRO 2004 - Marcelo Johann - B8.14
3.2 Abordagens3.2 Abordagens
Abstração da área
• Posicionamento com sobreposições
Etapas
• Posicionamento global
• Posicionamento detalhado
• Legalização– Respeitar slots, grade, espelhamento
EMICRO 2004 - Marcelo Johann - B8.15
3.3 Por particionamento3.3 Por particionamento
Posicionamento baseado em partições sucessivas (recursive bisection):
• Seqüências de cortes para posicionamento por partições:
EMICRO 2004 - Marcelo Johann - B8.16
3.4 Outros Algoritmos3.4 Outros Algoritmos... para posicionamento em bandas:• Formação de aglomerados, dirigidos por força• Algoritmos de otimização combinatorial:
– Simulação de resfriamento, simulação evolutiva, programação linear, assinalamento quadrático, redes resistivas, redes neurais, etc...
• Posicionamento Analítico – programação inteira para distribuir células
• Algoritmos mais usados:– simulação de resfriamento, recursive bisection;– particionamento multi-nível, analíticos;
EMICRO 2004 - Marcelo Johann - B8.17
3.5 3.5 Simulated AnnealingSimulated Annealing
Três funções básicas: Temperature Schedule (acima), Custo (comprimento) e Perturbação (como modificar a solução atual).
Perturbação
Custo
Rejeita / Aceita
EMICRO 2004 - Marcelo Johann - B8.18
3.6 Planta Baixa3.6 Planta Baixa
Algoritmos para Planejamento topológico:• blocos duros ou flexíveis;• bipartições, estruturas topológicas;
• Geralmente só minimizam área
1234756FGHIDEA8BCFGADEBCHI
EMICRO 2004 - Marcelo Johann - B8.19
4 Roteamento4 Roteamento
Estabelece as rotas de conexão entre pinos de E/S usando camadas metálicas e furos.
• Classificação
• Algorítmos de Roteamento Genéricos
• Roteamento de Canal
• Roteamento Planar
• Roteamento Global
EMICRO 2004 - Marcelo Johann - B8.20
Classificação de roteamento por objetivos:
• Roteamento detalhado
• Roteamento global
• Roteamento especializado
4.1 Classificação4.1 Classificação
EMICRO 2004 - Marcelo Johann - B8.21
Classificação de roteamento quanto ao espaço:
• espaços dedicados: canais e switch boxes;
• sobre as células, roteamento de área,...
4.1 Classificação4.1 Classificação
general cell standard cells roteamento de área
EMICRO 2004 - Marcelo Johann - B8.22
Classificação quanto à modelagem do espaço:
• roteamento sobre grade (e simbólico);
• roteamento topológico;
• 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,...
4.1 Classificação4.1 Classificação
EMICRO 2004 - Marcelo Johann - B8.23
Classificação quanto ao processamento:
• incrementais ou seqüenciais: fazem uma conexão a cada vez. Problema: ordenação;
• 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;
4.1 Classificação4.1 Classificação
EMICRO 2004 - Marcelo Johann - B8.24
4.1 Classificação4.1 Classificação
• 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ãoroteamento planar ...
EMICRO 2004 - Marcelo Johann - B8.25
4.2 4.2 Maze Router (BFS)Maze Router (BFS)
pesquisa em largura numa grade (Lee 1961)• expansão• retraço• reinicialização
problemas• tempo• memória• ordenaçãogarantiageneralidade
EMICRO 2004 - Marcelo Johann - B8.26
• Modelo de canal: espaço entre duas bandas;
• definição: terminais superiores e inferiores;
• dificuldade de roteamento: horizontal;
4.3 Roteamento de Canal4.3 Roteamento de Canal
EMICRO 2004 - Marcelo Johann - B8.27
Algoritmos para roteamento de canal:
• Left-Edge;
• Dogleg;
• Y-K;
• Greedy;
• YACR2;
• Hierárquico;
Roteamento de switch boxes
4.3 Roteamento de Canal4.3 Roteamento de Canal
EMICRO 2004 - Marcelo Johann - B8.28
4.3 Algoritmo 4.3 Algoritmo Left-EdgeLeft-Edge
• segmentos que unam todos os pinos das redes
1 05 0 0 6
0 6 0
2
0 2
1 0
1 53
3
3 3
4
4
Instância de um canal HCG1
2
34
5
6
1
3
5
2
4
6
EMICRO 2004 - Marcelo Johann - B8.29
4.3 Algoritmo 4.3 Algoritmo Left-EdgeLeft-Edge
• segmentos que unam todos os pinos das redes
1 05 0 0 6
0 6 0
2
0 2
1 0
1 53
3
3 3
4
4
Instância de um canal HCG1
2
34
5
6
VCG 1
2
34
5
6
1
3
5
2
4
6
EMICRO 2004 - Marcelo Johann - B8.30
4.3 Algoritmo 4.3 Algoritmo Left-EdgeLeft-Edge
• máximo clique de HCG define mínima altura
1 05 0 0 6
0 6 0
2
0 2
1 0
1 53
3
3 3
4
4
Instância de um canal HCG1
2
34
5
6
VCG 1
2
34
5
6
1
3
5
2
4
6
trilha 1trilha 2trilha 3trilha 4
Obrigado!!!
EMICRO 2004 - Marcelo Johann - B8.31
4.3 Algoritmo 4.3 Algoritmo Left-EdgeLeft-Edge
• máximo clique de HCG define mínima altura
1 05 0 0 6
0 6 0
2
0 2
1 0
1 53
3
3 3
4
4
Instância de um canal
VCG 1
2
34
5
6
trilha 1trilha 2trilha 3trilha 4
3
2
1 4
5 6
HCG1
2
34
5
6
EMICRO 2004 - Marcelo Johann - B8.32
VCG 1
2
34
5
6
4.3 Algoritmo 4.3 Algoritmo Left-EdgeLeft-Edge
• combinar os nodos de VCG na mesma trilha
1 05 0 0 6
0 6 0
2
0 2
1 0
1 53
3
3 3
4
4
Instância de um canal
VCG
HCG1
2
34
5
6trilha 1trilha 2trilha 3trilha 4
VCG 1
2
34
5
6
3
2
1 4
5 6
EMICRO 2004 - Marcelo Johann - B8.33
4.3 Algoritmo 4.3 Algoritmo Left-EdgeLeft-Edge
• combinar os nodos de VCG na mesma trilha
1 05 0 0 6
0 6 0
2
0 2
1 0
1 53
3
3 3
4
4
Instância de um canal
VCG5,6
1,4
2
3
HCG1
2
34
5
6trilha 1trilha 2trilha 3trilha 4
3
2
1 4
5 6
EMICRO 2004 - Marcelo Johann - B8.34
4.3 Algoritmo 4.3 Algoritmo Left-EdgeLeft-Edge
• VCG não pode ter ciclos para fazer conexões
1 05 0 0 6
0 6 0
2
0 2
1 0
1 53
3
3 3
4
4
Instância de um canal HCG1
2
34
5
6
VCG5,6
1,4
2
3
Mas e se tiver ciclos???
trilha 1trilha 2trilha 3trilha 4
Obrigado!!!
1 42
5 63
EMICRO 2004 - Marcelo Johann - B8.35
4.3 Algoritmo 4.3 Algoritmo GreedyGreedy
Insere novo pinoem trilha livreUne redesdivididasAproxima trechosde redes divididasAproxima redes depróximos pinos Insere novatrilha5)1)2)3)4)
• opera da esquerda para a direita estendendo trilhas• busca unir ou aproximar redes divididas• a cada coluna executa 5 passos:
EMICRO 2004 - Marcelo Johann - B8.36
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;
4.4 Roteamento Planar4.4 Roteamento Planar
EMICRO 2004 - Marcelo Johann - B8.37
Roteamento planar de uma caixa:
4.4 Roteamento Planar4.4 Roteamento Planar
EMICRO 2004 - Marcelo Johann - B8.38
Roteamento em rio (river routing):
4.4 Roteamento Planar4.4 Roteamento Planar
EMICRO 2004 - Marcelo Johann - B8.39
Single Row Routing Problem (SRRP):
4.4 Roteamento Planar4.4 Roteamento Planar
EMICRO 2004 - Marcelo Johann - B8.40
• 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
4.5 Roteamento Global4.5 Roteamento Global
EMICRO 2004 - Marcelo Johann - B8.41
• Roteamento Global de Área:– divide-se a área em células globais;– distribuir as conexões
4.5 Roteamento Global4.5 Roteamento Global
EMICRO 2004 - Marcelo Johann - B8.42
• Roteamento Global para leiaute em bandas:– conexões verticais com feedthroughs;
• Encontrar árvores para cada rede
4.5 Roteamento Global4.5 Roteamento Global
EMICRO 2004 - Marcelo Johann - B8.43
Encontrar um mapeamento bi-unívoco entre dois conjuntos. Pode ser linear, quadrático, etc...
• Assinalamento de portas;
• Assinalamento de pinos;
• Assinalamento de terminais às bordas;
• Assinalamento de pontos de cruzamento;
5 Assinalamento5 Assinalamento
EMICRO 2004 - Marcelo Johann - B8.44
• Minimização de vias, de doglegs;
• compactação (de canal, geral, 1D, 2D);
• ordenação de transistores;
• alinhamento de terminais ou feedthroughs;
• formação de redes com reforçadores;
• verificação de regras de projeto (DRC);
• extração, cálculo de criticalidade do leiaute;
• processamento para exibição, fabricação;
6 Outros Problemas6 Outros Problemas
Algoritmos para Síntese FísicaAlgoritmos para Síntese FísicaB8B8EMICRO2004
Marcelo JohannMarcelo Johann
www.inf.ufrgs.br/~johann
That’s all!