BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do...

154
BRAZIL BRAZIL IP IP The BrazilIP Network BRAZIL BRAZIL IP IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG [email protected] http://lad.dsc.ufcg.edu.br/ip

Transcript of BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do...

Page 1: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

Curso do programa Brazil-IP

Elmar Melcher

UFCG

[email protected]

http://lad.dsc.ufcg.edu.br/ip

Page 2: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Roteiro

IntroduçãoMotivaçãoFluxo de projetoVerificaçãoTipos de verificaçãoVerificação funcionalAbordagens de verificaçãoPlano de verificação

Page 3: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Roteiro

Metodologia BVMTestbenchElementos básicosRegras de projetoImplementaçãoTipos de estímulosCoberturaBiblioteca OVM

Page 4: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Roteiro

ExemplosCodificador DPCMDecodificador MPEG4Lacre Eletrônico

Page 5: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Introdução

Ninguém usa um IP core no qual não confia.

IP core: “Lógica ou os dados necessários para construir um dado projeto de hardware. Idealmente ele é “reusável” e pode ser adaptado a vários tipos dedispositivos de hardware. Pode-se entender o IP-core como a implementação de um dado projeto de hardware em uma linguagem especifica para esse objetivo.”

IP core: “Lógica ou os dados necessários para construir um dado projeto de hardware. Idealmente ele é “reusável” e pode ser adaptado a vários tipos dedispositivos de hardware. Pode-se entender o IP-core como a implementação de um dado projeto de hardware em uma linguagem especifica para esse objetivo.”

Page 6: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Motivação

Page 7: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Caso famoso: NASA

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

Page 8: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Caso famoso: INTEL

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 jamais foi afetado, a confiança na INTEL caiu.Abriu o caminho para crescimento maior da AMD.Prejuízo de 500 MUS$ (?)

Page 9: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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.

Page 10: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Fases de um projeto de hardware

SínteseSínteseSimulaçãoPós-sínteseSimulaçãoPós-síntese

PrototipaçãoPrototipação

S o C

Implementaçãodo

Código RTL

Implementaçãodo

Código RTL

Verificação funcional

Verificação funcional

Especificação do

hardware

Especificação do

hardware

Especificação da

verificaçãofuncional

Especificação da

verificaçãofuncional

Implementaçãodo

testbench

Implementaçãodo

testbench

Page 11: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Custo versus Tempo

Entregar produtos e ganhar dinheiro.

Custo e tempo de corrigir um defeito cresce quando descoberto mais tardeno ciclo de vida do produto.na especificaçãona simulaçãona prototipagemna fabricação em volumeno uso pelo cliente

Custo

Tempo

Page 12: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação

Page 13: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Tipos de verificação

Verificação:

Dinâmica ou Funcional.

Estática ou Formal.

Híbrida.

Page 14: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

“Verificação funcional é um processo usado para demonstrar que o objetivo do projeto é

preservado em sua implementação” [bergeron2003]

Page 15: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional x Teste

Verificação Funcional: confrontar um modelo a ser verificado a outro modelo padrão, comparando a funcionalidade por simulação.

Verificação Funcional: confrontar um modelo a ser verificado a outro modelo padrão, comparando a funcionalidade por simulação.

X

Teste: verificar se um CI está sem erro de fabricação.Teste: verificar se um CI está sem erro de fabricação.

Page 16: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

Mais da metade do esforço de projeto está na verificação.Um testbench muitas vezes contém duas vezes mais linhas 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.

Page 17: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

Engenheiros da Motorola no SBCCI 2002:“Estamos procurando trabalhos sobre verificação”Novas metodologias em 2006:VMM, AVM, OVM, ...Procura por “bons” engenheiros de verificação em todas as empresas.

Page 18: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Custo da verificação

Um mal necessáriosempre leva tempo demais e custa caro demais

mas indispensável.porque afeta diretamente os três requisitos:cronograma

custo

qualidade

Page 19: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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.O funcionário de uma empresadeve poder dormir tranqüilose a verificação responde “sim”.

Page 20: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Como saber fazer ?

Muitos livros falam sobre implementação.

Poucos falam sobre verificação.Writing Testbenches: Functional Verification of HDL Models by Janick Bergeron, 3rd edition, KluwerAcademic Publishers, 2006

