210 likes | 315 Views
ESMIPS. Projeto de Engenharia de Software e Sistemas. Equipe:. Anderson Gomes Bruno Marques Diego Riff Guilherme Dantas Vinícius Kursancew Rodolfo Pereira. Roteiro. VISÃO GERAL PLANO DE PROJETO CRONOGRAMA CASOS DE USO DIAGRAMA DE CLASSES DIAGRAMA DE SEQUÊNCIA ARQUITETURA TESTES.
E N D
ESMIPS Projeto de Engenharia de Software e Sistemas
Equipe: • Anderson Gomes • Bruno Marques • Diego Riff • Guilherme Dantas • Vinícius Kursancew • Rodolfo Pereira
Roteiro • VISÃO GERAL • PLANO DE PROJETO • CRONOGRAMA • CASOS DE USO • DIAGRAMA DE CLASSES • DIAGRAMA DE SEQUÊNCIA • ARQUITETURA • TESTES
Visão Geral • Utilização de técnicas de Engenharia de Software para o desenvolvimento de IP Cores. • Importância da documentação em projetos de Hardware. • Importância da Verificação Funcional
O Modelo de Referência • Utilizado para verificar se o chip desenvolvido está correto. • Geralmente desenvolvidos em linguagens de mais alto nível que as HDLs comuns. • Suas saídas são consideradas corretas pelos designers. • Por isso ele deve ser exaustivamente testado.
ESMIPS • Modelo de Referência para um processador MIPS como o desenvolvido na disciplina de Infra-Estrutura de Hardware. • Implementação em pipeline de 3 estágios
Plano de Projeto • 1ª Fase: Concepção • Período: 23/05/2007 à 04/06/2007 • Definição do que seria desenvolvido • Desenvolvimento do documento de plano de projeto • Marco Principal: Versão final do documento de plano de projeto.
Plano de Projeto • 2ª Fase: Arquitetura • Período: 06/06/2007 à 12/07/2007 • Definição da arquitetura que seria seguida. • Elaboração do documento de arquitetura, casos de testes e plano de verificação. • Marco Principal: Documento de arquitetura do modelo de software, documento de caso de testes, plano de verificação.
Plano de Projeto • 3ª Fase: Design Comportamental • Período: 16/07/2007 à 03/08/2007 • Implementação de alguns casos de uso em SystemC RTL. • Implementação dos testes. • Teste do projeto. • Marco Principal: Modelo implementado em SystemC com os casos de teste validados.
Cronograma • http://www.cin.ufpe.br/~vak/es/crono.html
Evento (clock) causa execução de uma instrução Processador executa instrução nop Processador executa instrução sw Processador executa instrução lw Processador executa instrução mfhi Processador executa instrução mflo Processador executa instrução add Processador executa instrução addi Processador executa instrução addu Processador executa instrução addiu Processador executa instrução and Processador executa instrução xori Processador executa instrução sra Processador executa instrução srav Processador executa instrução sll Processador executa instrução beq Processador executa instrução slt Processador executa instrução j Processador executa instrução jal Processador executa instrução div Casos de uso implementados
Casos de uso [CU01] Evento (clock) causa execução de uma instrução • A instrução do programa armazenada no endereço de memória apontado pelo contador de programa ( MEM[PC] ) é carregado para a CPU • Separa os argumentos do OpCode (seis bits mais significativos) • Verifica validade do opcode, se for inválido marca flag de exceção por instrução inválida <<include FS01>>.
Casos de uso • [CU36] Processador executa instrução div (tipo R) • 1. <<include CU01>> • 2. Se $rt for ‘0’ marca a flag de exceção de divisão por Zero e este caso de uso termina aqui <<include FS01>> • 3. $LO ← $rs / $rt • 4. $HI ← $rs % $rt • 5. Este caso de uso termina aqui.
Máquinas de estado MemArbiter
Testes • Teste de caixa preta (integração) • Teste de Testbench/DUV (threads) • Teste de unidade (instruções)
Testes • Teste do modelo da memória • Verifique se é possível escrever um dado na memória; • Verifique se é possível ler um dado da memória; • Escreva um padrão de dados na memória e em seguida leia e compare para verificar a corretude. Memória