Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUO A VHDL
Crjina Chagas
L - Language Linguagem de Descrio de Hardware com nfase em Circuitos Integrados de Altssima Velocidade!
VHDL
Algumas Vantagens do uso de VHDL:
Projeto independente da tecnologia; Ferramentas de CAD compatveis entre si; Facilidade na atualizao do projetos;
VHDL
Algumas Desvantagens do uso de VHDL: Falta de pessoal treinado para lidar com a linguagem;
VHDL
Caractersticas do VHDL: Permite, atravs de simulao, verificar o comportamento do sistema digital;
Permite descrever hardware em diversos nveis de abstrao, por exemplo:
Comportamental;
VHDL
Tipos mais utilizados:
VHDL
Expresses:
tipos lgicas operaes and, or, nand, nor, xor, not
relacionais =, /=, <, <=, >, >= aritmticas - (unria), abs aritmticas +, aritmticas *, / aritmticas mod, rem, ** juno &
VHDL
Operaes de atribuio:
operador <= := significado Atribuio de sinal Atribuio de varivel Aux <= 0 A := 1 exemplo
:=
=> =>
VHDL
Componentes de um projeto VHDL:
Package (Pacote): constantes, bibliotecas; Entity (Entidade): pinos de entrada e sada. Interface com o mundo externo; Architecture (Arquitetura): implementaes do projeto.
VHDL
library (biblioteca)
VHDL PACKAGE
entity
architecture
As primeiras informaes contidas num programa VHDL a declarao das bibliotecas library (ies) usada no projeto. Vrias funes e tipos bsicos so armazenados em bibliotecas. A biblioteca IEEE sempre includa. Ex: Library IEEE; Use IEEE.std_logic_1164.all; Use IEEE.std_logic_unsigned.all; Observaes: 1. a declarao Library IEEE usada para definir a biblioteca IEEE; 2. a declarao use IEEE.std_logic_1164.all necessria para usar os dados correspondentes lgica padro da biblioteca; 3. a declarao use IEEE.std_logic_unsigned.all necessria para realizar a aritmtica no sinalizada.
library (biblioteca)
VHDL
ENTITY
entity
architecture
O entity define a interface(port) do projeto, atravs dos pinos de entrada (in) e sada (out) e o tipo do sinal correspondente, no seguinte formato: entity nome_da_entity is port ( Declarao dos pinos ); end [nome_da_entity] ;
Exemplo: entity COMPARA is A port ( A,B: in std_logic; C: out std_logic); B end COMPARA; Interfaces definidas atravs do exemplo de entity.
COMPARA
VHDL
ARCHITECTURE
library (biblioteca)
entity
A architecture define a lgica do circuito e pode ser composta dos seguintes elementos: a) component b) signal component c) lgica
architecture
sendo component e signal declaraes de componentes e sinais intermedirios opcionais. O formato para a descrio da arquitetura o seguinte: Architecture nome_da_architecture of nome_da_entity is
signal
lgica
end [nome_da_architecture];
Architecture
VHDL
COMPONENT
component
signal
lgica
Declarao do componente que deve ser projetado atravs de um outro programa VHDL, ou outra forma de projeto. Component nome_do_componente port ( Clk : in std_logic; Rst : in std_logic; Din : in std_logic; Dout : out std_logic ); end component;
Architecture
VHDL
SIGNAL
component
signal
lgica
O signal pode ser declarado em entity, architecture ou em package, e serve para a comunicao entre os mdulos.
sintaxe: signal identificador (es) : tipo [restrio] [:=expresso];
Exemplos: signal cont : integer range 50 downto 1; signal ground : bit := 0; signal bus : bit_vector;
VHDL
Usa o comando process, com o formato: Process ( lista de sensibilidade ) begin descrio lgica end process;
lgica
A lista de sensibilidade corresponde aos sinais que devem alterar a sada do circuito, e composta de todos os sinais de entrada para os circuitos combinatrios.
VHDL
Architecture COMPORTAMENTO of COMPARA is begin process (A,B) Lista de sensibilidade A begin B if(A=B) then C<=1; else C<=0; end if; end process; end COMPORTAMENTO;
COMPARA
O comando process (A,B) indica que os sinais A e B formam a lista de sensibilidade. A sada C ser igual a 1 caso as entradas A e B sejam iguais, e C ser igual a 0, caso contrrio.
Architecture
component
signal
lgica
No exemplo, U0 um label.
VHDL
end component;
component XOR_Gate
port (I0, I1: in std_logic; O: out std_logic); component NOT_Gate
VHDL COMANDO IF
Exemplos de comando if: if (x) then T := A; end if; if (y) then T := B; end if; if (z) then T := C; end if;
equivalente a: if (z) then T:= C; elseif (y) then T := B; elseif (x) then T := A; end if;
VHDL EXERCCIO
Desenvolver o comando process para o seletor (ou multiplexador)
A 0 C B 1
sel
Soluo: Process (A,B,SEL) begin If SEL = 0 then C <= A; else C <= B; end if; end process;
VHDL EXERCCIO
Codificar o process do exerccio anterior utilizando case
A 0 C B 1
sel
Soluo:
Process (A,B,SEL) begin case SEL is when 0 => C <= A; when 1 => C <= B; end case; end process;