Somador 1, 4, 8, 16, 32 e 64 bits (VHDL)

Embed Size (px)

Citation preview

UNIVERSIDADE FEDERAL DE SERGIPE (UFS) CENTRO DE CINCIAS EXATAS E TECNOLGICAS (CCET) DEPARTAMENTO DE COMPUTAO (DCOMP)

DISCIPLINA: LAB. DE CIRCUITOS DIGITAIS II PROFESSOR: EDWARD DAVID MORENO ORDOEZ

RELATRIO DE AULA PRTICA N (Prtica 03 - LCDII) Estrutura: Somador 1, 4, 8, 16, 32 e 64 bits Por NOME(S) DO(S) ALUNO(S) Diego Eduardo Alcntara Quelita Arajo

DATA (19/04/2011) Prtica

DATA (26/04/2011) Entrega

1-Introduo Segundo a UFPEL Um circuito combinacional aritmtico implementa operaes aritmticas como adio, subtrao, multiplicao e diviso com nmeros binrios. A operao aritmtica mais simples a adio de dois dgitos binrios, que consiste de quatro possveis operaes elementares: 0+0=0, 0+1=1, 1+0=1 e 1+1=10. As trs primeiras operaes produzem um dgito de soma. Entretanto, quando ambos os operandos so iguais a 1, so necessrios dois dgitos para expressar seu resultado. Neste caso, o transporte (vai-um ou carry, em ingls) somado ao prximo par mais significativo de bits. Um circuito combinacional que implementa a adio de dois bits chamado meio-somador (half adder, em ingls). Um circuito que implementa a adio de trs bits (dois bits significativos e um carry) chamado de somador completo (full adder, em ingls). Estes nomes decorrem do fato de que com dois meio-somadores pode-se implementar um somador completo. O somador completo um circuito aritmtico bsico a partir do qual todos os outros circuitos aritmticos so construdos. A operao da adio de dois dgitos binrios (bits), a qual pode ser vista como a adio de dois nmeros binrios de um bit cada. Considerando-se todas as 4 combinaes de valores que podem ocorrer, os resultados possveis dessa adio so:Tabela 1: Soma de bits

Repare que no ltimo caso acima, o resultado da adio o valor 2, que em binrio necessita de dois dgitos para ser representado (10). Um circuito aritmtico para realizar a adio de dois bits deve operar corretamente para qualquer combinao de valores de entrada. Isso significa que o circuito para a adio de dois bits deve possuir duas entradas e duas sadas, conforme ilustrado na figura 1.

Figura 1: Entradas e Sadas do Meio Somador

Corrobora a UFPEL que, denomina-se meia-soma a operao de adio de dois bits. O circuito mostrado na figura acima denominado meio somador (half adder). As duas entradas, A e B, representam os dois bits a serem adicionados. A sada S representa o dgito menos significativo do resultado, enquanto que a sada Cout representa o dgito mais significativo do resultado, o qual tambm conhecido por transporte de sada (carry out), uma vez que ele assume valor 1 somente quando o resultado da soma de A e B no pode ser representado num nico dgito. Note que a sada S nada mais do que o XOR entre A e B J a sada Cout o and entre A e B (Cout = A B). Ento, um circuito para o meio somador usa apenas uma porta XOR de duas entradas e uma porta E de duas entradas, conforme mostrado no circuito 1.

Circuito 1: Meio somador

Pode-se observar ento, que o resultado obtido mediante a adio de trs bits: um pertencente ao nmero A, um pertencente ao nmero B e um terceiro que o transporte proveniente do resultado da adio entre os bits da posio anterior. Resumindo quando somamos dois nmeros binrios que possuem mais de um dgito cada ocorre o transporte diferente de zero para a soma de um par de dgitos intermedirios, a soma do par seguinte dever considerar esse transporte proveniente do par anterior justifica a UFPEL. O circuito capaz de realizar a soma de trs bits (A, B e Cin), gerando o resultado em dois bits (S e Cout) denominado somador completo (full adder, em ingls). Apesar da entrada Cin normalmente receber o transporte proveniente da soma imediatamente anterior (carry in, em ingls), a rigor as trs entradas so absolutamente equivalentes sob o ponto de vista funcional. A tabela verdade para a soma completa mostrada na tabela 2, juntamente com o mapa de Karnaugh (figura 2). A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Cin 0 1 0 1 0 1 0 1 Cout 0 0 0 1 0 1 1 1 S 0 1 1 0 1 0 0 1

Conforme pode-se ver

Tabela 1: Tabela verdade do Somador completo de 1 bit

Figura 1: mapa de Karnaugh

pelo mapa de Karnaugh acima, a expresso mnima em soma de produtos para S contm todos os termos da funo: O circuito que implementa a sada S do somador completo pode ser derivado a partir da equao em soma de produtos acima. No entanto, pode-se ainda manipular tal equao conforme segue:

Logo, o circuito para a sada S do somador completo pode tambm ser representado com duas portas XOR.

Figura 2: mapa de Karnaugh na equao com portas XOR

A sada Cout tem como expresso mnima em soma de produtos:

Circuito 2: circuito para o somador completo de 1 bit

A UFPEL Conclui que utilizando n somadores completos, pode-se realizar um somador capaz de operar dois nmeros binrios de n bits (Tanto os circuitos de somadores de 4, 8, 16, 32 e 64 bits vistos em sala de aula quanto vrios mais). Dessa forma, o dgito de ordem i do resultado, Si, ser obtido pela adio de Ai, Bi e Ci, onde Ci o transporte proveniente do dgito anterior. O somador de ndice i recebe como entradas Ai, Bi e Ci, gerando a soma Si e o valor de transporte Ci+1, o qual ser entrada para o somador completo do dgito seguinte (i+1). A construo de um somador para operar dois nmeros binrios de n bits requer o uso de n somadores completos, conectados segundo a mesma topologia mostrada na figura do circuito somador paralelo para nmeros binrios com 4 bits (figura 5).

Figura 5: circuito somador paralelo para nmeros binrios com 4 bits.

2-Descrio Principal da atividade No Laboratrio foi proposto implementao do Somador de 1, 4, 8, 16, 32 e 64 bits. Com o objetivo de verificarmos a diferena entre as diferentes implementaes. Como visto, no laboratrio a implementao do cdigo discernia apenas no nmero de n bits existentes, ou seja, o vetor que faz a soma dos nmeros binrios era do tamanho referente ao bit pretendido 1, 4, 8, 16, 32 ou 64. Mas, a lgica do cdigo continuava a mesma e o RTL entre eles diferenciava-se na quantidade de portas lgicas que aumentava de acordo, com a quantidade de bits. Abaixo esto s implementaes dos cdigos dos somadores. Em negrito, verifica-se a lgica existente que no muda:library ieee; use ieee.std_logic_1164.all; entity s1a is port(cin,a,b: in std_logic; s,cout: out std_logic); end s1a; architecture arch_soma01 of s1a is begin s