Verificao funcional por simulao Curso do projeto Fnix

  • Slides: 60
Download presentation
Verificação funcional por simulação Curso do projeto Fênix Agosto 2003 Elmar Melcher UFCG elmar@dsc.

Verificação funcional por simulação Curso do projeto Fênix Agosto 2003 Elmar Melcher UFCG [email protected] ufcg. edu. br http: //lad. dsc. ufcg. edu. br/ip BRAZIL IP The Brazil. IP Network

Roteiro • Introdução – – Motivação Verificação funcional no fluxo de projeto Definições Cobertura

Roteiro • Introdução – – Motivação Verificação funcional no fluxo de projeto Definições Cobertura da verificação • Testbench – Elementos básicos – Regras de projeto – Implementação BRAZIL IP The Brazil. IP Network

Motivação • Entregar produtos e ganhar dinheiro. • Custo e tempo de corrigir um

Motivação • 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 BRAZIL IP The Brazil. IP Network

Problema para empresas • Mais da metade do esforço de projeto está na verificação.

Problema para empresas • Mais da metade do esforço de projeto está na verificação. – Um testbench muitas vezes contém mais linhas que a própria descrição do projeto. – A equipe de engenheiros de verificação é maior do que a equipe de projetistas. • Verificação é difícil. • Engenheiros da Motorola no SBCCI 2002: “Estamos procurando trabalhos sobre verificação” BRAZIL IP The Brazil. IP Network

Problema para empresas • Processo de projeto está indo direito. • Procura para “bons”

Problema para empresas • Processo de projeto está indo direito. • Procura para “bons” engenheiros de verificação em todas as empresas. BRAZIL IP The Brazil. IP Network

Caso famoso: INTEL • Problema descoberto no Pentium em 1994 por um professor de

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, confiança em INTEL caiu. • Abriu o caminho para crescimento maior de AMD. • Prejuízo de 500 MUS$ (? ) BRAZIL IP The Brazil. IP Network

Caso famoso: NASA • Mars Climate Orbiter de 1999 • Erro de verificação de

Caso famoso: NASA • Mars Climate Orbiter de 1999 • Erro de verificação de sistema fiz com que o Orbiter de voava muito próximo à atmosfera marciana e queimava. • Problema era um mistura de unidades métricas e unidades inglesas que causou um erro no cálculo da trajetória. BRAZIL IP The Brazil. IP Network

Custo da verificação • Um mal necessário – sempre leva tempo demais e custa

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

Verificação de IP • Ninguém usa uma IP na qual não confia. • Como

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

Isso funciona mesmo ? • A verificação funcional deve responder a esta pergunta. •

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

Como saber fazer ? • Muitos livros falam sobre implementação. • Poucos falam sobre

Como saber fazer ? • Muitos livros falam sobre implementação. • Poucos falam sobre verificação. – Writing Testbenches: Functional Verification of HDL Models by Janick Bergeron, 2 nd edition, Kluwer. Academic Publishers, 2003 • Material usado para fazer este curso: – Functional Verification of Hardware Design, Baback Izadi et al. , SUNYNew Paltz e IBM, outono 2002, http: //www. engr. newpaltz. edu/~bai/CSE 45493/ – Principles of Verifiable RTL Design, Bening et al. , Kluwer 2000 – System-on-a-chip Verification, Rashnikar et al. , Kluwer 2001 – – EVITA, Curso em CD, Aldec VHDL Testbench Methodologies, Raytheon Company, 5/3/01 A staged Verification Process with inherent testbench code reusability , Klaus-Dieter Schubert, IBM Germany, DVE 2001 Técnicas de Verificação, Alexandre Amory, PUCRS BRAZIL IP The Brazil. IP Network

Definições • Verificação funcional – confrontar um modelo a ser verificado a outro modelo

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

Verificação estática • Analisadores de código HDL, Lint ou linting tools • Tipos de

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 resetadas BRAZIL IP The Brazil. IP Network

Fluxo de projeto Verificação Especificação Função Descrição comportamental Função Descrição RTL & Timing Função

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

Modelo de Reconvergência • Representação conceptual do processo de verificação • Questão importante: verificar

Modelo de Reconvergência • Representação conceptual do processo de verificação • Questão importante: verificar o quê? Síntese Verificação BRAZIL IP The Brazil. IP Network

Nível hierárquico adequado • Verificação funcional pode ser realizada a vários níveis: – –

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

Nível hierárquico adequado • Como decidir qual nível? – Nível mais baixo fornece mais

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 verificadas implicitamente com menos esforço desde que os cenários e vetores de entrada são completos. • Decisão depende do projeto. • Faz parte do plano de verificação – para cada elemento existe uma seção nele. BRAZIL IP The Brazil. IP Network

Verificação em vários níveis • Na verificação no nível de sistema é suficiente verificar

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

Fator Humano • Alguém tem que interpretar a especificação e transformar na função correta.

Fator Humano • Alguém tem que interpretar a especificação e transformar na função correta. Síntese Especificação Interpretação Verificação BRAZIL IP The Brazil. IP Network

