Você está na página 1de 27

Universidade Federal do Rio Grande do Sul

Instituto de Informtica

Projeto de Concluso em
Circuitos Digitais
Parte I Somador e Multiplicador
Autor: Bruno Silva Guedes
Id.: 159033

INF01058 Circuitos Digitais


Prof. Dr. Renato Perez Ribas

Porto Alegre, junho de 2008

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Sumrio
1. Introduo ................................................................................................................................. 3
2. Descrio ................................................................................................................................... 3
2.1. Especificaes ..................................................................................................................... 3
2.2. Etapas do Circuito ............................................................................................................... 3
2.3. Circuito Somador ................................................................................................................ 4
2.4. Circuito Multiplicador ......................................................................................................... 5
2.5. Multiplexador 4 para 1 ....................................................................................................... 5
2.6. Conversor Binrio-BCD ....................................................................................................... 5
2.7. Conversor Dgito-Segmento ............................................................................................... 6
2.8. Verificao de Overflow ..................................................................................................... 6
3. Implementao .......................................................................................................................... 7
3.1. Full Adder............................................................................................................................ 7
3.2. Circuito Somador ................................................................................................................ 7
3.3. Circuito Multiplicador ......................................................................................................... 8
3.4. Multiplexador 4 para 1 ....................................................................................................... 9
3.5. Conversor Binrio-BCD ..................................................................................................... 10
3.6. Conversor Dgito-Segmento ............................................................................................. 15
3.7. Verificao de Overflow ................................................................................................... 20
3.8. Outros detalhes ................................................................................................................ 21
3.9. Circuito Completo ............................................................................................................. 22
4. Resultados ............................................................................................................................... 24
4.1. Report ............................................................................................................................... 24
4.2. Timing Analysis ................................................................................................................. 25
5. Concluses ............................................................................................................................... 27
6. Referncias .............................................................................................................................. 27

2|P gin a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

1. Introduo
A primeira parte do Projeto de Concluso para a disciplina INF01058: Circuitos
Digitais consiste em projetar um circuito capaz de executar, a partir de dois valores de
entradas, algumas operaes sobre estes valores. O circuito deve ser projetado para rodar no
chip EPF10K20RC240-3, da famlia FLEX10K da Altera.
O circuito, que deve exibir no display de leds disposto na placa didtica que contm o
chip citado resultados de operaes sobre os valores de entrada, foi totalmente projetado no
software MaxPlus, tambm de propriedade da Altera.
As operaes que o circuito realiza so selecionadas atravs de um dispositivo
multiplexador, e elas so: produto das entradas, soma das entradas, visualizao da primeira
parcela e visualizao da segunda parcela.

2. Descrio
2.1. Especificaes
Primeiro necessrio que sejam apresentadas algumas especificaes do projeto:

As entradas so valores binrios de comprimento igual a 4 bits, e dois valores


binrios de seleo que selecionam qual operao ser realizada.
A sada do circuito o visor de leds, que contm 16 valores controlveis (dois
dgitos de 7 segmentos e mais dois pontos decimais).

As operaes que o circuito faz so:

Soma as duas entradas de 4 bits (exibindo o valor decimal da soma quando o valor
de seleo 00).
Mostra a entrada A no visor, em decimal (quando a seleo 10).
Mostra a entrada B no visor, em decimal (quando a seleo 01).
Exibe o produto das entradas no visor, em decimal (um cdigo de overflow deve
ser exibido quando o valor do produto excede 63).

2.2. Etapas do Circuito


