Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIuri Porto Alterado mais de 10 anos atrás
1
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais
2
Especificação da Estrutura do Sistema
8
Instanciação Direta
9
Especificação da Estrutura do Sistema Instanciação Direta
10
Especificação da Estrutura do Sistema Instanciação Direta
11
Especificação da Estrutura do Sistema Componentes
12
Especificação da Estrutura do Sistema Componentes
13
Especificação da Estrutura do Sistema Componentes
14
Especificação da Estrutura do Sistema Componentes
15
Algumas Práticas que Devem ser Evitadas Maus exemplos: process (a,b) begin if (a = 1) then q <= b; end if; end process; process(c) begin case c is when 0 => q <= 1; z <= 0; when others => q <= 0; end case; end process; Exemplo1 falta else Exemplo2 falta atribuição de z quando c é diferente de 0. Para evitar: atribua valores default as saídas process(inputs,state) begin – outpus <= 0; – case (state) –... – end case; end process;
16
Teste x Verificação Verificação – usado para verificar se o projeto está de acordo com o desejado – objetivo é verificar a funcionalidade – a ferramenta mais utilizada é o simulador Teste – usado para verificar a fabricação do dispositivo – objetivo não é verificar a funcionalidade – objetivo é exercitar os nós físicos do sistema nós devem ir de 0 para 1 ou de 1 para 0 – usa padrões específicos para exercitar estes nós estes padrões são gerados por ferramenta de ATPG (automatic test pattern generation )
17
Test Bench UUT testbench geração de estímulos avaliação de respostas referencial
18
Test Bench
23
Exemplo:
24
Geração de estímulos Origem dos estímulos: – formas de onda – de arquivos – de tabelas – aleatória – mista
25
Estímulos Tipo Forma de Onda process begin s <= 0 ; wait for 20 ns; s <= 1 ; wait for 10 ns; s <= 0 ; wait for 10 ns; s <= 1 ; wait for 20 ns; s <= 0 ; wait for 50 ns; s <= 1 ; wait for 10 ns; s <= 0 ; wait for 20 ns; s <= 1 ; wait for 10 ns; s <= 0 ; wait for 20 ns; s <= 1 ; wait for 40 ns; s <= 0 ; wait for 20 ns; end process;
26
Estímulos de Arquivos procedure ReadFile() is variable lineAux : line; file PatternFile : TEXT open READ_MODE is inputPattern.txt"; begin for i in 0 to nPolig-1 loop readline(PatternFile, lineAux); read(lineAux,value);... end loop; end procedure; Vantagem: simples implementação para padrões simples Desvantagem: difícil de implementar para padrões complexos aumenta tempo de simulação devido as chamadas de sistema
27
Estímulos de Tabela type vector is record LD : std_logic; LL : std_logic; RST : std_logic; D : std_logic_vector(7 downto 0); P : std_logic; end record; type vectorArrayType is array (0 to TABLE_SIZE) of vector; constant vectorTable : vectorArrayType := ( -- LD LL RST D P ( 0, 0, 0, xxxxxxxx 0), ( 0, 0, 1, xxxxxxxx 0), ( 1, 0, 0, 00000101 0), ( 0, 1, 0, 11010100 0), ( 0, 0, 0, xxxxxxxx 1),... ); Vantagem: menor tempo de simulação que estímulo de arquivo Desvantagem: aumenta tempo de compilação consome memória para muitos padrões
28
Test Bench - Verificação
29
Exemplo:
30
Práticas Básicas Convenções de nomes (sinais, entidades, arquivos, etc) Incluir headers nos fontes – descrição (func, autor, versão, etc) – formato e temp. de entrada e saída – histórico Comentários (inglês) Indentação Instanciação (associação por nomes) Uma linha por comando/declaração Usar tipos baseados nos tipos padrões IEEE – std_logic, std_ulogic Não usar valores fixos na descrição – use generic ou constant DISCIPLINA !!!
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.