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

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

VHDL Linguagem de Descrição e Síntese de Circuitos Digitais

Cópias: 3
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.

VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.

VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.

Apresentações semelhantes


Apresentação em tema: "VHDL Linguagem de Descrição e Síntese de Circuitos Digitais"— Transcrição da apresentação:

1 VHDL Linguagem de Descrição e Síntese de Circuitos Digitais
Sistemas Digitais

2 O Comando Generic

3 Vetores Definidos Pelo Usuário
Vetores predefinidos são unidimensionais As vezes necessita-se de vetores com dimensões maiores Exemplo: memórias São necessárias duas dimensões para especificar uma memória Número de posições e número de bits Descrição de uma memória de 2kbytes de 8 bits

4 Vetores Definidos Pelo Usuário
Vetores predefinidos são unidimensionais As vezes necessita-se de vetores com dimensões maiores Exemplo: memórias São necessárias duas dimensões para especificar uma memória Número de posições e número de bits Descrição de uma memória de 2kbytes de 8 bits

5 Operadores de Deslocamento

6 Operadores de Deslocamento
sll Multiplicação por 2 srl Divisão por 2 sla sra rll rrl

7 Atribuição de Sinais

8 Atraso Inercial Tempo mínimo que um pulso deve durar para que seja aceito por um circuito.

9 Atraso de Transmissão Atraso no transporte de um sinal. Isto é modelado em VHDL como segue:

10 Comandos Sequenciais Comandos sequenciais ficam contidos em regiões específicas de código como processos ou subprogramas. Uma vez iniciada a execução de comandos em região de código sequencial, os comandos são avaliados na sequência em que são apresentados no código. Veremos a aplicação dos comandos sequenciais IF, CASE e WAIT. Veremos também o modo de operação de um processo e a lista de sensibilidade, além da atribuição de valores a sinais nas regiões de código sequencial.

11 Comandos Sequenciais Lista de Sensibilidade em Processos
Um processo define uma área contendo comandos sequenciais. A palavra reservada PROCESS identifica o comando. O processo é um comando concorrente. Um processo é composto de duas regiões: parte de declaração, e parte de comandos sequenciais. A primeira região é o local para declaração de tipos e subtipos, constantes, variáveis, entre outros. A declaração de sinais não é permitida. A segunda região encontra-se entre as palavras reservadas BEGIN e END.

12 Comandos Sequenciais Lista de Sensibilidade em Processos
Ela contém comandos sequenciais que representam o comportamento de uma parte ou de toda a descrição. A palavra reservada PROCESS pode ser antecedida de um rótulo qualquer, e ser seguida de uma lista de sensibilidade. A lista define para quais sinais que o conjunto de comandos contidos no processo sensível. Isto é, a ocorrência de uma mudança no valor de um dos sinais da lista fará com que o processo seja executado.

13 Comandos Sequenciais Lista de Sensibilidade em Processos

14 Comandos Sequenciais Execução Sequencial abc: PROCESS
BEGIN comando 1 comando 2 . comando n END PROCESS abc; Execução Conjunta . comando abc: PROCESS Comando xyz: PROCESS Execução Sequencial xyz: PROCESS BEGIN comando 1 comando 2 . comando m END PROCESS xyz;

15 Comandos Sequenciais Exemplo:
1 | ENTITY sens_tes IS 2 | PORT( a, b : IN BIT; 3 | sa, sb : OUT BIT); 4 | END sens_tes; 5 | 6 | ARCHITECTURE teste OF sens_tes IS 7 | BEGIN | abc: PROCESS (a) executado na alteração do valor de “a” | BEGIN | sa <= a; | sb<=b; | END PROCESS abc; 13 | END teste; A linha 10 descreve uma parte combinacional A linha 11 descreve um elemento de armazenamento de valor sensível à variação da entrada “a” O circuito é não sintetizável, pois o elemento de memória descrito é ativo tanto na borda de subida quanto de descida de “a”, não havendo uma correspondência com circuitos reais. As ferramentas de síntese não inferem a necessidade de um elemento de memória devido à ausência de um sinal na lista de sensibilidade. Uma mensagem de advertência pode ser gerado.

16 Comandos Sequenciais

17 Comandos Sequenciais

18 Comandos Sequenciais

19 Comandos Sequenciais

