Вы находитесь на странице: 1из 33

1

LABORATORIO II: IMPLEMENTACIN DE CIRCUITOS ARITMTICOS Y


MDULOS COMBINACIONALES BSICOS MSI
CIRCUITOS DIGITALES I
GRUPO A

KELL
F

EGA DAVID
ASTRO

MG. ING. FERNANDO APARICIO URBANO Y TATIANA TOBAR


ORT ERNANDO
QUIONES C

UNIVERSIDAD DEL CAUCA


FACULTAD
DE INGENIERA
ELECTRNICA Y TELECOMUNICACIONES
POPAYN, DICIEMBRE
DE 2013

TABLA DE CONTENIDO

1. INTRODUCCIN3
2. OBJETIVOS.3
3. MARCO TERICO.......................................................................................4
4. DISCUSION DE RESULTADOS.... 5
4.1 REQUERIMIENTO I: CONTROL DE NIVEL DE AGUA....5
A. PROCEDIMIENTO...5
1. DECODIFICADOR...5
2. CODIFICADOR DE PRIORIDAD...8
3. BLOQUE DIFERENCIA DE NIVEL.10
4. BLOQUE CONVERSOR...17
5. CIRCUITO CONTROL NIVEL DE AGUA...........18
6. CANTIDAD ELEMENTOS LOGICOS.18
4.2 REQUERIMIENTO II: MULTIPLICADOR DE 8 BITS...19
A. SELECCIN DEL MULTIPLICADOR 19
B. ANLISIS DEL REQUERIMIENTO....24
C. PROCEDIMIENTO....24
1. REGISTRO...24
2. GENERADOR PRODUCTOS PARCIALES26
3. FULL ADDER...27
4. SUMADOR 8 BITS..28
5. BLOQUE CONVERSOR.30
6. CIRCUITO MULTIPLICADOR BINARIO..31
7. CANTIDAD ELEMENTOS LOGICOS..32
5. CONCLUSIONES..33
6. REFERENCIAS..33

1. INTRODUCCIN
Los mdulos combinacionales bsicos esencialmente son bloques funcionales
encargados de realizar una tarea determinada; el diseo MSI tuvo grandes
avances gracias al desarrollo de la tecnologa de integracin esto produjo una
directa repercusin en los costos, ya que redujo el valor de su produccin y
posibilitaron producir circuitos ms generales.
Dentro los dispositivos MSI, se encuentran los llamados circuitos aritmticos que
son circuitos lgicos para sistemas digitales, cuya funcin esencial es realizar
operaciones aritmticas en formato
binario o BCD, punto fijo o flotante; a
continuacin
en la siguiente prctica se emplearan estos conceptos para la
solucin de los requerimientos planteados

2. OBJETIVOS

Analizar los requerimientos presentados en cada uno de los planteamientos


del laboratorio y postular su posible solucin.

Conocer y profundizar el manejo tanto de la tarjeta Altera DE0 como de


distintas herramientas como simuladores y dems programas que faciliten
el desarrollo del laboratorio.

Fortalecer y constatar los conocimientos referentes a los circuitos MSI


aritmticos, lgicos bsicos y su correspondiente implementacin.

3. MARCO TERICO

MODULOS COMBINACIONALES BASICOS MSI

Los mdulos combinacionales bsicos MSI son bloques funcionales que realizan
una tarea especfica, y pueden implementar funciones booleanas.
MSI (Medium Size of Integration) con un nmero de compuertas entre 10 y
100.

CIRCUITOS ARITMETICOS
Dentro de la variada gama de circuitos digitales, se tienen los denominados
circuitos aritmticos los cuales
tienen como objetivo realizar operaciones
aritmticas.
Desde el punto de vista de cmo se procesan los datos pueden ser del tipo serie o
paralelo. En el primer caso los datos se van presentando al circuito de a un bit por
vez, generalmente comenzando primero con el LSB (bit menos significativo). En el
segundo, los datos se presentan en formato paralelo, es decir, todos los bits
simultneamente.
Dependiendo de la funcin a realizar, se tienen
sumadores, restadores,
multiplicadores, divisores y funciones combinadas de los mismos para realizar
operaciones complejas como por ejemplo el clculo de raz cuadrada,
exponenciales,
etc.

