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

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

BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG

Apresentações semelhantes


Apresentação em tema: "BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG"— Transcrição da apresentação:

1 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG

2 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Roteiro Introdução Motivação Fluxo de projeto Verificação Tipos de verificação Verificação funcional Abordagens de verificação Plano de verificação

3 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Roteiro Metodologia BVM Testbench Elementos básicos Regras de projeto Implementação Tipos de estímulos Cobertura Biblioteca OVM

4 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Roteiro Exemplos Codificador DPCM Decodificador MPEG4 Lacre Eletrônico

5 BRAZIL IP The BrazilIP Network BRAZIL 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 de dispositivos 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 de dispositivos 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.”

6 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Motivação

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

8 BRAZIL IP The BrazilIP Network BRAZIL 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$ (?)‏

9 BRAZIL IP The BrazilIP Network BRAZIL 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.

10 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Fases de um projeto de hardware Síntese Simulação Pós-síntese Simulação Pós-síntese Prototipação Implementaçã o do Código RTL Implementaçã o do Código RTL Verificação funcional Verificação funcional 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

11 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Custo versus Tempo Entregar produtos e ganhar dinheiro. Custo e tempo de corrigir um defeito cresce quando descoberto mais tarde no ciclo de vida do produto. na especificação na simulação na prototipagem na fabricação em volume no uso pelo cliente Custo Tempo

12 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação

13 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Tipos de verificação Verificação: Dinâmica ou Funcional. Estática ou Formal. Híbrida.

14 BRAZIL IP The BrazilIP Network BRAZIL 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]

15 BRAZIL IP The BrazilIP Network BRAZIL 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.

16 BRAZIL IP The BrazilIP Network BRAZIL 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.

17 BRAZIL IP The BrazilIP Network BRAZIL 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.

18 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Custo da verificação Um mal necessário sempre leva tempo demais e custa caro demais mas indispensável. porque afeta diretamente os três requisitos: cronograma custo qualidade

19 BRAZIL IP The BrazilIP Network BRAZIL 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 empresa deve poder dormir tranqüilo se a verificação responde “sim”.

20 BRAZIL IP The BrazilIP Network BRAZIL 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.

21 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação estática Analisadores de código HDL, Lint ou linting tools Tipos 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

22 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Fluxo de projeto Especificação Descrição comportamental Descrição estrutural Layout Função Descrição RTL Função & Timing consumo, área, etc. Verificação

23 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Projeto x Verificação G C F B A E D Intenção do projeto Especificação Implementação H

24 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Projeto x Verificação G C F A E D Intenção do projeto Especificação Implementação H

25 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Projeto x Verificação G F A D Intenção do projeto Especificação Implementação H

26 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Projeto x Verificação F A D Intenção do projeto Especificação Implementação H

27 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Projeto x Verificação F A D Intenção do projeto Especificação Implementação H

28 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Projeto x Verificação F A D Intenção do projeto Especificação Implementação H

29 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Projeto x Verificação FA D Intenção do projeto Especificação e Implementação H

30 BRAZIL IP The BrazilIP Network BRAZIL 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

31 BRAZIL IP The BrazilIP Network BRAZIL 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ção para cada elemento existe uma seção nele.

32 BRAZIL IP The BrazilIP Network BRAZIL 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.

33 BRAZIL IP The BrazilIP Network BRAZIL 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.

34 BRAZIL IP The BrazilIP Network BRAZIL 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).

35 BRAZIL IP The BrazilIP Network BRAZIL 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.

36 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Testbench Montagem 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.

37 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional DUV Testbenc h DUV Referenc e Model Referenc e Model

38 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional DUV Referenc e Model Referenc e Model Inserir estímul o Compar ar resposta

39 BRAZIL IP The BrazilIP Network BRAZIL 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ímulos Direcionados. Corner-cases. Reais.

40 BRAZIL IP The BrazilIP Network BRAZIL 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.

41 BRAZIL IP The BrazilIP Network BRAZIL 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.

