Você está na página 1de 65

Eletrnica Digital II

ELT013
Engenharia de Computao

Aula 3

LINGUAGENS DE
DESCRIO DE
HARDWARE
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

Descrio de Circuitos
Lgicos

Os conceitos lgicos (se, ento, OU, AND, NOT, etc)


apesar de serem muitos familiares demandam muitos
esforos para serem escritos.
As razes para tais esforos podem ser resumidas
como:
Precisamos saber representar essas decises lgicas
Precisamos saber combinar essas funes lgicas e
implementar um sistema de tomada de decises

At o momento vocs conhecem:

Sentenas lgicas na nossa linguagem natural


Tabelas verdade
Smbolos lgicos tradicionais
Expresses de lgica booleana
Diagramas de tempo

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

Exemplo (1)
Se o motorista estiver presente E NO estiver usando o
cinto E a ignio estiver acionada, ENTO, acenda a luz
de advertncia.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

Exemplo (2)
Se o motorista estiver presente E NO estiver usando o
cinto E a ignio estiver acionada, ENTO, acenda a luz
de advertncia.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

Importncia da Descrio de
Circuitos Lgicos
Padroniza a comunicao entre os profissionais
e fabricantes.
Permite o surgimento de ferramentas de
projeto, simulao e documentao e anlise
de circuitos lgicos.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

LINGUAGENS DE
DESCRIO DE
HARDWARE
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

Linguagens de Descrio de
Hardware (1)
Linguagens baseadas em texto para a
descrio de circuitos digitais
Nenhum dos mtodos (tabelas verdade, smbolos
lgicos tradicionais, expresses de lgica booleana e
diagramas de tempo) fcil de ser transmitido ao
computador

HDL Linguagem de Descrio de Hardware.


Permite que linguagens rigidamente definidas
representem circuitos lgicos.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

Linguagens de Descrio de
Hardware (2)
Assim como existem vrias linguagens de programao,
existem vrias linguagens de descrio de hardware.
HDL Hardware Description Language

AHDL Altera Linguagem de Descrio de Hardware.


Desenvolvido por Altera para configurar dispositivos de lgica
programvel Altera (PLDs).

No se destina a ser utilizado como uma linguagem


universal para descrever qualquer circuito lgico.
VHDL Linguagem de Descrio de Hardware de
Velocidade Muito Alta.
Desenvolvido pelo Departamento de Defesa Norte-Americano
(DoD), padronizado pelo IEEE e amplamente utilizado para
descrever projetos para dispositivos reais (1980).
V Very high speed intregated circuit (VHSIC)
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

Histrico do VHDL (1)


Motivo do desenvolvimento:
Necessidade de uma ferramenta de projeto e
documentao projeto VHSIC do Departamento de
Defesa dos Estados Unidos da Amrica (DoD)

1981
DoD patrocina o 1o encontro de especialistas com o
objetivo de discutir mtodos para descrio de
circuitos

1983
DoD define os requisitos de uma linguagem padro
Firmado contrato com IBM, Texas e Intermetrics
objetivo: desenvolvimento da linguagem e
programas
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

10

Histrico do VHDL (2)


1985
Apresentao da verso 7.2
Direitos autorais do manual transferidos para
o IEEE (Institute of Electrical and Electronic
Engineer)
Incumbncias do IEEE:
Definir um padro para linguagem
Manter futuros desenvolvimentos (novas verses
etc.)

1987
Aps revises propostas por acadmicos,
representantes deAulaindustrias
e governo dos
ELT013 - Eletrnica Digital II
3 - Linguagens de descrio de hardware

11

Histrico do VHDL (3)


Aps 1987 - Desenvolvidos os pacotes:
IEEE 1164 std_logic_1164
IEEE 1076.3 numeric_std numeric_bit

O que so pacotes (packages)?


Local para armazenamento de informaes de uso
comum (novos tipos de dados, funes, etc).

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

