Buscar

Projeto Circuitos Digitais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Universidade Federal do Rio Grande do Sul 
Instituto de Informática 
INF01058 – Circuitos Digitais 
Prof. Dr. Renato Perez Ribas 
 
 
 
 
 
Porto Alegre, junho de 2008 
 
Projeto de Conclusão em 
Circuitos Digitais 
Parte I – Somador e Multiplicador 
Autor: Bruno Silva Guedes 
Id.: 159033 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
2 | P á g i n a 
 
 
 
Sumário 
1. Introdução ................................................................................................................................. 3 
2. Descrição ................................................................................................................................... 3 
2.1. Especificações ..................................................................................................................... 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 Binário-BCD ....................................................................................................... 5 
2.7. Conversor Dígito-Segmento ............................................................................................... 6 
2.8. Verificação de Overflow ..................................................................................................... 6 
3. Implementação .......................................................................................................................... 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 Binário-BCD ..................................................................................................... 10 
3.6. Conversor Dígito-Segmento ............................................................................................. 15 
3.7. Verificação 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. Conclusões ............................................................................................................................... 27 
6. Referências .............................................................................................................................. 27 
 
 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
3 | P á g i n a 
 
 
 
1. Introdução 
A primeira parte do Projeto de Conclusão para a disciplina INF01058: Circuitos 
Digitais consiste em projetar um circuito capaz de executar, a partir de dois valores de 
entradas, algumas operações sobre estes valores. O circuito deve ser projetado para rodar no 
chip EPF10K20RC240-3, da família FLEX10K da Altera. 
O circuito, que deve exibir no display de leds disposto na placa didática que contém o 
chip citado resultados de operações sobre os valores de entrada, foi totalmente projetado no 
software MaxPlus, também de propriedade da Altera. 
As operações que o circuito realiza são selecionadas através de um dispositivo 
multiplexador, e elas são: produto das entradas, soma das entradas, visualização da primeira 
parcela e visualização da segunda parcela. 
 
2. Descrição 
2.1. Especificações 
Primeiro é necessário que sejam apresentadas algumas especificações do projeto: 
• As entradas são valores binários de comprimento igual a 4 bits, e dois valores 
binários de seleção que selecionam qual operação será realizada. 
• A saída do circuito é o visor de leds, que contém 16 valores controláveis (dois 
dígitos de 7 segmentos e mais dois pontos decimais). 
As operações que o circuito faz são: 
• Soma as duas entradas de 4 bits (exibindo o valor decimal da soma quando o valor 
de seleção é 00). 
• Mostra a entrada A no visor, em decimal (quando a seleção é 10). 
• Mostra a entrada B no visor, em decimal (quando a seleção é 01). 
• Exibe o produto das entradas no visor, em decimal (um código 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 saída. As quatro 
entradas são as operações descritas na seção anterior. Os sinais de controle do multiplexador 
são dois botões na placa que escolhem qual dessas entradas será transmitida para o visor. O 
circuito sempre deixa as entradas do multiplexador atualizadas, esperando apenas pelo código 
de seleção que as transmitirá para o visor. 
Para os códigos de controle 10 e 01, as entradas são simplesmente conduzidas ao 
multiplexador. Para os códigos 00 e 11, correspondentes à soma e ao produto, existe um 
circuito que realiza essas operações sobre as entradas (um circuito para a soma e um circuito 
para o produto). 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
4 | P á g i n a 
 
 
 
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, não há problema, pois o valor 
máximo 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 especificação, a largura das entradas é de apenas 4 bits). 
Para a multiplicação, podemos ter valores de 0 a 255. Os valores maiores que 63 são 
excluídos (é exibida uma sinalização de overflow). Os valores dos dois bits mais significativos 
da multiplicação são descartados, e caso algum deles tenha valor 1, um sinal de overflow é 
exibido. 
O multiplexador conduz a saída o valor, em binário, que deve ser exibido no visor. O 
passo seguinte consiste em converter este número em decimal e exibí-lo. A conversão é feita 
por um circuito que transforma o número em binário de 6 bits em um número decimal no 
formato BCD (4 bits para cada dígito decimal). Assim, temos uma saída de 8 bits (dois dígitos), 
que representam valores de 0 a 63. Na verdade o último bit da dezena é descartado, já que a 
dezena máxima que teremos é 6, e pode ser representada por 110 (três bits). 
Os dígitos BCD do circuitosão agora convertidos para a linguagem do visor de 
segmentos. Cada led do visor de segmentos é associado a uma saída e é verificado, dentro de 
um circuito menor, se a saída será acesa ou não, dependendo do valor de entrada deste 
subcircuito. 
Nas próximas seções são feitas análises detalhadas de cada etapa. 
2.3. Circuito Somador 
O circuito somador é um simples Ripple 
Carry Adder. Ele funciona com a concatenação de 
vários Full Adders que somam bit a bit os valores de 
entrada. A tabela verdade de um Full Adder está na 
Figura 2.1. As fórmulas das saídas S e Cout 
correspondem as fórmulas (1) e (2), respec-
tivamente. 
 S = a ⊕ b ⊕ Cin (1) 
 Cout = a.b + a.Cin + b.Cin (2) 