O circuito possui um circuito multiplexador de 4 entradas e uma sada. As quatro
entradas so as operaes descritas na seo anterior. Os sinais de controle do multiplexador
so dois botes na placa que escolhem qual dessas entradas ser transmitida para o visor. O
circuito sempre deixa as entradas do multiplexador atualizadas, esperando apenas pelo cdigo
de seleo que as transmitir para o visor.
Para os cdigos de controle 10 e 01, as entradas so simplesmente conduzidas ao
multiplexador. Para os cdigos 00 e 11, correspondentes soma e ao produto, existe um
circuito que realiza essas operaes sobre as entradas (um circuito para a soma e um circuito
para o produto).
3|P gin a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Este multiplexador, que a chave do circuito, possui barramento de 6 bits (capaz de


transportar valores de 0 a 63, em decimal). Para a soma, no h problema, pois o valor
mximo dela 30 (cabe em 5 bits). Portanto, um sexto bit para a soma criado, de valor 0,
para passar pelo multiplexador.
As entradas A e B possuem dois bits mais significativos em 0, para poder passar pelo
barramento de 6 bits (j que por especificao, a largura das entradas de apenas 4 bits).
Para a multiplicao, podemos ter valores de 0 a 255. Os valores maiores que 63 so
excludos ( exibida uma sinalizao de overflow). Os valores dos dois bits mais significativos
da multiplicao so descartados, e caso algum deles tenha valor 1, um sinal de overflow
exibido.
O multiplexador conduz a sada o valor, em binrio, que deve ser exibido no visor. O
passo seguinte consiste em converter este nmero em decimal e exib-lo. A converso feita
por um circuito que transforma o nmero em binrio de 6 bits em um nmero decimal no
formato BCD (4 bits para cada dgito decimal). Assim, temos uma sada de 8 bits (dois dgitos),
que representam valores de 0 a 63. Na verdade o ltimo bit da dezena descartado, j que a
dezena mxima que teremos 6, e pode ser representada por 110 (trs bits).
Os dgitos BCD do circuito so agora convertidos para a linguagem do visor de
segmentos. Cada led do visor de segmentos associado a uma sada e verificado, dentro de
um circuito menor, se a sada ser acesa ou no, dependendo do valor de entrada deste
subcircuito.
Nas prximas sees so feitas anlises detalhadas de cada etapa.
2.3. Circuito Somador
O circuito somador um simples Ripple
Carry Adder. Ele funciona com a concatenao de
vrios Full Adders que somam bit a bit os valores de
entrada. A tabela verdade de um Full Adder est na
Figura 2.1. As frmulas das sadas S e Cout
correspondem as frmulas (1) e (2), respectivamente.
S = a b Cin
Cout = a.b + a.Cin + b.Cin

(1)
(2)

a
0
0
0
0
1
1
1
1

b Cin
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1

S Cout
0 0
1 0
1 0
0 1
1 0
0 1
0 1
1 1
(a)

Fig. 2.1 (a) Tabela verdade do Full Adder.

Concatenando vrios Full Adders, cada um A sada um XOR das trs entradas,
recebendo como carry in o carry out do Full Adder enquanto o carry out a soma dos produtos
das entradas, duas a duas.
imediatamente anterior (o primeiro Full Adder
recebe zero como Cin) temos o que chamamos de Ripple Carry Adder. No nosso caso, o Ripple
Carry Adder ter quatro Full Adders, j que queremos apenas somar quatro bits. A sada do
Ripple Carry Adder ser um vetor de 4 bits de soma, e um carry out, que consideraremos como
o quinto bit da soma. O sexto bit ser fixado em zero, j que o multiplexador que ser descrito
adiante trabalha com barramento de 6 bits.
4|P gin a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

2.4. Circuito Multiplicador


O circuito multiplicador multiplica dois nmeros de quatro bits e retorna um produto
de 8 bits. O princpio da multiplicao similar a uma multiplicao decimal e est disposto na
Figura 2.2.

+
p7

a3b3
p6

a3b2
a2b3
p5

a3b1
a2b2
a1b3
p4

a3
b3
a3b0
a2b1
a1b2
a0b3
p3

a2
b2
a2b0
a1b1
a0b2

a1
b1
a1b0
a0b1

a0
b0
a0b0

p2

p1

p0

Fig. 2.2 Esquema da multiplicao binria.

