Visualizador De Roteamento Simbólico 3d

Érico De Morais Nunes, Reginaldo Da Nóbrega Tavares

Resumo


Introdução: O projeto de um circuito integrado digital é uma tarefa muito complexa. Diversas ferramentas são utilizadas para auxiliar ou automatizar o processo. Essas ferramentas, denominadas EDA (Electronic Design Automation), estão presentes em diversas etapas do projeto do circuito. Uma das etapas do projeto de um circuito é a síntese física. Etapas importantes que fazem parte da síntese física são o posicionamento e o roteamento. O posicionamento é responsável por determinar a posição das células lógicas. O roteamento é responsável por encontrar as conexões entre essas células lógicas de forma que o circuito funcione. Um roteamento eficiente é aquele capaz de conectar todas as células levando em conta parâmetros como: baixo congestionamento de fios, minimização da área, minimização do comprimento médio ou total de fios. É importante notar que o posicionamento afeta diretamente o roteamento pois o trajeto entre as células lógicas depende de suas posições. O trabalho consiste de duas ferramentas EDA, um roteador simbólico e um visualizador de roteamento 3D. O roteador recebe uma descrição de pontos através de um arquivo texto e retorna uma descrição dos fios necessários após realizar o roteamento daqueles pontos. Em seguida, o visualizador recebe o resultado do roteamento e apresenta visualmente em 3D a solução encontrada. O visualizador ainda possibilita ao usuário algumas funcionalidades como destacar caminhos e destacar pontos onde existem muitas conexões. Material e Métodos: O visualizador do roteamento 3D foi desenvolvido utilizando a API OpenGL para gráficos 3D acompanhada da GLUT (OpenGL Utility Toolkit) para interface com o sistema e com o usuário. Estas APIs foram escolhidas pelo fato de oferecerem bom desempenho e serem independentes de plataforma. O visualizador foi escrito em linguagem C. O roteador simbólico foi escrito em C++, utilizando uma metodologia orientada a objetos. O roteador também é independente de plataforma, visto que foram utilizados apenas componentes do C++ padrão. Resultados e Discussão: O algoritmo implementado pelo roteador é chamado maze router. O maze router recebe um ponto de origem e testa os possíveis caminhos até o destino através de uma busca em largura em um grafo. O maze router encontra sempre o menor caminho possível entre os dois pontos, e parte para a próxima conexão a realizar. O arquivo de entrada para o roteador é composto de uma lista de pontos seguido por uma lista de conexões. A lista de pontos informa as coordenadas em relação à origem de cada ponto que pertence ao circuito. Em seguida a lista de conexões lista os pares de pontos a serem conectados. O arquivo de saída gerado pelo roteador é uma lista dos segmentos de reta que formam a conexão. Esses segmentos são representados por uma coordenada inicial e a direção para onde se deslocam. Este arquivo de saída serve como entrada ao visualizador 3D. Conclusões: O roteador e o visualizador são ferramentas de software capazes desenvolvidas para auxiliar o projeto de circuitos integrados digitais. As ferramentas estão disponíveis e entregam o resultado esperado. O visualizador pode ser utilizado com outros roteadores desde que o roteador seja capaz de exportar o formato entendido pelo roteador, ou o roteador passe a aceitar novos formatos. As funcionalidades do visualizador podem ser utilizadas para compara o resultado de diferentes processos de síntese física através das informações que apresenta, como tamanho necessário e número de conexões. Orgão de Fomento:

Palavras-chave


Roteamento, Ferramentas Cad

Apontamentos

  • Não há apontamentos.