4. DISCUSIN DE RESULTADOS
REQUERIMIENTO I
CONTROL DEL NIVEL DEL AGUA
Se tienen dos tanques de agua y se requiere mantener un control del nivel de
agua del que est ms vaco, y la diferencia de nivel respecto al mayor (en valor
absoluto).
Para conocer el nivel, cada depsito tiene 7 sensores distribuidos a lo alto del
tanque. Cada sensor dar un '1' lgico si est cubierto de agua, y un '0' lgico si
est al aire.
Se deben utilizar dos displays de 7 segmentos, uno para indicar el nivel del ms
vaco, y otro para indicar la diferencia.
Como se tienen 7 sensores para conocer el nivel, el rango de valores va desde 0
a
7. Se asume que ningn sensor va a fallar, por lo tanto, si un sensor indica un '1'
lgico, todos los sensores que estn debajo de l darn un '1' lgico (debido a que
el agua los cubrir tambin).
SOLUCION:
A. PROCEDIMIENTO
1. Para la elaboracin del control de nivel de agua primero se pens en
cmo implementar el diseo en la tarjeta altera DE0 ya que se tienen 7
sensores por cada tanque y la tarjeta solo cuanta con diez suiches, por lo
tanto se hizo necesario elaborar un decodificador de 6 a 14 ya que los
decodificadores asignan a cada condicin de entrada, una y solo una
seal de salida, de modo que se pasa de tener 14 entradas a tener 6
entradas que se pueden implementar fcilmente en la tarjeta a la hora de
hacer la asignacin de pines.
Variables de entrada:
NT01, NT11, NT21 tres bits que corresponden a los 7
sensores del tanque 1.
NT02, NT12, NT22 tres bits que corresponden a los 7
sensores del nivel 2.

Variables de salida:

D0, D1, D2, D3, D4, D5, D6 7 Sensores q corresponden al nivel


en que se encuentra el tanque 1.

D7, D9, D10, D11, D12, D13, D14 7 Sensores q corresponden al


nivel en que se encuentra el tanque 2.

Para la implementacin del decodificador de 6 a 14 se utilizaron dos


decodificadores de 3 a 8 con dos salidas enviadas a tierra, aunque tambin
se poda implementar con dos decodificadores de 3 a 7 y eliminar una
compuerta and en cada decodificador, para poder implementar el
decodificador primero se hace la tabla de verdad de un decodificador de
3 a 8:

A continuacin se muestra el diagrama de un decodificador de 3 a 8:


1
2

12

D0

13

1
2

12

D1

13

1
2

12

D2

13

1
2

12

D3

13

1
2

12

D4

13

1
2

12

D5

13

1
2

12

D6

13

1
2

12

D7

13

Posteriormente se procede a hacer la simulacin en Altera U.P Simulator,


obteniendo:

Se aprecia en la simulacin de uno de los decodificadores de 3 a 8 que para cada


uno de los posibles valores de 0 a 7 que puede adoptar la entrada, uno y solo uno
de los sensores que representan el nivel de los tanques tendr el valor de 1 lgico,
para el primer caso, es decir, 000 el valor de la salida que toma el valor de 1 es el
sensor D0, para el caso siguiente, 001, ese valor lo adopta D2 y sucesivamente;
de esta manera se completa la tabla hasta el ltimo valor de entrada que es 111
donde el sensor D7 es en este caso que toma el valor de 1.

2. Luego para dar solucin a la parte del requerimiento que dice que se
asume que ningn sensor va a fallar, por lo tanto, si un sensor indica un
'1' lgico, todos los sensores que estn debajo de l darn un '1' lgico
(debido a que el agua los cubrir tambin), se elabor un codificador de
prioridad el cual cumple perfectamente con el requerimiento.
Tabla de verdad de un codificador de prioridad de 8 a 3.

En este caso el codificador de prioridad tiene entradas y salidas activas en bajo


y se puede observar que cumple con el requerimiento puesto que todos los
sensores bajo la diagonal principal del cuadro de las entradas estn en
1 lgico (H).
Se procede a implementar el codificador de prioridad y como se hacen
necesarias 14 entras se utilizaran dos decodificadores de 7 a 3, puesto q se
omiti la entrada D7 por no ser necesaria para el requerimiento, a continuacin
se muestra la implementacin de uno de los codificadores:

CODIFICADOR DE PRIORIDAD 7 A 3

Posteriormente se procede a hacer la simulacin en Altera U.P Simulator, obteniendo:

En la simulacin de uno de los codificadores de prioridad de 7 a 3 se puede


apreciar que se tienen las entradas activas en alto tal y como salen despus de
por el decodificador, sin embargo se aprecia que las salidas estn activas en bajo
(negadas) teniendo en cuenta la tabla de verdad del codificador de prioridad
anteriormente presentada, un ejemplo de esto es : la entrada 0000000 que tiene
como salida 111 que negada es 000 tal y como se muestra en la tabla de verdad
del codificador donde entrada es XXXXXXXL (L=LOW=0) y tiene como salida
LLL que negado es HHH (H =HIGH) = 111
lo que verifica el correcto
funcionamiento.

