Sei sulla pagina 1di 11

UFSM - CT - Departamento de Eletrônica e Computação

Circuitos Digitais
Professor: Leonardo Londero de Oliveira
Data: 02/05/2019

TRABALHO 01/2019 - RAIZ QUADRADA

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.

Objetivo do trabalho: avaliar os conhecimentos: sobre circuitos combinacionais para a


operação da raiz quadrada; sobre números binários; utilização do software Logisim;
conversão binário para BCD (opcional); manipulação de circuitos em laboratório (opcional).

Descrição: construir um operador de raiz quadrada binário combinacional com radicando de


8 bits5. A proposta deste trabalho está, portanto, em estender a compreensão sobre a operação
de raiz quadrada em binário apresentada no material de apoio, de forma a conceber um
hardware combinacional que retorne o resultado correto para um determinado número de bits.

[OPCIONAL] ADICIONAIS PARA NOTA EXTRA (mediante avaliação do professor):


Ø (nível INTERMEDIÁRIO) Raiz Quadrada + displays 7 segmentos: radicando e raiz
devem ser mostrados em displays de sete segmentos;
Ø (nível AVANÇADO) Raiz Quadrada com valores fracionários + displays 7
segmentos: radicando e raiz, ambos fracionários, devem ser mostrados em displays de
sete segmentos;
Ø (nível + AVANÇADO) Implementação do nível INTERMEDIÁRIO em laboratório:
o grupo deve avisar ao Professor com 7 dias de antecedência sobre a escolha em realizar
esta opção. Além disto, o arquivo Logisim continua sendo necessário. Um relatório
deverá ser elaborado para esta opção e entregue, impresso, na data já especificada acima.

@
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”;

• Dentro do arquivo do Logisim disponibilizado, preencher (em ordem alfabética) o


nome completo dos integrantes do grupo, juntamente com a opção escolhida e a
informação de desempenho solicitada, no espaço reservado para tanto.

Informações de Desempenho Solicitadas


Estas informações de desempenho são referentes
à quantidade de portas lógicas e circuitos nativos do Logisim
utilizados, sendo que o circuito mais otimizado nos quesitos
informados e com a funcionalidade correta, é candidato a
receber a nota integral e uma bonificação extra,
independente da proposta de projeto escolhida. As
informações podem ser acessadas conforme o menu
mostrado ao lado.
Estas informações deverão estar apresentadas no
local destinado a elas dentro do arquivo base/modelo a ser,
impreterivelmente, usado por todos os grupos.
Apenas as informações referentes a
implementação do circuito que calcula a raiz quadrada
devem ser apresentadas considerando o número total de
portas NAND de duas entradas7. NÃO deverão aparecer no
relatório a contabilidade de portas lógicas e/ou componentes
que compõem os circuitos auxiliares referentes aos displays
de 7 segmentos (para os grupos que optarem pela inserção
dos mesmos).

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

Atenção: o Logisim pode alterar a distribuição espacial dos pinos no símbolo11


que representa o circuito quando da instanciação do componente no esquemático principal,
depois da reconstrução do bloco com NANDs.
8
O processo completo de radiciação será abordado nas próximas páginas.
9
Ao ler os artigos, o Aluno perceberá que existem implementações otimizadas, as quais podem ser adotadas.
10
É possível procurar o monitor da disciplina acerca de dúvidas sobre o Logisim.
11
Caso necessário, verifique com o monitor como manipular o aspecto gráfico do símbolo de um subcircuito no
Logisim.

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.

Sobre o processo de obtenção da raiz quadrada na base decimal


A operação inversa da potenciação é a radiciação. Relembre na Figura 1 a
nomenclatura, em português e inglês, envolvendo a operação de raiz quadrada (na prática não
se escreve o índice 2):
Figura 1 – Termos empregados em uma operação de radiciação

radical
radical sign

índice 2
index 25 = 5 raiz
root

radicando
radicand
Fonte: Autor.

Pesquise a respeito e use este espaço para esquematizar a obtenção da raiz


quadrada usando números decimais. Como auxílio, acompanhe, em inglês, na próxima
página um passo a passo numérico considerando um algoritmo de obtenção da raiz quadrada.

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:

