You are on page 1of 25

PUC Minas Virtual 1

1. CONSIDERAES INICIAIS
Prezados alunos(as),
As portas lgicas padro discutidas nas unidades anteriores foram os pilares do desenvolvimento
dos sistemas digitais durante dcadas, entretanto o desenvolvimento de tais sistemas por meio do
uso destas portas, encapsuladas em circuitos integrados padro MSI e SSI parece estar chegando
ao fim. Apesar de serem extremamente teis no aprendizado tradicional das tcnicas digitais, atu-
almente existem diversas ferramentas de projeto de hardware com interfaces amigveis que pos-
sibilitam a integrao da funcionalidade dos componentes lgicos convencionais com a flexibili-
dade dos Dispositivos Lgicos Programveis (PLDs, visto na unidade 3).
O uso de tais ferramentas de projeto permite ao projetista de hardware descrever um sistema digi-
tal em um diagrama esquemtico utilizando blocos funcionais pr-definidos, equivalentes aos
componentes padro convencionais (MSI e SSI). Este projeto pode ser compilado e ento pro-
gramado (embarcados) diretamente em um PLD. Adicionalmente, tais ferramentas permitem a
realizao de simulaes do sistema desenvolvido para garantia do perfeito funcionamento do
mesmo. Em geral estas ferramentas so verdadeiros ambientes de desenvolvimento integrados,
fornecidos pelos prprios fabricantes de PLDs. Atualmente a Xilinx (www.xilinx.com) e a Alte-
ra (www.altera.com) so as maiores fabricantes de dispositivos lgicos FPGAs e suas ferramen-
tas de desenvolvimento so amplamente utilizadas pelo mercado. Neste curso focaremos nas fer-
ramentas de desenvolvimento e simulao de sistemas lgicos da Altera. Tais sistemas constitu-
em ferramentas computacionais poderosas de auxlio ao desenvolvimento de projetos de sistemas
embarcados.
Alm das ferramentas de auxlio ao projeto de hardware embarcado, estudaremos uma alternativa
ao desenvolvimento de sistemas digitais baseada em Linguagens de Descrio de Hardware (HDL
- Hardware Description Language). Tais linguagens permitem que o projetista crie um arquivo
texto, seguindo as regras sintticas da linguagem, e com o uso de um compilador apropriado
possvel gerar um arquivo binrio contendo os dados para programao do PLD. Estas linguagens
permitem uma abordagem hierrquica na gerao dos projetos. Entre as HDLs mais utilizadas
esto o VHDL (Very high speed integrated circuit Hardware Description Language) e o Verilog.

Ttulo: SISTEMAS DIGITAIS EM HDL - PARTE I

Autor: Claudio Faria

PUC Minas Virtual 2

