Escolar Documentos
Profissional Documentos
Cultura Documentos
98
O objetivo dos algoritmos iterativos é otimizar um
posicionamento completo já existente, normalmente
obtido a partir do uso de algoritmos de construção.
No algoritmo de Permutação de Pares, cada
componente é selecionado e trocado com um dos
outros componentes do circuito. Se uma dada troca
resulta numa melhoria no custo do posicionamento,
esta é aceita como definitiva, senão é descartada. A
complexidade desse tipo de algoritmo é de O(n2)[2].
A Técnica dos Conjuntos Desconexos,
desenvolvida por Steinberg [2], seleciona os
componentes, dividindo-os em conjuntos que não
possuem redes em comum.. Assim, o posicionamento
de cada conjunto é otimizado individualmente, sem
considerar os demais. O número de permutações é bem
Figura 1 – modelo de FPGA no VPR menos que na permutação de pares, visto que os
conjuntos possuem um número menor de componentes
Técnicas de Posicionamento que o circuito completo. Experimentos com essa
O posicionamento de blocos lógicos consiste técnica não apresentam bons resultados, já que os
basicamente em mapear os componentes representados circuitos com componentes densamente interligados –
sob uma visão estrutural, em coordenadas de uma comum nos circuitos VLSI – é muito complexa a
superfície de layout, gerando uma matriz de pontos que separação do circuito em conjuntos desconexos.
possibilita facilmente uma modelagem de dados capaz
de fornecer o custo das conexões a partir de cada nova Simulated Annealing, diferentemente das duas
matriz apresentada. Atualmente, existem duas grandes técnicas acima, que só aceitam um dado
categorias de algoritmos posicionadores: os algoritmos posicionamento intermediário caso haja um
de construção, que a partir de um posicionamento melhoramento quanto ao custo obtido até o momento,
parcial ou incompleto fornecem na saída um limitando-os a uma otimização localizada, esta
posicionamento completo; e os algoritmos iterativos, metaheurística tenta resolver este problema através da
que transformam um posicionamento completo num utilização de um algoritmo desenvolvido para
outro posicionamento completo mais aprimorado. encontrar a configuração de mais baixa energia de um
conjunto confinado de moléculas. Simulated
Annealing baseia-se na premissa de que a otimização
Algoritmos de construção do posicionamento de um circuito com grande número
O algoritmo de crescimento de grupos é um de componentes é análogo ao processo de annealing,
algorítmo de construção que faz uso de um método no qual um metal é fundido e resfriado de forma tão
bottom-up, que vai selecionando componentes não lenta que cristalizará em um estado fortemente
posicionados e incorporando-os a um posicionamento ordenado. A energia presente no material
parcial. A seleção de componentes é feita com base correspondente ao custo (c) e a temperatura (t) são
nos componentes até então posicionados, parâmetros utilizados no processo para obtenção de
proporcionando uma otimização local. Esses posicionamentos com custos mais reduzidos.
algoritmos são de fácil implementação, possuem baixa Conforme descrito na introdução, a fim de auxiliar
complexidade computacional – O(n2), mas produzem na tarefa de projeto e construção de um novo circuito,
resultados de baixa qualidade [2]. utilizamos a ferramenta VPR que executa Simulated
O Posicionamento por particionamento tem uma Annealing na etapa de posicionamento dos blocos
abordagem top-down, que é inversa à de crescimento lógicos, com vistas a facilitar a tarefa seguinte, ou seja,
de grupos. Nesta técnica considera-se o circuito como o roteamento. Portanto, nas linhas seguintes estaremos
um todo, e então faz-se o particionamento do mesmo descrevendo a maneira como essa metaheurística foi
de forma recursiva, até que cada bloco possua um implementada no VPR.
único componente, quando então o posicionamento Conforme descrito em [6] e[7], a técnica em si,
estará completo. A grande dificuldade é que o começa com um posicionamento inicial aleatório. Uma
problema de particionamento ótimo é NP-Completo, temperatura inicial é definida. Em seguida é realizada
entretanto, foram desenvolvidas boas heurísticas para o uma alteração no posicionamento e a variação do
tratamento desse problema, como é o caso do mincut custo é calculada.
[3], de fácil implementação e de reduzido custo
computacional.
Algoritmos iterativos
99
procedimento SA(f( ),N( ), α, SAmax, T0, s) posicionamento, a mais utilizada é a redução dos fios
1 s*← s; {Melhor solução obtida até então} de interconexão baseada no cálculo da metade do
2 IterT ← 0; {Núm. de iterações na temperatura T} perímetro do menor retângulo que engloba os pinos do
3 T ← T0; {Temperatura corrente} conjunto de blocos, em virtude de poder ser
4 enquanto (T > 0) faça rapidamente calculada.
5 enquanto (IterT < SAmax) faça É importante observar que a otimização do
6 IterT ← IterT + 1; posicionamento com base na minimização dos
7 Gere um vizinho qualquer s’ ∈ N(s); comprimentos de fios necessários às conexões, não
8 ∆ = f(s0) - f(s); garante um bom posicionamento. Em virtude disso
9 se (∆ < 0) deve-se levar em conta fatores como congestionamento
10 então das trilhas e facilidade de execução do roteamento a
11 s ← s’; fim de obter um posicionamento de qualidade.
12 se (f(s’) < f(s*)) então s* ← s’;
13 senão
14 Tome x ∈ [0,1];
−∆ T
15 se (x < e ) então s ← s’;
16 fim-se;
17 fim-enquanto;
18 T ← α×T;
19 IterT ← 0;
20 fim-enquanto;
21 s ← s*;
22 Retorne s;
Fim SA;
Figura 2 – Procedimento Simulated Annealing
100
problema e por fim, hibridar o Simulated Annealing
combinando-o com uma fase de busca local com VNS.
Agradecimentos
Agradeço a Deus, pela minha existência e pela
minha vida, a minha família, por todo o amor recebido
e aos Professores que me conduziram até onde estou
hoje e em especial aos meus Orientadores Antônio
Carlos Cavalcnti e Lucídio dos Anjos Fomiga Cabral,
pela confiança e incentivo.
Referências
[l] Sait, S. M.,Youssef, H. “VLSI Physical Design
Automation – Theory and Pratice”. IEEE Press,
New York, 1995.
[2] Preas, B., Lorenzetti, M. “Physical Design
Automation of VLSI Systems”.
Benjamin/Cummings Publishing Company, 1988.
[3] Kernighan, B. W. & Lin, S. “An Efficient heuristic
produce for partitioning graphs”. Bell System
Technical journal. Vol 49, n. 2, pp. 291-307,
fevereiro 1970.
[4] Betz V., Rose J., Marquardt A., “Architecture and
CAD for Deep-Submicron FPGAs”. Kluwer
Academic Publishers, 1999.
[5] Betz V., Rose J., Marquardt A., “VPR: A new
Packing, Placement and Routing Tool for FPGA
research”. In International Workshop on Field
Programable Logic and Applications, 1997.
[6] Júnior, L. F. L. “Pré-Posicionador de célular em
circuitos VLSI Standard-cells”. Dissertação
apresentada ao curso de Mestrado em informática
da UFPB, Campina Grande - PB, 1994.
[7] Haldar M., Nayak A., Choudhary A., Banerjee P.
“Parallel Algorithms For FPGA Placement”,
Northwestern University, 2000.
101