Note que p0 = a0b0, diretamente. J para p1, basta somar com um Full Adder os
valores de a1b0 e a0b1. Esta ltima soma pode gerar carry out. Esse Cout entra na soma de
a2b0, a1b1 e a0b2. Continuando assim, temos uma soma em cascata, implementada com Full
Adders e portas AND, gerando os 8 bits de sada. O circuito multiplicador executa esta soma
em cascata.
2.5. Multiplexador 4 para 1
O Multiplexador de quatro entradas e uma sada um circuito que, recebendo 4
valores, seleciona, atravs de dois bits de controle, qual dessas entradas ser transmitida para
a sada. No nosso caso, usaremos um Mux 4x1 com barramento de seis bits, pois trataremos
com valores de largura igual a 6 bits.
Os dois cdigos de seleo podem assumir 4 configuraes distintas, cada uma
relacionando-se a uma entrada. Neste projeto, as entradas sero uma soma, uma varivel A,
uma varivel B e um produto, relacionadas s configuraes 00, 01, 10 e 11, respectivamente.
A sada ser um vetor de 6 bits que dever ser exibido no visor.
2.6. Conversor Binrio-BCD
Este conversor recebe 6 bits significativos e converte-os em dois valores BCD de 4
bits cada. Neste caso, o valor da unidade varia de 0 a 9 (0000 a 1001) e o valor da dezena varia
de 0 a 6 (000 a 110). Logo, teremos neste conversor 6 entradas e 7 sadas.
Cada uma das sadas possui uma frmula especfica. Elas dependem de combinaes
das entradas, e foram obtidas com o auxlio do software Karma. As frmulas para as sadas d2,
d1 e d0 (bits da dezena) e u3, u2, u1 e u0 (bits da unidade), dependendo das entradas e0, e1,
e2, e3, e4 e e5 esto dispostas a seguir:
d2 = e5*(e4+!e4*e3)

(3)

d1 = e4*(!e5*(e3+!e3*e2)+e5*e3*e2)+e5*!e4*!e3

(4)

d0 = e5*(!e3*(!e4+e4*(e2+!e2*e1))+e4*e3*!e2) +
!e5*(e3*(!e4*(e2+!e2*e1)+e4*e2*e1)+e4*!e3*!e2)

(5)
5|P gin a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

u3 = e4*(!e2*(!e3*(!e5*e1+e5*!e1)+e5*e3*e1)+!e5*e3*e2*!e1)+
!e4*(!e5*e3*!e2*!e1+e5*!e3*e2*e1)

(6)

u2 = !e4*(e2*(!e5*(!e3+e3*e1)+e5*(e3+!e3*!e1))+e5*!e3*!e2*e1)+
e4*(!e2*(!e5*(e3+!e3*!e1)+e5*e3*!e1)+e5*!e3*e2*e1)

(7)

u1 = !e4*(!e3*(!e5*e1+e5*!e1)+e3*(e5*e1+!e5*e2*!e1))+
e4*(!e5*(!e3*(!e2*!e1+e2*e1)+e3*!e2*e1)+e5*(e2*(!e3*!e1+e3*e1)+e3*!e2*!e1))

(8)

u0 = e0

(9)

2.7. Conversor Dgito-Segmento


0

Este conversor recebe 4 bits referentes a um dgito hexadecimal


(de 0 a F) e o converte para ser interpretado por um visor de segmentos
(um visor como o da Figura 2.3).
Este conversor tem 7 sadas uma para cada segmento. Estas
sadas, novamente, dependem das entradas dos circuitos. Considerando a
numerao s0, s1 ... s6 conforme a Figura 2.3, temos as sete sadas,
novamente obtidas com o auxlio do Karma:

2
3

5
6

Fig. 2.3 Visor de


sete segmentos

S0 = e0*e1*!e2*e3+!e1*(e0*e2*e3+e3*e0e2)
S1 = e0*!e1*e2*e3+!e3*(e0*e1*e2+!e2*(e1+e0*!e1))
S2 = e0*e1*!e2*e3+e2*(e3*(e1+!e0*!e1)+!e3*e0e1)
S3 = !e0*!e1*e2*e3+!e3*(e0*e1*e2+!e1*!e2)
S4 = e0*!e1*!e2*e3+!e3*(e0+!e0*!e1*e2)
S5 = !e0*e1*!e2*!e3+e2*e3*(e1+!e0*!e1)
S6 = e1*e3*(!e0e2)+!e3*(!e1*(e0e2)+e0*e1*e2)

