1 / 20

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

VHDL Linguagem de Descrição e Síntese de Circuitos Digitais. Sistemas Digitais. O Comando Generic. Vetores Definidos Pelo Usuário. Vetores predefinidos são unidimensionais As vezes necessita-se de vetores com dimensões maiores Exemplo: memórias

vernon
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VHDLLinguagem 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. Operadores de Deslocamento

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

  6. Atribuição de Sinais

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

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

  9. 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.

  10. Comandos Sequenciais 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.

  11. Comandos Sequenciais Lista de Sensibilidade em Processos 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.

  12. Comandos Sequenciais Lista de Sensibilidade em Processos

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

  14. 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.

  15. Comandos Sequenciais

  16. Comandos Sequenciais

  17. Comandos Sequenciais

  18. Comandos Sequenciais

  19. 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.

  20. 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

More Related