Desta forma, tem-se (com uma casa decimal13): √645 = 25.4

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.

Figura 2 – Termos envolvidos na subtração

28 minuendo (minuend)
- 17 subtraendo (subtrahend)
11 resto ou diferença (remainder ou difference)
Fonte: Autor.

Um subtrator de N bits é um componente de bloco operacional que toma duas


entradas binárias A e B e produz um resultado S na saída igual a A - B (VAHID, 2010, pág.
208). A Figura 4 mostra a subtração de números binários feita “à mão”. Repare que o
processo de subtração segue a mesma lógica da subtração decimal, isto é, com operações
parciais feitas digito a digito e, quando necessário, considerando o “artifício” do
empréstimo14.
Cada um dos números A e B possui 4 bits, sendo que os bits individuais serão
aqui referidos com as respectivas letras minúsculas a e b. Começando com a primeira coluna,
vemos que a é menor do que b (0 < 1), necessitando-se pedir emprestado à coluna da
esquerda. O resultado da primeira coluna é então 102 - 12 = 12 (na base dez, dois menos um é
igual a um). A segunda coluna tem um 0 em a devido ao empréstimo feito pela primeira
coluna, tornando a < b (0 < 1), o que leva a pedir emprestado à terceira coluna, que deverá
pedir emprestado à quarta coluna. O resultado da segunda coluna será então 102 - 12 = 12. A
terceira coluna, devido ao empréstimo feito pela segunda coluna, tem 1 em a, que não é
menor do que b, de modo que o resultado da terceira coluna será 12 - 12 = 02. A quarta coluna
tem a=0 devido ao empréstimo feito pela terceira coluna e, como b também é 0, o resultado é
02 - 02 = 02.

Figura 3 – Subtração de 4 bits feita à mão

Fonte: (VAHID, 2010, pág. 208).

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.

Sobre o modified non-restoring digit-by-digit algorithm (SUTIKNO, 2011)

Este material de apoio apresentará em linhas gerais a implementação do


algoritmo modificado non-restoring digit-by-digit abordado em (SUTIKNO, 2011),
considerando um exemplo numérico, o passo a passo e um esquemático para uma
implementação unsigned.
Em um método de cálculo digit-by-digit, cada dígito da raiz quadrada é
encontrado em uma sequência onde apenas um dígito da raiz quadrada é gerado a cada
interação (Figura 4). A Figura 4 mostra passo a passo para o processo de obtenção da raiz
quadrada do número 010111012 (9310), a qual retorna 10012 (910). É importante salientar que
a raiz (resultado da operação de raiz quadrada) mostrada informa apenas a parte inteira.

@
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.

Fonte: Adaptação de figuras e algoritmos de (SUTIKNO, 2011) e (NANHE, 2013).

Figura 5 – Estrutura de um operador de raiz quadrada para números unsigned de 6 bits

Fonte: Adaptação (NANHE, 2013).

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.

Figura 7 – Diagrama de blocos da proposta “INTERMEDIÁRIA” (opcional), onde a entrada P e a saída


U devem estar apresentadas em binário e em decimal, com o número apropriado de displays de sete
segmentos

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

P7 P6 P5 P4 P3 P2 P1 P0 . P-1 P-2 P-3 P-4

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

NANHE, A.; GAWALI, G.; AHIRE, S.; SIVASANKARAN, K.


Implementation of Fixed and Floating Point Square Root Using Nonrestoring
Algorithm on FPGA International Journal of Computer and Electrical Engineering (IJCEE)
2013 Vol.5(5): 533-537 ISSN: 1793-8163. DOI: 10.7763/IJCEE.2013.V5.767.

SUTIKNO, T. An Efficient Implementation of the Non Restoring Square


Root Algorithm in Gate Level International Journal of Computer Theory and Engineering
(IJCTE) 2011 Vol.3(1): 46-51 ISSN: 1793-8201. DOI: 10.7763/IJCTE.2011.V3.281.

TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas Digitais: princípios e


aplicações. 11 ed. São Paulo: Pearson, 2011.

VAHID, F. Sistemas Digitais: projeto, otimização e HDLs. 1 ed. São Paulo:


Bookman, 2010.

11

Potrebbero piacerti anche