Professional Documents
Culture Documents
Circuitos Digitais
Professor: Leonardo Londero de Oliveira
Data: 02/05/2019
Grupo: 4 alunos
Peso: 10% da nota final
Avaliação: a avaliação dar-se-á mediante: 1) arquivo1 no moodle2: funcionalidade,
organização/clareza na apresentação/disposição do hardware; 2) apresentação3 em aula
de grupos sorteados/escolhidos pelo professor (data a ser informada via moodle).
Data da entrega: até 07/06/2019 (sexta-feira às 11h)
Forma de entrega: upload4 no moodle de arquivos digitais.
Suporte: material no moodle, monitor da disciplina.
@
1
Esquemáticos iguais ou com um nível de semelhança “estranho” entre dois ou mais grupos terão as suas notas
zeradas (para todos os grupos envolvidos).
2
É possível que durante a aula de apresentação, membros do grupo sejam convidados a responder questões
sobre o trabalho, contabilizando a nota final de avaliação deste trabalho, ou ainda, durante a avaliação
teórica.
3
No dia marcado para a apresentação, cada grupo deverá providenciar computador compatível com uma entrada
VGA do datashow.
4
Apenas um integrante do grupo deve fazer o upload do arquivo Logisim.
5
O circuito no software Logisim deve apresentar a entrada P (radicand), as saídas U (root) e R (remainder)
conforme os diagramas da Figura 6, Figura 7 ou Figura 8, de acordo com a opção de projeto escolhida pelo
grupo.
1
Observações:
• É altamente recomendável utilizar a conexão “Tunnel” (na subcategoria “Wiring”)
do Logisim, a qual permite utilizar a abstração de ligar dois pontos do circuito sem a
necessidade de usar “fios”;
• É obrigatório fazer uso da característica de hierarquia no Logisim, onde um circuito
projetado pode ser instanciado e sua função apenas replicada no circuito de topo;
• O nome do arquivo do Logisim6 deverá ser composto pelos nomes iniciais de todos os
integrantes do grupo. Exemplo:
o aluno1_aluno2_aluno3_aluno4_8-bit_sqrt.cir;
• Não podem ser usados blocos de
circuitos aritméticos (biblioteca
“Aritmética”) nativos do Logisim,
com exceção ao bloco
multiplexador, mas que pertence à
biblioteca “Plexers”;
6
Deve ser usado como base o arquivo Logisim disponibilizado pelo Professor no moodle.
7
Veja a seguir, na próxima página, uma visão geral sobre como obter esta informação estatística.
2
Conversão para portas NAND de duas entradas
Segundo8 (SUTIKNO, 2011) e (NANHE, 2013), o circuito base9 para a operação
de radiciação é o CSM ou Controlled Subtract-Multiplex, que está sendo mencionado aqui
com o propósito de explicar10 a “conversão” de um subcircuito com componentes variados
em um esquemático constituído apenas por portas lógicas NAND. Acompanhe o esquema
abaixo:
subcircuito
3
Material de Apoio Resumido
Prezado(a) Aluno(a), a seguir será disponibilizado um material12 de apoio com
algumas explicações acerca do processo de obtenção da raiz quadrada de números inteiros na
base decimal e binária. Recomenda-se ao Aluno relembrar inicialmente os conceitos sobre
esta operação na base decimal, algo que nos é de conhecimento desde o ensino fundamental
e, então prosseguir para a radiciação na base binária. Em seguida, será mostrado a
esquematização de um hardware combinacional, foco deste trabalho.
radical
radical sign
índice 2
index 25 = 5 raiz
root
radicando
radicand
Fonte: Autor.
12
É recomendado imprimir este material e utilizar os espaços indicados para realizar anotações como propósito
de consolidar os conceitos abordados.
4
Primeiramente, agrupe os números dentro da raiz quadrada em pares, da direita
para a esquerda, deixando um ou dois dígitos à esquerda (6 neste caso). Para cada par de
números será conseguido um dígito da raiz quadrada. Para começar, encontre um número a
partir do qual o quadrado é menor ou igual ao primeiro par ou primeiro número e, escreva-o
acima do símbolo da raiz quadrada (2).
Square the 2, giving 4, write Then double the number above Next think what single-digit
that underneath the 6, and the square root symbol line number something could go on
subtract. Bring down the next (highlighted), and write it down the empty line so that forty-
pair of digits. in parenthesis with an empty something times something would
line next to it as shown. be less than or equal to 245.
45 x 5 = 225
46 x 6 = 276, so 5 works.
Write 5 on top of line. Then double the number above Think what single digit number
Calculate 5 x 45, write that the line (25), and write the something could go on the empty
below 245, subtract, bring doubled number (50) in line so that five hundred-
down the next pair of digits (in parenthesis with an empty line something times something
this case the decimal digits next to it as indicated: would be less than or equal to
00). 2000. 503 x 3 = 1509
504 x 4 = 2016, so 3 works.
Calculate 3 x 503, write that Then double the 'number' 253 5068 x 8 = 40544
below 2000, subtract, bring which is above the line 5069 x 9 = 45621, which is less
down the next digits. (ignoring the decimal point), than 49100, so 9 works.
and write the doubled number
506 in parenthesis with an
empty line next to it as
indicated:
13
Atenção: em inglês, o separador decimal é feito com o “ponto”.
5
Sobre as regras de subtração binária bit a bit
Para o entendimento dos algoritmos de obtenção da raiz quadrada de números
binários, os quais serão apresentados a seguir neste material de apoio, é necessária a
compreensão da subtração binária bit a bit (em aula, apenas a adição binária bit a bit foi
abordada). Primeiramente, verifique na Figura 2 a nomenclatura matemática, em português e
inglês, para a operação de subtração.
28 minuendo (minuend)
- 17 subtraendo (subtrahend)
11 resto ou diferença (remainder ou difference)
Fonte: Autor.
14
O termo “empréstimo” pode ser traduzido para o inglês como sendo borrow e, de fato, esta é a palavra que é
mais usada na especificação de circuitos subtratores. Neste trabalho ambas as denominações podem aparecer
sem aviso prévio, fique atento.
6
Sobre o processo de obtenção da raiz quadrada na base binária
É possível encontrar na literatura diversos métodos para a obtenção da raiz
quadrada de um número inteiro positivo, mostrando implementações em hardware usando
circuitos combinacionais ou sequenciais (máquinas de estados). De forma geral, estes
métodos podem ser classificados em dois tipos de algoritmos: restoring (restauração) e non-
restoring digit-by-digit (não-restauração).
O termo restauração refere-se a uma etapa do algoritmo onde é introduzida a
“restauração” de um valor prévio através de uma operação oposta. Por exemplo, caso o
algoritmo realize uma subtração e o resultado, ou resto (remainder), não seja o esperado, a
etapa imediatamente posterior sobre este remainder será a adição do valor outrora subtraído.
Desta forma, o valor original, antes da operação de subtração, será restaurado. E o que faz
com o um valor não seja o “esperado” dentro da execução do método? No caso destes
algoritmos de obtenção da raiz quadrada, existem operações de subtração que, caso
retornarem um valor negativo, são consideradas “erradas” ou, em outras palavras, são um
wrong guess no processo de obtenção da raiz quadrada.
Recomenda-se que o Aluno estude e compreenda os algoritmos restoring e non-
restoring explicados em (SUTIKNO, 2011)15 antes de prosseguir à proposta deste referido
artigo, a qual vem a ser o modified non-restoring digit-by-digit algorithm (Veja a Figure 2
deste mesmo artigo) e, que é a abordagem de implementação foco deste trabalho. Além
disso, é importante salientar que a proposta desenvolvida pelos autores em (NANHE, 2013)
também serve de fonte bibliográfica para entendimento dos métodos restoring e non-
restoring e, ainda mostra uma implementação em ponto fixo.
@
15
Fique atento: o autor em (SUTIKNO, 2011) refere-se ao resultado da raiz quadrada, ou simplesmente raiz,
com o termo root. Já os autores em (NANHE, 2013) usam o termo quotient. Neste trabalho será adotado o
termo root, ora referenciado na língua inglesa, ora na língua portuguesa.
7
Figura 4 – Exemplo de utilização do algoritmo modificado non-restoring digit-by-digit para resolver o
problema da raiz quadrada considerando um radicando16 de 8 bits
3
1 0 0 1
1 Divida o radicando em grupos de dois bits iniciando no ponto
1
01 01 11 01 decimal e em ambas as direções ou, no caso deste exemplo,
iniciando no LSB.
- 01 2 2 A partir do MSB, selecione o primeiro grupo de dois bits e
3 4 subtraia “01” dele.
00 01 3 Duas ações:
1) se o bit de borrow retornar zero, significa que o
00 01 remainder é positivo então o respectivo bit da raiz é
5
- 1 01 1, caso contrário é 0;
borrow retornou “1”: 2) se o bit de borrow retornar um, o remainder (resto)
descartar este resto deve ser descartado e o minuendo desta etapa deve
ser mantido e usado na próxima subtração.
00 01 11
- 10 01
4 “Desça” os próximos 2 bits do radicando e os anexe à direita do
remainder (ou do minuendo da etapa anterior), o que equivale a
borrow retornou “1”:
descartar este resto realizar uma operação de deslocamento de bits à esquerda,
sendo que o padrão binário resultante é o novo minuendo da
próxima subtração.
00 01 11 01
- 1 00 01
5 Abaixo do minuendo, escreva os dígitos “01” e escreva a raiz,
obtida até agora, à esquerda destes dígitos, o que equivale a
multiplicar a raiz por 4 (1002) e adicionar “1” a mesma.
borrow retornou “0”: o
próximo bit da raiz é 1
00 11 00 Realize a subtração e volte ao passo 3. Repita estes passos até
que o último grupo de dois bits do radicando tenha sido usado.
16
Não está sendo mostrado o caso para o qual o radicando possui um número ímpar de bits. Para tanto, verifique
o procedimento diretamente nos artigos (SUTIKNO, 2011) e (NANHE, 2013).
8
Figura 6 – Diagrama de blocos da proposta básica obrigatória
P7 P6 P5 P4 P3 P2 P1 P0
P (radicand)
U (root) R (remainder)
4 7
U3 U2 U1 U0 R6 R5 R4 R3 R2 R1 R0
Fonte: Autor.
P7 P6 P5 P4 P3 P2 P1 P0
8
circuito
P (radicand)
U (root) R (remainder)
4 7
circuito
U3 U2 U1 U0 R6 R5 R4 R3 R2 R1 R0
Fonte: Autor.
@
9
Figura 8 – Diagrama de blocos da proposta “AVANÇADA” (opcional), onde a entrada P e a saída U,
ambas em ponto fixo devem estar apresentadas em binário e em decimal, com o número apropriado de
displays de sete segmentos
12
circuito
P (radicand)
U (root)
6
circuito
U3 U2 U1 U0 . U-1 U-2
Fonte: Autor.
10
Cronograma recomendado
É importante que o Aluno (ou grupo) trace metas individuais que tornem possível
acompanhar o progresso da atividade. Isto é válido tanto para trabalhos curriculares quanto
para aqueles que resolverem fazer parte de uma empresa ou ter a sua própria. O cronograma
abaixo (Quadro 1) representa um subsídio para auxiliar neste processo. Habitue-se a
estabelecer e verificar regularmente metas para objetivos maiores!
semanas
atividade descrição 1 2 3 4 5
01 Estudo da Raiz quadrada, base 1010 X
02 Estudo dos algoritmos restoring e non-restoring, base 210 X
03 Construção da proposta obrigatória no Logisim X X X
04 Verificação funcional da proposta X X X
05 Elaboração da apresentação X X
06 Análise da viabilidade e implementação de proposta opcional X X
Quadro 1 – Cronograma recomendado para o trabalho da disciplina
Fonte: Autor.
Bibliografia
11