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 Sistemas 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 Sistemas 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 sll srl sla sra rll rrl Multiplicação por 2 Divisão por 2

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 Conjunta abc: PROCESS BEGIN comando 1 comando 2. comando n END PROCESS abc;. comando abc: PROCESS Comando xyz: PROCESS comando. xyz: PROCESS BEGIN comando 1 comando 2. comando m END PROCESS xyz; Execução Sequencial

15 Comandos Sequenciais Exemplo: 1 | ENTITYsens_tes IS 2 |PORT( a, b:INBIT; 3 | sa, sb:OUTBIT); 4 | END sens_tes; 5 | 6 | ARCHITECTURE testeOFsens_tesIS 7 | BEGIN 8|abc: PROCESS (a) -- executado na alteração do valor de a 9| BEGIN 10| sa <= a; 11| sb<=b; 12| END PROCESS abc; 13 | ENDteste; 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

18

19

20 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 ONlista_de_sensibilidade; WAIT UNTIL expressão_booleana; WAIT FORexpressão_de_tempo; WAIT ON lista _de_sensibilidadeUNTIL condição_booleanaFORexpressão_de _tempo; WAIT ONsig_a, sig_b;-- Lista de sensibilidade WAIT UNTIL sig_c = 1;-- Condição booleana WAIT FOR100 ns;-- Expressão de tempo WAIT ON sig_d=0FOR50 ns; -- Condição booleana por período de tempo

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

23 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 clkevent 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 clkevent and clk = 1 then... end if; end process;

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

26

27

28

29

30

31

32

33

34 Arquiteturas Multiprocesso

35

36 Processo Simplificado

37 Drivers e Atribuição de Sinais

38

39

40

41 Sinais com mais de um Driver

42

43

44 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

48

49

50

51

52 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) 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;

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 UUT testbench geração de estímulos avaliação de respostas referencial

62 Test Bench

63

64

65

66

67 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 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;

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, 1, 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 Exemplo:

74 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 Sistemas Digitais."

Apresentações semelhantes


Anúncios Google