42 BRAZIL IP The BrazilIP Network BRAZIL 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

43 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Resumo

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

45 BRAZIL IP The BrazilIP Network BRAZIL 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.

46 BRAZIL IP The BrazilIP Network BRAZIL 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.

47 BRAZIL IP The BrazilIP Network BRAZIL 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

48 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Abordagens de Verificação Black Box Grey Box White Box

49 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Black Box Entradas, saídas, função Função bem documentada (ou não...)‏ Para verificar, é preciso entender a função e prever as saídas sabendo as entradas. DUV

50 BRAZIL IP The BrazilIP Network BRAZIL 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

51 BRAZIL IP The BrazilIP Network BRAZIL 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

52 BRAZIL IP The BrazilIP Network BRAZIL 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”.

53 BRAZIL IP The BrazilIP Network BRAZIL 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

54 BRAZIL IP The BrazilIP Network BRAZIL 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

55 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Conteúdo do Plano de Verificação Resumo do sistema Níveis de abstração Tecnologias de Verificação Modelos de referência a serem usados Fluxograma da verificação Definição dos estímulos Testes de regressão

56 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Conteúdo do Plano de Verificação Gerência de falhas Plano de recursos Cronograma

57 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Os três mandamentos da 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.

58 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Metodologia BVM

59 BRAZIL IP The BrazilIP Network BRAZIL 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.

60 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Fluxo de projeto Síntese Simulação Pós-síntese Simulação Pós-síntese Prototipação Implementaçã o do Código RTL Implementaçã o do Código RTL Verificação funcional Verificação funcional 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 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íntese Simulação Pós-síntese Simulação Pós-síntese Prototipação Implementaçã o do DUV (Design Under Verification)‏ Implementaçã o do DUV (Design Under Verification)‏ Verificação funcional Verificação funcional

61 BRAZIL IP The BrazilIP Network BRAZIL 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.

62 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Testbench da metodologia VeriSC DUV Nível de transações Nível de sinais

63 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Testbench Definição: Montagem em volta do Design Under Verification

64 BRAZIL IP The BrazilIP Network BRAZIL 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

65 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Testbench Design Under Verification TDrive r Monitor SourceSource Reference Model duv CheckerChecker channel sinal refmod Acto r

66 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Elementos de um testbench Source Envia transações de entrada para o driver e para o reference model. Checker Compara 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 Model Tipicamente timeless

67 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Elementos de um testbench TDriver Recebe transações de entrada e as converte em transições de sinais da interface de entrada do DUV. Monitor Observa sinais da interface de saída do DUV e gera transações de saída que ele repassa para o checker. Actor Observa sinais da interface de saída do DUV e implementa o protocolo de sinalização.

68 BRAZIL IP The BrazilIP Network BRAZIL 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. Monitor Acesso somente pela interface do DUV; Envia transações ao checker; Independente de driver e checker. Actor Faz verificação de protocolo (baixo nível);

69 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Regras de projeto Source Não envia sinais diretamente para o DUV Checker Nunca escreve (força sinal) dentro do DUV; Pode eventualmente ler informação do DUV (por exemplo registradores internos); Reference Model Modela a funcionalidade, mas não a interface

70 BRAZIL IP The BrazilIP Network BRAZIL 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.

71 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passos da metodologia BVM Passo 1: Testbench Conception 1.1 Single Refmod 1.2 Double Refmod 1.3 DUV Emulation Passo 2: Hierarchical Refmod Decomposition 2.1 Refmod Decomposition 2.2 Single Hierarchical Refmods 2.3 Hierarchical Refmods Verifications

72 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passos da metodologia BVM Passo 3: Hierarchical Testbench 3.1 Double Hierarchical Refmods 3.2 Hierarchical DUV Emulation 3.3 Hierarchical DUV Passo 4: Full Testbench

73 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 1: Testbench Conception pre- sourc e Reference Model sink 1.1 Single Refmod

74 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 1: Testbench Conception tb_single_refmod pre_ sourc e refmod sink 1.1 Single Refmod – Templates (eTBc)‏

