Você está na página 1de 5

Laboratrio

de Sistemas Digitais 2 2/2014



Experincia 3 Somador
1. Objetivo

Este experimento consiste na implementao de um circuito somador de
duas palavras de 4 bits, sendo a sada apresentada em dois mostradores de 7
segmentos. O FPGA deve receber na entrada 8 bits provenientes de 8 chaves
lgicas, representando em cdigo binrio dois nmeros inteiros entre 0 e 15 (bits
A3, A2, A1, A0 e B3, B2, B1, B0). As sadas do FPGA, por sua vez, devem acionar os
dois mostradores de 7 segmentos da placa, que exibiro o resultado da soma, em
decimal. O diagrama de blocos desse sistema apresentado na Figura 1 e cada
parte do sistema detalhada a seguir.

Fig. 1 - Diagrama de blocos do somador com dois dgitos decimais de sada.


a) Somador de duas palavras de 4 bits com sada binria

O somador tem 8 bits de entrada e 5 bits de sada. Note que 5 bits de sada
so suficientes, pois cada palavra de 4 bits pode assumir valores entre 0 e 15;
portanto, o maior resultado possvel para a soma ser 30 (15+15), nmero que
pode ser representado com apenas 5 bits: 11110. Esse somador pode ser
implementado usando o somador completo, mostrado na Figura 2.

Fig. 2 - Somador completo


b) Conversor binrio/BCD com 5 bits de entrada e dois dgitos de
sada

Conforme ilustrado na Figura 1, na sada do conversor, o dgito D

representa as dezenas, enquanto que o dgito U representa as unidades. Voc pode


usar estruturas with-select para implementar este conversor (uma estrutura
with- select para cada dgito de sada). Note que o vetor S de entrada s pode
assumir valores binrios entre 0 e 31. Portanto, o dgito D s poder assumir
valores BCDs entre 0 e 3. Use essa informao para simplificar seu cdigo.

c) Conversor BCD/7 segmentos de dois dgitos

Para o conversor BCD/7 segmentos de dois dgitos, as entradas sero duas
palavras BCD de 4 bits cada, representando a casa das dezenas e a casa das
unidades de um nmero decimal. A sada do conversor ter dois nmeros
representados em 7 segmentos, associados aos dgitos das dezenas e das unidades,
respectivamente. Esses dgitos devero ser mostrados no mostrador da placa.
Lembre-se que, no experimento anterior, j implementamos esse conversor.
Portanto, neste experimento simplesmente reutilizaremos a entidade
implementada no experimento anterior. Conforme ilustrado na Figura 1, essa
entidade ser usada duas vezes no sistema em questo.

d) Multiplexador do display

A placa Spartan 3 dispe de quatro mostradores de 7 segmentos. No
entanto, h somente 12 pinos associados aos mostradores:

4 pinos para escolher qual(is) mostrador(es) est(o) ligado(s);
7 pinos para acender cada segmento individual; e
1 pino para o ponto decimal (no utilizado neste experimento).

Assim, para mostrar dgitos diferentes em cada um dos mostradores,
necessrio alternar entre os mostradores, em uma frequncia mais rpida que a de
deteco do olho humano, escrevendo um dgito em cada mostrador de cada vez,
de modo que somente um mostrador fique aceso de cada vez. Assim, temos a
percepo de que os quatro mostradores esto acesos ao mesmo tempo, quando na
verdade eles estaro se alternando no tempo. Esse processo chamado de
multiplexao.
Para que os quatro dgitos apaream brilhantes e continuamente
iluminados, cada dgito deve ser aceso uma vez a cada 1 a 16 ms (o que
corresponde a uma taxa de atualizao de 1 kHz a 60 Hz). Por exemplo, usando
uma taxa de atualizao de 60 Hz, os mostradores sero atualizados uma vez a
cada 16 ms, e cada dgito ficar iluminado por um quarto do ciclo de atualizao,
isto , 4 ms.
O controlador tem que garantir que o cdigo de 7 segmentos correto
escrito nos pinos correspondentes quando o mostrador associado a ele est aceso.

Para ilustrar esse processo, se AN1 est ligado enquanto b e c esto acionados,
ento o dgito 1 aparecer no primeiro mostrador. A seguir, se AN2 est ligado
enquanto a, b e c esto acionados, ento o dgito 7 aparecer no segundo
mostrador. Se essas duas configuraes forem trocadas a cada 4 ms, ento um
observador ver o nmero 17 escrito nos mostradores, pois a taxa de atualizao
rpida demais para que o olho humano perceba essa alternncia.
A Figura 3 mostra um exemplo de um diagrama de temporizao para o
controle de um mostrador de quatro dgitos.