3. Despus se hizo un bloque funcional al cual se llam nuevo diferencia


de nivel el cual encarga de hacer que el requerimiento de hallar el nivel
menor entre los tanques y la diferencia entre ellos se cumpla, para ello:
3.1 Se hizo un bloque funcional al cual se llam resta complemento a 2,
el cual se encarga de realizar la resta entre el nivel del tanque 1 y
el tanque 2. La resta de nivel se hace de la siguiente forma:
Nivel de tanque1 + Nivel de tanque 2 +1
Para poder implementar la suma de los 3 bits de cada tanque se
usaron
3 full adders, por otro lado para el nivel del tanque 2 negado se usaron 3
compuertas xor y para sumar 1 se puso el Cin (acarreo de entrada) con
un valor de 1 lgico o VCC, a continuacin se muestra el diagrama:
RESTA COMPLEMENTO A DOS
A

Vcc
1

FU
LL_
AD
DE
R

X
Co
ut

FU
LL_
X
AD
DE
R

X
Co
ut

SIG
NO

Para hacer cada full adder se hizo la tabla de verdad respectiva:

Co
ut

FU
LL_
AD
DE
R

Posteriormente se realiz la implementacin del full adder, para esto se


realiz algebra booleana para encontrar la mnima expresin de CarryOut y
Sum:
CarryOut = AB +CarryInB + CarryInA
Sum = CarryInA B +CarryIn AB + CarryInAB + CarryInAB
= CarryIn(A B +AB) + CarryIn(AB +AB)
= CarryIn(A

B) + CarryIn(A B)

= CarryIn A B
Teniendo las mnimas expresiones para CarryOut= Cout y Sum = S ya se
puede hacer la implementacin usando compuertas del full adder:
FULL ADDER

3.2 En el momento de hacer la resta de los dos niveles se pudo


evidenciar que si el nivel del tanque 1 es mayor que el nivel del tanque 2
el resultado de la operacin va a ser el que se requiere y SIGNO
va a valer 1, sin embargo si el nivel del tanque 1 es menor que el del
tanque
2, al resultado va a tener que aplicrsele una conversin de
complemento a 2, dado que el resultado de la operacin va a ser
negativo con SIGNO igual a 0, por ejemplo:

Nivel tanque1= 7 y nivel tanque2= 4


74 =3 111 +
011

4 negado

1010
SIGNO 3 En decimal
Ahora si se hace Nivel tanque1= 4 y nivel tanque2= 7
4 7= magnitud de 3 1 0 0 +
000
0100
SIGNO Necesita de una conversin.
Por tanto para obtener slo la magnitud de la resta de los niveles de los 2
tanques se hizo un bloque al cual se llam selector 2 el cual est compuesto
por
3 demux que van a distribuir la informacin en dos bloques segn sea el valor de
SIGNO =sel, entonces si SIGNO es 1 la informacin pasar directamente al
bloque funcional que se llam comparador mayor menor y si SIGNO es 0 la
informacin pasar al bloque que se llam conversor complemento a 2, a
continuacin se muestra el diagrama de selector 2:
SELECTOR 2
D4
sel
D5

D6

Cuando SIGNO=sel sea igual a 0, indica que el resultado de la resta es negativo,


entonces los datos pasarn al bloque funcional al cual se llam conversor
complemento a 2 el cual se va a encargar de sacar la magnitud al resultado
negativo que resulta de la resta de los niveles de los dos tanques en el caso de
que nivel del tanque 1 sea menor que el nivel del tanque 2, para poder disear el
conversor de complemento a 2 se hizo la siguiente tabla de verdad:

ENTRADAS
SEL_A
0
0
0
0
1
1
1
1
Para hacer cada una de las conversiones del complemento a dos y as poder
hacer la tabla de verdad se utiliz el mtodo de analizar el nmero a convertir del
bits menos significativo (bit de la derecha) al ms significativo (bit de la
izquierda) y a partir del primer 1 lgico visto de derecha a izquierdo se
saca el complemento a cada bit hasta llegar al bit ms significativo, por ejemplo:
Entrada 0 1 0

El 0 se conserva.
Primer 1 lgico
Complemento de 0 = 1

Salida

1 0

Para la implementacin del conversor de complemento a 2 se utilizaron


multiplexores, para ello se dividi la tabla en 4 partes iguales (de dos filas cada
una) y para cada salida (SAL_A,SAL_B, SAL_C) se hallaron las funciones
correspondientes a cada intervalo:

SEL_A = A ; SEL_B = B ; CEL_C = C

Posteriormente se realiza la implementacin del conversor de complemento a