75 BRAZIL IP The BrazilIP Network BRAZIL 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

76 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 1: Testbench Conception 1.1 Single Refmod Reference 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.

77 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 1: Testbench Conception SourceSource Reference Model CheckerChecker 1.2 Double Refmod

78 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network tb_double_refmod Passo 1: Testbench Conception sourcesource refmod checkerchecker 1.2 Double Refmod – Templates (eTBc)‏

79 BRAZIL IP The BrazilIP Network BRAZIL 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

80 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 1: Testbench Conception 1.2 Double Refmod Testar 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.

81 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 1: Testbench Conception TDriver Source Checker Reference Model TDriver_0 1.3 DUV Emulation Monitor_ 0 Actor _0 Reference Model Monitor Actor

82 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network top duv_emulation tb_duv Passo 1: Testbench Conception tdriver refmod tdriver_duv refmod 1.3 DUV Emulation – Templates (eTBc)‏ source checker monito r _duv in_ acto r monit or out _ acto r

83 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 1: Testbench Conception 1.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

84 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 1: Testbench Conception 1.3 DUV Emulation Testar TDriver(s), Actor(s) e Monitor(es)‏ Tdriver-Monitor_0 e Tdriver_0-Monitor precisam ser simétricos

85 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition Reference Model_2 channel sinal Reference Model_1 Reference Model 2.1 Refmod Decomposition Reference Model_3

86 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition 2.1 Refmod Decomposition Reference Model é dividido hierarquicamente como o DUV.

87 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition pre- sourc e Reference Model_1 sink_ Single Hierarchical Refmods

88 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition pre- sourc e _2 Reference Model_2 sink_ Single Hierarchical Refmods

89 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition pre- sourc e _3 Reference Model_3 sink 2.2 Single Hierarchical Refmods

90 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network tb_single_refmod Passo 2: Hierarchical Refmod Decomposition pre_ sourc e refmod sink 2.2 Single Hierarchical Refmods – Templates (eTBc)‏

91 BRAZIL IP The BrazilIP Network BRAZIL 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.

92 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition 2.2 Single Hierarchical Refmods Cada bloco do Reference Model deve ter suas entradas e saída testadas

93 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition channel sinal Reference Model Source Checker 2.3 Hierarchical Refmods Verification Reference Model_2 Reference Model_1 Reference Model_3

94 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition channel sinal 2.3 Hierarchical Refmods Verification – Templates (eTBc)‏ tb_hierarchical_refmod refmod source checker refmod

95 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition channel sinal 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.

96 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 2: Hierarchical Refmod Decomposition 2.3 Hierarchical Refmods Verification A junção dos reference models hierárquicos deve ser comparada com o Modelo original para ver se ainda é equivalente.

97 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench SourceSource Reference Model_1 C h e c k e r _1 Reference Model_1 3.1 Double Hierarchical Refmods

98 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench S o u r c e _2 Reference Model_2 C h e c k e r _2 Reference Model_2 3.1 Double Hierarchical Refmods

99 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench S o u r c e _3 Reference Model_3 CheckerChecker 3.1 Double Hierarchical Refmods

100 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network tb_double_refmod Passo 3: Hierarchical Testbench sourcesource refmod checkerchecker 3.1 Double Hierarchical Refmods – Templates (eTBc)‏

101 BRAZIL IP The BrazilIP Network BRAZIL 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.

102 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench TDriver Source Checker_1 Reference Model_1 TDriver_2 3.2 Hierarchical DUV Emulation Monito r _0 Act or _0 Reference Model_1 Monito r _1 Act or _1

103 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench TDriver_2 Source_2 Checker_2 Reference Model_2 TDriver_3 3.2 Hierarchical DUV Emulation Monito r _1 Act or _1 Reference Model_2 Monito r _2 Act or _2