Estas linguagens so hoje padres aprovados pelo IEEE (Instituto dos Engenheiros Eltricos e
Eletrnicos), sendo que, vrias ferramentas comerciais foram desenvolvidas para as mesmas. A
Atera tambm oferece a AHDL, uma linguagem mais simples mas que utiliza os mesmos con-
ceitos bsicos do VHDL.
Esta unidade de ensino ser dividida em duas partes, nesta primeira parte, com previso para 3
semanas, aprenderemos os conceitos e a sintaxe das linguagens de descrio de hardware de for-
ma a capacitar o aluno para o desenvolvimento de sistemas lgicos digitais utilizando as HDLs.
Na segunda parte ns aprenderemos sobre o uso do novo sistema de desenvolvimento da Altera,
o Quartus II. Adicionalmente voc tambm ser incentivado a estudar/investigar outros sistemas
existentes no mercado, tal como, o ambiente de desenvolvimento da Xilinx.
2 - LINGUAGENS DE DESCRIO DE HARDWARE
Uma alternativa ao desenvolvimento de sistemas digitais embarcados utilizando diagramas de blo-
cos esquemticos utilizar uma tcnica de projeto baseado em uma linguagem de descrio de
hardware (HDL). Como exemplos de HDLs podemos citar: as linguagens padres VHDL (VHSIC
Hardware Description Language, onde VHSIC a sigla de Very High Speed Integrated Circuit) e o
Verilog. Alm de linguagens proprietrias como o AHDL (Altera Hardware Description Language).
Nesta tcnica possvel criar um arquivo de texto, seguindo um conjunto de regras (sintaxe), e
usando ambiente de compilao e sntese adequado, pode-se gerar um arquivo binrio de dados de
programao de um PLD. Uma grande vantagem das HDLs em relao entrada esquemtica que
elas podem representar diretamente equaes booleanas, tabelas verdade e operaes complexas
(p.ex. operaes aritmticas). Outra grande razo para o uso de HDLs baseia-se na possibilidade de
se construir conjuntos de bibliotecas de componentes, de forma a ser utilizada em diversos projetos
de sistemas digitais.
As HDLs podem ser utilizadas para gerar projetos hierrquicos, de forma que, um componente desen-
volvido para uma aplicao especfica possa ser utilizado como parte de outro projeto. Uma grande vanta-
gem das HDLs em relao a um projeto esquemtico que elas podem representar diretamente equaes
booleanas, tabelas verdade e operaes complexas (p.ex. operaes aritmticas).
Apesar de haver uma grande semelhana entre as HDLs e as linguagens de programao existe uma dife-
rena principal entre as duas: as HDLs visam descrever as estruturas e o comportamento de circuitos de
hardware concorrentes, j as linguagens de programao representam uma seqncia de instrues a
ser executada por um processador a fim de se realizar alguma tarefa.
PUC Minas Virtual 3

As sees seguintes apresentam uma descrio das HDLs, especificamente, a VHDL (Very high speed
integrated circuit Hardware Description Language) e a AHDL (altera) que utiliza uma linguagem
mais simples que o VHDL. Os arquivos escritos em HDL podem ser compilados com softwares
especficos, tal como, o Quartus II, o qual ser apresentado em detalhes na unidade IV parte II.
3. FORMATO E SINTAXE DO HDL
O formato bsico de qualquer descrio de hardware em qualquer linguagem envolve dois ele-
mentos fundamentais:
1. A especificao de entrada e sada
2. A especificao da operao realizada (sada em funo da entrada)
A figura 2 ilustra o formato utilizado pelas HDLs

Figura 2 formato de arquivos em HDL
As entradas e sadas, s vezes chamadas de portas, precisam ser nomeadas e definidas de acordo
com a natureza da porta, por exemplo, um nico bit ou um nmero de 8 bits. A HDL precisa defi-
nir a natureza das entradas e sadas. O modo de uma porta especifica se entrada, sada ou bidi-
recional. O tipo se refere ao nmero total de bits da porta e como so agrupados e interpretados.
Por exemplo, se a entrada for um nmero binrio de 4 bits, o tipo determina o intervalo de valores
possveis. A descrio funcional define a operao do circuito e est contida em um conjunto de
declaraes que segue a definio das entradas e sadas do circuito.
Veremos agora a descrio de um circuito bastante simples nas linguagens VHDL e AHDL. O
circuito descrito uma porta AND tal como mostrado na figura 3.
PUC Minas Virtual 4


Figura 3 Descrio de uma porta E usando diagrama esquemtico.

PUC Minas Virtual 5

4. DESCRIO DE EQUAES BOOLEANA USANDO HDL
Na figura 4 tem-se a descrio do circuito da figura 3 em AHDL. A palavra-chave SUBDESIGN
(escrita em letra maiscula) nomeia o bloco do circuito (neste caso, and_gate). O nome do arqui-
vo deve ser tambm and_gate.tdf. A seo SUBDESIGN define as entradas e sadas do circuito
lgico. Em AHDL a definio de entrada/sada est entre parnteses. A lista de variveis de en-
trada separada por vrgulas seguida pela expresso :INPUT;. Em AHDL pressupe que o tipo
bit seja nico, a menos que a varivel seja declarada como de mltiplos bits.
O conjunto de declaraes que descreve a operao do circuito est contido entre as palavras-
chaves BEGIN e END. Nesse exemplo, a operao descrita por meio de uma equao boo-
leana muito simples, a qual define que a sada (y) recebe como atribuio o nvel lgico produzi-
do por a AND b.