12

Linguagem de Descrio versus


Linguagem de Programao (1)
importante distinguir entre as linguagens de
descrio de hardware e as linguagens de
programao.
Linguagens de programao
Os computadores funcionam seguindo uma lista de tarefas, que
devem ser realizadas em ordem sequencial.
A velocidade de operao determinada pela rapidez do
computador para executar cada instruo.

Circuito de lgica digital


Velocidade limitada apenas pela rapidez com que o circuito
pode mudar as sadas em resposta a mudanas nas entradas.
possvel monitorar todas as entradas simultaneamente
e responder a quaisquer alteraes.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

13

Linguagem de Descrio versus


Linguagem de Programao (2)
Comparao entre a operao de um computador e um
circuito de lgica na execuo da operao lgica y =
AB.
O computador deve executar um programa de
instrues que toma decises.
Cada
forma
no
fluxograma representa
uma instruo.
Se cada uma leva 20
ns, estima-se que ir
demorar de duas a
trs instrues (40 60 ns) para responder
s
mudanas
nas
entradas.
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

14

Linguagem de Descrio versus


Linguagem de Programao (3)
Comparao entre a operao de um
computador e um circuito de lgica na
execuo da operao lgica y = AB.

O circuito lgico uma porta AND. A sada y ser


ALTO a partir de 10 nanossegundos do momento
em que A e B so ALTO simultaneamente.
Dentro de aproximadamente 10 nanossegundos
aps uma entrada se tornar BAIXO, a sada y ser
BAIXO.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

15

IMPLEMENTAO DE
CIRCUITOS LGICOS COM
PLDS
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

16

Implementao de Circuitos Lgicos


com PLDs (1)
PLDs so configurados eletronicamente.
Seus circuitos internos so conectados eletricamente para
formar um circuito lgico
Essa fiao programvel
pode ser pensada como milhares
de conexes, conectadas (1) ou
no (0).
Cada interseo de uma linha
(fio horizontal) e coluna (fio vertical)
uma conexo programvel.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

17

Implementao de Circuitos Lgicos


com PLDs (2)
A linguagem de descrio de hardware define as
conexes a serem feitas.
Carrega-se o dispositivo aps a traduo por um compilador.

A linguagem de alto-nvel de descrio de hardware


torna a programao de PLDs muito mais fcil, se
comparada lgebra booleana, aos desenhos
esquemticos ou s tabelas-verdade.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

18

Formato e Sintaxe do HDL


(1)

Qualquer linguagem possui propriedades nicas, similaridades


com outras linguagens e sintaxe prpria.
O formato bsico para qualquer linguagem de descrio de
hardware envolve dois elementos fundamentais:

1. Definio do que entra e o do que sai (especificaes de entrada e sada)


2. Definio de como as sadas respondem s entradas (ou seja, operao)

Entradas

Operao

Sadas

Esquemtico facilmente interpretado por qualquer engenheiro.


. HDL deve capaz de transmitir a mesma informao da operao.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

19

Formato e Sintaxe do HDL


(2)

Formato dos arquivos HDL

O circuito que est sendo descrito deve receber um


nome.
Entradas e sadas (ports) devem ser nomeadas e
definidas de acordo com a natureza (tipo)
Unco bit (boto, 0 ou 1)
4 bits de um teclado (00002 11112), etc.

Port est em modo entrada ou sada ou bidirecional?

Tipo
Refere-se como os bits so agrupados e interpretados

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

20

Sntese Lgica de Circuitos


Etapas do Processo

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

21

Sntese Lgica de Circuitos


Problemas
VHDL no foi concebida para sntese de
circuitos
Logo nem todas construes da linguagem so
suportadas na sntese

Falta de correspondncia entre construo e


circuito real
Exemplo: flip-flop com dois terminais de relgio cdigo pode ser simulado mas no existe o flip-flop

Impossibilidade da sntese direta