20 Comandos Sequenciais O Comando WAIT
Suspende a execução de um processo. A suspensão pode ser condicionada a três clausulas, ou a uma combinação delas: WAIT ON: fornece um mecanismo equivalente à lista de sensibilidade em um processo. Neste caso, após o comando WAIT ON, o processo fica suspenso até a alteração de valor em um dos sinais da lista. WAIT UNTIL: o processo é suspenso enquanto a expressão booleana contida no comando não for satisfeita WAIT FOR: o processo é suspenso por um período de tempo, reiniciando no comando seguinte, após o período de tempo definido.

21 Comandos Sequenciais O Comando WAIT WAIT ON lista_de_sensibilidade;
WAIT UNTIL expressão_booleana; WAIT FOR expressão_de_tempo; WAIT ON lista _de_sensibilidade UNTIL condição_booleana FOR expressão_de _tempo; WAIT ON sig_a, sig_b; -- Lista de sensibilidade WAIT UNTIL sig_c = ‘1’; -- Condição booleana WAIT FOR 100 ns; -- Expressão de tempo WAIT ON sig_d=‘0’ FOR 50 ns; -- Condição booleana por período de tempo

22 Estratégias de Descrição de Circuitos Síncronos

23 Estratégias de Descrição de Circuitos Síncronos
Registrador Sensível a Nível com Reset e Set Assíncronos

24 Estratégias de Descrição de Circuitos Síncronos
reset síncrono process(clk) begin if clk’event and clk = ‘1’ then if rst = ‘1’ then ... else end if; end process; reset assíncrono process(clk,rst) begin if rst = ‘1’ then ... elsif clk’event and clk = ‘1’ then end if; end process;

25 Estratégias de Descrição de Circuitos Síncronos

26 Estratégias de Descrição de Circuitos Síncronos

27 Estratégias de Descrição de Circuitos Síncronos

28 Estratégias de Descrição de Circuitos Síncronos

29 Estratégias de Descrição de Circuitos Síncronos

30 Estratégias de Descrição de Circuitos Síncronos

31 Estratégias de Descrição de Circuitos Síncronos

32 Estratégias de Descrição de Circuitos Síncronos

33 Estratégias de Descrição de Circuitos Síncronos

34 Arquiteturas Multiprocesso

35 Arquiteturas Multiprocesso

36 Arquiteturas Multiprocesso
Processo Simplificado

37 Drivers e Atribuição de Sinais

38 Drivers e Atribuição de Sinais

39 Drivers e Atribuição de Sinais

40 Drivers e Atribuição de Sinais

41 Sinais com mais de um Driver

42 Sinais com mais de um Driver

43 Sinais com mais de um Driver

44 Sinais com mais de um Driver
Resolution Function Valores esperados, porém não são resolvidos!

45 Sinais com mais de um Driver
Resolution Function

46 Especificação da Estrutura do Sistema

47 Especificação da Estrutura do Sistema

48 Especificação da Estrutura do Sistema

49 Especificação da Estrutura do Sistema

50 Especificação da Estrutura do Sistema

51 Especificação da Estrutura do Sistema

52 Especificação da Estrutura do Sistema
Instanciação Direta

53 Especificação da Estrutura do Sistema
Instanciação Direta

54 Especificação da Estrutura do Sistema
Instanciação Direta

55 Especificação da Estrutura do Sistema
Componentes

56 Especificação da Estrutura do Sistema
Componentes

57 Especificação da Estrutura do Sistema
Componentes

58 Especificação da Estrutura do Sistema
Componentes

59 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) case c is when ‘0’ => q <= ‘1’; z <= ‘0’; when others => q <= ‘0’; end case; 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;

60 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 )

61 Test Bench testbench UUT geração de estímulos avaliação de respostas
referencial

62 Test Bench

63 Test Bench

64 Test Bench

65 Test Bench

66 Test Bench

67 Test Bench Exemplo:

68 Geração de estímulos Origem dos estímulos: formas de onda de arquivos
de tabelas aleatória mista

69 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 40 ns; end process;

70 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

71 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’, “ ” ‘0’), ( ‘0’, ‘1’, ‘0’, “ ” ‘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

72 Test Bench - Verificação

73 Test Bench - Verificação
Exemplo:

74 DISCIPLINA !!! 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 !!!


Carregar ppt "VHDL Linguagem de Descrição e Síntese de Circuitos Digitais"

Apresentações semelhantes


Anúncios Google