Figura 4 Elementos essenciais em AHDL.
Todas as declaraes entre BEGIN e END so concorrentes e simultneas, no importando a
ordem em que so listadas.
Os operadores booleanos bsicos em AHDL so:
&: AND (E)
#: OR (OU)
!: NOT (INVERSORA)
$: XOR (OU-EXCLUSIVA)
A figura 5 apresenta a descrio do mesmo circuito lgico da figura 3, mas agora em VHDL. A
palavra-chave ENTITY descreve o bloco lgico (geralmente escrita em letras maisculas). O
nome da ENTITY (and_gate) geralmente descrito em letras minsculas. O trmino da declara-
PUC Minas Virtual 6

o ENTITY determinado com a palavra-chave END, neste caso, a finalizao seria dada pela
linha END and_gate;. Logo aps, a palavra-chave PORT diz ao compilador que estamos defi-
nindo as entradas e sadas para este bloco de circuito. Os nomes da lista das entradas so separa-
dos por vrgula, terminando com dois pontos (:) e uma descrio do modo e do tipo da entrada
(:IN BIT;). A descrio BIT diz ao compilador que cada varivel da lista um bit nico (single).
Existem outros tipos de entradas que aprenderemos adiante. A descrio OUT define a varivel
(ou lista) como sada, tal como mostrado na figura 5.

Figura 5 Elementos essenciais em VHDL.
A declarao ARCHITECTURE usada para descrever a operao da arquitetura do funciona-
mento interno do bloco ENTITY. O projetista deve escolher um nome qualquer para essa descri-
o, no caso da figura 4 o nome escolhido foi ckt. Todo ENTITY deve ter pelo menos uma AR-
CHITECTURE. As palavras OF e IS so palavras-chave desta declarao. O corpo da descrio
deve estar entre as palavras BEGIN e END. END seguido pelo nome da ARCHITECTURE.
Dentro do corpo est a descrio da operao do bloco lgico. Neste exemplo a operao descri-
ta por uma equao booleana muito simples que declara que a sada y recebe como atribuio
(<=) o nvel lgico produzido por a AND b. Esta atribuio chamada de declarao de atribui-
o concorrente, isto significa que todas as declaraes sero avaliadas constante e concorren-
temente. A ordem em que so listadas no faz importa. Esta a principal diferena entre as
HDLs e as linguagens de programao de computadores que so sequenciais.
Os operadores booleanos bsicos em VHDL so:
AND
OR
NAND
NOR
PUC Minas Virtual 7

XOR
XNOR
NOT
5 - SINAIS INTERMEDIRIOS
Muitas vezes necessrio definir pontos intermedirios de sinal dentro de um bloco de circuito.
Em HDL esses pontos so chamados de ns internos ou sinais locais. Esses pontos so definidos
como na seo que descreve a operao do bloco. Dessa forma, esses sinais so reconhecidos
apenas internamente no bloco. A figura 6 ilustra um sinal intermedirio m para um determinado
circuito.

Figura 6 Diagrama de circuito lgico com uma varivel (ou sinal) intermediria.
PUC Minas Virtual 8

5.1 - Ns internos em AHDL
O cdigo AHDL que descreve o circuito da figura 6 mostrado na figura 7. Note que os sinais
intermedirios (locais) so declarados pela palavra-chave VARIABLE que fica entre a seo
SUDDESIGN e a seo lgica. A palavra chave NODE designa a natureza da varivel (ver sinta-
xe na figura 7)

Figura 7 Variveis intermedirias em HDL para o circuito da figura 6.
5.2 - Ns internos em VHDL
Em VHDL as variveis locais so definidas pela palavra-chave SIGNAL. A figura 8 apresenta a
descrio em VHDL do circuito correspondente figura 6. Verifique que a varivel m descrita
como um sinal local e utilizada pela equao booleana.
PUC Minas Virtual 9