Exemplo: multiplicao de dois nmeros reais cdigo pode ser simulado mas circuito muito
complexo
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

22

Elaborao da Descrio
Vrias formas de descrio so possveis com diferentes
nveis de abstrao
O cdigo inicial pode conter estruturas muito abstratas
para sntese direta logo:
Processo interativo permite atingir o grau de detalhamento
necessrio para sntese

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

23

Nveis de abstrao
Comportamental: Descrio utilizando construes de
alto nvel da linguagem
Behavioral VHDL: VHDL comportamental

RTL - Register Transfer Level: Descrio utilizando


construes de Nvel intermedirio
Nvel de transferncia de registradores descrito em termos do
fluxo de sinais (ou transferncia de dados entre os
registradores presentes no hardware e as operaes lgicas
conduzidas com estes sinais)
VHDL RTL tudo que pode ser sintetizvel
Sntese dependente da forma de escrita e da ferramenta
utilizada

Gate Level: Nvel de portas lgicas

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

24

Sntese da descrio
Nvel RTL
Inferncia das estruturas necessrias para gerar um
circuito nvel RTL
Emprega primitivas da ferramenta de sntese(portas lgicas,
somadores, comparadores etc.)

Circuito nvel RTL no associado a nenhuma


tecnologia

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

25

Sntese da descrio
Nvel Portas
Novo circuito considerando a tecnologia empregada
Emprega primitivas da tecnologia do hardware onde
ser embarcado o VHDL

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

26

Qual a vantagem do VHDL?


Independncia do dispositivo.
Vrios tipos de descrio.
Portabilidade: Vrios simuladores e ferramentas de
sntese suportam a descrio VHDL.
Rpido para gerar a descrio e baixo custo de
desenvolvimento
Cdigo Fonte em VHDL

Sntese A

PLD A
ELT013 - Eletrnica Digital II

Sntese B

PLD B

Sntese C

PLD C

Aula 3 - Linguagens de descrio de hardware

27

DESCRIO BOOLEANA
USANDO VHDL

Descrio booleana usando


VHDL

A palavra-chave ENTITY d um nome ao bloco de


circuito, que, neste caso, and_gate

Variveis nomeadas pelo projetista devem ser minsculas


Palavras-chave da linguagem devem ser MASCULAS

Descrio com 2 grandes


blocos:
Entidade (Entity)
Responsvel pela
interface da descrio

Arquitetura (Architecture)
Responsvel pela descrio
do comportamento do
circuito

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

29

Entity
Interface com o mundo externo
Especifica entradas, sadas e atrasos
Ports

Ports

Entity

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

30

Descrio booleana usando


VHDL

A palavra-chave ENTITY d um nome ao bloco de


circuito, que, neste caso, and_gate

Variveis nomeadas pelo projetista devem ser minsculas


Palavras-chave da linguagem devem ser MASCULAS
A palavra-chave PORT diz
ao
compilador
que
estamos
definindo
entradas e sadas para
esse bloco de circuito.
A descrio do BIT diz ao
compilador
que
cada
varivel na lista um bit
nico.
A
palavra-chave
END
encerra a declarao da
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

31

Descrio booleana usando


VHDL

A palavra-chave ENTITY d um nome ao bloco de


circuito, que, neste caso, and_gate

Variveis nomeadas pelo projetista devem ser minsculas


Palavras-chave da linguagem devem ser MASCULAS
A palavra-chave PORT diz
ao
compilador
que
estamos
definindo
entradas e sadas para
esse bloco de circuito.
A descrio do BIT diz ao
compilador
que
cada
varivel na lista um bit
nico.
A
palavra-chave
END
encerra a declarao da
ELT013 - Eletrnica Digital II

Variveis
separadas por
vrgulas

Aula 3 - Linguagens de descrio de hardware

32

Descrio booleana usando


VHDL

A palavra-chave ENTITY d um nome ao bloco de


