A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Verificação MO801/MC912. Passos de Projeto 1.Requisitos 2.Especificação geral e arquitetura 3.Projeto em alto nível 4.Implementação em HDL 5.Verificação.

Apresentações semelhantes


Apresentação em tema: "Verificação MO801/MC912. Passos de Projeto 1.Requisitos 2.Especificação geral e arquitetura 3.Projeto em alto nível 4.Implementação em HDL 5.Verificação."— Transcrição da apresentação:

1 Verificação MO801/MC912

2 Passos de Projeto 1.Requisitos 2.Especificação geral e arquitetura 3.Projeto em alto nível 4.Implementação em HDL 5.Verificação funcional 6.Projeto físico (ferramentas específicas) 7.Fabricação

3 Definições Validação –Certificação de que o circuito final é equivalente ao HDL que o gerou Verificação –Certificação de que o HDL é equivalente à especificação do projeto –Nosso foco

4 Exemplo O sinal de trânsito entre as ruas Elm e Main deve ficar ativo (verde) por um minuto em cada direção quando possuir tráfego Sensores foram instalados nas duas ruas

5 Código library ieee; use ieee.std_logic_1164.all; entity traffic is port (clk, reset, timer_pulse, Main_street, Elm_street : in std_ulogic; Light_Direction : out std_ulogic_vector(1 downto 0)); end entity traffic;

6 Código architecture rtl of traffic is signal current_state_din, current_state_dout : std_ulogic_vector(1 downto 0); begin dfp : process(timer_pulse, Main_Street, Elm_Street, current_state_dout) begin current_state_din <= current_state_dout; if timer_pulse = 1 then if Main_street = 1 then current_state_din <= 01; elsif Elm_Street = 1 then current_state_din <= 10; end if; end process dfp;

7 Código reg_proc: process(clk, reset) begin if (reset = 0) then current_state_dout <= 01; elsif clkevent and clk = 1 then current_state_dout <= current_state_din; end if; end process reg_proc; Light_Direction <= current_state_dout; end rtl;

8 Fluxograma Esperar 60s Tráfego em Main? Tráfego em Elm? Main verde Elm verde NãoSim Não

9 Comentários A ferramenta de síntese é capaz de sintetizar a descrição errada do circuito É possível produzir o chip errado É responsabilidade do engenheiro de verificação detectar essa falha de projeto

10 Primeiro desafio da verificação Explosão de estados O exemplo simples tem –5 entradas –4 possíveis estados –128 combinações possíveis a serem tratadas E num circuito com memória? –1Mb de memória interna. Quantos estados?

11 Como tratar Quebrar o componente em módulos menores Tratar cada módulo individualmente Proceder para testes de integração apenas quando cada submódulo estiver correto Cuidado com deduções –Se cada módulo está correto individualmente, o circuito está correto?

12 Estados inválidos Alguns estados nunca devem ser alcançados –No caso do semáforo, apenas alternativas são válidas Podem ser descartados? O que fazer nesses casos? –O engenheiro de verificação deve verificar se o circuito realmente não entra nesses estados –Deve existir uma forma de sair de um desses estados

13 Segundo desafio Comportamento errado São detectados através dos estímulos e transições Focar numa modelagem de mais alto nível ao invés dos sinais separadamente –Observar que o clock e reset do semáforo têm significados bem definidos e checá-los separadamente

14 Exemplos do que verificar Microprocessador Dispositivo de Entrada/Saída Controlador de memória de um sistema multiprocessado Conversor de vídeo digital

15 Microprocessador Estímulo funcional –Instruções carregadas na memória Resultado da validação –Os registradores estão com os valores corretos após cada instrução? Desafio –Todas as combinações de instruções foram verificadas?

16 Dispositivo de Entrada e Saída Estímulo funcional –Cabeçalho de dados, seguido por endereços, dados e bits de verificação Resultado da validação –O dado foi transportado para o destino correto? Desafio –O dispositivo é capaz de gerenciar centenas de fontes de dados simultaneamente?

17 Controlador de memória de um sistema multiprocessado Estímulo funcional –Solicitação de dados e comandos de escrita de múltiplos processadores Resultado da validação –Os dados foram armazenados e lidos corretamente? Desafio –A coerência global foi mantida?

18 Conversor de vídeo digital Estímulo funcional –Vídeo codificado num stream Resultado da validação –O vídeo pode ser mostrado corretamente num monitor? Desafio –Como saber se um ponto está errado?

