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

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

Introdução a VHDL Monitoria de Digitais.

Apresentações semelhantes


Apresentação em tema: "Introdução a VHDL Monitoria de Digitais."— Transcrição da apresentação:

1 Introdução a VHDL Monitoria de Digitais

2 VHDL: VHDL (VHSIC – Very High Speed Integrated Circuit Hardware Description Language) é uma linguagem de descrição de hardware muito importante, pois é amplamente utilizada no desenvolvimento de sistemas atuais.

3 VHDL: VHDL foi desenvolvido para facilitar a descrição de circuitos complexos, sem precisar da utilização de vários manuais específicos para cada parte de um projeto. Ou seja, é possível descrever um circuito digital de forma estrutural ou comportamental.

4 Termos:

5 Entity: Responsável pela descrição das portas de entrada e saída dos circuitos, que servem para formalizar uma comunicação com outros circuitos. Cada entidade deve possuir uma ou mais arquiteturas.

6 Em VHDL, existem três tipos de arquiteturas:
Architecture: Responsável por descrever o comportamento do circuito, ou seja, o algoritmo utilizado para desempenhar sua funcionalidade. Em VHDL, existem três tipos de arquiteturas: Estrutural Comportamental DataFlow Comportamental processo

7 Architecture - Estrutural:
sinais: Interconexões entre componentes Componentes: Devem ter sido especificado anteriormente (Hierarquia) Uso dos componentes: Podem ser usados mais de uma vez (Reusabilidade)

8 Architecture - Dataflow:
Data Flow (eq. booleanas): Concorrência

9 Architecture - Dataflow:
O que é melhor utilizar expressões concorrentes ou sequências? Depende do que você quer implementar... a <= b; b <= a; a := b; b := a; O primeiro faz com que os valores de a e b sejam permutados e o segundo faz com que a e b assumam o valor anterior de b.

10 Architecture - Processo:
Algoritmo(Processo): Seqüencial Lista de Sensibilidade: Sinais de entrada Região declarativa: Região entre o fim da lista de sensibilidade e a palavra chave begin. Usada para declarar variáveis ou constantes dentro do processo. Campo de atribuições: Campo entre a chave begin e end ALG;

11 Configuration: Uma configuração é usada para ligar a arquitetura de um componente a sua entidade. Uma configuração permite a seleção de diversas arquiteturas em diferentes níveis de hierarquia.

12 Package: As bibliotecas são coleções de tipos de dados e subprogramas comumente utilizados nos projetos, como uma caixa de ferramentas.

13 Package: Biblioteca a ser utilizada em Digitais: LIBRARY ieee;
USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all;

14 Tipos: VHDL possui um conjunto de tipos definidos que se caracterizam pelo conjunto de valores que podem assumir e o conjunto de operações que sobre eles podem ser executadas. Objetos “CONSTANT”, “VARIABLE” e “SINAL” devem ser declarados como de um tipo definido para que possam ser identificados seus possíveis valores e quais operações podem ser executadas.

15 Tipos: BIT: assume valores de 0 ou 1
SIGNAL valor: bit; BOOLEAN: usado em teste de decisão, assume os valores true ou false. SIGNAL teste: boolean; INTEGER: assume um valor inteiro entre e SINGNAL valor: integer range 0 to 10; REAL:representa um número de ponto flutuante.

16 Tipos: STD_LOGIC: podem assumir dentre outros valores os seguintes: não inicializado(U), alta impedância(Z), nível lógico alto(1) e nível lógico baixo(0). SIGNAL valor: std_logic; Vetores: são conjuntos de sinais perviamente definidos, exemplos: SIGNAL vetor: std_logic_vector(10 DOWNTO 0); SIGNAL vetor: std_logic_vector(0 TO 10); SIGNAL vetor: bit_vector(10 DOWNTO 0); SIGNAL vetor: bit_vector(0 TO 10);

17 Operadores: Lógicos: and, or, xor, not, nand
valor := a xor b; Relacionais: =, /=,<,>,<=,>= IF (a /= b) THEN; A <= B;obs.:cuidado com o operador <=, pois ele também é um operador de atribuição. Deslocamento: sll, srl, sla, rol, ror sinal_a <= x ror 3; z <= x sll 1;

18 Operadores: Adição: +, -, & Sinal: +, -
valor := a + b; Valor := “00” & “11”; (concatenação: “0011”) Sinal: +, - A <= -B; Multiplicação e divisão: *, /, mod, rem a_div_b := a / b; Diversos: **, abs, not sinal_abs <= abs( -3); valor := b**2;

19 Decisões: If then else: Case When: IF (condição) THEN código;
Else codigo; END IF; Case When: Case estados is when estado1 => código; when estado2 => código; when others => código; END CASE;

20 Decisões: With select: WHEN “00” => código; WHEN “01” => código;
SIGNAL sinalA: STD_LOGIC_VECTOR(1 DOWNTO 0); CASE sinalA IS WHEN “00” => código; WHEN “01” => código; WHEN OTHERS => pode ter ou não operações; END CASE; With select: WITH expressao_escolha SELECT sinal <= expressao_a WHEN condicao1, expressao_b WHEN condicao2, expressao_c WHEN condicao3 | condicao4, expressao_d WHEN OTHERS;

21 Referências: Aula de VHDL auxiliar da cadeira de Infra de Hardware.
VHDL Programming by Example, Douglas L. Perry, 4ª edition. Aula de VHDL auxiliar da cadeira de Infra de Hardware. Aula 1 de VHDL antiga Aula 2 de VHDL antiga


Carregar ppt "Introdução a VHDL Monitoria de Digitais."

Apresentações semelhantes


Anúncios Google