circuito, que, neste caso, and_gate

Variveis nomeadas pelo projetista devem ser minsculas


Palavras-chave da linguagem devem ser MASCULAS
A palavra-chave PORT diz
ao
compilador
que
estamos
definindo
entradas e sadas para
esse bloco de circuito.
A descrio do BIT diz ao
compilador
que
cada
varivel na lista um bit
nico.
A
palavra-chave
END
encerra a declarao da
ELT013 - Eletrnica Digital II

(:) modo e
tipo da
varivel de
entrada

Aula 3 - Linguagens de descrio de hardware

33

Descrio booleana usando


VHDL

A palavra-chave ENTITY d um nome ao bloco de


circuito, que, neste caso, and_gate

Variveis nomeadas pelo projetista devem ser minsculas


Palavras-chave da linguagem devem ser MASCULAS

A
declarao
ARCHITECTURE usada
para
descrever
o
funcionamento de tudo
dentro do bloco.
ckt o nome da
descrio
da
arquitetura
OF e IS so palavrasELT013 - Eletrnica
Aula 3 - Linguagens de descrio de hardware
chaveDigital II

34

Descrio booleana usando


VHDL

A palavra-chave ENTITY d um nome ao bloco de


circuito, que, neste caso, and_gate

Variveis nomeadas pelo projetista devem ser minsculas


Palavras-chave da linguagem devem ser MASCULAS

Cada ENTITY deve ter ao


menos uma ARCHITECTURE
associada a ela.
Declarao (y) recebe por
atribuio (<=) o nvel lgico
produzido por a AND b.
Todas as declaraes entre
BEGIN e END so analisadas
e
atribudas
concorrentemente,
no
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

35

Sinais Intermedirios
Em muitos projetos, necessrio definir pontos
de sinal "dentro" do circuito de blocos
Chamados ns internos ou sinais locais.
So pontos do circuito que podem ser teis como
ponto de referncia.
No so entradas nem sadas.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

36

Sinais Intermedirios em
VHDL

SIGNAL define
um sinal
intermedirio.
BIT define o
tipo do sinal
intermedirio

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

37

Comentrios em VHDL
Comentrios so precedidos de dois traos (--)
Assim como no desenvolvimento de software, documentao
muito importante.

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

38

OUTRAS CONSIDERAES
SOBRE A LINGUAGEM
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

39

Package
Utilizado quando necessrio o uso de algo
no definido nas bibliotecas do VHDL padro.
Utilizado por meio dos comandos library e use
Ex: library IEEE;
use IEEE.Std_Logic_1164.all;

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

40

