Você está na página 1de 32

VHDL - VHSIC Hardware Description Language

Arquitetura de Computadores
Leonardo Augusto Casillo

Referncias bibliogrficas
PELLERIN, David. TAYLOR, Douglas. VHDL Made Easy. Prentice-Hall PTR. 1997. SKANHILL, Kevin. VHDL for programmable logic. Addison-Wesley. 1996. ASHENDER, Peter. The VHDL Cookbook Disponvel na internet. 1990. Apostilas disponveis na pgina do curso: Profs.: Fernando Moraes, David Dharbe, Anderson Terroso.

VHDL - VHSIC Hardware Description Language


Introduo

O que significa VHDL? Very High Speed Integrated Circuit Hardware Description Language

Linguagem de Descrio de Hardware com nfase em Circuitos Integrados de altssima velocidade.

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 (ex: FPGA Field Programmable Gate Array), permitindo o uso em campo do sistema; Existem dezenas de HDLs: AHDL, VERILOG, Handel-C, SDL, ISP, ABEL

Breve Histrico
- final de 1960: primeiras Linguagem de Hardware; - 1973: projeto CONLAN (CONsensus LANguage); - 1983: relatrio final do CONLAN e a Linguagem ADA; - 1983: DoD inicia programa VHSIC (participao da IBM, Intermetrics e Texas Instruments; - 1986: a Intermetrics desenvolve compilador e simulador, criado um grupo de padronizao da IEEE para VHDL; - 1988: primeiros softwares so comercializados; - 1991: recomeou-se um novo processo de padronizao; - 1992: modificaes propostas foram avaliadas e votadas; - 1993: um novo padro publicado, chamado VHDL-93; - 1997: publicado o manual de referncia da linguagem.

Vantagens e Desvantagens de se utilizar VHDL Vantagens Desvantagens


Hardware gerado menos otimizado; Controlabilidade/Observabilidade de projeto reduzidas; Falta de pessoal treinado para lidar com a linguagem; Simulaes geralmente mais lentas que outras implementaes.

Projeto independente da tecnologia; Ferramentas de CAD compatveis entre si; Facilidade na atualizao dos projetos; Reduz tempo de projeto e custo; Elimina erros de baixo nvel; Reduz time-to-market.

Caractersticas do VHDL
Permite, atravs de simulao, verificar o comportamento do sistema digital; Permite descrever hardware em diversos nveis de abstrao, por exemplo:  Algortmico ou comportamental.  Transferncia entre registradores (RTL). Favorece projeto top-down. Hoje utilizada para SIMULAO e SNTESE

Ciclo de Projeto:
Especificao: determinar requisitos e funcionalidade do projeto. Codificao: descrever em VHDL todo o projeto, segundo padres de sintaxe. Simulao do Cdigo-Fonte: simular o cdigo em ferramenta confivel a fim de verificar preliminarmente cumprimento da especificao;

Ciclo de Projeto:
Sntese, otimizao e Fitting: Sntese: compilao de um cdigo VHDL para uma descrio abstrata. Otimizao: seleo da melhor soluo implementao para uma dada tecnologia. de

Fitting: lgica sintetizada e otimizada mapeada nos recursos oferecidos pela tecnologia.

Ciclo de Projeto:
Simulao do modelo: resultados mais apurados de comportamento e timing. Gerao: configurao das lgicas programveis ou de fabricao de ASICs.

Componentes de um projeto VHDL


PACKAGE ENTITY ARCHITECTURE CONFIGURATION
Package (Pacote): constantes, bibliotecas; Entity (Entidade): pinos de entrada e sada; Architecture (Arquitetura): implementaes do projeto; Configuration (Configurao): define as arquiteturas que sero utilizadas.

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.all; USE IEEE.STD_LOGIC_UNSIGNED.all;

PACKAGE (BIBLIOTECAS)

ENTITY exemplo IS PORT ( < descrio dos pinos de entrada e sada > ); END exemplo; ARCHITECTURE teste OF exemplo IS BEGIN PROCESS( <pinos de entrada e signal > ) BEGIN < descrio do circuito integrado > END PROCESS; END teste; ARCHITECTURE (ARQUITETURA) ENTITY (PINOS DE I/O)

Entity (Entidade)
Abstrao que descreve um sistema, uma placa, um chip, uma funo ou uma porta lgica. Entity <nome_da_entidade> is port ( entrada_a entrada_b sada ); end <nome_da_entidade>; : in <tipo>; : in <tipo>; : out <tipo>;

Entity (Entidade)
Ports: correspondem ao pinos de entrada e sada. Modos de operao: IN: porta de entrada; OUT: porta de sada (no podem ser usados como entradas, nem seus valores utilizados na lgica interna); INOUT: porta de entrada e sada; BUFFER: sada com possibilidade de realimentao.

Entity (Entidade)
Tipos mais utilizados:

Assume valores 0 ou 1. x: in bit; bit_vector Vetor de bits. x: in bit_vector(7 downto 0); x: in bit_vector(0 to 7); std_logic x: in std_logic; std_logic_vector x: in std_logic_vector(7 downto 0); x: in std_logic_vector(0 to 7); boolean Assume valores TRUE ou FALSE

bit

Entity (Entidade)
STD_LOGIC: Definida pela biblioteca IEEE; Pode assumir nove valores: U: no inicializada X: desconhecida 0: valor 0 1: valor 1 -: Dont care. Z: alta impedncia W: desconhecida fraca L: 0 fraca (Low) H: 1 fraca (High)

Architecture (Arquitetura)
A funo de uma entity determinada pela sua architecture. A organizao de uma architecture dada por: Declaraes: sinais, constantes, componentes, subprogramas. Comandos: begin blocos, atribuies a sinais, chamadas a subprogramas, instanciao de componentes, processos. end

Architecture (Arquitetura)
A arquitetura de uma entidade pode ser descrita por trs formas distintas: descrio comportamental, descrio por fluxo de dados (data-flow) e descrio estrutural. Exemplo simples: Comparador de 4 bits a(3 donwto 0) Architecture b(3 donwto 0) equals

Descrio Comportamental
-- comparador de 4 bits entity comp4 is port ( a, b: in bit_vector (3 downto ); equals: out bit); end comp4; Mesmo nome da entidade architecture comport of comp4 is begin comp: process (a,b) -- lista de sensibilidade begin if a = b then equals = 1 ; else equals = O ; end if; end process comp; end comport;

Processos conconrrentes

Descrio por Data-Flow


-- comparador de 4 bits entity comp4 is port ( a, b: in bit_vector (3 downto ); equals: out bit); end comp4; architecture fluxo of comp4 is begin equals = 1 when (a=b) else O; end fluxo;

Expresses lgicas

Descrio Estrutural
-- comparador de 4 bits entity comp4 is port ( a, b: in bit_vector (3 downto ); equals: out bit); end comp4; architecture estrut of comp4 is Ligaes entre componentes signal x bit_vector (0 to 3); begin U0: xnor port map (a(0), b(0), x(0)); U1: xnor port map (a(1), b(1), x(1)); U2: xnor port map (a(2), b(2), x(2)); U3: xnor port map (a(3), b(3), x(3)); U4: and4 port map (x(0), x(1), x(2), x(3), equals); end estrut;

Sinais
Comunicao de mdulos em uma estrutura Temporizados. Podem ser declarados em entity, architecture ou package No podem ser declarados em processos, mas podem ser utilizadas no interior destes. Sintaxe: signal identificador(es) : tipo [restrio] [:=expresso]; Exemplo signal cont : integer range 50 downto 1; signal ground : bit := 0;

Especificando a Estrutura de um Sistema


O component exatamente a descrio de um componente O port map um mapeamento deste componente em um sistema maior.

Programa 1

Programa 2

---------------------------------------------------------- rquivo componente_inv.vhd -- Modelo do inversor --------------------------------------------------------li rary I ; se I .std_logic_1164.all ; e tity componente_inv is ort ( x : in bit; y : out bit ); e componente_inv; arc itect re arquitetura_inv of componente_inv is egi e

---------------------------------------------------------- rquivo componente_and.vhd -- Modelo da porta N --------------------------------------------------------li rary I ; se I .std_logic_1164.all; e tity componente_and is ort( a : in bit; b : in bit; c : out bit ); e componente_and;
arc itect re arquitetura_and of componete_and is

egi e

y <= ot x; arquitetura_inv;

c <= a a arquitetura_and;

b;

P ro g ra m a 3 ------------------------------------------------------- A rq u iv o c o m p o n e n te _ s is te m a .v h d -- M o d e lo d a p o rta A N D -----------------------------------------------------lib r a r y IE E E ; u s e IE E E .s td _ lo g ic _ 1 1 6 4 . a ll; e n tity c o m p o n e n te _ s is te m a is p o r t( in 1 : in b it; in 2 : in b it; in 3 : in b it; in 4 : in b it; o u t1 : o u t b it ); e n d c o m p o n e n te _ s is te m a ; a r c h ite c tu r e a rq u ite tu ra _ s is te m a o f c o m p o n e n te _ s is te m a is

Declarao Dos Componentes

c o m p o n e n t c o m p o n e n te _ a n d p o r t( a : in b it; b : in b it; c : o u t b it); e n d c o m p o n e n t; c o m p o n e n t c o m p o n e n te _ in v p o r t( x : in b it; y : o u t b it); e n d c o m p o n e n t; s ig n a l s 1 , s 2 , s 3 , s 4 : b it; b e g in

Conexo entre Componentes

a n d 1 : c o m p o n e n te _ a n d p o r t m a p (a = > in 1 , b = > in 2 , c = > s 1 ); a n d 2 : c o m p o n e n te _ a n d p o r t m a p (a = > in 3 , b = > in 4 , c = > s 2 ); a n d 3 : c o m p o n e n te _ a n d p o r t m a p (a = > s 3 , b = > s 4 , c = > u t1 ); in v 1 : c o m p o n e n te _ in v p o r t m a p (x = > s 1 , y = > s 3 ); in v 2 : c o m p o n e n te _ in v p o r t m a p (x = > s 2 , y = > s 4 ); e n d a rq u ite tu ra _ s is te m a ;

ARCHITECTURE (ARQUITETURA) PROCESSOS


N N

ENTITY (ENTIDADE) PINOS DE I/O

Package (Pacotes)
Os pacotes (bibliotecas) contm uma coleo de elementos incluindo descrio do tipos de dados Analogia com C/C++: #include <library.h>. Para incluir uma biblioteca no cdigo VHDL (incio do cdigo): LIBRARY <nome_da_biblioteca> e/ou USE <nome_da_biblioteca>.all

Package (Pacotes)
Para utilizar STD_LOGIC, deve-se inserir no incio do cdigo:

library IEEE; use ieee.std_logic_1164.all; use ieee.std_ulogic_arith.all; use ieee.std_ulogic_unsigned.all;


Biblioteca do usurio (default): work.

Package (Pacotes)
Permite a reutilizao de um cdigo j escrito. Armazena:  Declarao de tipos  Declarao de constantes  Declarao de subprogramas  Declarao de mnemnicos Pode ser dividido em parte de declarao e parte de corpo (opcional).

Package (Pacotes)
Exemplo de Packages: package <biblioteca> is function soma(a,b: bit) return bit; subtype dado is bit_vector(32 downto 0); constant mascara : bit_vector(3 donwto 0) := 1100; alias terceiro_bit: bit is dado(3); end <biblioteca>.

Package (Pacotes)

Consideraes importantes 1. VHDL NO programao uma linguagem de

2. O VHDL deve ser descrito aps a arquitetura, e no a arquitetura aps o VHDL.

Você também pode gostar