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.