Tipos de dados
Existentes
BIT - {0, 1}
BIT_VECTOR - {vetor de BIT}
STD_LOGIC - {0, 1, Z, X, U}
STD_LOGIC_VECTOR - {vetor de STD_LOGIC}
INTEGER - { 0, 1, 2 , 3 ..............65535}
Definidos pelo usuário
TYPE <nome do tipo> IS <elementos do tipo>
Ex:
TYPE MagnComp IS (G, E, S); -- definição do tipo MagnComp
Subtipos de dados
•
Subconjunto de um tipo existente, obtido ao restringir-se sua faixa
SUBTYPE <nome do subtipo> IS <nome do tipo> <faixa do subtipo>
Ex:
SUBTYPE ByteINT IS INTEGER RANGE 0 TO 255;
SUBTYPE Radix4 IS INTEGER RANGE 0 TO 4;
SUBTYPE BitVector2 IS BIT_VECTOR (2 DOWNTO 1);
Pacotes e Bibliotecas
•
Um pacote (PACKAGE) é um conjunto de elementos, como tipos, subtipos,
constantes e subprogramas, constituindo um conjunto de ferramentas usadas
para construir módulos.
•
Consiste de duas partes:
1) Declaração do pacote – Define a interface do pacote
2) Corpo do pacote – Define os detalhes do pacote
Pacotes e Bibliotecas
Exemplo de pacote definido pelo usuário:
----------------------------------------------------- Declaração do pacote
---------------------------------------------------PACKAGE BitDefs_pkg IS
SUBTYPE Radix4 IS INTEGER RANGE 0 TO 3;
SUBTYPE BitVector2 IS Bit_Vector (1 DOWNTO 0);
SUBTYPE BitVector3 IS Bit_Vector (2 DOWNTO 0);
SUBTYPE STD_LOGIC8 IS Std_Logic_Vector (7 DOWNTO 0);
TYPE MagnComp IS (G, E, S);
END BitDefs_pkg;
-- ------------------------------------------------ Corpo do pacote
-- ----------------------------------------------PACKAGE BODY BitDefs_pkg IS
END BitDefs_pkg;
Modelagem VHDL usando Pacotes
Um módulo comparador de base 4 compara dois dígitos de base 4 e produz uma
saída com valores G (maior), E (igual), e S (menor).
A especificação de alto nível é:
ENTRADAS x e y Є { 0, 1, 2, 3, 4}
SAÍDA z Є { G, E, S}
FUNÇÃO: z =
G se x > y
E se x = y
S se x < y
Modelagem VHDL usando Pacotes
Descreva o módulo usando o pacote BitDefs_pkg
USE WORK.BitDefs_pkg.ALL;
ENTITY comparador IS
PORT ( x, y : IN Radix4;
z : OUT MagnComp );
END comparador;
ARCHITECTURE comportamental OF comparador IS
BEGIN
PROCESS (x, y)
BEGIN
IF (x > y) THEN z <= G;
ELSIF (x = y) THEN z <= E;
ELSE
z <= S;
END IF;
END PROCESS;
END comportamental;
Resultado da simulação
FUNÇÃO: z =
G se x > y
E se x = y
S se x < y
Síntese Altera Max 7000S
Dispositivo : EPM7032SLC44
Number of AND2 : 1
Number of AND3 : 2
Number of AND4 : 4
Number of INBUF : 4
Number of LCs :
2
Number of NOT :
4
Number of OUTBUF : 2
Number of SOFT :
2
Number of OR3 :
1
Number of OR4 :
1
PROJETO 1:
Uma escola tem sua diretoria constituída pelos seguintes elementos:
Diretor, Vice-Diretor, Secretário e Tesoureiro. Uma vez por mês essa
diretoria se reúne para decidir sobre diversos assuntos, sendo que as
propostas são aceitas ou não através de votação. Devido ao número
de elementos da diretoria ser par, o sistema adotado é o seguinte:
1)Maioria absoluta – a proposta é aceita ou não se no mínimo três
elementos são respectivamente a favor ou contra.
2)Empate – vence o voto dado pelo diretor.
Deseja-se projetar um sistema de votação que acenda uma lâmpada,
conforme a proposta seja aprovada ou não de acordo com o esquema
abaixo:
Sistema de
Votação
Circuito de
potência
Lâmpada
Determine as entradas e saídas, monte a tabela verdade, obtenha a
expressão lógica minimizada, desenhe o circuito lógico
correspondente e modele o circuito em VHDL.
Download

Aula6