Figura 8 - Sinais intermedirios em VHDL para o circuito da figura 6.
6. REPRESENTAO DE DADOS EM HDL
Quando escrevemos um projeto de circuito lgico em HDL muitas vezes necessitamos de usar
vrios formatos binrios. A tabela 1 mostra como representar dados em binrio, hexadecimal e
decimal em HDL.
Tabela 1 Designando sistemas de numerao em HDL
Sistema de
Numerao
AHDL VHDL Padro do bit Equivalente
Decimal
Binrio B101 B101 101 5
Hexadecimal H101 X101 100000001 257
Decimal 101 101 1100101 101

PUC Minas Virtual 10

6.1 - Matrizes de bits/vetores de bits
Suponha que desejamos declarar uma entrada de 8 bits a um bloco de circuito qualquer. Para isto,
devemos definir uma porta de entrada em AHDL, tal como mostrado abaixo:
p1 [7..0] : INPUT;
Variveis intermedirias podem ser declaradas como vetores. Como exemplo, a temperatura de 8
bits na porta p1 pode ser conectada (atribuda) a um n chamado temp, da seguinte forma:
VARIABLE temp [7..0] :NODE;
BEGIN
temp[] = p1[];
END;
Em VHDL a porta p1 definida como sendo do tipo BIT_VECTOR e o intervalo de ndices en-
tre parnteses, da seguinte forma:
PORT (p1 :IN BIT_VECTOR (7 DOWNTO 0);
Sinais intermedirios podem ser declarados como um vetor de bits da mesma forma:
SIGNAL temp :BIT_VECTOR (7 DOWNTO 0);
BEGIN
Temp <= p1;
END;
Os tipos de dados em VHDL so bastante especficos. O tipo BIT_VECTOR descreve vetor de
bits individuais, entretanto ele interpretado de modo diferente do que acontece com um nmero
binrio de 8 bits (tipo INTEGER). A tabela 2 mostra os principais tipos de dados aceitos em
VHDL
PUC Minas Virtual 11

Tabela 2 Tipos de dados em VHDL.
Tipo Exemplo de declarao Uso
BIT y: OUT BIT; y <= 0;
BIT_VECTOR y : BIT_VECTOR(3 DOWNTO 0) Y <= 0010;
STD_LOGIC y : STD_LOGIC; Y <= z
INTEGER y : INTEGER RANGE 0 TO 15 IF y > 10 THEN ...

7 - IMPLEMENTAO DE UMA TABELA-VERDADE EM HDL
Uma vez que uma tabela verdade outra forma de expressar o funcionamento de um circuito digi-
tal as HDLs permitem que isto seja feito de modo bastante simplificado. A figura 9 mostra o c-
digo em AHDL para implementar um circuito que usa uma determinada tabela-verdade. Em
AHDL uma tabela verdade implementada por meio da diretiva TABLE.

Figura 9 Tabela verdade e circuito correspondente descrito em AHDL.
O mesmo exemplo da figura 9 pode ser descrito em VHDL de um modo um pouco diferente. Isto
pode ser feito com a declarao WITH. A figura 10 mostra a implementao da tabela verdade
em VHDL. O cdigo da figura 10 define uma varivel local in_bits do tipo BIT_VECTOR de 3
bits. A atribuio das trs entradas a, b e c ao sinal intermedirio in_bits por meio de concatena-
PUC Minas Virtual 12

o pelo operador &. A sada y atribuda (<=) a um valor de bit (0 ou 1) WHEN (quando)
in_bits contm o valor listado entre aspas duplas.

Figura 10 Implementao de uma tabela verdade em VHDL.

8 - ESTRUTURAS DE CONTROLE DE DECISO EM HDL
As HDLs permitem que o projetista dizer ao sistema digital como tomar decises lgicas. As es-
truturas de deciso em HDL permitem que as avaliaes das declaraes sejam feitas seqencial-
mente. Veremos as seguintes estruturas IF/THEN/ELSE e CASE.

8.1 IF/THEN/ELSE
A figura 11 ilustra um exemplo de cdigo AHDL que utiliza uma estrutura IF/ELSE sobre uma
entrada digital de 4 bits. A funo lgica do circuito verifica se a entrada maior que o decimal 6.
Em AHDL as entradas podem ser especificadas como um nmero binrio composto de mltiplos
bits. Se a condio for verdadeira produz 1 na sada, seno produz o valor 0.
PUC Minas Virtual 13


Figura 11 Estrutura de deciso IF/ELSE em AHDL
A figura 12 apresenta o mesmo circuito da figura 11, mas em VHDL. O tipo da varivel de entra-
da do circuito declarado como INTEGER. Especificando um intervalo (RANGE) entre 0 e 15 o
compilador reconhece como um nmero de 4 bits. Observe que o RANGE no especifica o nme-
ro ndice de um vetor de bits, tal como o BIT_VECTOR. Inteiros so tratados diferentemente de
vetores de bits (BIT_VECTOR) em VHDL. Um BIT_VECTOR no pode ser usado com operado-
res de desigualdade.
O VHDL exige que o cdigo da estrutura de controle esteja dentro de uma clusula PROCESS.
As declaraes que ocorrem dentro de um processo so sequenciais, ou seja, a ordem em que so
escritas afeta o funcionamento do circuito.

Figura 12 Verso em VHDL da estrutura IF/ELSE.
8.2 CASE
Outra importante estrutura de controle o CASE. Quando o teste de condio de uma varivel pode
assumir vrias opes, recomendado o uso do case. A figura 13 demonstra um caso de uso da es-
PUC Minas Virtual 14

trutura CASE em AHDL. A clusula WHEN usada para verificar se a condio satisfeita. O
exemplo usa bits individuais como entrada e os concatena, para ento serem atribudos a uma vari-
vel intermediria.


Figura 13 Estrutura CASE representada em AHDL.
Este mesmo exemplo implementado em VHDL na figura 14. Veja que os bits so concatenados
utilizando o operador &. A declarao CASE avalia a varivel intermediria e usando a clusula
WHEN.

Figura 14 - Estrutura CASE representada em VHDL.
PUC Minas Virtual 15

9. EXEMPLOS DE APLICAES DIGITAIS EM HDL
Esta seo apresenta alguns exemplos de circuito digitais padro utilizando uma linguagem de descrio
de hardware. Para cada exemplo ser apresentada uma soluo em VHDL e em AHDL.
9.1 - Circuitos Multiplexador e Demultiplexador
Esta seo apresenta alguns cdigos para implementao de circuitos multiplexadores (Mux) e demultiple-
xadores (Demux) em HDL. A figura 15, dada abaixo, apresenta um circuito multiplexador com 4 entradas
de 4 bits (chamada aqui de canal de quatro bits - CH
0
, CH
1
, CH
2
e CH
3
).
Em HDL podemos descrever cada canal de entrada por um vetor de 4 bits. As linhas de seleo S
1
e S
0

selecionam qual canal ser atribudo sada do multiplexador (D
out
). Para o demultiplexador teremos o
processo inverso. A entrada de 4 bits (D
in
) ser atribuda sada selecionada por S
1
e S
0,
Esta aplicao
muito comum em sistema de transmisso de dados por multiplexao fsica de canais de dados. No Demux
as sadas que no foram selecionadas apresentam todos os seus bits em nvel alto (1).

Figura 15 - Exemplo de um circuito lgico com quatro canais de dados (de 4 bits cada) comparti-
lhando um caminho de dados comum.
As figuras 16 e 17 apresentam implementaes do circuito multiplexador em AHDL e VHDL
respectivamente. A implementao em AHDL utiliza uma declarao CASE para atribuir um
canal de entrada condicionalmente aos pinos de sada. A figura 17 mostra o cdigo que cria um
MUX em VHDL de quatro canais com 4 bits por canal. As entradas so declaradas como vetores
de bits na linha 3, entretanto, poderiam ser declaradas como variveis inteiras de 0 a 15. De qual-
quer modo que seja declarada a entrada a sada deve ser do mesmo tipo. Veja que, na linha 4, a
entrada de seleo (s) declarada como um inteiro decimal de 0 a 3, isto equivalente aos bin-
rios de 00 a 11.
PUC Minas Virtual 16


Figura 16 Multiplexador de 4 canais de 4 bits para 1 canal de 4 bits em AHDL.
FONTE TOCCI, 2007 Figura 9.62, pagina 544


Figura 17 Multiplexador de 4 canais de 4 bits para 1 canal de 4 bits em VHDL.
FONTE TOCCI, 2007 Figura 9.64, pagina 546.


As figuras 18 e 19 apresentam os cdigos relativos aos demultiplexadores em AHDL e VHDL
respectivamente. Os cdigos funcionam de modo semelhante ao multiplexador, mas tem apenas
um canal de entrada e quatro canais de sada. Em AHDL a condio padro para cada canal
especificada aps a palavra chave DEFAULTS, que diz ao compilador para gerar um circuito que
colocar todas as sadas em nvel alto, a no ser que elas tenham um valor atribudo especifica-
mente no cdigo.



PUC Minas Virtual 17


Figura 18 Demultiplexador de 1 canal (de 4 bits) para 4 canais (de 4 bits) em AHDL.
FONTE TOCCI, 2007 Figura 9.63, pagina 545

O funcionamento do demultiplexador em VHDL descrito mais facilmente com vrias declara-
es de atribuio de sinal condicional (WHEN, ver linhas 11-14 da figura 19). Como foi decidi-
do que todas as sadas no selecionadas ficassem em nvel alto, utilizamos a clusula ELSE de
cada atribuio condicional.

PUC Minas Virtual 18

Figura 19 Demultiplexador de 1 canal (de 4 bits) para 4 canais (de 4 bits) em VHDL.
FONTE TOCCI, 2007 Figura 9.65, pagina 546.


Questo para reviso

1) Voc sabe como transformar os cdigos da figura 17 e 18 de forma que os multiplexado-
res passem a ser de 4 entrada de 1 bit para uma sada de 1 bit, ou seja, os canais devem ser
de 1 bit somente?