Reduzir o erro humano • Automação – eliminar intervenção humana no processo. – Realidade

Reduzir o erro humano • 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 BRAZIL IP The Brazil. IP Network

Quem pode errar ? • Um projetista pode implementar uma funcionalidade de forma errada

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

Quem pode errar ? • Um projetista pode esquecer de implementar alguma funcionalidade ?

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

Verificação funcional • Pode provar a presença de erros, mas não pode provar a

Verificação funcional • Pode provar a presença de erros, mas não pode provar a ausência de erros. Especificação formal Síntese RTL Interpretação Verificação BRAZIL IP The Brazil. IP Network

Abordagens de Verificacão • Black Box • Grey Box • White Box BRAZIL IP

Abordagens de Verificacão • Black Box • Grey Box • White Box BRAZIL IP The Brazil. IP Network

Black Box DUV • Entradas, saídas, função • Função bem documentada (ou não. .

Black Box DUV • 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. BRAZIL IP The Brazil. IP Network

White Box DUV • Todas as variáveis internas visíveis. • Podem ser acessadas para

White Box DUV • Todas as variáveis internas visíveis. • Podem ser acessadas para verificação. • Para teste de unidades pequenas folhas da hierarquia BRAZIL IP The Brazil. IP Network

Grey Box DUV • Uma seleção restrita de variáveis internas pode ser usado para

Grey Box DUV • Uma seleção restrita de variáveis internas pode ser usado para verificação. • Exemplo: registradores de um processador BRAZIL IP The Brazil. IP Network

Plano de Verificação • Especificação do processo de verificação; • Define o quê será

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: Verification Coverage – idealmente a definição de sucesso “de primeira”. BRAZIL IP The Brazil. IP Network

Plano de Verificação • Feito a partir da especificação do DUV. • Define os

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

Plano de Verificação • Pertence à equipe: – todo mundo envolvido é responsável, –

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

Conteudo do Plano de Verificação • • Resumo do sistema Níveis de abstração Tecnologias

Conteudo do Plano de Verificação • • Resumo do sistema Níveis de abstração Tecnologias de Verificação Modelos de referência a ser usados Fluxograma da verificação Definição dos estímulos Testes de regressão BRAZIL IP The Brazil. IP Network

Conteúdo do Plano de Verificação • Gerência de falhas • Plano de recursos •

Conteúdo do Plano de Verificação • Gerência de falhas • Plano de recursos • Cronograma BRAZIL IP The Brazil. IP Network

Os três mandamentos da verificação funcional Você deve solicitar mais seu projeto do que

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. BRAZIL IP The Brazil. IP Network Você não deve passar a um nível mais alto de hierarquia antes de atingir cobertura completa.

Testbench - Definição e Ideal • Definição: Montagem em volta do Design Under Verification

Testbench - Definição e Ideal • Definição: Montagem em volta do Design Under Verification • • transaction-based self-checking random-constrained coverage-driven BRAZIL IP The Brazil. IP Network

Transação • Definição: Uma operação que inicia num determinado momento no tempo e termina

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 uma instrução de máquina para um processador BRAZIL IP The Brazil. IP Network

FIFO sinal Testbench refmod S o u r c e Reference Model duv Driver

FIFO sinal Testbench refmod S o u r c e Reference Model duv Driver Design Under Verification BRAZIL IP The Brazil. IP Network Monitor C h e c k e r

Definições • Testbench – – – montagem de teste para simulação. Código escrito em

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

Elementos de um testbench Tudo a mesma coisa: • UUV (Unit Under Test) –

Elementos de um testbench Tudo a mesma coisa: • UUV (Unit Under Test) – unidade a ser testado • MUT (Model Under Test) • DUT (Device Under Test Design Under Test) • EUV (Entity Under Verification) • DUV (Design Under Verification) BRAZIL IP The Brazil. IP Network

Elementos de um testbench • Source – envia transações de entrada para o driver

Elementos de um testbench • Source – envia transações de entrada para o driver e o modelo de referencia • Checker – compara as transações de saída recebidos do monitor com as um modelo de referência. – É bom ser reutilizável, ou seja, depender pouco do DUV. • Modelo de referência – tipicamente timeless BRAZIL IP The Brazil. IP Network

Elementos de um testbench • Driver – recebe transações de entrada e os converta

Elementos de um testbench • Driver – recebe transações de entrada e os converta em transições de sinais da interface de entrada do DUV • Monitor – observe sinais da interface de saída do DUV, implementa o protocolo de sinalização e gera transações de saída que ele repassa para o checker BRAZIL IP The Brazil. IP Network

FIFO sinal Reutilização Design Under Verification duv_2 Design Under Verification BRAZIL IP The Brazil.

FIFO sinal Reutilização Design Under Verification duv_2 Design Under Verification BRAZIL IP The Brazil. IP Network Checker_2 Driver_1 Source_1 duv_1 Monitor_2 Reference Model_1

FIFO sinal Refinamento de um Modelo de Referência Reference Model_1 Reference Model_2 BRAZIL IP

FIFO sinal Refinamento de um Modelo de Referência Reference Model_1 Reference Model_2 BRAZIL IP The Brazil. IP Network Reference Model_3 Checker Source Reference Modelsão

FIFO sinal Desenvolvimento de Modelo de Referência e DUV Reference Model_1 duv_1 Design Under

FIFO sinal Desenvolvimento de Modelo de Referência e DUV Reference Model_1 duv_1 Design Under Verification Reference Model_2 duv_2 Design Under Verification BRAZIL IP The Brazil. IP Network Reference Model_3 duv_3 Design Under Verification

FIFO sinal Desenvolvimento do Testbench BRAZIL IP The Brazil. IP Network Checker_2 Monitor_2 Reference

FIFO sinal Desenvolvimento do Testbench BRAZIL IP The Brazil. IP Network Checker_2 Monitor_2 Reference Model_2 Driver_3 Monitor_1 Driver_2 Source_2 Reference Model_2

Regras de projeto • Driver – Acesso ao DUV somente pela interface do mesmo;

Regras de projeto • Driver – 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; faz verificação de protocolo (baixo nivel); envia transações ao checker; independente de driver e checker. BRAZIL IP The Brazil. IP Network

Regras de projeto • Source – não envia sinais diretamente para o DUV •

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); • Modelo de Referência – modela a funcionalidade, mas não a interface BRAZIL IP The Brazil. IP Network

