Escolar Documentos
Profissional Documentos
Cultura Documentos
Int VHDL
Int VHDL
Pontos Abordados
2
Principais tipos Operadores Descrio de Entidades e Arquiteturas Circuitos Sncronos e Assncronos Sinais e Variveis Decises: IF ELSE, CASE WHEN e WITH SELECT Iteraes Formas de Descrio de Circuitos Mquinas de Estados
Principais Tipos
3
VHDL possui um conjunto de tipos definidos que se caracterizam pelo conjunto de valores que podem assumir e o conjunto de operaes 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 possveis valores e quais operaes podem ser executadas.
Principais Tipos
4
BIT: utilizado para representar os nveis lgicos 0 e 1 em um circuito. SIGNAL valor: bit;
BOOLEAN: podem assumir os valores FALSE e TRUE sendo freqentemente utilizados em comandos que executam um teste de deciso. SIGNAL teste: boolean;
Principais Tipos
5
INTEGER:
assume um valor inteiro entre 2.147.483.647 e +2.147.483.67. Na maioria das vezes no necessrio a utilizao de valores to altos ou to baixos, portanto, para melhor utilizao dos recursos disponveis, importante definir o conjunto de valores que um objeto do tipo inteiro pode sumir. SINGNAL valor: integer; SINGNAL valor: integer range 0 to 10; REAL: representa um nmero de ponto flutuante. Na maioria das ferramentas esse tipo no suportado por conta da complexidade das operaes executadas sobre tais valores.
Principais Tipos
6
O tipo std_logic foi definido a partir da necessidade de se representar circunstncias fsicas que os circuitos podem possuir e que atravs do tipo bit no possvel. Alta impedncia uma delas.
STD_LOGIC:
podem assumir dentre outros valores os seguintes: no inicializado(U), alta impedncia(Z), nvel lgico alto(1) e nvel lgico baixo(0).
SIGNAL valor: std_logic;
Principais Tipos
7
definidos tambm vetores de bits e de std_logic que facilitam o agrupamento de um conjunto de sinais que sero manipulados.
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);
PRINCIPAIS TIPOS
8
possvel definir novos tipos enumerados. Para tanto basta definir um nome para o tipo e quais os valores ele poder assumir.
Operadores
9
A seguir so apresentados os operadores definidos para VHDL. Eles esto dispostos dos operadores de menor ordem de precedncia para os de maior.
Operadores do mesmo tipo possuem a mesma ordem de precedncia obrigando o uso de parnteses para a correta execuo de um conjunto agrupado de operaes.
A maioria dos operadores agem sobre elementos do mesmo tipo, sendo poucas as excees.
Operadores
10
Operadores Lgicos
Operadores Relacionais
OPERADORES
11
Operadores de deslocamento
Operadores de adio
+, -, &
z := x + 1; s := 0001 & 1000;
OPERADORES
12
Operadores de sinal
+,
a <= -b;
*, /, mod, rem
l_div_r := l/r
Operadores diversos
Para descrever circuitos em VHDL devemos definir quais so as portas de entrada e sada e qual ser seu comportamento. Nesse contexto surgem as entidades e arquiteturas de circuito.
Entidade: trecho do cdigo que descreve os sinais de entrada e de sada, definindo assim, como o circuito ir se comunicar com o mundo exterior.
Arquitetura: indica qual o comportamento do circuito que est sendo descrito. Parte que guarda o algoritmo interno do circuito.
Dessa forma simples define-se quais as entradas e sadas do circuito. Agora devemos definir seu comportamento.
P_Desv ios ent clk rst inst sd
17
possvel descrever circuitos sncronos e assncronos em VHDL. No caso de um circuito assncrono basta colocar o comportamentos do circuito aps a clusula BEGIN de uma arquitetura.
BEGIN sd <= ent; END Comportamento;
18
Para declarar um circuito sncrono usamos a clusula PROCESS definimos sua lista de sensibilidade.
A
lista de sensibilidade o conjunto de sinais que quando alterado dispara a execuo do processo a qual est vinculado.
19
Sinais e Variveis
20
Sinais
Funcionam
como fios que interligam diferentes mdulos de um circuito e tambm podem funcionar como estruturas internas de armazenamento de valores. ser compartilhados por vrios processos e tem seu valor alterado apenas no final de um processo. atribuio feita atravs do operador <=
Podem
Sinais e Variveis
21
Variveis
Sinais e Variveis
22
Variveis compartilhadas
As
variveis compartilhadas funcionam como um meio termo entre variveis e sinais, ou seja, podem ser utilizadas por vrios processos e tem seu valor alterado de forma assncrona. ser to perigoso usar variveis compartilhadas em VHDL quanto usar variveis globais em linguagens de programao convencionais.
Pode
Sinais e Variveis
23
ARCHITECTURE Comportamento OF P_Desvios IS Regio para declarao de tipos, constantes e variveis compartilhadas. Aqui no defini-se variveis. SIGNAL valor: STD_LOGIC; SHARED VARIABLE valorVariavel: INTEGER;
BEGIN PROCESS(clk) Regio para definio de tipos e variveis. Aqui no define-se sinais. VARIABLE valor: STD_LOGIC; BEGIN END PROCESS; END Comportamento;
Decises
24
comando pode ser usado em circuitos sncronos para se tomar decises sobre qual caminho deve seguir.
IF (condio) THEN END IF;
Decises
25
Podem ser encadeados e aninhados. Caso exista uma clusula ELSE e nenhum dos testes condicionais se confirme ela ser executada.
IF (condio) THEN IF (condio) THEN END IF; ELSIF (condio) THEN IF (condio) THEN ELSE END IF; ELSE END IF;
Decises
26
Usado em circuitos sncronos. Ocorre um teste de um valor e de acordo com o resultado um conjunto de operaes executado.
CASE estado IS WHEN estado1 THEN operaes WHEN estado2 THEN operaes WHEN estado3 THEN operaes END CASE;
Decises
27
necessrio que todos os possveis valores que o teste pode assumir sejam tratados, caso contrrio disparado um erro de compilao.
SIGNAL sinalA: STD_LOGIC_VECTOR(1 DOWNTO 0);
WHEN 00 => operaes WHEN 01 => operaes WHEN OTHERS => pode ter ou no operaes END CASE;
CASE sinalA IS
Decises
28
Transfere
um valor a um sinal de destino segundo uma relao de opes . as condies de seleo devem ser consideradas e elas devem ser mutuamente exclusivas
Todas
Decises
29
Iteraes
30
comando LOOP permite repetir a execuo de um conjunto de comandos seqenciais. Dois esquemas de iterao esto disponveis: FOR e WHILE.
Iteraes
31
Iteraes
32
abc: WHILE condicao LOOP -- comandos seqenciais -- atualizao da varivel de ndice END LOOP abc; Exemplo de condio: (valor < 10).
Comportamental
A arquitetura possui um algoritmo que descreve o comportamento do circuito gerando respostas a partir de estmulos externos.
Descrio
Estrutural
A arquitetura possui um conjunto de componentes interligados atravs de sinais. Esses circuitos devem ter sido descritos anteriormente.
Descrio estrutural
Cada componente deve ser interligados atravs de fios. Isso feito declarando sinais que vo servir de pontes de ligao entre os diferentes circuitos. Para fazer a ligao preciso usar clusula PORT MAP descrevendo onde cada sinal deve se ligar.
Mquinas de Estados
37
Definio
Mquinas de Estado podem ser consideradas como computadores com memria bem reduzida, que de acordo com uma entrada assume um determinado estado. Tipicamente implementa-se mquinas de estado com clusula CASE WHEN.
Cria-se um tipo enumerado que possui todos os valores de estado que a mquina assume e de acordo com um estmulo esterno move-se essa mquina para um prximo estado.
Mquinas de Estados
38
Exemplo:
TYPE estados IS ( inicia, busca, opera); SIGNAL estado: estados; CASE estado IS WHEN inicia => --seqncia de operaes estado <= busca; WHEN busca => --seqncia de operaes estado <= opera; WHEN opera => --seqncia de operaes estado <= inicia; END CASE;
Referncia
40