Concatenando vários Full Adders, cada um 
recebendo como carry in o carry out do Full Adder 
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 saída 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. 
a b Cin S Cout 
0 0 0 0 0 
0 0 1 1 0 
0 1 0 1 0 
0 1 1 0 1 
1 0 0 1 0 
1 0 1 0 1 
1 1 0 0 1 
1 1 1 1 1 
 (a) 
 
Fig. 2.1 – (a) Tabela verdade do Full Adder. 
A saída é um XOR das três entradas, 
enquanto o carry out é a soma dos produtos 
das entradas, duas a duas. 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
5 | P á g i n a 
 
 
 
2.4. Circuito Multiplicador 
O circuito multiplicador multiplica dois números de quatro bits e retorna um produto 
de 8 bits. O princípio da multiplicação é similar a uma multiplicação decimal e está disposto na 
Figura 2.2. 
 a3 a2 a1 a0 
 x b3 b2 b1 b0 
 a3b0 a2b0 a1b0 a0b0 
 a3b1 a2b1 a1b1 a0b1 
 a3b2 a2b2 a1b2 a0b2 
+ a3b3 a2b3 a1b3 a0b3 
p7 p6 p5 p4 p3 p2 p1 p0 
 
 
Fig. 2.2 – Esquema da multiplicação binária. 
 
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 saída. O circuito multiplicador executa esta soma 
em cascata. 
2.5. Multiplexador 4 para 1 
O Multiplexador de quatro entradas e uma saída é um circuito que, recebendo 4 
valores, seleciona, através de dois bits de controle, qual dessas entradas será transmitida para 
a saída. No nosso caso, usaremos um Mux 4x1 com barramento de seis bits, pois trataremos 
com valores de largura igual a 6 bits. 
Os dois códigos de seleção podem assumir 4 configurações distintas, cada uma 
relacionando-se a uma entrada. Neste projeto, as entradas serão uma soma, uma variável A, 
uma variável B e um produto, relacionadas às configurações 00, 01, 10 e 11, respectivamente. 
A saída será um vetor de 6 bits que deverá ser exibido no visor. 
2.6. Conversor Binário-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 saídas. 
Cada uma das saídas possui uma fórmula específica. Elas dependem de combinações 
das entradas, e foram obtidas com o auxílio do software Karma. As fórmulas para as saídas 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 estão 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) 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
6 | P á g i n a 
 
 
 
 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 Dígito-Segmento 