dos tal como se muestra a continuacin:
CONVERSOR COMPLEMENTO A 2
MUX4_1
A
B
C
D

Vcc

GND

SAL_A

SAL_B

SAL_C

SEL_0
SEL_1

MUX4_1
A
B
C
D
SEL_0
SEL_1

MUX4_1
A
B
C
D
SEL_0
SEL_1
2

S
E

S
E

S
E

Cuando SIGNO= sel sea igual a 1 los datos pasarn al bloque funcional al cual
se llam comparador mayor menor el cual est compuesto por tres multiplexores
puesto que se necesita mostrar la magnitud de la resta entre los dos niveles de
los tanques por eso se elije como lnea de seleccin el valor de SIGNO el cual
viene dado desde el bloque funcional resta complemento a dos, de modo que si
SIGNO vale 1
el bloque comparador mayor menor deja pasar los datos
provenientes de selector 2 y si SIGNO es 0 el bloque comprador mayor menor
deja pasar los datos del conversor complemento a 2, el diagrama del bloque
comparador mayor menor se muestra a continuacin :
MUX 2 a 1

A0
B0
SIGNO

A
B

S
MUX 2 a 1

A1
B1

Y
S

MUX 2 a 1

A2
B2

Y
S

3.3 Para darle solucin a la parte del requerimiento la cual dice que se
debe hallar el nivel menor entre los dos tanques, se hizo un bloque
funcional al cual se dio el nombre de nivel menor el cual se encarga
de obtener el nivel menor entre los dos tanques o en el caso de tener
dos niveles iguales mostrar el nivel en que se encuentran los dos
tanques.
Para encontrar el nivel menor se hizo uso del bloque funcional comparador mayor
menor utilizado anteriormente para que segn sea el valor
de la lnea de
seleccin SEL=SIGNO compare bit a bit las 6 entradas correspondientes a los
niveles de los dos tanques y de cmo salida el nivel menor.
Para poder saber si los dos tanques se encuentran en el mismo nivel se hizo uso
del resultado final de la resta de niveles presente en la salida del bloque funcional
comparador mayor menor, de manera que si el resultado de la resta es 000
gracias a una compuerta or de tres entradas (0+0+0 =0), la lnea de seleccin
sel1 de otro bloque funcional comparador mayor menor va a detectar un 0
situacin en la cual va a mostrar el nivel de tanque 1, dado que los niveles de los
tanques son iguales, y en el caso de que sel1 tenga el valor de 1 se va a mostrar
el resultado el nivel menor presente a la salida del bloque comparador mayor
menor, a continuacin se muestra el diagrama del bloque funcional nivel menor:

comparador_mayor_menor
A0
B0
SEL
A1
B1
A2
B2

A0
B0
A
SIGNO
A1
B
B1
A2
C
B2

comparador_mayor_menor
A0
sel1

B0
A
SIGNO
A1
B1

A2

A
B
C

B2

Finalmente despus de la creacin de los bloques funcionales respectivos, se


tiene el diagrama final del bloque funcional diferencia de nivel, encargado de
realizar la resta de los niveles de los dos tanques y de obtener el nivel menor, el
diagrama se muestra a continuacin.

Posteriormente se procede a hacer la simulacin en Altera U.P Simulator,


obteniendo:

En la simulacin se puede observar como variables de entradas al tanque 1 y el


tanque 2, tambin como salidas se observa al nivel menor entre los dos tanques y
la diferencia entre los niveles, en la parte inferior. Para verificar el funcionamiento
del control de nivel de agua se realizarn los siguientes ejemplos que se pueden
verificar en la simulacin:

Nivel tanque1 =6 y nivel de tanque 2 = 3 :


6 3 = 3 110 - 011 = 011; Nivel menor = 3 011

Nivel tanque1 =6 y nivel de tanque 2 =7 :


6 7 = 1 110 -111 = 001 (con magnitud); Nivel menor = 6 110

Nivel tanque1 =5 y nivel de tanque 2 = 0:


5 - 0 = 5 101 -000 = 101; Nivel menor =0 000

Por tanto queda comprobado el correcto funcionamiento del control de nivel de


agua.

4. Para mostrar los resultados se har el uso de dos bloques funcionales


bloque conversor explicados en el laboratorio
anterior, los cuales
permitirn mostrar la diferencia entre los niveles de los dos tanques y el
nivel menor en dos de los displays de la tarjeta altera DE0.
Los bloques funcionales bloque conversor permiten ingresar cuatro bits a la
entrada pero como en este caso slo necesitamos tres por cada bloque se enviar
la entrada A a tierra (0), ste bloque tiene una lnea habilitadora (E) la cual
habilita el sistema cuando vale 1 y con 0 lo deshabilita, por tanto le daremos el
valor de 1 lgico o VCC, tambin tiene una lnea de seleccin S, la cual si vale 0
hace conversin de binario a BCD y si vale 1 hace la conversin de binario a
hexadecimal, en este caso se asigna el valor tierra (0) para que slo realice la
conversin binaria a BCD ( nmeros del 0 al 9) ya que no se hace necesaria la
conversin a hexadecimal.