Piziali, Functional verification Coverage Measurement and Analysis, Kluwer 2004.

Page 21: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação estática

Analisadores de código HDL, Lint ou linting toolsTipos de problemas detectáveis case incompleto

atribuições em if...else inconsistente

falta de sinais na lista de sensibilidade

reset síncrono / assíncrono

falta de sinais a serem resetados

Page 22: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Fluxo de projeto

Especificação

Descrição comportamental

Descrição estrutural

Layout

Função

Descrição RTL

Função & Timing

Função & Timing

Função & Timing

consumo, área, etc.

Verificação

Page 23: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Projeto x Verificação

G

C

F

BA

E

D

Intenção do projeto

Especificação

Implementação

H

Page 24: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Projeto x Verificação

G

C

FA

E

D

Intenção do projeto

Especificação

Implementação

H

Page 25: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Projeto x Verificação

G FA

D

Intenção do projeto

Especificação

Implementação

H

Page 26: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Projeto x Verificação

FA

D

Intenção do projeto

Especificação

Implementação

H

Page 27: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Projeto x Verificação

FA

D

Intenção do projeto

Especificação

Implementação

H

Page 28: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Projeto x Verificação

FAD

Intenção do projeto

Especificação

Implementação

H

Page 29: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Projeto x Verificação

FAD

Intenção do projeto

Especificação e

Implementação

H

Page 30: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Nível hierárquico adequado

Verificação funcional pode ser realizada a vários níveis:componente/unidade/sub-unidade, ...

ASIC/FPGA/IP

Sistema/SoC

placa

Page 31: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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çãopara cada elemento existe uma seção nele.

Page 32: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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.

Page 33: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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.

Page 34: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

Tudo a mesma coisa:UUV (Unit Under Test).unidade a ser testada.

MUT (Model Under Test).

DUT (Device Under Test, Design Under Test).

EUV (Entity Under Verification).

DUV (Design Under Verification).

Page 35: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

Modelo de Referência pode ser escrito em qualquer linguagem que possa se comunicar com SystemVerilog.

Normalmente escrito em C, C++, podendo ser escrito em outras linguagens.

Page 36: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

TestbenchMontagem de teste para simulação.Código escrito em SystemVerilog.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 mensagem no final.

Page 37: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

DUV

Testbench

DUVDUV

Reference

Model

Reference

Model

Page 38: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

DUVDUV

Reference

Model

Reference

ModelInserirestímul

o

Comparar

resposta

Page 39: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

Verificação funcional deve:Ser dirigida pela cobertura (Coverage-driven)Quando parar de simular ?Cobertura - processo que mostra que as funcionalidades especificadas estão sendo exercitadas.

Auxilia na análise de redirecionamento de estímulo.

Mostra o progresso da verificação.

Determina quando terminar a verificação.Possuir estímulosDirecionados.Corner-cases.Reais.

Page 40: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

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.

Page 41: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

Verificação funcional deve:

Ser auto verificando (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.

Page 42: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação funcional

Verificação funcional deve:

Ter o testbench implementado no nível de transação (Transaction-level (TL ou TLM)) Transação: uma estrutura de instruções e/ou dados que tem início e fim no tempo.

Exemplos:

Pacote Ethernet

Frame

Page 43: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Resumo

Im plem entação dotestbench com

cobertura

Im plem entação do D UV

S im ulação

Dados decobertura

Análise dacobertura

Page 44: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Verificação

AutomaçãoEliminar intervenção humana no processo.

Realidade mostra que não é possível:processos mal definidos,

precisando de invenção e criatividade humana.

RedundânciaUsar dois engenheiros (ou grupos) para um verificar o outro.Projetista

Engenheiro de verificação

Page 45: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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.

Page 46: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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.

Page 47: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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

Page 48: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Abordagens de Verificação

Black BoxGrey BoxWhite Box

Page 49: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Black Box

Entradas, saídas, funçãoFunção bem documentada (ou não...)Para verificar, é preciso entender a função e prever as saídas sabendo as entradas.

DUV

Page 50: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

White Box

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

DUV

Page 51: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Grey Box

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

DUV

Page 52: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Plano de Verificação

Especificação do processo de verificação;Define o quê será verificado e como.Abordagem tradicional:faça como quiser

Abordagem nova:uso de métricas para saber quando a verificação estiver completa: Cobertura da Verificação idealmente a definição de sucesso “de primeira”.

Page 53: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Plano de Verificação

Feito a partir da especificação do DUV.Define os cenários de teste (testbenches a serem 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

Page 54: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

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

Page 55: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Conteúdo do Plano de Verificação

Resumo do sistemaNíveis de abstraçãoTecnologias de VerificaçãoModelos de referência a serem usadosFluxograma da verificaçãoDefinição dos estímulosTestes de regressão

Page 56: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Conteúdo do Plano de Verificação

Gerência de falhasPlano de recursosCronograma

Page 57: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Os três mandamentosda verificação funcional

Você deve solicitar mais seu projeto do que jamais ele será solicitado no futuro.

Você deve monitorar tudo.

Você não deve passar a um nível mais alto de hierarquia antes de atingir cobertura completa.

Page 58: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Metodologia BVM

Page 59: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Brazil-IP

Metodologia BVM é VeriSC usando OVM.VeriSC surgiu no contexto do projeto Brazil-IP.Brazil-IP é um esforço de universidades brasileiras para a capacitação de pessoas para a produção de IPs.VeriSC foi defendida como tese de doutorado.

Page 60: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Fluxo de projeto

SínteseSínteseSimulaçãoPós-sínteseSimulaçãoPós-síntese

PrototipaçãoPrototipação

S o C

Implementaçãodo

Código RTL

Implementaçãodo

Código RTL

Verificação funcional

Verificação funcional

Especificação do

hardware

Especificação do

hardware

Especificação da

verificaçãofuncional

Especificação da

verificaçãofuncional

Implementaçãodo

testbench

Implementaçãodo

testbench

Especificação do hardware

Especificação do hardware

Especificação da Verificação funcional

Especificação da Verificação funcional

Implementação do testbench

Implementação do testbench

SínteseSínteseSimulaçãoPós-sínteseSimulaçãoPós-síntese

PrototipaçãoPrototipação

Implementação

do DUV (Design Under

Verification)

Implementação

do DUV Design) Under

(VerificationVerificação funcional

Verificação funcional

S o C

Page 61: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Metodologia VeriSC

Inicia pela implementação do testbench. Implementa um mecanismo para simular a presença do DUV unicamente com os elementos do testbench, sem usar nenhum artifício extra.Todas as partes do testbench podem estar prontas e simuladas antes do início do desenvolvimento do DUV.

Page 62: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Testbench da metodologia VeriSC

DUVDUV

Nível de transações

Nível de

sinais

Page 63: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Testbench

Definição: Montagem em volta do Design Under Verification

Page 64: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Transação

Definição: Uma operação que inicia num determinado momento no tempo e termina em outro.

É caracterizada pelo conjunto de instruções e dados necessárias para realizar a operação.Exemplos:transmissão de um pacote ethernet

recepção de uma imagem

uma escrita num barramento

execução de uma instrução de máquina de um processador

Page 65: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Testbench

DesignUnderVerification

TDriver

Monitor

Source

ReferenceModel

duv

Checker

channelsinal

refmod

Actor

Page 66: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Elementos de um testbench

SourceEnvia transações de entrada para o driver e para o reference model.

CheckerCompara as transações de saída recebidas do monitor com as de um reference model.

É bom ser reutilizável, ou seja, depender pouco do DUV.

Reference ModelTipicamente timeless

Page 67: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Elementos de um testbench

TDriverRecebe transações de entrada e as converte em transições de sinais da interface de entrada do DUV.

MonitorObserva sinais da interface de saída do DUV e gera transações de saída que ele repassa para o checker.

ActorObserva sinais da interface de saída do DUV e implementa o protocolo de sinalização.

Page 68: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Regras de projeto

TDriver Acesso ao DUV somente pela interface do mesmo;Transação flui do source para o driver mas nunca na direção oposta.

MonitorAcesso somente pela interface do DUV;Envia transações ao checker;Independente de driver e checker.

ActorFaz verificação de protocolo (baixo nível);

Page 69: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Regras de projeto

SourceNão envia sinais diretamente para o DUV

CheckerNunca escreve (força sinal) dentro do DUV;

Pode eventualmente ler informação do DUV (por exemplo registradores internos);

Reference ModelModela a funcionalidade, mas não a interface

Page 70: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Ferramentas usadas na Metodologia BVM

SystemVerilog.

OVM (Open Verification Methodology).

Ferramenta eTBc (Easy Testbench Creator) de geração semi-automática de testbenches.

Page 71: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passos da metodologia BVM

Passo 1: Testbench Conception1.1 Single Refmod1.2 Double Refmod1.3 DUV Emulation

Passo 2: Hierarchical Refmod Decomposition2.1 Refmod Decomposition2.2 Single Hierarchical Refmods2.3 Hierarchical Refmods Verifications

Page 72: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passos da metodologia BVM

Passo 3: Hierarchical Testbench3.1 Double Hierarchical Refmods3.2 Hierarchical DUV Emulation3.3 Hierarchical DUV

Passo 4: Full Testbench

Page 73: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

pre-source

ReferenceModel sink

1.1 Single Refmod

Page 74: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

tb_single_refmod

pre_source

refmod sink

1.1 Single Refmod – Templates (eTBc)

Page 75: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

1.1 Single Refmod – Templates (eTBc)

- pre_source - trans

- refmod - sdi

- sink - tb_tcl

- tb_single_refmod - Makefile_single_refmod

Page 76: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

1.1 Single RefmodReference model é testado em sua capacidade de interagir com o testbench.Pré-Source é um subconjunto do Source com quase as mesmas funcionalidades.Sink possui um subconjunto das funcionalidades do Checker.

Page 77: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

Source

ReferenceModel

Checker

ReferenceModel

1.2 Double Refmod

Page 78: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

tb_double_refmod

Passo 1: Testbench Conception

source

refmod checker

refmod

1.2 Double Refmod – Templates (eTBc)

Page 79: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

1.2 Double Refmod – Templates (eTBc)

- source - trans

- refmod - sdi

- checker - tb_tcl

- tb_double_refmod - Makefile_double_refmod

Page 80: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

1.2 Double RefmodTestar Source e Checker.Pode-se inserir erros em uma das instâncias do reference model para testar a capacidade do Checker de detectá-los.Checker emite mensagem somente em caso de ERRO.

Page 81: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

TD

river

Sourc

e

Check

er

ReferenceModel

TD

river_

0

1.3 DUV Emulation

Monitor_0

Actor_0

ReferenceModel

Monitor

Actor

Page 82: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

top

duv_emulation

tb_duv

Passo 1: Testbench Conception

tdri

ver

refmod

tdri

ver_

du

vrefmod

1.3 DUV Emulation – Templates (eTBc)so

urc

e

check

er

monitor

_duvin_actor

monitor out

_actor

Page 83: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception1.3 DUV Emulation – Templates (eTBc)

- source - duv_emulation

- refmod - tb_duv

- checker - top

- tdriver - trans

- tmonitor - sdi

- tdriver_duv - top_tcl

- tmonitor_duv - gene_clock

- in_actor - axi_cover

- out_actor - Makefile_duv_emulation

Page 84: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 1: Testbench Conception

1.3 DUV EmulationTestar TDriver(s), Actor(s) e Monitor(es)Tdriver-Monitor_0 e Tdriver_0-Monitor precisam ser simétricos

Page 85: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

ReferenceModel_2

channelsinal

ReferenceModel_1

ReferenceModel

2.1 Refmod Decomposition

ReferenceModel_3

Page 86: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

2.1 Refmod DecompositionReference Model é dividido hierarquicamente como o DUV.

Page 87: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

pre-source

ReferenceModel_1 sink_

1

2.2 Single Hierarchical Refmods

Page 88: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

pre-source_2

ReferenceModel_2

sink_2

2.2 Single Hierarchical Refmods

Page 89: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

pre-source_3

ReferenceModel_3 sink

2.2 Single Hierarchical Refmods

Page 90: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

tb_single_refmod

Passo 2: Hierarchical Refmod Decomposition

pre_source

refmod sink

2.2 Single Hierarchical Refmods – Templates (eTBc)

Page 91: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

2.2 Single Hierarchical Refmods – Templates (eTBc)

- pre_source * - trans

- refmod - sdi

- sink * - tb_tcl

- tb_single_refmod - Makefile_single_refmod

* Um pre_source e um sink podem ser reusados.

Page 92: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

2.2 Single Hierarchical RefmodsCada bloco do Reference Model deve ter suas entradas e saída testadas

Page 93: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

channelsinal

ReferenceModel

Sourc

e

Check

er

2.3 Hierarchical Refmods Verification

ReferenceModel_2

ReferenceModel_1

ReferenceModel_3

Page 94: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

channelsinal

2.3 Hierarchical Refmods Verification – Templates (eTBc)

tb_hierarchical_refmod

refmod

sourc

e

check

er

refmodrefmod refmod

Page 95: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

channelsinal

2.3 Hierarchical Refmods Verification – Templates (eTBc)

- source - trans

- refmod * - sdi

- checker - tb_tcl

- tb_hierarchical_refmod - Makefile_hierarchical_refmod

* Todos os refmods usados nesse passo podem ser reusados.

Page 96: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 2: Hierarchical Refmod Decomposition

2.3 Hierarchical Refmods VerificationA junção dos reference models hierárquicos deve ser comparada com o Modelo original para ver se ainda é equivalente.

Page 97: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

Source

ReferenceModel_1

Checker

_1

ReferenceModel_1

3.1 Double Hierarchical Refmods

Page 98: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

Source_2

ReferenceModel_2 C

hecker

_2

ReferenceModel_2

3.1 Double Hierarchical Refmods

Page 99: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

Source_3

ReferenceModel_3 C

hecker

ReferenceModel_3

3.1 Double Hierarchical Refmods

Page 100: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

tb_double_refmod

Passo 3: Hierarchical Testbench

source

refmod checker

refmod

3.1 Double Hierarchical Refmods – Templates (eTBc)

Page 101: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

3.1 Double Hierarchical Refmods – Templates (eTBc)

- source * - trans

- refmod - sdi

- checker * - tb_tcl

- tb_double_refmod - Makefile_double_refmod

* Um source e um checker podem ser reusados.

Page 102: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

TD

river

Sourc

e

Check

er_

1

ReferenceModel_1

TD

river_

2

3.2 Hierarchical DUV Emulation

Monitor_0

Actor_0

ReferenceModel_1

Monitor_1

Actor_1

Page 103: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

TD

river_

2

Sourc

e_2

Check

er_

2

ReferenceModel_2

TD

river_

3

3.2 Hierarchical DUV Emulation

Monitor_1

Actor_1

ReferenceModel_2

Monitor_2

Actor_2

Page 104: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

TD

river_

3

Sourc

e_3

Check

er

ReferenceModel_3

TD

river_

0

3.2 Hierarchical DUV Emulation

Monitor_2

Actor_2

ReferenceModel_3

Monitor

Actor

Page 105: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

top

duv_emulation

tb_duv

Passo 3: Hierarchical Testbench

tdri

ver

sourc

e

check

er

refmod

tdri

ver_

duv

3.2 Hierarchical DUV Emulation – Templates (eTBc)

monitor

_duvin_actor

refmodmonit

or out_

actor

Page 106: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench3.2 Hierarchical DUV Emulation – Templates (eTBc)

- source - duv_emulation

- refmod - tb_duv

- checker - top

- tdriver * - trans

- tmonitor * - sdi

- tdriver_duv * - top_tcl

- tmonitor_duv * - gene_clock

- in_actor * - axi_cover

- out_actor * - Makefile_duv_emulation

Page 107: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

TD

river

Sourc

e

Check

er_

1

ReferenceModel_1

DesignUnderVerification

DUV_1

3.3 Hierarchical DUV

Monitor_1

Actor_1

channelsinal

Page 108: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

TD

river_

2

Sourc

e_2

Check

er_

2

ReferenceModel_2

DesignUnderVerification

DUV_2

3.3 Hierarchical DUV

Monitor_2

Actor_2

Page 109: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench

TD

river_

3

Sourc

e_3

Check

er

ReferenceModel_3

DesignUnderVerification

DUV_3

3.3 Hierarchical DUV

Monitor

Actor

Page 110: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

top

tb_duv

Passo 3: Hierarchical Testbench

tdri

ver

sourc

e

check

er

refmod

DesignUnderVerification

DUV

3.3 Hierarchical DUV – Templates (eTBc)

monitor out

_actor

Page 111: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 3: Hierarchical Testbench3.3 Hierarchical DUV – Templates (eTBc)- source - tb_duv

- refmod - top

- checker - trans

- tdriver - sdi

- tmonitor - top_tcl

- in_actor - gene_clock

- out_actor - axi_cover

- duv_hierarchical - Makefile_duv

Page 112: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 4: Full Testbench

TD

river

Sourc

e

Check

er

DUV_1

DUV_2

DUV_3

ReferenceModel_2

ReferenceModel_1

ReferenceModel_3

Monitor

Actor

Page 113: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 4: Full Testbench

TD

river

Sourc

e

Check

er

ReferenceModel

DesignUnderVerification

duvMonit

or

Actor

Page 114: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

top

tb_duv

Passo 4: Full Testbench

tdri

verso

urc

e

check

er

refmod

DesignUnderVerification

duvmonit

orout_

actor

Templates (eTBc)

Page 115: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Passo 4: Full Testbench Templates (eTBc)- source - tb_duv

- refmod - top

- checker - trans

- tdriver - sdi

- tmonitor - top_tcl

- in_actor - gene_clock

- out_actor - axi_cover

- duv - Makefile_duv

- duv_hierarchical *

Page 116: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Metodologia BVM

Testbench passa pela fase de depuração composta de passos, reduzindo a quantidade de erros.

Muito reuso de código, diminuindo tempo de implementação do testbench.

Page 117: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

A Arte da verificação

Estou exercitando todos os possíveis cenários de entrada?Como vou saber se ocorreu um erro?

Page 118: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Ideal x Real

Gerar todas as possíveis combinações de entrada tem custo inviável para unidades maiores.Testar muitos unidades pequenas também tem custo inviável.É necessário fazer uma escolha.

Page 119: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Tipos de Estimulos

Compliance TestingVerificar situações mencionadas na especificação

Corner CaseVerificar situações críticas (extremas) do projeto

Real CodeUtilizar estímulos reais da aplicação

RandomCria situações “inusitadas”Cobertura tipicamente melhor do que os outros tipos porque pode gerar cenários que seriam esquecidos.

Page 120: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

A Arte da verificação

Forma mais óbvia: inspeção visual de formas de onda:muito usado,

impossível de reaproveitar,

passível a mal interpretação (erro humano),

impraticável para muitas transações.

Use a visualização de formas de onda somente

para depuração.

Page 121: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

A Arte da verificação

Sniffers Possuem interface dedicada para monitorar e extrair estatísticas dos sinais de um módulo.Muito usado na depuração de sinais.

Page 122: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

A Arte da verificação

Self Checking TestbenchTdriver, Monitor e Actor implementados em código do

simulador (SystemVerilog);

Checker implementado em SystemVerilog compara dados

recebidos do Monitor com dados esperados;

Page 123: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Implementação do checker

A simulação de rodar quieto enquanto tudo estiver o.k. para não afogar mensagens de erro no meio de outras mensagens.Quando aparece um erro, devem ser fornecidas todas as informações disponíveis sobre o problema para facilitar a depuração.Inserir erro no DUV para ver se o Checker funciona.

Page 124: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Implementaçãodo Reference Model

Refmod implementado em códigoSystemVerilog, SystemC, C++, C, ou Pascal, Java etc.Checker compara diretamente saída do Monitor com a saída do refmod.

Refmod fácil de escrever.

Basic, Matlab, etc.Problema de comunicação com SystemC, pode usar IPC ou arquivos.

Refmod ainda mais fácil de escrever.

Page 125: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Implementaçãodo Reference Model

Refmod implementado em código (continuação)

possibilita teste pseudo-aleatório com número grande de amostras (muitos vetores de entrada),

deixar rodar a noite,

dormir tranqüilo !

Page 126: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura

Ao acordar de manhã ainda está rodando...Quando vou parar ?

Quando atingir a cobertura indicada no plano de Verificação

Tipos de cobertura:de códigofuncional

Page 127: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura de código

Cobertura de linhasmostra quantas vezes uma linhas de código (um comando) foi executada

também chamada cobertura de blocos ou cobertura de segmentos

Cobertura de chaveamentoconta quantas vezes cada sinal mudou de nível lógico

Cobertura de estados de FSMconta quantas vezes se chegou em cada estado

quais transições entre estados foram simuladas

Page 128: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura de códigoCobertura de eventosverifica se todos os eventos na lista de sensibilidade de todos processos foram exercitadas

Cobertura de desviosresultado semelhante ao cobertura de blocos

Cobertura de expressõesverifica se todas as combinações de expressões lógicas foram exercitadas

Cobertura de caminhosverifica passagem variada por seqüência de comandos if...else

Page 129: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura funcional

É mais importante do que a cobertura de código.

Observa sinais e transações durante a simulação.

Conta ocorrências de determinadas situações,por exemplo: “quantas vezes o valor da saída fica entre 0 e 8”

Page 130: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura funcional

Cobertura desejada é especificada no Plano de Verificação (“a tal situação deve ser verificada 100 vezes”)

Quando a cobertura desejada é atingida a simulação é encerrada

Page 131: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura funcional

“Cobertura é responsável por medir o progresso da verificação através de várias

métricas pré-estabelecidas e ajudar o engenheiro a se localizar com relação ao

término da verificação” [piziali2004].

Page 132: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura funcional

Mede o progresso da simulação e reporta quais funcionalidades não foram exercitadas ou foram exercitadas mais de uma vez.

Pode ajudar a inspecionar a qualidade da verificação e direcionar os estímulos de forma a alcançar as funcionalidades não cobertas (buracos de cobertura).

Page 133: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura funcional

Page 134: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Onde Fazer Cobertura Funcional?

Source

Source

TDriverTMonit

or

Checker

Checker

Reference Model

Reference Model

DUVDUV

Cobertura FuncionalCobertura Funcional

Page 135: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura Funcional

Consiste em medir o número de vezes que uma variável recebe um determinado valor durante uma simulação:

É fácil de interpretar;

Ajuda a identificar valores ou intervalos não testados;

Quando a cobertura desejada é atingida a simulação é encerrada.

Porém, a complexidade aumenta com o aumento do intervalo de valores, e com a inclusão de cruzamentos, de combinações e de valores inválidos.

Page 136: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura Funcional

Covergroups

Os engenheiros de verificação podem observar os valores das variáveis agrupando-as em um ou mais grupos de cobertura (covergroups).

Um covergroup é um agrupamento de pontos de cobertura (coverpoints – um grupo de variáveis cujos valores serão simultaneamente amostrados e contados.

Page 137: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 137

Cobertura Funcional

covergroup cg1 @(posedge clk);coverpoint b { bins b1 = {0, 1, 2, 3}; bins b2 = { [5:8], 9 };}

endgroupValores quedevem serobservados

variável

Número de vezesque a condição deveocorrer durantea simulação

Definindo um covergroup

Page 138: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 138

Cobertura Funcional

cg1 cg1_inst = new();

Instanciando um covergroup

Define a instânciacg1_instdo covergroup cg1

O uso deparêntesesé opcional

Page 139: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 139

Cobertura Funcional

Instanciando um covergroup

Um covergroup pode ser instanciado dentro de um módulo,

uma interface, um bloco de programa, ou de uma classe.

Não é suportado por SystemVerilog:Atribuições nulas a uma instância de um covergroup

cg1 cg1_inst = null;

Atribuições diretas entre duas instâncias de covergroups

cg1_inst1 = cg_inst2;

Page 140: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 140

Cobertura Funcional

Definindo um coverpoint

As variáveis cujos valores devem ser observados são definidas

como coverpoints dentro de um ou mais covergroups.

Durante a simulação os valores das variáveis definidas como

coverpoints são medidos e armazenados na base de dados da

cobertura.

Expressões de mais de 32 bits não são suportadas!

Page 141: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 141

Cobertura Funcional

Caixas (bins)

Um coverpoint bin é usado para definir os valores que devem

ser medidos e armazenados durante uma simulação.

A definição do intervalo de um bin pode ser em qualquer base

(binária, decimal, hexadecimal, ou octal).

Adicionalmente, o intervalo de um bin pode ter uma constante

ou uma expressão.

Page 142: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 142

Cobertura Funcional

Caixas (bins), exemplos:

Para definir o intervalo como sendo os valores de 0 a 5 e 10:

bins b1 = {[0:5], 10};

Para definir o intervalo como sendo os valores de 0 a 5 e 9 a 14:

bins b1 = {[0:5], [9:14]};

Para definir o intervalo como sendo os valores 0, 2, e 7:

bins b1 = {0,2,7};

Page 143: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 143

Cobertura Funcional

Caixas (bins), exemplos:

Para definir o intervalo como sendo os valores em hexadecimal de 0 a F:

bins b1 = {[‘h0:‘hF]};

Para definir o intervalo como sendo os valores menor que ou igual a 5, e 10:

bins b1 = {[$:5], 10};

Para definir o intervalo como sendo os valores maior que ou igual a 7:

bins b1 = {[7:$]};

Page 144: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 144

Cobertura Funcional

Ignorando valores nos resultados de cobertura

Valores associados a um coverpoint podem ser ignorados na

medição da cobertura especificando-os como ignore_bins.

Os valores especificados com ignore_bins são excluídos da

medição de valores de coverpoints e não resultam em um

incremento na contagem da cobertura.

Page 145: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 145

Cobertura Funcional

ignore_bins ignore_vals = {2, 3};

Ignorando valores nos resultados de cobertura

Palavra-chave paradefinir valores a seremignorados

Os valores 2 e 3serão ignoradosna medição dacobertura

Page 146: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 146

Cobertura Funcional

Especificando valores como sendo ilegais

Valores associados a um coverpoint podem ser definidos como

ilegais na medição da cobertura especificando-os como

illegal_bins.

Se um valor de um coverpoint for detectado e tiver sido

especificado com illegal_bins, a simulação gera um erro.

Page 147: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 147

Cobertura Funcional

illegal_bins ill_vals = {1, 2};

Especificando valores como sendo ilegais

Palavra-chave paradefinir valores queserão consideradosilegais

Os valores 1 e 2são ilegais egerarão um errose detectados

Page 148: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network 148

Cobertura Funcional

Diferenças e semelhanças entre illegal_bins e

ignore_bins

O cálculo da cobertura para illegal_bins é exatamento o

mesmo para ignore_bins.

A diferença entre os dois é que no caso de detectados illegal_bins,

a simulação reporta um erro.

Não são reportados erros no caso de ignore_bins.

Illegal_bins têm precedência sobre quaisquer outros bins, o que

implica que eles resultam em um erro em tempo de execução,

mesmo caso eles estejam incluídos em um outro bin.

Page 149: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Cobertura Funcional

Geração deestímulos

Geração deestímulos

Simulação doDUV

Simulação doDUV

Medida decobertura

Medida decobertura

Análise decobertura

Análise decobertura

Page 150: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Exemplos

Page 151: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Exemplo MPEG4

Conexão de dados

Conexão de configuração

DCDCT

bitstream SUM

PIACDC QI IDCT

DVM CBP RGB

SI

Page 152: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Exemplo MPEG4

Testbench depois do RTL, com ferramenta para templates.Pior problema: erramos em fazer um só testbench para PIACDC e QI

Tempo entre Verificação dos sub-blocos o.k. e verificação do conjunto dos DUVs o.k.: 3 semanas

Tempo entre Verificação o.k. e FPGA rodando: 3 dias

Page 153: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Exemplo Lacre Eletrônico

FEC EEC

DES

MAQ_EST

Page 154: BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG elmar@dsc.ufcg.edu.br.

BRAZIL IPBRAZIL IP

The BrazilIP Network

BRAZIL IPBRAZIL IP

The BrazilIP Network

Exemplo Lacre Eletrônico

Testbench antes do RTL, sem ferramenta para templatesPior problema: Verificação da junção dos sub-blocos feita depois já ter iniciado verificação de 2 blocos.

Tempo entre Verificação dos sub-blocos o.k. e verificação do conjunto dos DUVs o.k.: 1 dia

Tempo entre Verificação o.k. e FPGA rodando: 0