Este conversor recebe 4 bits referentes a um dígito 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 saídas – uma para cada segmento. Estas 
saídas, novamente, dependem das entradas dos circuitos. Considerando a 
numeração s0, s1 ... s6 conforme a Figura 2.3, temos as sete saídas, 
novamente obtidas com o auxílio do Karma: 
 S0 = e0*e1*!e2*e3+!e1*(e0*e2*e3+e3*e0⊕e2) (10) 
 S1 = e0*!e1*e2*e3+!e3*(e0*e1*e2+!e2*(e1+e0*!e1)) (11) 
 S2 = e0*e1*!e2*e3+e2*(e3*(e1+!e0*!e1)+!e3*e0⊕e1) (12) 
 S3 = !e0*!e1*e2*e3+!e3*(e0*e1*e2+!e1*!e2) (13) 
 S4 = e0*!e1*!e2*e3+!e3*(e0+!e0*!e1*e2) (14) 
 S5 = !e0*e1*!e2*!e3+e2*e3*(e1+!e0*!e1) (15) 
 S6 = e1*e3*(!e0⊕e2)+!e3*(!e1*(e0⊕e2)+e0*e1*e2) (16) 
 
Temos a partir das fórmulas (10) a (16), 16 saídas diferentes possíveis no visor, 
correspondentes às 16 entradas. Estas saídas podem ser visualizadas na Figura 2.4. 
 
Fig. 2.4 – Saídas no visor dependentes das entradas do circuito “conversor Dígito-Segmento”. 
2.8. Verificação de Overflow 
Por fim, o circuito faz uma verificação para saber se houve overflow na multiplicação. 
Quando o usuário pede para exibir o produto, e este valor excede 63, dois traços e os pontos 
decimais aparecem no visor. A verificação de overflow precisa ser executada para todas as 
saídas. A verificação de overflow é simples: haverá overflow sempre que ao menos um dos 
dois bits mais significativos da multiplicação for igual a 1. 
 
0
21
3
4 5
6 
Fig. 2.3 – Visor de 
sete segmentos 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
7 | P á g i n a 
 
 
 
3. Implementação 
3.1. Full Adder 
A implementação do Full Adder conforme as fórmulas (1) e (2) está disposta na 
Figura 3.1(a). O símbolo que usaremos para o Full Adder está na Figura 3.1(b). 
 
(a) 
 
(b) 
Fig. 3.1– (a) Implementação do Full Adder e (b) seu símbolo. 
 
Todas as possibilidades de operação 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 seção 2.3 é um Ripple Carry Adder, implementado 
como na Figura 3.3(a) e será representado pelo símbolo da Figura 3.3 (b). 
 
(a) 
 
(b) 
Fig. 3.3– (a) Implementação do Circuito Somador e (b) seu símbolo. 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
8 | P á g i n a 
 
 
 
Como temos 512 possibilidades de soma (16*16*2), não podemos representar todas 
as possibilidades de soma. Assim, um gráfico de formas de ondas mostrando algumas 
combinações está exibido na Figura 3.4. 
 
Fig. 3.4 – Algumas combinações de entrada e saída para o Circuito Somador. 
 
 
3.3. Circuito Multiplicador 
Uma forma de implementação para o circuito que realiza a multiplicação, conforme 
discutido na seção 2.5, é exibida na Figura 3.5(a). Seu símbolo, naturalmente, está na Figura 
3.5(b). 
 
(a) 
 
(b) 
Fig. 3.5 – (a) Implementação do Circuito Multiplicador e (b) seu símbolo. 
 
Novamente temos muitas possibilidades de produto. Algumas delas estão mostradas 
na Figura 3.6 como um modo demostrar que o circuito multiplicador funciona. 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
9 | P á g i n a 
 
 
 
 
Fig. 3.6 – Algumas combinações de entrada e saída 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 símbolo na Figura 3.7(b) e as formas de onda, mostrando 
que para cada entrada é transmitida para a saída dependendo do sinal de controle está 
expressa nas formas de onda da Figura 3.7(c). 
 
(a) 
 
(b) 
 
 
(c) 
Fig. 3.7 – (a) Multiplexador 4x1 de um bit, (b) seu símbolo e (c) formas de onda para alguns casos. Note que 
a saída é 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 símbolo 
na Figura 3.9(b). Algumas formas de onda do multiplexador de barramento de largura 6 bits 
estão representadas na Figura 3.8. 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
10 | P á g i n a 
 
 
 
 
Fig. 3.8 – Algumas combinações de entrada e saída para o Multiplexador 4x1 de 6 bits. 
 