Sinais
Sinais representados por uma bit: BIT
Sinais representados por um vetor :
BIT_VECTOR
A direo de um sinal pode ser:
Entrada => input
Sada => output
Exemplos:
Bidirecional => inout
port (
RESULT

: inout bit_vector(0 to 7);


Z
: in
bit;
EXTBUS : out bit_vector(4 downto 0);

ARCHITECTURE ....
.
No h necessidade de definir a direo
.
de sinais internos
.
Signal x,y : bit
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

41

Comentrios:

42

Atribuio de Sinais

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

43

Alguns Operandos
Lgicos

Comparao

and, or, nor, nand,


xor,...

Numricos

+
soma
diferena
*
multiplicao
/
diviso
**
expoente
abs
valor absoluto
rem
resto
mod modulo
etc...

ELT013 - Eletrnica Digital II

=
/=
>
<
<=
>=

igual,
diferente,
maior do que,
menor do que,
menor ou igual,
maior ou igual

Aula 3 - Linguagens de descrio de hardware

44

Linguagem Concorrente (1)


Descrio VHDL embora utilize cdigo
sequencial, modela circuitos que operam de
forma concorrente
Semelhante a montagem de um circuito em uma
placa
Ordem das declaraes no importa

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

45

Linguagem Concorrente (2)


Como o sinal A depende de B e B depende de
C, os sinais so utilizados como em hardware,
de forma concorrente.

As declaraes podero ter ordem diferente


sem afetar a sua funcionalidade.
Quando necessrio uma sequncia
de eventos para modelar um
comportamento, utiliza-se um processo
(PROCESS).
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

46

Declarao PROCESS
Objetivo: delimitar regies de cdigo sequencial
Incio: palavra reservada PROCESS
Lista de sensibilidade: identifica que sinais ativam a
execuo do processo
Declaraes dentro do
process so concorrentes
Delimita uma regio
contendo cdigo
sequencial
Processos so contnuos e
cclicos

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

47

PROCESS
Lista de sensibilidade em processos
Lista de sensibilidade:
Define quais sinais causam a execuo do processo
Execuo do processo ocorre se um sinal da lista tem
valor alterado

Iniciada a execuo:
Declaraes so avaliadas na sequncia
Ao trmino da avaliao da ltima declarao o
processo suspenso (aguarda uma nova alterao
de valor - sinais da lista)

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

48

Lista de sensibilidade em processos


Exemplo
Valores interfaces entrada a e b transferidos para
interfaces de sada sa e sb. Unicamente sinal a na
lista de sensibilidade
Consequncia:
Alterao do valor em a: execuo do processo valores de a e
b transferidos para sa e sb
Alterao do valor em b: processo no executado valores
de a e b mantidos

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

49

Teste utilizando IF
Descrio Sequencial
Flip-flop : Process (D, CLK)
begin
if rising_edge (CLK) then
Q <= D;
endif;
end process Flip-flop;

nome : Process (lista de sinais)


begin
if condio then
atribuio
elsif condio then
atribuio
else
atribuio
endif;
end process Flip-flop;
ELT013 - Eletrnica Digital II

Flip-flop : Process (D, CLK,RST)


begin
if rst=1 then
Q <= 0;
elsif rising_edge (CLK) then
Q <= D;
endif;
end process Flip-flop;

Formato
Geral

Aula 3 - Linguagens de descrio de hardware

50

Teste utilizando CASE


Descrio Sequencial
architecture estrutura of mux_case is
begin
mux: process(sel,A,B,C,D)
begin
case sel is
when "00" => Y <= A;
when "01" => Y <= B;
when "10" => Y <= C;
when "11"
=> Y <= D;
when others => Y <= A;
end case;
end process;
end;
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

51

Teste utilizando When


Descrio Concorrente
architecture conditional of
mux2to1 is
begin
z <= a when s = 1 else b;
end architecture conditional;

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

52

Teste utilizando With


Descrio Concorrente
architecture sel of mux
is
begin
with seletor select
saida <=
in0 when 00,
in1 when 01,
in2 when 10,
in3 when others;
end architecture mux;
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

53

Paralelismo de Processos
(1)
Processo 1
Processo 2
Processo 3

Arquitetura

Processo 4
Processo 5
ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

54

Paralelismo de Processos
(2)
Alterando A, os
processos P1 e P2 so
executados em paralelo

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

55

Paralelismo de Processos
(3)

Alterando B, os
processos P1 e P3 so
executados em paralelo

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

56

Paralelismo de Processos
(4)

Alterando C, apenas o
processo P2 executado

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

57

Comunicao entre
Processos (1)
Processo P1

Processo P2

Processo P3

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

58

Comunicao entre
Processos (2)
Processo P1

Processo P2

Processo P3

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

59

Comunicao entre
Processos (3)
Evento em A

Evento em D

Evento em E

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

60

Comunicao entre
Processos (4)

Evento em D

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

61

Comunicao entre
Processos (5)

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

62

COMO SE APRENDE VHDL?

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

63

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

64

Exerccios
Seo 3.17
Seo 3.18

ELT013 - Eletrnica Digital II

Aula 3 - Linguagens de descrio de hardware

65