5. Despus de realizar todos los bloques funcionales respetivos, se tiene el


siguiente diagrama del control del nivel de agua:
CONTROL DE NIVEL DE AGUA
REGISTRO_MULTIPLICADOR
PIN_0
PIN_1
PIN_2

X0
X1
X2

PIN_3

X3

PIN_4
PIN_5
PIN_6
PIN_7
CLK
CLEAR
CLEAR

X4
X5
X6
X7

PRUEBA_MULTIPLICADOR_DE_
8

X0
X1
X2
X3
X4
X5

S0
S1
S2
S3
S4
S5

X6
X7

S6
S7

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

S8
S9
S10
S11
S12
S13
S14
S15

V
BLOQUE_CONVERSOR
E
SEG_A
A
SEG_B
B
SEG_C
C

SEG_D

D
S

SEG_E
SEG_F
SEG_G

SEG_A
SEG_B
SEG_C

SEG_D
SEG_E
SEG_F
SEG_G

BLOQUE_CONVERSOR
E
A
B
C
D
S

SEG_A
SEG_B
SEG_C
SEG_D
SEG_E
SEG_F
SEG_G

SEG_A18
SEG_B19
SEG_C20
SEG_D21
SEG_E22
SEG_F23
SEG_G24

BLOQUE_CONVERSOR
E
A
B
C
D
S

SEG_A
SEG_B
SEG_C
SEG_D
SEG_E
SEG_F
SEG_G

SEG_A25
SEG_B26
SEG_C27
SEG_D28
SEG_E29
SEG_F30
SEG_G31

BLOQUE_CONVERSOR
E
A
B
C
D
S

SEG_A
SEG_B
SEG_C
SEG_D
SEG_E
SEG_F
SEG_G

6. CANTIDAD DE ELEMENTOS LGICOS DEL CONTROL DE NIVEL DE


AGUA
Total logic elements
Total combinational functions
Dedicated logic registers

SEG_A32
SEG_B33
SEG_C34
SEG_D35
SEG_E36
SEG_F37

SEG_G38

REQUERIMIENTO II
MULTIPLICADOR DE 8 BITS
Existen varias maneras de implementar la multiplicacin en un circuito, investigue,
disee e implemente en el FPGA un multiplicador de 8 bits utilizando sumadores
completos. Fundamente su seleccin mediante un artculo o libro debidamente
referenciado.
A. SELECCIN DEL MULTIPLICADOR
Se realiz la investigacin de una de las maneras de realizar la multiplicacin en
un circuito y se encontr un diseo de sta en los libros de Fundamentos de
Electrnica Digital de Daniel Pardo Collantes y Bailon Vega y el libro Diseo Digital
Morris Mano tercera edicin, en los que se
explica el funcionamiento del
multiplicador binario en las pginas 215 en el primero y 131 a 132 en el segundo.

Segundo libro de referencia:

De acuerdo con los dos libros para realizar la multiplicacin binaria se debe
realizar una multiplicacin de bit a bit en donde se debe tener en cuenta que la
salida de cada multiplicacin se debe ir corriendo a medida que se realiza la
multiplicacin, el producto final se halla sumando los productos parciales, a
continuacin se mostrar un ejemplo:

11000000
11000000
00000000
00000000
00000000
00000000
00000000
00000000
11000000
11000000
1001000000000000
Como se puede observar se debe multiplicar cada bit del segundo nmero por
todos los bits del primero como en una multiplicacin comn; por eso se pudo
determinar que para disear el multiplicador binario era necesario multiplicar cada
uno a uno de los bits del segundo nmero por todos los bits del primero, luego
utilizar los sumadores completos dejando el bit libre tras cada suma y para
completar los 8 bits se utiliza la lnea de salida Cout o acarreo de salida que
completa el sumador, de esa manera se sigue el procedimiento dependiendo de
cuantos bits sea el multiplicador .
B. Anlisis del requerimiento:
Una vez identificadas las entradas se procede a realizar el respectivo
anlisis para realizar el multiplicador de 8 bits, segn el libro consultado se
necesitan 64 compuertas AND que hagan los productos parciales bit a bit,
tambin 7 sumadores de 8 bits para q realicen la suma de los productos
parciales.
C. Procedimiento:
1. Para elaborar el multiplicador binario de 8 bits primero se considera que
dado que el
sistema necesita 16 entradas debido a que se requiere
multiplicar dos nmeros de 8 bits, en primera instancia se recurre a
implementar un registro el cual permite guardar el primer nmero que se
ingresa para ser multiplicado para lograr el registro se usa el flip flop tipo D.
Circuito de un flip-flop tipo D:

La salida Q es igual a la entrada D cuando la entrada de control (CLK) est a


nivel alto. Dado que el flip-flop tipo D tiene la caracterizacin de almacenar la
informacin se utiliza para las memorias.
La tabla de verdad del flip flop es la siguiente:

Creacion del registro:


Variables de entrada:

Pin_0, pin_1, pin_2, pin_3, pin_4, pin_5, pin_6, pin_7 correspondientes


a los bits del numero de 8 bits.

CLK y CLEAR seales de reloj y reset.

Variables de salida:

X0, X1, X2, X3, X4, X5, X6, X7 bits del numero almacenado.

Finalmente esta es la implementacion del registro en la cual se aprecian las


diferentes conexiones, donde las entradas de los bits del numero ingresado van
conectados a la entrada de informacion (D) de cada flip flop y tanto CLK, la seal
de reloj como CLEAR, que se encarga de regresar el sistema a su estado original,
son compartidas por los 8 flip flops y como salidas se tienen los bits
correspondientes al numero almacenado en el registro.
p
i

PRN

CLRN

PRN

p
i

CLRN

PRN

CLRN

C
L
E

p
i

p
i

PRN

CLRN

PRN

CLRN

p
i

PRN

CLRN

p
i

PRN

CLRN

p
i

PRN

p
i

CLRN

A continuacin se presenta su respectiva simulacin en Altera U. P. Simulator.

Se aprecia que mientras que la seal de CLEAR est en cero, la salida


permanecer en cero tambien,y en cuanto CLEAR tome el valor de uno ya que la
salida solo depende de la seal de reloj CLK, en cuanto CLK adopte el valor de 1,
la salida toma el valor del nmero ingresado en ese instante y se mantendr hasta
que se detecte un nuevo flanco de subida. Por ejemplo cuando los pines
de entrada tienene el valor de 00110101, la salida es ceros dado que Clear esta
en bajo, en el estado siguiente 00110110, si bien CLEAR est en uno, la salida
vale ceros dado que no se ha detectado el flanco de subida, en el siguiente caso
donde CLEAR es cero y CLK 1 la salida toma el valor del numero ingresado
es decir
00110111.

Habiendo solucionado el ingreso de los nmeros a multiplicar ahora se considera


como efectuar la multiplicacin, para lo cual se recurre a compuertas AND y
sumadores de 8 bits.
2. Primero se soluciona como realizar los productos parciales, los cuales se
obtienen con compuiertas AND, 8 para cada multiplicacion.
Variables de entrada:

X0, X1, X2, X3, X4, X5, X6, X7 cada bit del primer numero (multiplicando).

Y0, Y1, Y2, Y3, Y4, Y5, Y6, Y7 bits del segundo numero (multiplicador) que
parcialmente se multiplican con los bits del primer numero.

Ahora como cada uno de estos productos se deben sumar, entonces se recurre a
emplear sumadores de 8 bits; la salida generada por el primer producto de los dos
primeros bits de cada numero se deja pasar directo y cada una de las siquientes
salidas se conectan al sumador.
Para la obtencion del sumador de 8 bits se recurre a implementar circuitos
aritmeticos full-adder.

3. La creacion del full-adder esta regido estrictamente a la estructura


previamente vista en clase, en la que se hace posible mediante el uso de
dos compuertas XOR y 3 AND.
Variables de entrada:

X, Y, Cin X,Y valores numericos y Cin variable correspondiente al


acarreo de entrada.

S, Cout S valor de la suma realizada y Cout corresponde al acarreo de


salida de la operacin.

De acuerdo a estas especificaciones y a la tabla de verdad del full adder y las


expresiones para cada salida presentadas en el requerimiento I se realiz la
implementacion del full-adder:

Obtenido el sumador completo de 2 bits, se realiza el sumador de 8 bits.


Variables de entrada:

X0, X1, X2, X3, X4, X5, X6, X7; Y0, Y1, Y2, Y3, Y4, Y5, Y6,
Y7 corresponden respectivamente a los bits del primer y segundo
numero generado de los productos parciales.

Cin acarreo de entrada de cada sumador.

Variables de salida:

S0, S1, S2,S3, S4, S5, S6, S7 cada bit del resultado de la suma
efectuada en cada sumador.

4. La realizacion del sumador de 8 bits se hace empleando 8 full-adders en