104 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench TDriver_3 Source_3 Checker Reference Model_3 TDriver_0 3.2 Hierarchical DUV Emulation Monito r _2 Act or _2 Reference Model_3 Monito r Act or

105 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network top duv_emulation tb_duv Passo 3: Hierarchical Testbench tdriver source checker refmod tdriver_duv 3.2 Hierarchical DUV Emulation – Templates (eTBc)‏ monito r _duv in_ acto r refmod monit or out _ acto r

106 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench 3.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

107 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench TDriver Source Checker_1 Reference Model_1 Design Under Verification DUV_1 3.3 Hierarchical DUV Monito r _1 Act or _1 channel sinal

108 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench TDriver_2 Source_2 Checker_2 Reference Model_2 Design Under Verification DUV_2 3.3 Hierarchical DUV Monito r _2 Act or _2

109 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench TDriver_3 Source_3 Checker Reference Model_3 Design Under Verification DUV_3 3.3 Hierarchical DUV Monito r Act or

110 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network top tb_duv Passo 3: Hierarchical Testbench tdriver source checker refmod Design Under Verification DUV 3.3 Hierarchical DUV – Templates (eTBc)‏ monit or out _ acto r

111 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 3: Hierarchical Testbench 3.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

112 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 4: Full Testbench TDriver Source Checker DUV _1 DUV _2 DUV _3 Reference Model_2 Reference Model_1 Reference Model_3 Monito r Act or

113 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Passo 4: Full Testbench TDriver Source Checker Reference Model Design Under Verification duv Monito r Act or

114 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network top tb_duv Passo 4: Full Testbench tdriver source checker refmod Design Under Verification duv monit or out _ acto r Templates (eTBc)‏

115 BRAZIL IP The BrazilIP Network BRAZIL 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 *

116 BRAZIL IP The BrazilIP Network BRAZIL 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.

117 BRAZIL IP The BrazilIP Network BRAZIL 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?

118 BRAZIL IP The BrazilIP Network BRAZIL 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.

119 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Tipos de Estimulos Compliance Testing Verificar situações mencionadas na especificação Corner Case Verificar situações críticas (extremas) do projeto Real Code Utilizar estímulos reais da aplicação Random Cria situações “inusitadas” Cobertura tipicamente melhor do que os outros tipos porque pode gerar cenários que seriam esquecidos.

120 BRAZIL IP The BrazilIP Network BRAZIL 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.

121 BRAZIL IP The BrazilIP Network BRAZIL 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.

122 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network A Arte da verificação Self Checking Testbench Tdriver, Monitor e Actor implementados em código do simulador (SystemVerilog); Checker implementado em SystemVerilog compara dados recebidos do Monitor com dados esperados;

123 BRAZIL IP The BrazilIP Network BRAZIL 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.

124 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Implementação do Reference Model Refmod implementado em código SystemVerilog, 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.

125 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Implementação do 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 !

126 BRAZIL IP The BrazilIP Network BRAZIL 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ódigo funcional

127 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Cobertura de código Cobertura de linhas mostra quantas vezes uma linhas de código (um comando) foi executada também chamada cobertura de blocos ou cobertura de segmentos Cobertura de chaveamento conta quantas vezes cada sinal mudou de nível lógico Cobertura de estados de FSM conta quantas vezes se chegou em cada estado quais transições entre estados foram simuladas

128 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Cobertura de código Cobertura de eventos verifica se todos os eventos na lista de sensibilidade de todos processos foram exercitadas Cobertura de desvios resultado semelhante ao cobertura de blocos Cobertura de expressões verifica se todas as combinações de expressões lógicas foram exercitadas Cobertura de caminhos verifica passagem variada por seqüência de comandos if...else

129 BRAZIL IP The BrazilIP Network BRAZIL 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”

130 BRAZIL IP The BrazilIP Network BRAZIL 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

131 BRAZIL IP The BrazilIP Network BRAZIL 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].

132 BRAZIL IP The BrazilIP Network BRAZIL 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).

133 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Cobertura funcional