(10)
(11)
(12)
(13)
(14)
(15)
(16)

Temos a partir das frmulas (10) a (16), 16 sadas diferentes possveis no visor,
correspondentes s 16 entradas. Estas sadas podem ser visualizadas na Figura 2.4.

Fig. 2.4 Sadas no visor dependentes das entradas do circuito conversor Dgito-Segmento.

2.8. Verificao de Overflow


Por fim, o circuito faz uma verificao para saber se houve overflow na multiplicao.
Quando o usurio pede para exibir o produto, e este valor excede 63, dois traos e os pontos
decimais aparecem no visor. A verificao de overflow precisa ser executada para todas as
sadas. A verificao de overflow simples: haver overflow sempre que ao menos um dos
dois bits mais significativos da multiplicao for igual a 1.

6|P gin a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

3. Implementao
3.1. Full Adder
A implementao do Full Adder conforme as frmulas (1) e (2) est disposta na
Figura 3.1(a). O smbolo que usaremos para o Full Adder est na Figura 3.1(b).

(b)

(a)
Fig. 3.1 (a) Implementao do Full Adder e (b) seu smbolo.

Todas as possibilidades de operao com o Full Adder podem ser conferidas na


Figura 3.2.

Fig. 3.2 Formas de onda para o Full Adder.

3.2. Circuito Somador


O circuito somador discutido na seo 2.3 um Ripple Carry Adder, implementado
como na Figura 3.3(a) e ser representado pelo smbolo da Figura 3.3 (b).

(b)
(a)
Fig. 3.3 (a) Implementao do Circuito Somador e (b) seu smbolo.

7|P gin a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Como temos 512 possibilidades de soma (16*16*2), no podemos representar todas


as possibilidades de soma. Assim, um grfico de formas de ondas mostrando algumas
combinaes est exibido na Figura 3.4.

Fig. 3.4 Algumas combinaes de entrada e sada para o Circuito Somador.

3.3. Circuito Multiplicador


Uma forma de implementao para o circuito que realiza a multiplicao, conforme
discutido na seo 2.5, exibida na Figura 3.5(a). Seu smbolo, naturalmente, est na Figura
3.5(b).

(a)

(b)
Fig. 3.5 (a) Implementao do Circuito Multiplicador e (b) seu smbolo.

Novamente temos muitas possibilidades de produto. Algumas delas esto mostradas


na Figura 3.6 como um modo de mostrar que o circuito multiplicador funciona.

8|P gin a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Fig. 3.6 Algumas combinaes de entrada e sada para o Circuito Multiplicador.

3.4. Multiplexador 4 para 1


O multiplexador 4 para 1 de 6 bits consiste em um agrupamento de seis Mux 4x1
mais simples, que consideram um bit de cada vez. O multiplexador 4x1 de um bit est
implementado na Figura 3.7(a), seu smbolo na Figura 3.7(b) e as formas de onda, mostrando
que para cada entrada transmitida para a sada dependendo do sinal de controle est
expressa nas formas de onda da Figura 3.7(c).

(b)

(a)

(c)
Fig. 3.7 (a) Multiplexador 4x1 de um bit, (b) seu smbolo e (c) formas de onda para alguns casos. Note que
a sada sempre a forma de onda em vermelho, que corresponde entrada selecionada pelos sinais de
controle.

O multiplexador 4 para 1 de 6 bits est implementado na Figura 3.9(a), e seu smbolo


na Figura 3.9(b). Algumas formas de onda do multiplexador de barramento de largura 6 bits
esto representadas na Figura 3.8.

9|P gin a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Fig. 3.8 Algumas combinaes de entrada e sada para o Multiplexador 4x1 de 6 bits.

(b)

(a)
Fig. 3.9 (a) Multiplexador 4x1 de seis bits e (b) seu smbolo.

