Академический Документы
Профессиональный Документы
Культура Документы
KELL
F
EGA DAVID
ASTRO
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
3. MARCO TERICO
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:
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
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.
CODIFICADOR DE PRIORIDAD 7 A 3
Vcc
1
FU
LL_
AD
DE
R
X
Co
ut
FU
LL_
X
AD
DE
R
X
Co
ut
SIG
NO
Co
ut
FU
LL_
AD
DE
R
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
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
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
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
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
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.
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:
Variables de salida:
X0, X1, X2, X3, X4, X5, X6, X7 bits del numero almacenado.
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
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.
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.
Variables de salida:
S0, S1, S2,S3, S4, S5, S6, S7 cada bit del resultado de la suma
efectuada en cada sumador.
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
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
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.
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
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
5. CONCLUSIONES
6. REFERENCIAS