verificação mo801/mc912. passos de projeto 1.requisitos 2.especificação geral e arquitetura...

38
Verificação MO801/MC912

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 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

Verificação

MO801/MC912

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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;

Page 6: 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

Códigoarchitecture rtl of traffic is

signal current_state_din, current_state_dout : std_ulogic_vector(1 downto 0);

begindfp : 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 if;end process dfp;

Page 7: 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

Código

reg_proc: process(clk, reset)begin

if (reset = ‘0’) thencurrent_state_dout <= “01”;

elsif clk’event and clk = ‘1’ thencurrent_state_dout <= current_state_din;

end if;end process reg_proc;

Light_Direction <= current_state_dout;end rtl;

Page 8: 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

Fluxograma

Esperar 60s

Tráfego emMain?

Tráfego emElm? Main verde

Elm verde

Não Sim

Sim

Não

Page 9: 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

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

Page 10: 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

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?

Page 11: 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

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?

Page 12: 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

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

Page 13: 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

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

Page 14: 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

Exemplos do que verificar

• Microprocessador

• Dispositivo de Entrada/Saída

• Controlador de memória de um sistema multiprocessado

• Conversor de vídeo digital

Page 15: 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

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?

Page 16: 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

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?

Page 17: 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

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?

Page 18: 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

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?

Page 19: 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

Os dois desafios

• Definir cenários de estados e entradas para verificação

• Indicar qualquer comportamento incorreto do circuito

Page 20: 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

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

Page 21: 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

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

Page 22: 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

Custo de corrigir um problemaC

usto

TempoVerificação Teste do sistema Usuário

Page 23: 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

Aumento de produtividadeN

úmer

o de

bug

s

Tempo

Verificação Teste de sistema

Page 24: 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

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

Page 25: 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

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

Page 26: 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

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”

Page 27: 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

Custos da verificação

• Engenharia

• Ferramentas

• Tempo

Page 28: 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

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

Page 29: 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

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

Page 30: 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

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

Page 31: 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

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

Page 32: 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

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

Page 33: 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

Especificação funcional

• Descreve as funcionalidades do circuito

• É desenvolvida pelos projetistas

• É incorporada no ambiente de testes para comparação com o circuito final

Page 34: 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

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

Page 35: 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

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

Page 36: 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

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

Page 37: 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

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

Page 38: 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

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