(a) 
 
(b) 
Fig. 3.9 – (a) Multiplexador 4x1 de seis bits e (b) seu símbolo. 
 
3.5. Conversor Binário-BCD 
O conversor binário BCD gera 7 saídas através de 6 entradas, conforme descrito na 
seção 2.6. A implementação de cada saída obedece às fórmulas (3) a (9). As implementações 
destas saídas, com suas formas de onda, podem ser vistas nas Figuras 3.10 à 3.16. Os símbolos 
para todas os circuitos estão na Figura 3.17. 
 
(a) 
 
 
 
 
(b) 
Fig. 3.10 – (a) Saída d2 do conversor Binário-BCD, implementada da fórmula (3) e (b) formas de onda para 
alguns casos. Note que a saída só se torna 1 para valores maiores que 40, o que faz sentido, já que apenas a 
partir do número 4 o terceiro bit de um número se torna 1. 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
11 | P á g i n a 
 
 
 
 
 
 (a) 
 
 
(b) 
Fig. 3.11 – (a) Saída d1 do conversor Binário-BCD, implementada da fórmula (4) e (b) formas de onda para 
alguns casos. 
 
 
 (a) 
 
 
 
(b) 
Fig. 3.12 – (a) Saída d0 do conversor Binário-BCD, implementada da fórmula (5) e (b) formas de onda para 
alguns casos. 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
12 | P á g i n a 
 
 
 
 
(a) 
 
(b) 
Fig. 3.13 – (a) Saída u3 do conversor Binário-BCD, implementada da fórmula (6) e (b) formas de onda 
para alguns casos. 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
13 | P á g i n a 
 
 
 
 
(a) 
 
(b) 
Fig. 3.14 – (a) Saída u2 do conversor Binário-BCD, implementada da fórmula (7) e (b) formas de onda 
para alguns casos. 
 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
14 | P á g i n a 
 
 
 
 
(a) 
 
(b) 
Fig. 3.15 – (a) Saída u1 do conversor Binário-BCD, implementada da fórmula (8) e (b) formas de onda 
para alguns casos. 
 
 
(a) 
 
(b) 
Fig. 3.16 – (a) Saída u0 do conversor Binário-BCD, implementada da fórmula (9) e (b) formas de onda. 
Neste caso, temos apenas duas situações. Isto faz sentido também, já que a saída u0 só é ligada em 
números ímpares, que por sua vez tem o bit menos significativo sempre no valor 1. 
 
 
(a) (b) (c) (d) (e) (f) (g) 
 
 
Fig. 3.17 – Símbolos das implementações das Figuras (a) 3.10, (b) 3.11, (c) 3.12, (d) 3.13, (e) 3.14, (f) 3.15 
e (g) 3.16. 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
15 | P á g i n a 
 
 
 
O conversor, finalmente, é a união destas sete implementações. Ele é implementado 
conforme a figura 3.18(a), seu símbolo está na Figura 3.18(b) e algumas formas de onda na 
Figura 3.18(c). 
 
(a) 
 
(b) 
 
 
(c) 
Fig. 3.18 – (a) Implementação do conversor Binário-BCD, (b) seu símbolo e (c) formas de onda para alguns 
casos. 
 
3.6. Conversor Dígito-Segmento 
O conversor dígito-segmentos gera 7 saídas através de 4 entradas, conforme descrito 
na seção 2.7. A implementação de cada saída obedece às fórmulas (10) a (16). As 
implementações destas saídas, com suas formas de onda, podem ser vistas nas Figuras 3.19 à 
3.25. Os símbolos para todas os circuitos estão na Figura 3.26. 
Nas formas de onda, quando um sinal está em 0 (desligado), significa que o led 
correspondente àquela saída irá acender (a placa funciona acendendo os leds quando o sinal 
está em 0). 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
16 | P á g i n a 
 
 
 
 
(a) 
 
 
 
 
(b) 
Fig. 3.19 – (a) Saída s0 do conversor dígito-segmento, correspondente ao segmento superior, implementada 
conforme a fórmula (10) e (b) formas de onda para as 16 possibilidades de entradas desta saída. 
 
 
 