Fig. 3 - Temporizao de multiplexao dos mostradores de 7 segmentos


ATENO: Os pinos da placa Spartan 3 associados ao mostrador de 7
segmentos a, b, c, d, e, f, g, AN0, AN1, AN2 e AN3 so ativos em nvel baixo.
Portanto, para acender um dos segmentos, ou para selecionar um dos mostradores,
preciso escrever o bit 0 no mesmo.
Um exemplo de cdigo para alternar entre os mostradores AN0 e AN1
apresentado na Figura 4.
Note que a entidade implementada no cdigo tem um bit de entrada (ck) e
dois vetores de sada: digito e display. O sinal de entrada ck corresponde ao clock
da placa, e deve ser associado ao pino T9 do FPGA no arquivo UCF. J os vetores
de sada, digito e display, correspondem, respectivamente, aos sete segmentos a,
b, c, d, e, f e g do dgito a ser mostrado, e aos pinos AN0, AN1, AN2 e AN3, que
indicam quais dos quatro mostradores devem mostrar o dgito. Note que alterna-se
entre o primeiro mostrador, AN0, fazendo-se

displays <= "1110";

e o segundo mostrador, AN1, fazendo-se

displays <= "1101";


Fig. 4 - Exemplo de cdigo para multiplexao dos mostradores de 7 segmentos

Quando o mostrador AN0 acionado, o digito de sada estar refletindo o


contedo do sinal display0, que contm o cdigo 7 segmentos associado ao
nmero decimal 0: 0000001 (em lgica invertida). Quando o mostrador AN1
acionado, o digito de sada estar refletindo o contedo do sinal display1, que
contm o cdigo 7 segmentos associado ao nmero decimal 1: 1001111 (em
lgica invertida). Assim, o mostrador mostrar o nmero decimal 10.
Portanto, para se implementar a entidade multiplexador do display,
ilustrada na Figura 1, basta modificar o cdigo apresentado na Figura 4,
substituindo os sinais display0 e display1 por dois ports de entrada, Dseg e
Useg, cada um com 7 bits.

e) Top-Level: somador com dois dgitos decimais de sada

Finalmente, as partes devem ser integradas para implementar um somador
com dois dgitos decimais de sada, conforme ilustrado na Figura 1. Como entradas,
utilize as oito chaves de duas posies (SW7 a SW0) da placa Spartan 3 e o pino
associado ao clock da placa. Como sada, utilize os pinos associados ao mostrador
de 7 segmentos da placa: a, b, c, d, e, f, g, AN0, AN1, AN2 e AN3.

2. Pr-relatrio

Apresente o esboo do diagrama de blocos do somador de palavras
de 4 bits com carry-in, e o cdigo VHDL correspondente. (1 ponto)
Apresente o esboo da tabela verdade do conversor binrio-BCD e o
cdigo VHDL correspondente. (1 ponto)
Apresente o diagrama de blocos do sistema completo, identificando
cada conexo entre eles. (1 ponto)
Apresente a lista dos pinos de entrada e sada do FPGA a serem
usados no sistema a ser implementado. (1 ponto)

3. Visto

Mostre o somador com dois dgitos decimais de sada funcionando na placa
Spartan 3. (6 pontos)

3. Tarefa de Avaliao

A tarefa individual, deve ser feita mo e consiste em responder o
questionrio abaixo.

1)
Quantas entidades compuseram o sistema implementado?
Descreva cada uma delas (entradas, sadas, o que cada uma faz) e
tambm a maneira como elas se interligam entre si. Use
diagramas para auxiliar na descrio. (4 pontos)
2)
Porque a sada do somador de 4 bits no pode ser ligada
diretamente nas entradas dos conversores para cdigo de 7
segmentos? Como voc contornou este problema? (2 pontos)
3)
Explique a finalidade do arquivo .UCF. Que tipo de informao ele
inclui? Quaisquer pinos poderiam ter sido usados? (2 pontos)
4)
Explique porque necessrio multiplexar os mostradores do
display de 7 segmentos. Explique tambm como isso foi feito. (2
pontos)

Referncia

[1] Roteiro do Experimento 5 do Laboratrio de Sistemas Digitais 1 do
Departamento de Eng. Eltrica da Universidade de Braslia, 1/2012.