Especificação e Verificação funcional

Slides:



Advertisements
Apresentações semelhantes
Projeto Qualified Curriculum
Advertisements

Programa das Aulas 20/09/05 - Apresentação da disciplina
Inteligência Artificial I
1 ANÁLISE E PROJETO NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO: CONCEITO MODELOS DE PROCESSO PROCESSO UNIFICADO HISTÓRIA CARACTERÍSTICAS AS QUATRO.
VERIFICAÇÃO FORMAL DE BLOCOS COMPLEXOS
Rational Unified Process
Gerenciamento de Projetos
Resultados da Pesquisa "Identificação de Valores de Jovens Brasileiros – Uma Nova Proposta", realizada pela Profª. Dra. Rosa Maria Macedo, da PUC de São.
Introdução à Programação usando Processing Programação Gráfica 2D Animações Exercício Animações 14/10/09 Bruno C. de Paula 2º Semestre 2009 > PUCPR >
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Engenharia de Software
BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional por simulação Curso do projeto Fênix Agosto 2003 Elmar Melcher UFCG.
Ney Laert Vilar Calazans
João Carlos Porto Orientadora: Prof.ª Dr.ª Junia Coutinho Anacleto 26/03/2010 Projeto de interceo.
Gerenciamento do escopo do projeto
Gerenciamento de tempo do projeto
INTRODUÇÃO A INFORMÁTICA
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
Descrição de hardware em SystemC
Revisões de Software Parte 1
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
HellermannTyton Brasil Sistema de Gerenciamento Integrado HellermannTyton Brasil Sistema de Gerenciamento Integrado Alexandre Martins Consultor de Negócios.
Ambientes Virtuais de Aprendizagem
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Gerenciamento do Escopo
Classes e objetos P. O. O. Prof. Grace.
Provas de Concursos Anteriores
Financeiro - Cadastro de Conta Contábil
Módulo Financeiro Centro de Custo.
IDENTIFICAÇÃO, MODELAGEM E ANÁLISE DE PROCESSOS Luís Gonzaga Trabasso
TRIBUNAL DE JUSTIÇA DE PERNAMBUCO DIRETORIA DE INFORMÁTICA Workshop de Testes PROSOFT Setembro/ 2010 Daniel Leitão Juliana Xavier.
QFD: MATRIZ 1.
Impressão de etiquetas
Engenharia de Requisitos
ME623 Planejamento e Pesquisa
Object Oriented Software Construction (MEYER, Bertrand)
PMBOK 5ª Edição Capítulo 5
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Funções Universidade Federal de Ouro Preto - UFOP
BENCHMARKING.
DESENVOLVIMENTO INTEGRADO DE PRODUTOS
Inserir crédito para cliente
EXERCÍCIOS PARA GUARDA-REDES
Análise e Projeto de Sistemas
BRAZIL IP The BrazilIP Network Verilog Curso do Brazil-IP Elmar Melcher UFCG
Técnicas de Modelagem para Aplicações em Computação Gráfica
MO801 - Tópicos em Arquitetura e Hardware Michele Tamberlini 05/2006
Projeto de Banco de Dados
Compras - Pedido de Compra
1 2 Observa ilustração. Cria um texto. Observa ilustração.
ELETRÔNICA DIGITAL Circuitos Aritméticos
Conceitos básicos em grafos
Orientedora: Prof a. Daniela Barreiro Claro Graduando: Anderson Tiago Barbosa de Carvalho Universidade Federal da Bahia Instituto de Matemática Departamento.
Técnicas e Projeto de Sistemas
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
1 Workshop de introdução à responsabilidade País, Mês de 20XX A Viagem de Ahmed.
Máquina de Turing Universal
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
GeoPB Envio de Informações de Obras Públicas
UML - Unified Modeling Language
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Qualidade de Software Aula 4
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Tecnologia de Projeto Sandro Rigo
BRAZIL IP The BrazilIP Network SystemVerilog para Verificação funcional com OVM Curso do Brazil-IP Elmar Melcher UFCG
BRAZIL IP The BrazilIP Network Ferramenta para geração de templates para Testbench Projeto Fênix Fevereiro 2004 Karina Rocha G. da Silva UFCG
Requisitos de Software
Estimativa, Teste e Inspeção de Software
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Transcrição da apresentação:

Especificação e Verificação funcional Workshop Brazil-IP Fevereiro 2003 Especificação e Verificação funcional Elmar Melcher Universidade Federal de Campina Grande elmar@dsc.ufcg.edu.br