(a) 
 
 
 
 
(b) 
Fig. 3.20 – (a) Saída s1 do conversor dígito-segmento, correspondente ao segmento superior esquerdo, 
implementada conforme a fórmula (11) e (b) formas de onda para as 16 possibilidades de entradas desta 
saída. 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
17 | P á g i n a 
 
 
 
 
(a) 
 
 
 
 
(b) 
Fig. 3.21 – (a) Saída s2 do conversor dígito-segmento, correspondente ao segmento superior direito, 
implementada conforme a fórmula (12) e (b) formas de onda para as 16 possibilidades de entradas desta 
saída. 
 
 
(a) 
 
 
 
 
(b) 
Fig. 3.22 – (a) Saída s3 do conversor dígito-segmento, correspondente ao segmento central, implementada 
conforme a fórmula (13) e (b) formas de onda para as 16 possibilidades de entradas desta saída. 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
18 | P á g i n a 
 
 
 
 
(a) 
 
 
 
 
(b) 
Fig. 3.23 – (a) Saída s4 do conversor dígito-segmento, correspondente ao segmento inferior esquerdo, 
implementada conforme a fórmula (14) e (b) formas de onda para as 16 possibilidades de entradas desta 
saída. 
 
 
(a) 
 
 
 
 
(b) 
Fig. 3.24 – (a) Saída s5 do conversor dígito-segmento, correspondente ao segmento inferior direito, 
implementada conforme a fórmula (15) e (b) formas de onda para as 16 possibilidades de entradas desta 
saída. 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
19 | P á g i n a 
 
 
 
 
(a) 
 
 
 
 
(b) 
Fig. 3.25 – (a) Saída s6 do conversor dígito-segmento, correspondente ao segmento inferior, implementada 
conforme a fórmula (16) e (b) formas de onda para as 16 possibilidades de entradas desta saída. 
 
 
(a) (b) (c) (d) (e) (f) (g) 
 
 
Fig. 3.26 – Símbolos das implementações 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 dígito-segmento, finalmente, é a união destas sete implementações. Ele 
é implementado conforme a figura 3.27(a), seu símbolo está na Figura 3.27(b) e algumas 
formas de onda na Figura 3.27(c). 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
20 | P á g i n a 
 
 
 
 
(a) 
 
(b) 
 
 
(c) 
Fig. 3.27 – (a) Implementação do conversor dígito-segmento, (b) seu símbolo e (c) formas de onda para os 
16 casos. 
 
3.7. Verificação de Overflow 
Esta última parte recebe 14 valores de saída dos dois circuitosDígito-Segmento usados (um para o dígito da dezena, outro para o da 
unidade), e faz a verificação se há um overflow na multiplicação. 
Quando há overflow, a indicação da Figura 3.28 é exibida no visor de 
segmentos. Para ela aparecer, é preciso realizar testes nas saídas. Estes 
testes estão dispostos na Figura 3.29. As formas de onda provando que 
eles funcionam serão mostradas adiante, juntamente com o resto do 
circuito. 
 
Fig. 3.28 – Sinal de 
overflow na multipli-
cação. 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
21 | P á g i n a 
 
 
 
 
 
 
 
Fig. 3.29 – Portas que realizam a verificação do overflow na multiplicação. As entradas s[13..0] são geradas 
pelo circuito dígito-segmento, e as saídas X[13..0] irão para a placa (sinais dos leds). 
 