19 Os dois desafios Definir cenários de estados e entradas para verificação Indicar qualquer comportamento incorreto do circuito

20 Como atacá-los Verificação baseada em simulação –O circuito é simulado com um subconjunto das entradas e dos estados possíveis Verificação formal –É feita uma prova formal de que o circuito se comporta de uma determinada forma

21 Missão e objetivos da verificação Tempo –Chegar atrasado no mercado pode expor o produto a uma concorrência maior Custo –Quanto mais tarde um erro for descoberto, mais caro será corrigi-lo Qualidade –Produto com problemas gera despesas de manutenção e afeta o nome da empresa

22 Custo de corrigir um problema Custo Tempo Verificação Teste do sistemaUsuário

23 Aumento de produtividade Número de bugs Tempo Verificação Teste de sistema

24 Bugs Guardar um histórico de bugs detectados Bugs simples devem aparecer no início da verificação –Se bugs simples aparecerem no final dos testes, rever o plano de verificaçao Bugs complexos (exotéricos) devem aparecer no final

25 Níveis de verificação Especificação –Em geral bem documentada –Indica as entradas, saídas e funcionalidade geral Implementação –Informações dos desenvolvedores –Em geral com documentação pior –Inclui componentes internos que precisam ser testados

26 Fator humano A equipe de projeto e a de testes precisam conviver! Cuidado ao falar –Encontrei um bug no seu projeto Talvez seja melhor –Encontrei um caso de teste que gera resultados inconsistentes

27 Custos da verificação Engenharia Ferramentas Tempo

28 Custo de engenharia Em geral, é aconselhável ter uma equipe de verificação separada da de projeto –O engenheiro de verificação deve ter habilitades diferentes do de projeto –O projetista que faz a verificação corre o risco de cometer o mesmo erro duas vezes –Um cenário não observado no projeto, provavelmente não será observado nos testes

29 Custo de engenharia Os projetistas são os primeiros verificadores –Ex.: erros de sintaxe não podem existir Devem indicar partes do circuito que precisa ser verificada com mais detalhes Devem fornecer uma documentação adequada

30 Custo de ferramentas É um dos grandes custos de projeto É possível economizar engenheiros de verificação com o uso de ferramentas mais avençadas Devem ser capazes de –Simular, checar cobertura, visualizar respostas, gerar testes baseados em padrões, controlar múltiplas simulações, suportar assertions

31 Custo de tempo Tempo É dinheiro Tempo demais gasto em verificação é tempo de mercado perdido Pouco tempo gasto em verificação pode gerar produto com problema no mercado

32 O ciclo de verificação Especificação funcional Plano de verificação Desenvolvimento do ambiente Ambiente de depuração Teste de regressão Processo de fabricação do hardware Teste do sistema (depuração do hardware) Análise do hardware

33 Especificação funcional Descreve as funcionalidades do circuito É desenvolvida pelos projetistas É incorporada no ambiente de testes para comparação com o circuito final

34 Plano de verificação Perguntas –O que será verificado? –Como será verificado? Conteúdo –Testes e métodos –Ferramentas necessárias –Critério de parada –Recursos necessários e cronograma –Funcionalidade a verificar –Funções não cobertas

35 Desenvolvimento do ambiente Criar o conjunto de ferramentas necessário para realizar os testes A maior parte do projeto dos testes é nessa fase Preocupação com os testes a serem gerados –determinísticos, aleatórios, formais, casos de contorno Deve ser reavaliado constantemente

36 Ambiente de depuração Integrar o ambiente de verificação ao ambiente de projeto Executar os testes projetados sobre o circuito Comparar os resultados obtidos com os esperados

37 Testes de regressão Garantem que erros antigos não surjam novamente No caso de testes aleatórios, garantem que seja possível executar novamente uma mesma instância para achar os bugs Deve ser possível executar novamente todos os testes antes de enviar para produção

38 Outras fases Fora do nosso escopo, mais detalhes no livro –Processo de fabricação do hardware –Teste do sistema (depuração do hardware) –Análise do hardware


Carregar ppt "Verificação MO801/MC912. Passos de Projeto 1.Requisitos 2.Especificação geral e arquitetura 3.Projeto em alto nível 4.Implementação em HDL 5.Verificação."

Apresentações semelhantes


Anúncios Google