TESTES EM MICROPROCESSADORES COM VHDL

0058

Aluno de Iniciação Científica: Cesar Augusto Prestes (Pesquisa voluntária)

Curso: Ciência da Computação - Bacharelado (TN)

Orientador: Roberto André Hexsel

Departamento: Informática

Setor: Setor de Ciências Exatas

Área de Conhecimento: 10304029


RESUMO

Uma das maneiras de sistematizar os conhecimentos obtidos na disciplina de Arquitetura de Computadores é empregá-los diretamente no projeto de um processador. Para tanto, a partir de um modelo descrito em VHDL --linguagem para modelar e sintetizar circuitos-da implementação num "pipeline" de cinco estágios do conjunto de instruções do processador MIPS, e disponível como hardware livre (projeto MiniMIPS, disponível em www.opencores.org), fizemos testes para varificação de corretude e de desempenho no projeto original, para garantir que este é adequado à utilização em projetos mais complexos. Em continuação ao trabalho desenvolvido anteriormente em dissertação de mestrado do PPGInf e em trabalho de conclusão de curso no BCC (TG), a tarefa era desenvolver testes e ferramentas que facilitassem o desenvolvimento e a depuração do projeto. Comecei por testar todas as novas instruções que haviam sido implementadas no TG e para isso utilizei os programas de ordenação bubble sort, quick sort, merge sort. Inicialmente estes programas foram compilados sem nenhuma otimização para simplificar a análise dos resultados, e depois com otimização máxima (-O3), quando alguns deles não apresentaram os resultados esperados, devido a uma falha no circuito de previsão de desvios. O tamanho das entradas dos programas de ordenação foi aumentado para verificar se havia alguma falha no sistema de memória. Para tanto, desenvolvi também uma função (codificada em VHDL) que mostra o conteúdo da memória na tela, entretanto a memória do minimips só trabalha com leituras de 1 byte, devido a issofoi preciso fazer a leitura da memória 4x para que os resultados saíssem da forma correta. Algumas das funções da unidade de lógica e aritmética foram verificadas porque o código VHDL parecia estar incorreto. Os testes indicaram que a implementação não está errada.

Palavras-chave: VHDL, MIPS, Testes