9.2 Circuito Decodificador/Codificador
Como j conhecido um circuito decodificador reconhece um nmero binrio em sua entrada e
ativa a sada correspondente. Por exemplo, o decodificador 74138 emprega trs entradas binrias
para ativar uma das oito sadas quando o CI estiver habilitado. A figura 20 apresenta o diagrama
lgico do 74138. Para o CI ficar habilitado necessrio que E
1
e E
2
estejam em nvel baixo (0) e
E
3
em nvel alto (1).
PUC Minas Virtual 19


Figura 20 Circuito Decodificador 3x8 (74138)
FONTE TOCCI, 2007, pgina 482

A figuras 21 e 22 apresentam uma implementao do 74138 em AHDL e VHDL respectivamente.
Na figura 21 utilizamos mais uma vez a palavra-chave DEFAULTS em AHDL para especificar o
valor padro para as variveis que no so inicializadas em nenhum outro ponto do circuito.

PUC Minas Virtual 20


Figura 21 Circuito decodificador 3 x 8 equivalente ao 74138 em AHDL.
FONTE TOCCI, 2007, figura 9.52, pgina 535.


A Figura 22 mostra o mesmo circuito decodificador em VHDL, entretanto, emprega o mtodo da
tabela verdade. A principal estratgia nesta soluo envolve a concatenao dos trs bits de habi-
litao (e3, e2bar e e1bar) com a entrada binria a (linha 11). Esta concatenao realizada com
o operador &.