disposicion de cascada donde el acarreo de entrada de cada uno es el
acarreao de salida del anterior, exceptuando el caso del primer full-adder
donde su acarreo de entrada es cero, por lo que se conecta a tierra. Bajo
estos parametros se realiza el siguiente diagrama en Quartus.

FULL_ADDER
Y0
X0
GND

S
Y Cout
X
Cin

Y1
X1

S0
FULL_ADDER

Y
S
X Cout
Cin
Y2

X2

S1
FULL_ADDER

Y
X
Cin

Y3

X3

S
Cout

S2
FULL_ADDER

Y
X
Cin

Y4

X4

S
Cout

S3
FULL_ADDER

Y
X
Cin

Y5

X5

S
Cout

S4
FULL_ADDER

Y
X
Cin

S
Cout

S5
FULL_ADDER

Y
X
Cin

Y6

X6
X7

Y7

S
Cout

S6
FULL_ADDER

Y
X
S
Cout
Cin

S7
Cout

Acto seguido se unifican los dos circuitos, el generador de productos parciales y el


sumador de los mismos y de esta manera se obtiene el multiplicador binario de 8
bits, teniendo a consideracion que en las salidas de cada sumador de 8 bits, el bit
menos significativo pasa directo y representa un bit de salida del multiplicador tal y
como esta estipulado en los libros Diseo Digital y Fundamentos de Electronica
Digital anteriormente mencionados.

Y7

Y6

Y5

Y4

Y3

Y2
Y1

1
3

1
1
1
1

1
2
3

1
1

1
2

1
2

1
2

1
2

1
2

1
2

2
3

1
2

1
2

1
3

SUMADOR_8

Y7
Y6

1
2

SUMADOR_8

1
2

3
3

12

1
2

1
2

SUMADOR_8

Y7

Y3
Y2

Y1
Y0
S7
S6
S5
S4
S3
S2
S1
S0

Y5

S15
S14
S13
S12
S11
S10
S9
S8
S7
S6
S5
S4
S3
S2
S1
S0

2
3

1
2

2
2

1
1
2
2

1
2

S0,
S1, S2,
S3, S4,
S5, S6,
S7, S8,
S9,
S10,
S11,
S12, X
13, 0
S14, Y,
S150,X
bits Y1
del1,,
YX
resu
ltad2,2
Y,
o de
la 3,X
Y3
mult
4,,
iplic
YX
acio
n. 5,4
Y,
6,X
Y5M
7,D

X
bi6
ts,
sX
Ve7
ag
ru
i nb
adit
bos
l nd
eu
sm2
3

1
2

3
1
2

1
1

1
3 12
3
2

1
2

1
2

2
3

1
2

1
2

2
3

2
1
2
1
2
1
2

X7
X6
X5
X4
X3
X2
X1
X0

Y0

X7
X6
X5
X4

X3

1
2

X2

1
2

X1

X0

3
1
3

3
1
3
3

3
1
3

.
G

La simulacin en Altera U.P del multiplicador es la siguiente:

En la simulacin se corrobora el funcionamiento del multiplicador binario, se


aprecian los dos nmeros que se ingresan rotulados bajo el nombre de nmero 1
y nmero 2 y resultado, que indica el valor que arroja la multiplicacin
efectuada todo esto en codificacin hexadecimal.
Se observa que para uno de los casos se pretende multiplicar el nmero en
hexadecimal, 50 por si mismo y arroja como resultado el nmero 1900, valor
correcto para dicho producto en este sistema de numeracin, tal y como se
verifica en la siguiente operacin:
01010000

01010000
00000000
00000000
00000000
00000000
01010000
00000000
01010000
00000000
0001100100000000

Resultado en binario
Resultado en hexadecimal

5. Finalmente como se cuentan con 16 salidas del bloque del multiplicador, se usan
4 bloques conversores usados en el laboratorio anterior, uno para cada display,
que posibilitan la visualizacin del resultado obtenido en la tarjeta Altera DE0; en
dicho bloque se conectan a Vcc las entradas de lnea habilitadora E para que el
sistema funcione y entrada S referente a la seleccin, para que realice la conversin
a Hexadecimal.

6. A continuacin se muestra el esquema circuital del multiplicador total


obtenido siguiendo las anteriores especificaciones:

V
REGISTRO_MULTIPLICADOR
PIN_0
PIN_1
PIN_2

X0
X1
X2

PIN_3

X3

PIN_4
PIN_5
PIN_6
PIN_7
CLK
CLEAR

X4
X5
X6
X7

PRUEBA_MULTIPLICADOR_DE_
8

CLEAR

X0
X1
X2
X3
X4
X5