O sinal over é uma indicação que há overflow no produto. Ele é uma OR entre os 
dígitos 6 e 7 da multiplicação gerada pelo circuito da Figura 3.5. Os sinais c0 e c1 são códigos 
de controle do Mux 4x1 da Figura 3.7. A multiplicação só é solicitada quando ambos sinais 
estão em 1. 
3.8. Outros detalhes 
Há mais alguns detalhes específicos à implementação, não discutidos no capítulo 2. 
Similar ao fato de que os leds da placa acendem apenas quando um sinal igual a 0 está na 
saída, as entradas também são “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 botões como 
na Figura 3.31. Nesta mesma figura, está indicado qual botão corresponde a qual entrada. 
Quando o botão é 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 condição é a da multiplicação. 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 multiplicação. A 
implementação para o acendimento destes pontinhos e a geração do sinal de overflow 
comentada na seção 3.7 estão na Figura 3.33. 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
22 | P á g i n a 
 
 
 
 
 
 
 
Fig. 3.30 – Inversão das entradas (A, B e sinais de seleção). 
 
 
b0
b1
b2
b3
a0
a1
a2
a3 
 
 
 
Fig. 3.31 – Switch para as entradas A e B. 
 
 
 
 
Fig. 3.33 – Geração 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 estão na Figura 3.36. Neste circuito já estão incluídas as pinagens que cada 
entrada e saída possui na placa. O bloco entry, da Figura 3.34, realiza a operação da figura 3.30 
(apenas inverte as entradas). 
 
 
 
 
Fig. 3.32 – Bits setados em 0 para serem 
aceitos pelo Multiplexador. 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
23 | P á g i n a 
 
 
 
 
 
 
 
Fig. 3.34 – Circuito final (parte 1). 
 
 
 
 
 
 
Fig. 3.35 – Circuito final (parte 2). 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
24 | P á g i n a 
 
 
 
 
 
 
 
Fig. 3.36 –Formas de onda para alguns casos de entrada no circuito final. Observações: 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 
dígito corresponda a entrada A e o segundo dígito corresponda a entrada B. Note ainda que estes sinais de seleção 
sel1 e sel0 estão invertidos. A operação que eles selecionam no Mux também está explicitada na Figura. No canto 
inferior esquerdo da figura está ressaltado qual led corresponde cada saída. 
 
 
4. Resultados 
4.1. Report 
Executando a compilação do projeto no modo real (considerando os atrasos), temos 
algumas informações interessantes do arquivo de relatório que o MaxPlus gera. Eis algumas: 
** RESUMO ** 
Dispositivo: EPF10K20RC240-3 
Pinos de entrada: 10 
Pinos de saída: 16 
Logic Cells utilizadas: 103 
Porcentagem de Logic Cells usadas: 8% (logo o chip deve ter em torno de 1200 
células lógicas) 
Das informações 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 (não há necessidade de mais de 1000 logic cells para este circuito). 
** PIN/LOCATION/CHIP ASSIGNMENTS ** (setados pelo usuário) 
 
projeto@41 e0 
projeto@40 e1 
projeto@39 e2 
projeto@38 e3 
projeto@36 e4 
projeto@35 e5 
projeto@34 e6 
projeto@33 e7 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
25 | P á g i n a 
 
 
 
projeto@14 ponto1 
projeto@25 ponto2 
projeto@29 sel0 
projeto@28 sel1 
projeto@17 X0 
projeto@23 X1 
projeto@18 X2 
projeto@24 X3 
projeto@21 X4 
projeto@19 X5 
projeto@20 X6 
projeto@6 X7 
projeto@12 X8 
projeto@7 X9 
projeto@13 X10 
projeto@11 X11 
projeto@8 X12 
projeto@9 X13 
Resumo dos pinos de entrada e saída que o circuito utiliza. 
 
** RESOURCE USAGE ** 
 
