PROJETO DE CIRCUITOS INTEGRADOS VLSI



Documentos relacionados
Verificação funcional

Verificação funcional

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

GARANTIA DA QUALIDADE DE SOFTWARE

Introdução ao Desenvolvimento de Circuitos Digitais Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Projeto de Sistemas I

Desenvolvimento de Modelo ESL para Controlador de Acesso Direto à Memória (DMA)

Quadro de consulta (solicitação do mestre)

Engenharia de Software II

Engenharia de Software III

Professor: Curso: Disciplina:

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Introdução à Arquitetura de Computadores IFES Campus Serra

Projeto de controle e Automação de Antena

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Setores Trilhas. Espaço entre setores Espaço entre trilhas

3 Qualidade de Software

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Teste de Software. Profa. Cátia dos Reis Machado

Engenharia de Software

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Porque estudar Gestão de Projetos?

ENGENHARIA DE SOFTWARE I

Verificação e Validação

Resolução da lista de exercícios de casos de uso

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Avaliação de Interfaces Humano- Computador

Tabela de roteamento

Tecnologia de Redes de Computadores - aula 5

Introdução a Informática. Prof.: Roberto Franciscatto

Teste de Software. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Princípios do teste de software

Elementos para construção de um briefing

Projeto de Arquitetura

Verificação funcional

Técnicas de Manutenção de Computadores

Introdução. Software (Parte III)

A senha 001 de fábrica é

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

Prototipação de Sistemas Digitais. Metodologia de Projetos Cristiano Araújo

Programação para Dispositivos Móveis

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

FUNDAMENTOS DA ADMINISTRAÇÃO. Prof.: Daniela Pedroso Campos

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Relatorio do trabalho pratico 2

PROJETO DE CIRCUITOS INTEGRADOS VLSI

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Comunicando através da rede

SISTEMAS DISTRIBUÍDOS

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

Engenharia de software para desenvolvimento com LabVIEW: Validação

Aula Nº 9 Gerenciamento de Recursos Humanos em projetos

Air-Fi - sistema sem fio Sinta-se confortável com a confiança e o desempenho líderes do setor.

Automação Industrial Parte 2

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

Abordagem de Processo: conceitos e diretrizes para sua implementação

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Modelo Cascata ou Clássico

Hardware de Computadores

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

Fundamentos em Teste de Software. Vinicius V. Pessoni

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Sistemas de Gerenciamento de Banco de Dados

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Guia de utilização da notação BPMN

Conceitos Importantes:

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Como Implementar Gerenciamento de Projetos

1.1. Organização de um Sistema Computacional

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

MANUAL DE USO DO PORTAL DA SECRETARIA MUNICIPAL DE EDUCAÇÃO

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Importância da normalização para as Micro e Pequenas Empresas 1. Normas só são importantes para as grandes empresas...

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

Java para Desenvolvimento Web

Operador de Computador. Informática Básica


Gerenciamento de Redes de Computadores. Resolução de Problemas

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Estruturas Organizacionais

MANUAL DE INSTRUÇÕES USUÁRIO

Processadores. Prof. Alexandre Beletti Ferreira

Qualidade de Software. Profa. Cátia dos Reis Machado

Sistemas Computacionais II Professor Frederico Sauer

Transcrição:

Universidade Federal do Piauí Centro de Tecnologia Curso de Engenharia Elétrica PROJETO DE CIRCUITOS INTEGRADOS VLSI Verificação de Sistemas VLSI Prof. Marcos Zurita zurita@ufpi.edu.br www.ufpi.br/zurita Teresina - 2013

IP Core IP core: Lógica ou os dados necessários para construir um dado projeto de hardware. É a implementação de um dado projeto de hardware em uma linguagem especifica para esse objetivo. Idealmente ele é reusável e pode ser adaptado a vários tipos de dispositivos de hardware. 2

Por que a verificação é importante? 3

Caso famoso: NASA Mars Climate Orbiter de 1999 Erro de verificação de sistema fez com que o Orbiter voasse muito próximo à atmosfera marciana e queimasse. O problema era uma mistura de unidades métricas e inglesas que causou um erro no cálculo da trajetória. 4