PUC Minas Virtual 21


Figura 22 Circuito decodificador 3 x 8 equivalente ao 74138 em VHDL.
Circuito codificador
O circuito codificador funciona no sentido inverso do decodificador, ou seja, ele monitora uma
srie de entradas; quando uma entrada ativada ele produz um nmero binrio na sada corres-
ponde quela entrada. Os circuitos codificadores implementados nesta seo so CODIFICADO-
RES DE PRIORIDADE, ou seja, se mais de uma entrada ativada ao mesmo tempo, o codifica-
dor de prioridade ignora a(s) entrada(s) menos significativas, produzindo o nmero binrio na
sada correspondente entrada mais significativa.
A figura 23 apresenta uma implementao em AHDL de um circuito codificador de prioridade
decimal x binrio usando a declarao TABLE. importante observar que o estabelecimento de
prioridade dado pelo uso do estado de irrelevncia X nas entradas. Outro ponto importante so
as atribuies das entradas e sadas. As descries de entrada/sada em AHDL no fornecem um
tipo separado para inteiros, mas permitem que se faa referncia a um vetor de bits como um in-
teiro. Assim a linha 5 descreve as sadas como um vetor de bits.
PUC Minas Virtual 22


Figura 23 Circuito codificador Decimal x binrio em AHDL.
A figura 24 ilustra uma implementao do mesmo codificador em VHDL. Esse cdigo emprega
uma declarao de sinal condicional usando a clusula WHEN e ELSE.

