B8 Algoritmos para Síntese Física
Marcelo Johann
EMICRO2004
Resumo
•
•
•
•
•
•
Introdução
Algoritmos de Particionamento
Algoritmos de Posicionamento
Algoritmos de Roteamento
Problemas de Assinalamento
Outros Problemas de Leiaute
EMICRO 2004 - Marcelo Johann - B8.2
1 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.3
1 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.4
2 Particionamento
Circuito representado por um grafo G=(V,E)
• bi-partitioning, multi-way-particioning;
componentes
redes
v7
v3
v2
v4
v5
v8
v9
v1
v8
v3
v1
v4
v5
v7
v2
v6
v6
EMICRO 2004 - Marcelo Johann - B8.5
v9
2 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.6
2 Particionamento
• Algoritmo de Kernighan-Lin;
troca par com menor D(i) + D(j)
onde D(i) = inedge(i) - outedge(i)
v1
v3
v4
v5
v2
v3
v4
v6
i
1
2
3
4
5
6
inedge
21
21
20
20
21
21
EMICRO 2004 - Marcelo Johann - B8.7
outedge
1
0
12
13
13
12
1
0
D
0
2
1-1
1-3
1-3
1-1
0
2
2 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.8
3 Posicionamento
Encontrar posição das células no circuito.
Qualidade do posicionamento define a
dificuldade do roteamento
EMICRO 2004 - Marcelo Johann - B8.9
3.1 Funções Objetivo
• minimizar comprimento total de conexões;
• minimizar densidades máximas de conexões;
EMICRO 2004 - Marcelo Johann - B8.10
3.1 Funções Objetivo
Funções objetivo para posicionamento:
• minimizar número
de conexões que
cortam linhas
imaginárias;
EMICRO 2004 - Marcelo Johann - B8.11
3.1 Funções Objetivo
Funções objetivo para posicionamento:
• minimizar
atrasos em
caminhos
críticos;
EMICRO 2004 - Marcelo Johann - B8.12
3.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.13
3.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.14
3.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.15
3.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.16
3.5 Simulated Annealing
Perturbação
Custo
Rejeita / Aceita
Três funções básicas: Temperature Schedule (acima), Custo
(comprimento) e Perturbação (como modificar a solução atual).
EMICRO 2004 - Marcelo Johann - B8.17
3.6 Planta Baixa
Algoritmos para Planejamento topológico:
• blocos duros ou flexíveis;
• bipartições, estruturas topológicas;
1
B
2
3
4
7
H
A
5
C
6
F
F
G
H
I
D
E
I
A
8
B
D
C
• Geralmente só minimizam área
EMICRO 2004 - Marcelo Johann - B8.18
E
G
4 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.19
4.1 Classificação
Classificação de roteamento por objetivos:
• Roteamento detalhado
• Roteamento global
• Roteamento especializado
EMICRO 2004 - Marcelo Johann - B8.20
4.1 Classificação
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 cells
EMICRO 2004 - Marcelo Johann - B8.21
roteamento de área
4.1 Classificação
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,...
EMICRO 2004 - Marcelo Johann - B8.22
4.1 Classificação
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;
EMICRO 2004 - Marcelo Johann - B8.23
4.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ão
roteamento planar ...
EMICRO 2004 - Marcelo Johann - B8.24
4.2 Maze Router (BFS)
pesquisa em largura numa grade (Lee 1961)
• expansão
• retraço
• reinicialização
problemas
• tempo
• memória
• ordenação
garantia
generalidade
EMICRO 2004 - Marcelo Johann - B8.25
4.3 Roteamento de Canal
• Modelo de canal: espaço entre duas bandas;
• definição: terminais superiores e inferiores;
• dificuldade de roteamento: horizontal;
EMICRO 2004 - Marcelo Johann - B8.26
4.3 Roteamento de Canal
Algoritmos para roteamento de canal:
• Left-Edge;
• Dogleg;
• Y-K;
• Greedy;
• YACR2;
• Hierárquico;
Roteamento de switch boxes
EMICRO 2004 - Marcelo Johann - B8.27
4.3 Algoritmo Left-Edge
• segmentos que unam todos os pinos das redes
Instância de um canal
1 5
0 0
2
1
0
0
3
1
4 6
5
6
2
4
3
0
1
0
5
3
4
6
0
2
HCG
3
1
3
5
2
4
6
EMICRO 2004 - Marcelo Johann - B8.28
3
4.3 Algoritmo Left-Edge
• segmentos que unam todos os pinos das redes
Instância de um canal
1 5
0 0
2
1
0
0
3
HCG
1
4 6
5
6
2
4
3
0
1
0
5
3
4
6
1
0
2
3
3
1
VCG
5
3
5
6
2
2
4
6
EMICRO 2004 - Marcelo Johann - B8.29
4
3
4.3 Algoritmo Left-Edge
• máximo clique de HCG define mínima altura
Instância de um canal
1 5
trilha
trilha
trilha
trilha
0 0
2
1
0
0
3
1
4 6
1
2
3
4
HCG
5
6
2
4
3
0
1
0
5
3
4
6
1
0
2
3
3
1
VCG
5
3
5
6
2
2
4
Obrigado!!!
6
EMICRO 2004 - Marcelo Johann - B8.30
4
3
4.3 Algoritmo Left-Edge
• máximo clique de HCG define mínima altura
Instância de um canal
1 5
trilha
trilha
trilha
trilha
0 0
2
1
1
2 3
3
4
1
0
0
3
1
4 6
HCG
5
4
6
5
2
6
2
4
3
0
1
0
5
3
4
6
0
2
3
3
1
VCG
5
6
2
4
3
EMICRO 2004 - Marcelo Johann - B8.31
4.3 Algoritmo Left-Edge
• combinar os nodos de VCG na mesma trilha
Instância de um canal
1 5
trilha
trilha
trilha
trilha
0 0
2
1
0
0
3
1
4 6
1
2
3
4
HCG
5
6
2
4
3
0
1
0
5
3
4
6
0
2
3
3
1
VCG
5
6
1
2
4
3
5
6
2
4
3
EMICRO 2004 - Marcelo Johann - B8.32
4.3 Algoritmo Left-Edge
• combinar os nodos de VCG na mesma trilha
Instância de um canal
1 5
trilha
trilha
trilha
trilha
0 0
2
1
0
0
3
1
4 6
1
2
3
4
HCG
5
6
2
4
3
0
1
0
5
3
4
6
0
2
3
3
VCG
1
1,4
5,6
2
4
3
5
6
2
3
EMICRO 2004 - Marcelo Johann - B8.33
4.3 Algoritmo Left-Edge
• VCG não pode ter ciclos para fazer conexões
Instância de um canal
1 5
trilha
trilha
trilha
trilha
0 0
2
1
1
0
0
3
HCG
1
4 6
5
4
1
2
3
4 3
2
6
5
2
6
4
3
0
1
0
5
3
4
6
0
2
3
3
VCG
1,4
5,6
Obrigado!!!
Mas e se tiver ciclos???
2
3
EMICRO 2004 - Marcelo Johann - B8.34
4.3 Algoritmo Greedy
• opera da esquerda para a direita estendendo trilhas
• busca unir ou aproximar redes divididas
• a cada coluna executa 5 passos:
1)
2)
Insere novo pino
em trilha livre
3)
Une redes
divididas
4)
Aproxima trechos
de redes divididas
5)
Aproxima redes de
próximos pinos
EMICRO 2004 - Marcelo Johann - B8.35
Insere nova
trilha
4.4 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;
EMICRO 2004 - Marcelo Johann - B8.36
4.4 Roteamento Planar
Roteamento planar de uma caixa:
EMICRO 2004 - Marcelo Johann - B8.37
4.4 Roteamento Planar
Roteamento em rio (river routing):
EMICRO 2004 - Marcelo Johann - B8.38
4.4 Roteamento Planar
Single Row Routing Problem (SRRP):
EMICRO 2004 - Marcelo Johann - B8.39
4.5 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
EMICRO 2004 - Marcelo Johann - B8.40
4.5 Roteamento Global
• Roteamento Global de Área:
– divide-se a área em células globais;
– distribuir as conexões
EMICRO 2004 - Marcelo Johann - B8.41
4.5 Roteamento Global
• Roteamento Global para leiaute em bandas:
– conexões verticais com feedthroughs;
• Encontrar árvores para cada rede
EMICRO 2004 - Marcelo Johann - B8.42
5 Assinalamento
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;
EMICRO 2004 - Marcelo Johann - B8.43
6 Outros Problemas
•
•
•
•
•
•
•
•
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;
EMICRO 2004 - Marcelo Johann - B8.44
B8 Algoritmos para Síntese Física
EMICRO2004
Marcelo Johann
johann@inf.ufrgs.br
www.inf.ufrgs.br/~johann
Download

EMICRO 2004 - Marcelo Johann