Caso famoso: INTEL Processador Pentium de 1994 Problema descoberto no Pentium em 1994 por um professor de matemática durante uma pesquisa matemática. A FPU produzia resultados de divisão errôneos no oitavo digito significativo para certos argumentos. Embora no máximo 1 usuário em 1 milhão tenha afetado, a confiança na INTEL caiu. A falha abriu o caminho para crescimento maior da AMD. Prejuízo de 500 MUS$ (?) 5

Fluxo Típico de Projeto VLSI Silício INÍCIO Documentação Especificação em Alto Nível Verificação HDL RTL Verificação Prototipagem FPGA Inserção Scan Chain Verificação ATPG Leiaute Verificação Síntese Lógica Verificação Especificações de Encapsulamento SILÍCIO 6

Verificação de IP cores Como alcançar confiança em um projeto? Processo de verificação bem executado e documentado. IP cores precisam ser verificados mais amplamente, Todas propriedades e utilizações possíveis devem ser verificadas, não somente um ambiente específico. 7

Custo versus Tempo Objetivo #1 da indústria: Entregar o produto e ganhar dinheiro. Em contrapartida, o custo e o tempo para corrigir um defeito crescem tanto mais quanto mais tarde ele é descoberto no ciclo de vida do produto: $ na especificação $$ na simulação $$$ na prototipagem $$$$ na fabricação em volume $$$$$ no uso pelo cliente Custo Tempo 8

Verificação 9

Verificação Verificação: Fornecimento de evidência objetiva de que um dado item satisfaz requisitos especificados. (VIM). Existem basicamente 3 categorias de verificação: Dinâmica ou Funcional. Estática ou Formal. Híbrida. 10

Verificação Funcional Verificação funcional é um processo usado para demonstrar que o objetivo do projeto é preservado em sua implementação (Bergeron, 2003). 11

Verificação Funcional Teste! Verificação Funcional: confrontar o modelo a ser verificado com outro modelo padrão, comparando a funcionalidade por simulação. X Teste: verificar se um componente está sem erro de fabricação. 12

Verificação Funcional Mais da metade do esforço de projeto está na verificação. Um testbench muitas vezes contém mais linhas de código do que a própria descrição do projeto. A equipe de engenheiros de verificação é maior do que a equipe de projetistas. Verificação é difícil. 13

Custo da Verificação Um mal necessário... sempre leva tempo demais e custa caro demais. mas indispensável. Afeta diretamente os três requisitos: cronograma custo qualidade 14

Isso funciona mesmo? A verificação funcional deve responder a esta pergunta. isso é uma descrição RTL de um projeto. funciona refere-se a simulação. O funcionário de uma empresa deve poder dormir tranquilo se a verificação responde sim. 15

Como Aprender a Fazer? Muitos livros falam sobre implementação. Poucos falam sobre verificação: Janick Bergeron, Writing Testbenches: Functional Verification of HDL Models, 2 nd Edition, Kluwer, 2003 Piziali, Functional verification Coverage Measurement and Analysis, Kluwer 2004. Chris Spear, SystemVerilog for Verification, 2 nd Edition, Springer, 2008. 16

Verificação Estática Analisadores de código HDL, Lint ou linting tools. São capazes de detectar alguns problemas comuns: case incompleto; atribuições em if...else inconsistente; falta de sinais na lista de sensibilidade; Mistura entre resets síncronos e assíncronos; falta de sinais inicializados pelo reset. 17

Fluxo de Projeto Simplificado Especificação Descrição comportamental Descrição RTL Descrição estrutural Layout Verificação Função Função & Timing Função & Timing Função & Timing consumo, área, etc. 18

Nível Hierárquico Adequado A verificação funcional pode ser realizada a vários níveis: componente/unidade/sub-unidade,... ASIC/FPGA/IP Sistema/SOC placa 19

Nível Hierárquico Adequado Como decidir qual nível? Nível mais baixo fornece mais observabilidade mas exige mais esforço, A nível mais alto os elementos menores são verificados implicitamente com menos esforço desde que os cenários e vetores de entrada sejam completos. Decisão depende do projeto. Faz parte do plano de verificação para cada elemento existe uma seção nele. 20

Verificação em vários níveis Na verificação no nível de sistema é suficiente verificar a interação dos componentes se uma verificação correta a nível de componentes foi feita. Verificação entre dois níveis adjacentes, do topo até a base. 21

Verificação Funcional Para realizar a verificação funcional necessita-se de: Um projeto a ser verificado denominado DUV (Design Under Verification). Um Modelo de Referência que implementa as funcionalidades do DUV de forma ideal. Um ambiente de verificação (testbench). Responsável por gerar estímulos para o DUV e comparar as respostas do DUV com as respostas do Modelo de Referência. 22

