Verificação MO801/MC912.

Slides:



Advertisements
Apresentações semelhantes
Circuitos Lógicos e Organização de Computadores Capítulo 8 –Circuitos Seqüenciais Síncronos Ricardo Pannain
Advertisements

Circuitos Lógicos e Organização de Computadores Capítulo 6 – Blocos com Circuitos Combinacionais Ricardo Pannain
Projecto de Hardware com FPGAs
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
VHDL VHSIC Hardware Description Language Very High Speed Integrated Circuits VHDL-87 VHDL-93.
VHDL VHSIC Hardware Description Language Very High Speed Integrated Circuits VHDL-87 VHDL-93.
abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto.
Array aggregates type columns is range 1 to 4; type row is array (columns) of std_logic; variable r1 : row := ('1', '0', '1', '1'); variable r2 : row :=
The new way! The old way... TC – DEI, 2005/2006.
VHDL - VHSIC Hardware Description Language
VHDL - VHSIC Hardware Description Language
Fernando Gehm Moraes Ney Laert Vilar Calazans
Fernando Moraes e Ney Laert Vilar Calazans
César Augusto Missio Marcon Ney Laert Vilar Calazans
Ney Laert Vilar Calazans
VHDL AULA - 2.
Lógica reconfigurável por hardware
VHDL Very High Speed Integrated Circuit Hardware Description Language Prof. Eduardo Todt 2008.
VHDL - uma visão geral 5 tipos de unidades
MC613 Laboratório de Circuitos Lógicos
VHDL - Tipos de dados compostos e operações
VHDL Introdução Paulo C. Centoducatte fevereiro de 2005
VHDL - Tipos de dados e operações
Introdução a circuitos lógicos
Subprogramas Procedimentos e Funções MO801/MC912.
Dicas de Circuitos MO801/MC912.
VHDL - Introdução MO801/MC912.
VHDL (outros tópicos) MO801/MC912.
MC Prof. Paulo Cesar Centoducatte MC542 Organização de Computadores Teoria e Prática.
MC542 Organização de Computadores Teoria e Prática
MC542 Organização de Computadores Teoria e Prática
MO Prof. Paulo Cesar Centoducatte MC542 Organização de Computadores Teoria e Prática.
FLI – ModelSim Pedro Velho.
Library IEEE; use ieee.std_logic_1164.all; use IEEE.std_logic_arith.all;
Tipos de dados Existentes BIT - {0, 1} BIT_VECTOR - {vetor de BIT}
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Construção sequencial CASE WHEN
Técnicas e Projeto de Sistemas
Técnicas e Projeto de Sistemas
2ª Aula Teórica Prof. Cesar Costa
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
Máquina de Estados Finito
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Verificação por Simulação Circuitos Descritos.
Circuitos Seqüenciais Descrição VHDL
Instanciação em VHDL.
EPUSP – PTC Guido Stolfi
Lógica reconfigurável por hardware
Validação de VHDL: técnicas e ferramentas
Circuitos Seqüenciais Contadores
Projeto de um Comparador Descrição Estrutural x Comportamental
Test-bench para Somador
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Projeto de Somador com e sem Sinal Descrição.
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Exercícios Circuitos Descritos em VHDL.
Diagramas de Blocos e Descrição VHDL
Projeto de Circuito Combinacional Unidade Lógica e Aritmética (ULA)
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Memórias.
Ney Laert Vilar Calazans
Descrição de Circuitos Combinacionais em VHDL
Projetos Grandes MO801/MC912. Roteiro Componentes Configurações Instanciação múltipla Instanciação condicional Atenção: Os exemplos são cumulativos.
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Exercícios Circuitos Descritos em VHDL.
Introdução ao VHDL João M. P. Cardoso.
1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador.
Verilog HDL. Introduzida em 1985 pela Gateway Design System Corporation Após 1990, passou a ser de domínio público, e em 1995 passou a ser padrão IEEE.
Projeto de Circuitos Integrados Semidedicados Prof. Marcio Cunha Aula 04 – Linguagem de Descrição de Hardware: VHDL.
Introdução à Programação da FPGA
Máquina de Estados Finitos com Dados (FSMD)
Lógica Sequencial e Máquina de Estados Finitos
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Circuitos Sequenciais
Circuitos Sequenciais
Transcrição da apresentação:

Verificação MO801/MC912

Passos de Projeto Requisitos Especificação geral e arquitetura Projeto em alto nível Implementação em HDL Verificação funcional Projeto físico (ferramentas específicas) Fabricação

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

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

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

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

Código reg_proc: process(clk, reset) begin if (reset = ‘0’) then current_state_dout <= “01”; elsif clk’event and clk = ‘1’ then current_state_dout <= current_state_din; end if; end process reg_proc; Light_Direction <= current_state_dout; end rtl;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Custo de corrigir um problema Verificação Teste do sistema Usuário Tempo

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

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

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

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

Custos da verificação Engenharia Ferramentas Tempo

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

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

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

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

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

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

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

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

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

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

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