3.5. Conversor Binrio-BCD


O conversor binrio BCD gera 7 sadas atravs de 6 entradas, conforme descrito na
seo 2.6. A implementao de cada sada obedece s frmulas (3) a (9). As implementaes
destas sadas, com suas formas de onda, podem ser vistas nas Figuras 3.10 3.16. Os smbolos
para todas os circuitos esto na Figura 3.17.

(a)

(b)
Fig. 3.10 (a) Sada d2 do conversor Binrio-BCD, implementada da frmula (3) e (b) formas de onda para
alguns casos. Note que a sada s se torna 1 para valores maiores que 40, o que faz sentido, j que apenas a
partir do nmero 4 o terceiro bit de um nmero se torna 1.
10 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(a)

(b)
Fig. 3.11 (a) Sada d1 do conversor Binrio-BCD, implementada da frmula (4) e (b) formas de onda para
alguns casos.

(a)

(b)
Fig. 3.12 (a) Sada d0 do conversor Binrio-BCD, implementada da frmula (5) e (b) formas de onda para
alguns casos.

11 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(a)

(b)
Fig. 3.13 (a) Sada u3 do conversor Binrio-BCD, implementada da frmula (6) e (b) formas de onda
para alguns casos.

12 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(a)

(b)
Fig. 3.14 (a) Sada u2 do conversor Binrio-BCD, implementada da frmula (7) e (b) formas de onda
para alguns casos.

13 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(a)

(b)
Fig. 3.15 (a) Sada u1 do conversor Binrio-BCD, implementada da frmula (8) e (b) formas de onda
para alguns casos.

(a)

(b)
Fig. 3.16 (a) Sada u0 do conversor Binrio-BCD, implementada da frmula (9) e (b) formas de onda.
Neste caso, temos apenas duas situaes. Isto faz sentido tambm, j que a sada u0 s ligada em
nmeros mpares, que por sua vez tem o bit menos significativo sempre no valor 1.

(a)

(b)

(c)

(d)

(e)

(f)

(g)

Fig. 3.17 Smbolos das implementaes das Figuras (a) 3.10, (b) 3.11, (c) 3.12, (d) 3.13, (e) 3.14, (f) 3.15
e (g) 3.16.

14 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

O conversor, finalmente, a unio destas sete implementaes. Ele implementado


conforme a figura 3.18(a), seu smbolo est na Figura 3.18(b) e algumas formas de onda na
Figura 3.18(c).

(b)

(a)

(c)
Fig. 3.18 (a) Implementao do conversor Binrio-BCD, (b) seu smbolo e (c) formas de onda para alguns
casos.

3.6. Conversor Dgito-Segmento


O conversor dgito-segmentos gera 7 sadas atravs de 4 entradas, conforme descrito
na seo 2.7. A implementao de cada sada obedece s frmulas (10) a (16). As
implementaes destas sadas, com suas formas de onda, podem ser vistas nas Figuras 3.19
3.25. Os smbolos para todas os circuitos esto na Figura 3.26.
Nas formas de onda, quando um sinal est em 0 (desligado), significa que o led
correspondente quela sada ir acender (a placa funciona acendendo os leds quando o sinal
est em 0).

15 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(a)

(b)
Fig. 3.19 (a) Sada s0 do conversor dgito-segmento, correspondente ao segmento superior, implementada
conforme a frmula (10) e (b) formas de onda para as 16 possibilidades de entradas desta sada.

(a)

(b)
Fig. 3.20 (a) Sada s1 do conversor dgito-segmento, correspondente ao segmento superior esquerdo,
implementada conforme a frmula (11) e (b) formas de onda para as 16 possibilidades de entradas desta
sada.
16 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(a)

(b)
Fig. 3.21 (a) Sada s2 do conversor dgito-segmento, correspondente ao segmento superior direito,
implementada conforme a frmula (12) e (b) formas de onda para as 16 possibilidades de entradas desta
sada.

(a)

