Você está na página 1de 27

ARQUITETURA E ORGANIZAO DE COMPUTADORES II

INTRODUO A VHDL

Crjina Chagas

VHDL - VHSIC HARDWARE DESCRIPTION LANGUAGE


O que significa VHDL?

V - Very High Speed Integrated Circuit


H - Hardware D - Description

L - Language Linguagem de Descrio de Hardware com nfase em Circuitos Integrados de Altssima Velocidade!

VHDL - VHSIC HARDWARE DESCRIPTION LANGUAGE


O que significa Linguagem de Descrio de Hardware (HDL)?
Uma linguagem de descrio de hardware descreve o que um sistema faz e como; Um sistema descrito em linguagem de hardware pode ser implementado em um dispositivo programvel permitindo o uso em um campo do sistema
Ex: FPGA - Field Programmable Gate Array: Chips programveis compostos por um enorme nmero de chaves programveis, que podem ser configuradas para simular o comportamento de qualquer outro circuito.

VHDL
Algumas Vantagens do uso de VHDL:
Projeto independente da tecnologia; Ferramentas de CAD compatveis entre si; Facilidade na atualizao do projetos;

Reduz tempo de projeto e custo; Elimina erros de baixo nvel;

VHDL
Algumas Desvantagens do uso de VHDL: Falta de pessoal treinado para lidar com a linguagem;

Simulaes geralmente mais lentas que outras implementaes;

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;

Favorece projeto top-down

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

:=
=> =>

Inicializao de constantes, sinais e variveis


Atribuio de valores em elementos individuais Atribuio de vrios valores em estruturas

Signal aux : bit := 0


A => AUX When 0 => S <= A + B

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

Declaraes opcionais (component e signal)


begin

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

LGICA: DESCRIO COMPORTAMENTAL


component signal

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

EXEMPLO DE ARQUITETURA, COM DESCRIO COMPORTAMENTAL

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.

VHDL LGICA: DESCRIO ESTRUTURAL


Para a descrio estrutural feita a associao dos pinos do componente com os sinais usados no projeto. Exemplo: U0: nome_do_componente port map ( Clk => clk_top; Rst => rst_top; Din => din_top; Dout => dout_top );

Architecture
component

signal

lgica

No exemplo, U0 um label.

VHDL
end component;

EXEMPLO DE ARQUITETURA, USANDO DESCRIO ESTRUTURAL

architecture ESTRUTURA of COMPARA is

component XOR_Gate
port (I0, I1: in std_logic; O: out std_logic); component NOT_Gate

port (I0: in std_logic; O: out std_logic);


end component;

signal AUX: std_logic;


begin

U0: XOR_Gate port map (I0=>A, I1=>B, O=>AUX);


U1: NOT_Gate port map (I0=>AUX, O=>C); end ESTRUTURA;

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 COMANDO CASE


utilizado basicamente para decodificao.
case element_colour is when red => statements for red; when green | blue => statements for green or blue; when orange to turquoise => statements for these colours; end case;

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;

Você também pode gostar