S0
S1
S2
S3
S4
S5

X6
X7

S6
S7

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

S8
S9
S10
S11
S12
S13
S14
S15

BLOQUE_CONVERSOR
E
SEG_A
A
SEG_B
B
SEG_C
C

SEG_D

D
S

SEG_E
SEG_F
SEG_G

SEG_A
SEG_B
SEG_C

SEG_D
SEG_E
SEG_F
SEG_G

BLOQUE_CONVERSOR
E
A
B
C
D
S

SEG_A
SEG_B
SEG_C
SEG_D
SEG_E
SEG_F
SEG_G

SEG_A18
SEG_B19
SEG_C20
SEG_D21
SEG_E22
SEG_F23
SEG_G24

BLOQUE_CONVERSOR
E
A
B
C
D
S

SEG_A
SEG_B
SEG_C
SEG_D
SEG_E
SEG_F
SEG_G

SEG_A25
SEG_B26
SEG_C27
SEG_D28
SEG_E29
SEG_F30
SEG_G31

BLOQUE_CONVERSOR
E
A
B
C
D
S

SEG_A
SEG_B
SEG_C
SEG_D
SEG_E
SEG_F
SEG_G

SEG_A32
SEG_B33
SEG_C34
SEG_D35
SEG_E36
SEG_F37
SEG_G38

Para terminar se presenta el bloque funcional final del multiplicador binario de


8 bits:
MULTIPLICADOR DE 8
BITS
pin_0

pin_0

pin_1

pin_1

pin_2

pin_2

pin_3

pin_3

pin_4

pin_4

pin_5

pin_5

pin_6

pin_6

pin_7

pin_7

CLK

CLK

CLEAR

CLEAR

SEG_A

SEG_A
SEG_B

SEG_B

SEG_C

SEG_C

SEG_D

SEG_D

SEG_E

SEG_E

SEG_F

SEG_F

SEG_G

SEG_G

SEG_A18

SEG_A18

SEG_B19

SEG_B19

SEG_C20

SEG_C20

SEG_D21

SEG_D21

SEG_E22

SEG_E22

SEG_F23

SEG_F23

SEG_G24

SEG_G24

SEG_A25

SEG_A25

SEG_B26

SEG_B26

SEG_C27

SEG_C27

SEG_D28

SEG_D28

SEG_E29

SEG_E29

SEG_F30

SEG_F30

SEG_G31

SEG_G31

SEG_A32

SEG_A32

SEG_B33

SEG_B33

SEG_C34

SEG_C34

SEG_D35

SEG_D35

SEG_E36

SEG_E36

SEG_F37
SEG_G38

SEG_F37
SEG_G38

7. CANTIDAD DE ELEMENTOS LGICOS DEL MULTIPLICADOR DE 8


BITS
Total logic elements
Total combinational functions
Dedicated logic registers

5. CONCLUSIONES

1. El laboratorio desarrollado corrobora los distintos conocimientos tericos


previamente logrados en el curso de digitales I, en esta ocasin
correspondientes a los circuitos combinacionales y aritmticos, adems
permite un claro entendimiento y profundizacin de los mismos, logrando
desarrollar una lgica competente que permita analizar y plantear una
solucin a los distintos requerimientos presentados.
2. La anterior experiencia adems propici el entendimiento e implementacin
de dispositivos de almacenamiento como lo son los flip flops, el tipo D
finalmente seleccionado para el desarrollo de la prctica, empleado en el
requerimiento del multiplicador binario para la consecucin del
almacenamiento de un nmero de 8 bits, hecho que se presenta cuando
existe un flanco de subida tal y como demanda el funcionamiento del flip
flop referenciado.

3. Se pudo observar adems que existen distintas formas de estructurar un


multiplicador binario, para el caso particular del planteamiento escogido se
logr valindose de los diversos componentes estudiados como
compuertas lgicas AND y circuitos aritmticos Full Adder que logran
emular la multiplicacin binaria al disponer los sumadores completos en
forma de cascada dejando libre el bit de salida menos significativo despus
de cada operacin.

6. REFERENCIAS

[1] Urbano M., Fernando A. Notas de clase. Circuitos Digitales I. Departamento de


Telemtica, FIET. Ingeniera Electrnica y Telecomunicaciones. Universidad del
Cauca. Popayn, Colombia. Abril de 2013.
[2] M. Morris Mano, Diseo Digital, California State University, Los ngeles,
tercera edicin, pginas 131 a 132, 2004.
[3] Ronald J. Tocci y Widmer Neals, Sistemas Digitales principios y aplicaciones,
Pearson Educacin, octava edicin, Mxico, 2003.

Вам также может понравиться