Equivalências DUV (Design Under Verification) ou: UUV (Unit Under Test) MUT (Model Under Test). DUT (Device Under Test, Design Under Test). EUV (Entity Under Verification). 23

Verificação Funcional O Modelo de Referência pode ser escrito em qualquer linguagem que possa se comunicar com o SystemVerilog. Normalmente escrito em C, C++, podendo ser escrito em outras linguagens. 24

Testbench Montagem de teste para simulação; Código escrito em SystemVerilog; Cria estímulos e verifica as respostas; Não tem entradas nem saídas; Pode ser entendido como um modelo do universo em torno do projeto; Imprime mensagens quando o DUV apresenta comportamento inesperado. Caso tudo esteja Ok, imprime uma única mensagem no final da bateria de testes. 25

Testbench Reference Model Testbench DUV DUV 26

Testbench Inserir estímulos Reference Model DUV Comparar respostas 27

A verificação funcional deve: Ser dirigida pela cobertura (Coverage-driven) Quando parar de simular? Quando a cobertura desejada for atingida Cobertura: processo que mostra que as funcionalidades especificadas estão sendo exercitadas. Auxiliar na análise de redirecionamento de estímulo. Mostrar o progresso da verificação. Determinar quando terminar a verificação. Possuir estímulos: Direcionados. Corner-cases. Reais. 28

A verificação funcional deve: Apresentar estímulos com aleatoriedade direcionada (Random-constrained) Estímulos são gerados baseados em uma distribuição de probabilidade direcionada para o DUV. Visa alcançar os critérios de cobertura. Encontra erros não previstos. Ser auto verificável (Self-checking) O ambiente de verificação deve comparar as respostas do DUV com as respostas do Modelo de Referência sem intervenção humana. 29

A verificação funcional deve: Ter o testbench implementado no nível de transação (Transaction-level) Transação: uma estrutura de instruções e/ou dados que tem início e fim no tempo. Ex: Pacote Ethernet Frame 30

Verificação Automação Eliminar intervenção humana no processo. Realidade mostra que não é possível: processos mal definidos, precisando de invenção e criatividade humana. Redundância: Usar dois engenheiros (ou grupos) para um verificar o outro. Projetista; Engenheiro de verificação. 31

Quem Pode Errar? Um projetista pode implementar uma funcionalidade de forma errada? Sim, o erro será descoberto por um teste. Um engenheiro de verificação pode testar uma funcionalidade de forma errada? Sim, um erro falso aparecerá no teste. O projetista e o engenheiro de verificação podem cometer o mesmo erro? Não, o erro será aceito no teste! 32

Quem Pode Errar? Um projetista pode esquecer de implementar alguma funcionalidade? Sim, a falha será descoberta por um teste. Um engenheiro de verificação pode esquecer de testar alguma funcionalidade? Não, um possível erro do projetista passará despercebido. 33

A Verificação funcional pode provar a presença de erros, mas não pode provar a ausência de erros. É preciso saber quando pode-se terminar o processo de verificação: medição de cobertura. 34

Abordagens de Verificação Existem 3 tipos de abordagens de verificação: Black Box Grey Box White Box 35

Black Box DUV Entradas, saídas, função; Função bem documentada (ou não...); Para verificar, é preciso entender a função e prever as saídas sabendo as entradas. 36

White Box DUV Todas as variáveis internas visíveis; Podem ser acessadas para verificação; Para teste de unidades pequenas nas folhas da hierarquia. 37

Grey Box DUV Uma seleção restrita de variáveis internas pode ser usado para verificação. Exemplo: registradores de um processador. 38

incompleto... 39

Bibliografia Elmar Melcher, Verificação Funcional Curso do Projeto Brazil-IP, 2003. Chris Spear, SystemVerilog for Verification, 2 nd Edition, Springer, 2008. Janick Bergeron, Writing Testbenches: Functional Verification of HDL Models, 2 nd Edition, Kluwer, 2003. Andrew Piziali, Functional verification Coverage Measurement and Analysis, Springer, 2004. Seetharaman Ramachandran, Digital VLSI Systems Design, Springer, 2007. Vocabulário Internacional de Metrologia, 1ª Ed. Luso - Brasileira, 2012. 40