Cursos / Automação Industrial / Sistemas Digitais / Aula

arrow_back Aula 04 - VHDL – Parte I

ENTITY (Entidade)

Em VHDL, como toda linguagem de programação, seguimos regras para declarar variáveis e funções. Vamos ver como, no nosso caso, declaramos uma ENTITY, uma entidade. Assim, escrevemos ENTITY <entity_name>, onde <entity_name> será o nome que vamos dar para a nossa entidade, seguida da palavra IS, que quer dizer em português: É. Depois, podemos declarar as nossas entradas e saídas das portas e declarações genéricas. As declarações genéricas, veremos alguns exemplos depois.

A estrutura de declaração da entidade (ENTITY).

Agora uma parte muito importante é aprendermos como vamos declarar as nossas portas de entrada e de saída. Definimos os sinais de entrada e saída, descrevendo os tipos de dados e as portas.

As portas podem ser definidas da seguinte maneira: colocamos o nome “port”, abre-se parênteses, e, dentro dos parênteses, declaramos (damos um nome para) a porta.

Como se pode ver na figura 3, os itens listados possuem o seguinte significado:?

  • port_name: é o nome dado à porta ou identificador;
  • mode: define o tipo, se é de entrada, de saída, buffer ou entrada e saída ao mesmo tempo
  • data_type: define o que está contido no objeto, qual é o tipo de dado.

As setas na figura 3 tentam definir e explicar melhor o que cada item tem como objetivo.

 A declaração da estrutura da porta

Na Tabela 1 temos os tipos de dados associados à porta, ou seja, o data_type.

bit pode conter valor '0' ou '1'
bit_vector bit_vector é um vetor de valores em binário. Ex.: bit_vector (0 to 7)
std_logic, std_ulogic tipo especial de uma biblioteca do VHDL (pode assumir valores além de “0” e “1”).
std_logic_vector, std_ulogic_vector vetor de valores em tipos especiais (pode assumir 9 diferentes valores)
boolean pode ter o valor VERDADEIRO ou FALSO
integer pode conter valores inteiros
real pode conter valores reais
character qualquer tipo de caracter
time para indicar tempo
Tabela 1 - Tipos de dados no VHDL

Na entidade, podemos acrescentar as declarações genéricas e passar informações ao modelo como mostrado a seguir:

Onde “constante_name” é o identificador, “data_type” é o tipo do dado e “valor” é o valor passado à constante.

Exemplo 1 da descrição da entidade

Se observarmos, temos como declarações genéricas constantes aux1 e aux2 definidas com data_type (tipo de dado) de time e recebendo o valor de 5ns. A variável tap definida como integer (inteiro) e recebendo o valor de 10 e por último cmd recebendo o data_type de string e o valor “up“. Já nas declarações de portas PORT, temos in1 e in2 sinais de entrada (in) com o tipo de dado chamado std_logic (mais tarde estudaremos melhor esse tipo, mas por enquanto sabemos que std_logic inclui “0“ e “1“) e out1 é um sinal de saída (out) com o tipo de dado std_logic.

Versão 5.3 - Todos os Direitos reservados