(b)
Fig. 3.22 (a) Sada s3 do conversor dgito-segmento, correspondente ao segmento central, implementada
conforme a frmula (13) e (b) formas de onda para as 16 possibilidades de entradas desta sada.

17 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(a)

(b)
Fig. 3.23 (a) Sada s4 do conversor dgito-segmento, correspondente ao segmento inferior esquerdo,
implementada conforme a frmula (14) e (b) formas de onda para as 16 possibilidades de entradas desta
sada.

(a)

(b)
Fig. 3.24 (a) Sada s5 do conversor dgito-segmento, correspondente ao segmento inferior direito,
implementada conforme a frmula (15) e (b) formas de onda para as 16 possibilidades de entradas desta
sada.
18 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(a)

(b)
Fig. 3.25 (a) Sada s6 do conversor dgito-segmento, correspondente ao segmento inferior, implementada
conforme a frmula (16) e (b) formas de onda para as 16 possibilidades de entradas desta sada.

(a)

(b)

(c)

(d)

(e)

(f)

(g)

Fig. 3.26 Smbolos das implementaes das Figuras (a) 3.19, (b) 3.20, (c) 3.21, (d) 3.22, (e) 3.23, (f) 3.24
e (g) 3.25.

O conversor dgito-segmento, finalmente, a unio destas sete implementaes. Ele


implementado conforme a figura 3.27(a), seu smbolo est na Figura 3.27(b) e algumas
formas de onda na Figura 3.27(c).

19 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

(b)

(a)

(c)
Fig. 3.27 (a) Implementao do conversor dgito-segmento, (b) seu smbolo e (c) formas de onda para os
16 casos.

3.7. Verificao de Overflow


Esta ltima parte recebe 14 valores de sada dos dois circuitos
Dgito-Segmento usados (um para o dgito da dezena, outro para o da
unidade), e faz a verificao se h um overflow na multiplicao.
Quando h overflow, a indicao da Figura 3.28 exibida no visor de
segmentos. Para ela aparecer, preciso realizar testes nas sadas. Estes
testes esto dispostos na Figura 3.29. As formas de onda provando que
eles funcionam sero mostradas adiante, juntamente com o resto do
circuito.

Fig. 3.28 Sinal de


overflow na multiplicao.

20 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Fig. 3.29 Portas que realizam a verificao do overflow na multiplicao. As entradas s[13..0] so geradas
pelo circuito dgito-segmento, e as sadas X[13..0] iro para a placa (sinais dos leds).

O sinal over uma indicao que h overflow no produto. Ele uma OR entre os
dgitos 6 e 7 da multiplicao gerada pelo circuito da Figura 3.5. Os sinais c0 e c1 so cdigos
de controle do Mux 4x1 da Figura 3.7. A multiplicao s solicitada quando ambos sinais
esto em 1.
3.8. Outros detalhes
H mais alguns detalhes especficos implementao, no discutidos no captulo 2.
Similar ao fato de que os leds da placa acendem apenas quando um sinal igual a 0 est na
sada, as entradas tambm so invertidas. Para isso, preciso inverter os sinais de entrada
como na Figura 3.30. As entradas A e B na placa correspondem a um switch de 8 botes como
na Figura 3.31. Nesta mesma figura, est indicado qual boto corresponde a qual entrada.
Quando o boto pressionado, considerado sinal 1 para aquela entrada.
Outro detalhe est no fato de o Multiplexador aceitar apenas entradas de largura
igual a 6. A nica entrada que satisfaz esta condio a da multiplicao. Para isso, preciso
setar alguns bits em 0 para a soma e para as entradas A e B conforme a Figura 3.32.
Os pontinhos da Figura 3.28 acendem quando h overflow na multiplicao. A
implementao para o acendimento destes pontinhos e a gerao do sinal de overflow
comentada na seo 3.7 esto na Figura 3.33.
21 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Fig. 3.30 Inverso das entradas (A, B e sinais de seleo).

b0
b1
b2
b3
a0
a1
a2
a3

Fig. 3.31 Switch para as entradas A e B.

Fig. 3.32 Bits setados em 0 para serem


aceitos pelo Multiplexador.