134 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Onde Fazer Cobertura Funcional? Sourc e TDriver TMonito r Chec ker Reference Model DUV Cobertura Funcional

135 BRAZIL IP The BrazilIP Network BRAZIL 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.

136 BRAZIL IP The BrazilIP Network BRAZIL 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.

137 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network 137 Cobertura Funcional covergroup clk); coverpoint b { bins b1 = {0, 1, 2, 3}; bins b2 = { [5:8], 9 }; } endgroup Valores que devem ser observados variável Número de vezes que a condição deve ocorrer durante a simulação Definindo um covergroup

138 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network 138 Cobertura Funcional cg1 cg1_inst = new(); Instanciando um covergroup Define a instância cg1_inst do covergroup cg1 O uso de parênteses é opcional

139 BRAZIL IP The BrazilIP Network BRAZIL 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;

140 BRAZIL IP The BrazilIP Network BRAZIL 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!

141 BRAZIL IP The BrazilIP Network BRAZIL 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.

142 BRAZIL IP The BrazilIP Network BRAZIL 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};

143 BRAZIL IP The BrazilIP Network BRAZIL 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:$]};

144 BRAZIL IP The BrazilIP Network BRAZIL 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.

145 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network 145 Cobertura Funcional ignore_bins ignore_vals = {2, 3}; Ignorando valores nos resultados de cobertura Palavra-chave para definir valores a serem ignorados Os valores 2 e 3 serão ignorados na medição da cobertura

146 BRAZIL IP The BrazilIP Network BRAZIL 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.

147 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network 147 Cobertura Funcional illegal_bins ill_vals = {1, 2}; Especificando valores como sendo ilegais Palavra-chave para definir valores que serão considerados ilegais Os valores 1 e 2 são ilegais e gerarão um erro se detectados

148 BRAZIL IP The BrazilIP Network BRAZIL 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.

149 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Cobertura Funcional Geração de estímulos Geração de estímulos Simulação do DUV Simulação do DUV Medida de cobertura Medida de cobertura Análise de cobertura Análise de cobertura

150 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplos

151 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplo PCI/OCP DUV Escrita pci_clk ocp_clk ocp_Reset_n ocp_MAddr ocp_MCmd ocp_MData ocp_SCmdAccept ocp_SData ocp_SResp ocp_MDataValid ocp_SDataAccept pci_reset_n pci_ad pci_frame_n

152 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplo Gradiente clk rx ry XXXX pix último pixel da linha primeiro pixel da linhaprimeiro pixel da imagem último pixel da imagem

153 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplo MSK Modulador DUV1 Canal + Circuitos analógicos Demodulador DUV2 bitclk bit control valido dado controle msk c

154 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplo Java DUV MIC_3 RAM Dmem Amem OE WE clk BIPUSH byte IADD SWAP... Mnemônico Byte- code 0x10 0x60 0x5F Descrição Empilhar bytecode seguinte Desempilhar duas palavras, somar, empilhar resultado Trocar posição de duas palavras no topo da pilha

155 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplo CoreCreator DESCRIÇÃO VERILOG + DESCRIÇÃO RTL PARA CORECREATOR OCP_MONITOR IP CORE DO USUÁRIO Q_MASTER core_testbench.v stim.v STIM.S clockreset GERADO PELO CORECREATO ESCRITO PELO USUÁRIO Porta OCP

156 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplo MPEG4 Conexão de dados Conexão de configuração DCDCT bitstrea m SU M PIACDCQIQI IDC T DV M CBPRGB SISI

157 BRAZIL IP The BrazilIP Network BRAZIL 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

158 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplo Lacre Eletrônico FEC EEC DES MAQ_ES T

159 BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Exemplo Lacre Eletrônico Testbench antes do RTL, sem ferramenta para templates Pior 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


Carregar ppt "BRAZIL IP The BrazilIP Network BRAZIL IP The BrazilIP Network Verificação funcional Curso do programa Brazil-IP Elmar Melcher UFCG"

Apresentações semelhantes


Anúncios Google