Total dedicated input pins used: 0/6 (0%) 
Total I/O pins used: 26/183 (14%) 
Total logic cells used: 103/1152 (8%) 
Total embedded cells used: 0/48 (0%) 
Total EABs used: 0/6 (0%) 
Average fan-in: 3.58/4 (89%) 
Total fan-in: 369/4608 (8%) 
Resumo do uso de recursos: usados 26 pinos de I/O do total de 183 (apenas 14%), 
103 células das 1152 disponíveis. Temos também um fan-in médio de 3,58. 
4.2. Timing Analysis 
É possível fazer, para este chip, uma análise do atraso total que ele causa no circuito 
quando atualizamos um sinal de entrada até que este sinal atualize as saídas. Esta tabela 
encontra-se na Figura 4.1. 
 
 
 
 
Fig. 4.1 – Atrasos de atualização da saída após a atualização de alguma entrada, para o circuito das Figuras 
3.34 e 3.35 no chip EPF10K20RC240-3, da família FLEX10K da Altera. Para cada célula, temos uma entrada e 
uma saída 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). 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
26 | P á g i n a 
 
 
 
Alguns resultados interessantes que podemos deduzir a partir da Figura 4.1: note que 
atualizar um dos códigos de seleção na média causa um atraso menor nas saídas do que 
atualizar alguma das entradas A ou B. Isto faz sentido pois se supõe que as entradas no 
multiplexador já estejam sempre prontas esperando apenas pelo código de controle. Este 
pequeno atraso ainda ocorre apenas porque é necessário verificar o overflow toda a vez que 
se atualiza os códigos de seleção, já que a marca de overflow deve ser exibida sempre que o 
produto excede 63. 
Ainda pode-se perceber que nas saídas X0 aX6 o atraso é em média 15% maior que o 
atraso nas saídas X7 a X13, quando ocorre a atualização de alguma entrada dentre A e B. Isto 
ocorre pois para as saídas correspondentes a X7 e X13 dependem apenas dos valores d2, d1 e 
d0 calculados pelo circuito conversor Binário-BCD. Uma das entradas do circuito dígito-
segmento 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 seleção, a geração dos sinais de overflow 
(os pontos decimais) não possui melhor e pior caso, mas apenas um único caso. Isso ocorre 
porque, conforme a Figura 3.33, os sinais de saída ponto1 e ponto2 dependem apenas de c1, 
c0 e over. Como over não é alterado ao se mudar um sinal de seleção, eles dependem apenas 
dos próprios sinais que são 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 não deveria ser igual (ou seja, e0 = e4, e1 = e5, 
etc)? Deveria, se não 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 estão sempre andando paralelamente. 
Porém, na multiplicação, eles são tratados de modo diferente. A multiplicação 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 diferenças de atrasos ao se 
atualizar A e atualizar B são justificadas por causa da parte da multiplicação (essas diferenças 
são bem pequenas, menores que 10% em média). 
 
INF 01058 – Circuitos Digitais – Projeto de Conclusão em Circuitos Digitais 
27 | P á g i n a 
 
 
 
5. Conclusões 
Apesar da implementação de partes do circuito, como os dois Conversores das 
seções 3.5 e 3.6 ser bem demorada, após ela ser realizada fica bem fácil o uso dele com outros 
componentes. O projeto em si ficou bem robusto: é fácil visualizar progressivamente as etapas 
dele. 
A implementação do somador, do multiplicador e do multiplexador foi trivial, devido 
à simplicidade e implementação intuitiva deles. O que mais exigiu tempo foi o tratamento do 
overflow da multiplicação. Primeiramente, eu planejava exibir valores até 99 no visor (o que 
exigia sete bits de representação), porém, após estar quase pronto, vi que teria que ser refeita 
todo o circuito conversor Binário-BCD. 
O problema de tratar com o overflow se intensificou quando foi necessário inverter 
valores para que fossem exibidos corretamente na placa. A implementação da verificação da 
Figura 3.29 levou tempo e exigiu vários testes. 
Finalmente, os testes realizados na seção 4 provaram que o chip EPF10K20RC240-3, 
da família 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 saídas disponíveis. Assim, ele possibilita uma gama de aplicações. 
 
 
6. Referências 
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 versão gratuita 
está disponível no website <www.altera.com>. 
As fórmulas (3) a (16) foram obtidas com o apoio do software Karma, de propriedade 
da Nangate. A versão gratuita está disponível no website < www.inf.ufrgs.br/lagarto>.

Outros materiais