HDL Comportamental • RTL ´ comportamental – RTL foca implementação – código comportamental é

HDL Comportamental • RTL ´ comportamental – RTL foca implementação – código comportamental é mais rápido de escrever e mais simples • descrever sistema e seu TB requer conhecimento de toda a linguagem System. C BRAZIL IP The Brazil. IP Network

A Arte da verificação • Estou exercitando todos os possíveis cenários de entrada? •

A Arte da verificação • Estou exercitando todos os possíveis cenários de entrada? • Como vou saber se ocorreu um erro? BRAZIL IP The Brazil. IP Network

Ideal x Real • Gerar todas as possíveis combinações de entrada tem custo inviável

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

Tipos de Estimulos • Compliance Testing – verificar situações mencionadas na especificação • Corner

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

Implementação de Checker, Monitor e Modelo de Referência • Forma mais óbvia: inspeção visual

Implementação de Checker, Monitor e Modelo de Referência • 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. BRAZIL IP The Brazil. IP Network

Implementação de Checker, Monitor e Modelo de Referência • Self Checking Testbench – Driver

Implementação de Checker, Monitor e Modelo de Referência • Self Checking Testbench – Driver e Monitor implementado em código do simulador (System. C); – Checker implementado em System. C compara dados recebidos do Monitor com dados esperados; BRAZIL IP The Brazil. IP Network

Implementação do checker • A simulação de rodar quieto enquanto tudo estiver o. k.

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

Implementação do Modelo de Referência • Md. R implementado em código – System. C,

Implementação do Modelo de Referência • Md. R implementado em código – System. C, C++, C, ou Pascal, Java etc. • Checker compara diretamente saída do Monitor com a saída do Md. R. • Md. R fácil de escrever. – Basic, Matlab, etc. • Problema de comunicação com System. C, pode usar IPC ou arquivos. • Md. R ainda mais fácil de escrever. BRAZIL IP The Brazil. IP Network

Implementação do Modelo de Referência • Md. R implementado em código (continuação) – possibilita

Implementação do Modelo de Referência • Md. R 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 ! BRAZIL IP The Brazil. IP Network

Cobertura • Ao acordar de manhã ainda está rodando. . . • Quando vou

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

Cobertura de código • cobertura de linhas – mostra quantas vezes uma linhas de

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

Cobertura de código • Cobertura de eventos – verifica se todos os eventos na

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

Exemplo PCI/OCP pci_clk ocp_clk pci_reset_n ocp_Reset_n pci_ad ocp_MAddr pci_frame_n ocp_MCmd DUV Escrita ocp_MData ocp_SCmd.

Exemplo PCI/OCP pci_clk ocp_clk pci_reset_n ocp_Reset_n pci_ad ocp_MAddr pci_frame_n ocp_MCmd DUV Escrita ocp_MData ocp_SCmd. Accept ocp_SData ocp_SResp ocp_MData. Valid ocp_SData. Accept BRAZIL IP The Brazil. IP Network

Exemplo Core. Creator stim. v GERADO PELO CORECREATO core_testbench. v Q_MASTER OCP_MONITOR IP CORE

Exemplo Core. Creator stim. v GERADO PELO CORECREATO core_testbench. v Q_MASTER OCP_MONITOR IP CORE DO USUÁRIO ESCRITO PELO USUÁRIO Porta OCP STIM. S DESCRIÇÃO VERILOG + DESCRIÇÃO RTL PARA CORECREATOR clock reset BRAZIL IP The Brazil. IP Network