Figura 24 Codificador decimal x binrio em VHDL.
PUC Minas Virtual 23


10. CONSIDERAES FINAIS
Esta unidade teve como objetivo capacitar o aluno para o desenvolvimento de sistemas lgicos
digitais utilizando as HDLs. Nas prximas atividades sero desenvolvidos exerccios que envol-
vam a implementao de sistemas digitais utilizando o ambiente de desenvolvimento Quartus II
da Altera.
PUC Minas Virtual 24

13. EXERCCIOS DA UNIDADE
EXERCCIO 1 - Descreva uma definio para o termo sistemas embarcados.
EXERCCIO 2 - Quais as duas principais caractersticas de um sistema embarcado?
EXERCCIO 3 - Descreva a arquitetura bsica de um sistema embarcado (use digrama de blocos
de achar necessrio).
EXERCCIO 4 Questes para reviso
1) O que quer dizer a sigla HDL?
2) Qual a funo do HDL?
3) Qual a principal diferena entre o HDL e as linguagens de programao de computadores?
4) O que aparece dentro dos parnteses ( ) aps SUBDESIGN em AHDL? E o que aparece
entre BEGIN e END?
5) Qual o papel da declarao ENTITY em VHDL?
6) Que seo-chave define a operao do circuito em VHDL?
7) Qual o operador de atribuio usado para atribuir um valor a um sinal lgico em AHDL?
8) Qual a designao usada para variveis intermedirias em AHDL?
9) Onde estas variveis so declaradas ?
10) Importa quem vem primeiro na equao da figura 7, se m ou y?
11) Qual a designao usada para sinais intermedirios em VHDL?
12) Onde esses sinais so declarados?
EXERCCIO 5 Escreva o cdigo HDL na linguagem de sua escolha (VHDL ou AHDL) que
ir produzir as seguintes funes de sada:
X = AB
Y = A + B
Z = A + BC
Obs: para A + B leia-se A OU B. Para AB leia-se A E B
PUC Minas Virtual 25

EXERCCIO 6 Implemente um circuito multiplexador 4 entradas e 1 (uma) sada usando uma
HDL de sua preferncia.
Obs.: As linhas entradas e sadas so canais de 1 apenas.
EXERCCIO 7 - Um detector de moedas em uma mquina automtica aceita moedas de R$ 0.10,
R$ 0.25 e R$ 0.50. A passagem de uma moeda pelo sensor ativa um sinal especfico do sensor, de
forma que, a moeda de R$ 0.10 ativa o sinal A, a moeda de R$ 0.25 ativa o sinal B e a moeda de R$
0.50 ativa o sinal C, tal como mostrado na figura abaixo.


Sabendo que fisicamente impossvel mltiplas moedas passarem ao mesmo tempo sobre o sensor.
Escreva o cdigo HDL de um circuito digital para este sensor, de forma a produzir um nmero bin-
rio representando o valor da moeda EM CENTAVOS.
EXERCCIO 8 - Implemente um circuito codificador de 8 (oito) entradas e 3 (trs) sadas usan-
do uma HDL de sua preferncia.

You might also like