Fig. 3.33 Gerao de sinais indicativos de overflow.

3.9. Circuito Completo


O circuito completo est exibido nas Figuras 3.34 e 3.35. Formas de onda para
algumas entradas esto na Figura 3.36. Neste circuito j esto includas as pinagens que cada
entrada e sada possui na placa. O bloco entry, da Figura 3.34, realiza a operao da figura 3.30
(apenas inverte as entradas).

22 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Fig. 3.34 Circuito final (parte 1).

Fig. 3.35 Circuito final (parte 2).

23 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Fig. 3.36 Formas de onda para alguns casos de entrada no circuito final. Observaes: a entrada invertida, sob a
linha das entradas e[7..0] est a entrada real. Coloquei em formato hexadecimal no simulador, para que o primeiro
dgito corresponda a entrada A e o segundo dgito corresponda a entrada B. Note ainda que estes sinais de seleo
sel1 e sel0 esto invertidos. A operao que eles selecionam no Mux tambm est explicitada na Figura. No canto
inferior esquerdo da figura est ressaltado qual led corresponde cada sada.

4. Resultados
4.1. Report
Executando a compilao do projeto no modo real (considerando os atrasos), temos
algumas informaes interessantes do arquivo de relatrio que o MaxPlus gera. Eis algumas:
** RESUMO **
Dispositivo: EPF10K20RC240-3
Pinos de entrada: 10
Pinos de sada: 16
Logic Cells utilizadas: 103
Porcentagem de Logic Cells usadas: 8% (logo o chip deve ter em torno de 1200
clulas lgicas)

Das informaes acima se deduz que este circuito utiliza muito pouco da capacidade
total do Chip, seria mais adequado procurar um chip menor que fosse mais ocupado pelo
circuito (no h necessidade de mais de 1000 logic cells para este circuito).
** PIN/LOCATION/CHIP ASSIGNMENTS **
projeto@41
projeto@40
projeto@39
projeto@38
projeto@36
projeto@35
projeto@34
projeto@33

(setados pelo usurio)

e0
e1
e2
e3
e4
e5
e6
e7

24 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

projeto@14
projeto@25
projeto@29
projeto@28
projeto@17
projeto@23
projeto@18
projeto@24
projeto@21
projeto@19
projeto@20
projeto@6
projeto@12
projeto@7
projeto@13
projeto@11
projeto@8
projeto@9

ponto1
ponto2
sel0
sel1
X0
X1
X2
X3
X4
X5
X6
X7
X8
X9
X10
X11
X12
X13

Resumo dos pinos de entrada e sada que o circuito utiliza.


** RESOURCE USAGE **
Total dedicated input pins used:
Total I/O pins used:
Total logic cells used:
Total embedded cells used:
Total EABs used:
Average fan-in:
Total fan-in:

0/6
26/183
103/1152
0/48
0/6
3.58/4
369/4608

(0%)
(14%)
(8%)
(0%)
(0%)
(89%)
(8%)

Resumo do uso de recursos: usados 26 pinos de I/O do total de 183 (apenas 14%),
103 clulas das 1152 disponveis. Temos tambm um fan-in mdio de 3,58.
4.2. Timing Analysis
possvel fazer, para este chip, uma anlise do atraso total que ele causa no circuito
quando atualizamos um sinal de entrada at que este sinal atualize as sadas. Esta tabela
encontra-se na Figura 4.1.

Fig. 4.1 Atrasos de atualizao da sada aps a atualizao de alguma entrada, para o circuito das Figuras
3.34 e 3.35 no chip EPF10K20RC240-3, da famlia FLEX10K da Altera. Para cada clula, temos uma entrada e
uma sada relacionadas. O valor da esquerda representa o atraso do melhor caso e o valor da direita o pior
caso (estes melhor e pior casos dependem do estado naquele momento do resto do circuito).

25 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

