Cursos / Automação Industrial / Sistemas Digitais / Aula
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.
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:?
As setas na figura 3 tentam definir e explicar melhor o que cada item tem como objetivo.
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 |
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.
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