Roteiro Introdução Especificação Verificação Motivação Especificação e Verificação funcional no fluxo de projeto Especificação Requisitos Níveis de hierarquia na especificação Especificação "executável" Verificação Plano de Verificação Elementos básicos Ferramentas

Motivação Entregar produtos e ganhar dinheiro. No caso Brazil-IP: Formar pessoas capazes de criar IPs para ganhar dinheiro. Mostrar que atingiu a meta de ensino através dos IPs criados durante a formação. Criar IPs cuja qualidade é comparável com a qualidade dos melhores IPs disponíveis no mercado.

Verificação funcional Qualidade de um IP ? Como fazer ? Documentação: Qual é a funcionalidade do IP ? Detalhar todas as funcionalidades; Ser claro e preciso para não criar expectativas falsas. Confiança: Ninguém compra um IP no qual não confia. fornecer junto com IP uma montagem de verificação que comprova as funcionalidades; implementar protótipo em FPGA; fundição em silício; usar dentro de sistema vendido no mercado. Especificação Verificação funcional

Especificação de um IP Não tem cliente específico. Estudo de mercado; Lista de requisitos; Especificação. Datasheet.

Verificação funcional A partir da especificação: Plano de verificação Implementação de testbenches. Documentação da verificação.

Descrição comportamental Fluxo de projeto Especificação Descrição comportamental Descrição RTL Verificação Descrição estrutural Layout

Roteiro Introdução Especificação Verificação Motivação Especificação e Verificação funcional no fluxo de projeto Especificação Requisitos Níveis de hierarquia na especificação Especificação "executável" Verificação Plano de Verificação Elementos básicos Ferramentas

Estudo de mercado Departamento de Marketing casado com competências das equipes de projeto Nosso caso: achômetro

Lista de requisitos texto em português informações qualitativas e quantitativas frases simples sem ambiguidades exemplo: sistema faz transmissão de áudio sem fio qualidade do sinal recebido semelhante a CD

Cenários de uso Cenarios típicos de utilização serão utilizados para criar testbenches exemplo: conecta-se um microfone no transmissor o receptor está a 50m dentro de uma sala de 100 m2 no receptor está conectado um alto-falante um forno de microondas está ligado no centro da sala exemplo de uma frase ambígua

Especificação do IP vê IP como black box contém todas as informações funcionais relevantes (propriedades), tanto qualitativas como quantitativas dificuldade: selecionar tudo aquilo que é relevante relacionar propriedades na especificação com requisitos e cenários de uso

Especificação detalhada Esquema de blocos (esquemático, netlist) cada bloco do tamanho de 1 a 4 homem-semanas de projeto (sem contar verificação) uma especificação completa para cada bloco relacionar propriedades do bloco com requisitos propriedade preenche requisito completamente propriedade preenche requisito parcialmente somatório de relações de todos os blocos devem cobrir todos os requisitos

Níveis de detalhamento Um esquema de blocos não deve conter mais do que 10 blocos, eventualmente levando à necessidade de um nível de hierarquia adicional. Talvez melhor: definir vários IPs que podem ser conectados para implementar a funcionalidade desejada.

Especificação "executável" uma implementação do IP em alto nível tipicamente usando C, C++ ou Matlab permite verificar escolha de algoritmos serve de Modelo de Referência para Verificação funcional

Roteiro Introdução Especificação Verificação Motivação Especificação e Verificação funcional no fluxo de projeto Especificação Requisitos Níveis de hierarquia na especificação Especificação "executável" Verificação Plano de Verificação Elementos básicos Ferramentas

Motivação Custo e tempo de corrigir um defeito cresce quando descoberto mais tarde no ciclo de vida do produto. na especificação na simulação na prototipagem FPGA na fundição em silício no uso pelo cliente

Problema para Brazil-IP Mais da metade do esforço de projeto está na verificação. Um testbench muitas vezes contém mais linhas que a própria descrição do projeto. A equipe de engenheiros de verificação é maior do que a equipe de projetistas. Processo de projeto têm receita de bolo, verificação requer experiência. "Arte de verificação"

Custo da verificação Um mal necessário mas indispensável sempre leva tempo demais mas indispensável porque afeta diretamente a qualidade do IP.