Alguns resultados interessantes que podemos deduzir a partir da Figura 4.1: note que
atualizar um dos cdigos de seleo na mdia causa um atraso menor nas sadas do que
atualizar alguma das entradas A ou B. Isto faz sentido pois se supe que as entradas no
multiplexador j estejam sempre prontas esperando apenas pelo cdigo de controle. Este
pequeno atraso ainda ocorre apenas porque necessrio verificar o overflow toda a vez que
se atualiza os cdigos de seleo, j que a marca de overflow deve ser exibida sempre que o
produto excede 63.
Ainda pode-se perceber que nas sadas X0 a X6 o atraso em mdia 15% maior que o
atraso nas sadas X7 a X13, quando ocorre a atualizao de alguma entrada dentre A e B. Isto
ocorre pois para as sadas correspondentes a X7 e X13 dependem apenas dos valores d2, d1 e
d0 calculados pelo circuito conversor Binrio-BCD. Uma das entradas do circuito dgitosegmento que recebe d2, d1 e d0 fixada em 0, logo h um atraso menor ali j que o valor de
uma entrada nunca alterado.
Quando atualizamos algum dos sinais de seleo, a gerao dos sinais de overflow
(os pontos decimais) no possui melhor e pior caso, mas apenas um nico caso. Isso ocorre
porque, conforme a Figura 3.33, os sinais de sada ponto1 e ponto2 dependem apenas de c1,
c0 e over. Como over no alterado ao se mudar um sinal de seleo, eles dependem apenas
dos prprios sinais que so alterados, logo, este tempo fixo.
Por fim, algo que pode parecer estranho, mas quando analisado com mais cuidado
faz sentido: o atraso para as entradas A e B no deveria ser igual (ou seja, e0 = e4, e1 = e5,
etc)? Deveria, se no houvesse uma parte do circuito que trata A e B de modo diferente. Note
que na soma e no multiplexador, os sinais de A e B esto sempre andando paralelamente.
Porm, na multiplicao, eles so tratados de modo diferente. A multiplicao do circuito da
Figura 3.5 executa somas paralelas com os Full Adders que dependem de A e B e dependem de
certos carries out gerados por Full Adders anteriores. Logo, as diferenas de atrasos ao se
atualizar A e atualizar B so justificadas por causa da parte da multiplicao (essas diferenas
so bem pequenas, menores que 10% em mdia).

26 | P g i n a

INF 01058 Circuitos Digitais Projeto de Concluso em Circuitos Digitais

5. Concluses
Apesar da implementao de partes do circuito, como os dois Conversores das
sees 3.5 e 3.6 ser bem demorada, aps ela ser realizada fica bem fcil o uso dele com outros
componentes. O projeto em si ficou bem robusto: fcil visualizar progressivamente as etapas
dele.
A implementao do somador, do multiplicador e do multiplexador foi trivial, devido
simplicidade e implementao intuitiva deles. O que mais exigiu tempo foi o tratamento do
overflow da multiplicao. Primeiramente, eu planejava exibir valores at 99 no visor (o que
exigia sete bits de representao), porm, aps estar quase pronto, vi que teria que ser refeita
todo o circuito conversor Binrio-BCD.
O problema de tratar com o overflow se intensificou quando foi necessrio inverter
valores para que fossem exibidos corretamente na placa. A implementao da verificao da
Figura 3.29 levou tempo e exigiu vrios testes.
Finalmente, os testes realizados na seo 4 provaram que o chip EPF10K20RC240-3,
da famlia FLEX10K da Altera bastante poderoso. Este circuito, que nos pareceu
relativamente grande, utiliza apenas 8% da capacidade total do chip e apenas 14% das
entradas e sadas disponveis. Assim, ele possibilita uma gama de aplicaes.

6. Referncias
Todos os circuitos aqui representados foram montados com a ajuda do software
Max+Plus II version 10.2 07/10/2002, de propriedade de Altera Corporation. A verso gratuita
est disponvel no website <www.altera.com>.
As frmulas (3) a (16) foram obtidas com o apoio do software Karma, de propriedade
da Nangate. A verso gratuita est disponvel no website < www.inf.ufrgs.br/lagarto>.

27 | P g i n a

Você também pode gostar