Verificação de IP Ninguém usa um IP no qual não confia. Como pode confiar? Processo de verificação bem executado e documentado. IPs precisam ser verificadas mais amplamente, todas propriedades e utilizações possíveis devem ser verificadas, não somente um ambiente específico.

Isso funciona mesmo ? A verificação funcional deve responder a esta pergunta. “isso” é uma descrição RTL de um projeto. “funciona” se refere a simulação. Apostamos o futuro da microeletrônica brasileira quando a verificação responde “sim”.

Como saber fazer ? Muitos livros falam sobre implementação. Poucos falam sobre verificação. Writing Testbenches: Functional Verification of HDL Models by Janick Bergeron, 2nd edition, KluwerAcademic Publishers, 2003 Verification Guild website Material de curso: Functional Verification of Hardware Design, Baback Izadi et al., SUNY-New Paltz e IBM, outono 2002, http://www.engr.newpaltz.edu/~bai/CSE45493/

Definições Verificação funcional não confundir com Teste confrontar um modela a ser verificado a outro modelo padrão, comparando a funcionalidade. não confundir com Teste verificar se um CI está sem erro de fabricação. Verificação formal Validação

Da Especificação para a Verificação funcional cada unidade espeificada deve ser verificada Especificação do IP Especificação detalhada Plano de verificação define como deve ser feita a verificação de cada unidade

Plano de Verificação Feito a partir da especificação do DUV. Define os cenários de teste (testbenches a ser escritos): define a complexidade deles, as dependências entre eles. A partir daí é feito um cronograma: recursos (humanos, máquinas, etc.) necessários, recursos disponíveis

Plano de Verificação Pertence à equipe: todo mundo envolvido é responsável, tudo mundo deve contribuir. Plano de Verificação não é algo novo, já é usado por: NASA FAA Software

Reduzir o erro humano Automação Redundância 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

Quem pode errar ? Sim, o erro será descoberto por um teste. 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.

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

Verificação "ad-hoc" usar editor gráfico para desenhar formas de onda para sinais de entrada observar formas de onda de saída muito pouco confiável limitado a poucas entradas/saídas não reutilizável formas de onda somente para depuração

Testbench Reference Model Checker Driver Monitor Design Under Verification

Definições Testbench montagem de teste para simulação. Código escrito em Verilog, VHDL, C, etc., cria estímulos e verifica a resposta, não tem entrada nem saída, um modelo do universo em volta do projeto, imprime mensagens quando o DUV apresenta comportamento inesperado, caso tudo está ok imprime uma única menagem no final.

Elementos de um testbench Tudo a mesma coisa: UUV (Unit Under Test) unidade a ser testado MUT (Model Under Test) DUT (Device Under Test Design Under Test) DUV (Design Under Verification)

Elementos de um testbench Driver gera estímulos, gera transações de entrada. Monitor recolha as respostas do DUV, verificando o protocolo de saída. Driver e Monitor são totalmente independentes.

Elementos de um testbench Checker envia dados de entrada para o driver e compara os dados de saída recebidos do monitor com um modelo de referência. É normalmente o elemento maior do testbench. É bom ser reutilizável ou seja, depender pouco do DUV. Modelo de referencia tipicamente timeless

A Arte da verificação Estou exercitando todos os possíveis cenários de entrada? Como vou saber se ocorreu um erro?

Tipos de Verificação Compliance Testing Corner Case Real Code Random verificar situações mencionadas na especificação Corner Case verificar situações críticas (extremas) do projeto Real Code utilizar estímulos reais da aplicação Random cria situações “inusitadas” cobertura tipicamente melhor do que os outros tipos porque pode gerar cenários que seriam esquecidos.

Ferramentas de apoio Simulador com análise de cobertura Specman / Verisity linguagem proprietária Testbuilder / Cadence Testbuilder para LDV Testbuilder SC SCV - SystemC Verification Library todo poder do C++ e do SystemC acesso a sinais dentro da hierarquia de módulos funções para constraint randomization funções para monitorar handshake de sinais

Testbench Reference Model Checker Driver Monitor Design Under completamente em SystemC ou co-simulação VHDL/Verilog/SystemC Reference Model Checker Driver Monitor Design Under Verification

Procedimento proposto Decidir metodologia de verificação SCV + SystemC ou VHDL ou Verilog Selecionar feramentas baseado em informações do fabricante e de usuários Synopsys Adquirir rapidamente Testar metodologia completa Corrigir metodologia em função da capacidade real das ferramentas