Upload
sebastian-ossa
View
14
Download
2
Embed Size (px)
DESCRIPTION
Informe II Practica
Citation preview
UNIVERSIDAD DEL CAUCA
FACULTAD DE INGENIERA ELECTRNICA Y TELECOMUNICACIONES
Programa de Ingeniera Electrnica y Telecomunicaciones
Laboratorio II - Circuitos MSI, Registros y Contadores
Circuitos Digitales I
Ing. Fernando Aparicio Urbano
Primer Periodo de 2015
Sebastin David Ossa Hernndez
Esteban Alberto Arteaga Benavidez
Popayn, Jueves 14 de Mayo de 2015
1. TABLA DE CONTENIDO
1 TABLA DE CONTENIDO ......................................................................................................... 1 2. PROCEDIMIENTO DE DISEO .............................................. Error! Marcador no definido.
2.1 Diseo de una ALU de 8 bits .......................................... Error! Marcador no definido. 2.2 Multiplicador Combinacional de 8 bits....................................................................... 14
3. CONCLUSIONES ................................................................................................................. 23 4. REFERENCIAS .................................................................................................................... 23
2. Procedimiento de diseo
Se disearon dos circuitos diferentes (ALU de 8 bits y Multiplicador Combinacional de 8
bits), aplicando la teora vista en como los circuitos aritmticos (Half-Adder, Full-Adder,
etc.), circuitos MSI (Multiplexores, Decodificadores, etc.), registros (Biestables sncronos) y
utilizando como herramienta principal el software Quartus II de Altera. Los procedimientos
se describen posteriormente.
2.1. ALU (Unidad Aritmtica-Lgica) de 8 bits
Una ALU es un circuito digital que puede realizar operaciones lgicas (NOT, AND, OR, etc.) y
operaciones aritmticas (SUMA, RESTA, MULTIPLICACIN, etc.), por lo tanto requiere de lneas de
seleccin para escoger entre cada una de ellas. La lnea de seleccin ms significativa escoge entre
la unidad lgica o la unidad aritmtica, y en este orden de ideas las otras lneas escogen la respectiva
operacin.
Para disear una ALU es preciso disear cada unidad por aparte, despus se completa el circuito
utilizando un multiplexor para obtener la respuesta deseada. Se tienen los siguientes
requerimientos:
2.1.1 Unidad Lgica
Se tienen dos entradas y cuatro operaciones lgicas: Complemento de A, A and B,
Transferencia de A y A or B. Para implementar estas funciones simplemente se hace
uso de las compuertas bsicas, con entradas y salidas vectoriales de 8 bits
Para hacer la seleccin de la operacin se implementa un MUX de 4 a 1, que
representa un switch digital, cada entrada y salida de 8 bits. Para obtener este
MUX se dise un MUX de 2 a 1 con lnea habilitadora. Para el diseo del MUX se
tiene la siguiente tabla de verdad:
En S A B Y
0 x x x 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 1
Tabla de verdad del Multiplexor de 2 a 1
El mapa de Karnaugh queda de la siguiente manera:
= ( + )
Entonces el circuito queda de la siguiente forma:
Este procedimiento se aplica para disear MUX de 2 a 1 para entradas y salida de n-bits.
Para obtener el MUX de 4 a 1 utilizamos dos MUX de 2 a 1, cortocircuitamos las entradas de
seleccin para obtener una nueva y la otra entrada se conecta a las entradas de lnea
habilitadora, una de ellas va negada. Las salidas se conectan a una compuerta OR y de ah
obtenemos la salida total. El circuito queda as:
Ahora podemos conectar nuestro circuito lgico al MUX para controlar la salida. As finaliza
el proceso de diseo de la unidad lgica, a continuacin se presenta el circuito completo y
la simulacin en Quartus II.
2.1.2. Unidad Aritmtica
Para el diseo de la unidad aritmtica se deben disear dos circuitos esenciales, un restador
completo con el que se har el decremento de A y la resta, y un sumador completo con que
se har la suma y el incremento de A.
Un restador completo es un circuito que hace la resta de dos entradas de un bit, que tiene
un prstamo de entrada y un prstamo de salida. La tabla para el restador completo es:
X Y Bin D Bout
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
Entonces los mapas de Karnaugh quedan de la siguiente forma:
= ( + ) + ( + )
=
= ( + ) +
De esta forma el circuito para el restador completo queda:
Con este circuito podemos hacer dos operaciones de la unidad aritmtica, el decremento
de A y la resta entre A y B.
Para el decremento de A de 8 bits, cargamos cada componente de A en cada restador
completo, en el bloque menos significativo B ser un 1 (Vcc) y en el resto de bloques las
entradas B sern 0 (GND), de esta forma estamos armando un 1, que se le restara al vector
A. Algo muy importante es que el circuito debe hacer la propagacin de prstamo, esto
significa que cada Bout se conecta al Bin del siguiente bloque. En el bloque menos
significativo le agregamos la entrada con posibilidad de prstamo inicial de 0 o 1, asi que en
total nos queda una entrada de prstamo inicial, una entrada de 8 bits y una salida de
prstamo de salida y el decremento de A de 8 bits. El circuito queda de la siguiente manera:
Para la resta entre A y B es prcticamente el mismo circuito, la nica diferencia es que se
carga la entrada B de 8 bits componente a componente en cada bloque. El circuito es el
siguiente:
En estos dos ltimos circuitos, un 1 en el prstamo de salida implica que la resta es negativa
y el software mostrara el complemento a 2 de la salida, por lo tanto hay que hallar una
forma de solventar este problema cuando se d un nmero negativo. Se sabe que el
complemento a 2 de un nmero es su complemento incrementado en 1, en este orden de
ideas, si se decrementa el numero en 1 y lo complementamos se obtiene el valor del nmero
negativo, as que utilizamos un MUX de 2 a 1 donde la lnea de seleccin es el Bout, si es 0
mostrara el numero original y si es 1 lo convierte haciendo los pasos que se acaban de
describir. El circuito es el siguiente:
Un sumador completo nos permite hacer la suma de dos entradas de un bit, con un acarreo
de entrada y un acarreo de salida. La tabla de verdad para este circuito es:
A B Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Los mapas de Karnaugh quedan de la siguiente forma:
= ( + ) + ( + )
=
= ( + ) +
El circuito para el sumador completo queda de la siguiente manera:
Ahora con el sumador completo podemos hacer el incremento de A y la suma de A y B.
Para el incremento de A se siguen exactamente los mismos pasos que se siguieron para el
decremento de A, solo que esta vez con los bloques del sumador completo. El circuito queda
de la siguiente manera:
Para la suma de A y B se siguen exactamente los mismos pasos que se hicieron para la resta
de A y B, pero una vez ms con los bloques del sumador completo. El circuito queda as:
Para condensar todo esto en la unidad aritmtica necesitamos de dos multiplexores de 4 a
1, uno de 8 bits para las salidas de cada operacin y otro de 1 bit para la salida del Cout.
Entonces el resto de la unidad lgica queda de la siguiente manera (obviando los anteriores
circuitos):
La simulacin en Quartus II se muestra a continuacin:
Se dise un MUX de 8 a 1 para mostrar a la salida del tercer display el signo en el caso del
decremento y de la resta, y el nmero 1 en el caso de la suma y el incremento. La entrada
de seleccin ms significativa es el Cout.
MUX de 8 a 1:
Circuito selector de SIGNO o 1 (Directo a 7-seg):
De esta forma terminamos el diseo de cada unidad de la ALU, ahora simplemente resta
conectarlas a un MUX de 2 a 1 para seleccionar la unidad requerida. El circuito total de la
ALU de 8 bits queda de la siguiente forma:
Ahora se muestra la simulacin completa:
Para la implementacin en la tarjeta Altera DE0 se conectaron registros de 8 bits a la
entrada, ya que la tarjeta solo cuenta con 10 switchs y necesitamos manipular 16. Estos se
disearon con flip-flop tipo D, el CLKA guarda en el primer registro y el CLKB guarda en el
segundo. En la salida se le conectaron los decodificadores a 7-segmentos que se disearon
en la anterior prctica de laboratorio. Para las entradas OPCODE0 y Cin se reutilizaron las
entradas D[7] y D[0], ya que no podemos asignar el mismo pin a ms de una entrada y
sabemos que despus de que el registro guarde los nmeros esto no afectara en nada.
El registro quedo de la siguiente manera:
De esta forma el circuito a implementar es:
2.2 Multiplicador Combinacional de 8 bits
En este punto el requerimiento ms importante es la consulta en un libro o un artculo el diseo que
se va a implementar. El diseo que se escogi es una optimizacin del mtodo de reduccin que
postul Dadda para la multiplicacin combinacional, llamado rbol de Dadda. Este circuito est
compuesto por Sumadores Completos, Semi-Sumadores, Sumadores con propagacin de acarreo y
MBEC (Incremento del binario por medio de multiplexacin).
El semi-sumador es un circuito similar al sumador completo, con la excepcin de que este no tiene
acarreo de entrada (se asume como un 0), pero contiene las dos salidas S y Cout. La tabla de verdad
para el semi-sumador es la siguiente:
A B S Cout
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
De los minterminos se deduce:
= +
=
=
Entonces el circuito para el Semi-Sumador queda:
El BEC es un circuito que le suma 1 al valor de la entrada tal como lo hace el incremento que se
dise en la ALU, pero en este caso tiene un costo muchsimo menor y no tiene un acarreo de
entrada o de salida, en este caso es de 5 bits. El circuito es el siguiente:
Para construir el MBEC simplemente se le agrega un MUX de 2 a 1, si la lnea de seleccin vale 1
incrementa el valor de la entrada, si la lnea de seleccin vale 0 transfiere el valor de la entrada. El
circuito es as:
Para empezar la reduccin se necesitan los productos parciales de ambas entradas, para esto
utilizamos un generador de productos parciales, que simplemente es el vector de entrada A
multiplicado por cada componente del vector de entrada B, en este orden de ideas para un
multiplicador de 8x8 bits obtenemos 63 productos parciales, contando desde cero. El generador de
productos parciales queda de la siguiente manera:
Ahora empieza el algoritmo de reduccin reorganizando todos los productos parciales que
inicialmente estn corridos en cascada de la siguiente forma:
Ahora se reduce la parte 0 y la parte 1 independientemente. El mtodo es tomar grupos de dos y
tres bits y sumarlos (Semi-Sumador y Sumador Completo), hasta que se reduzca a dos filas
nicamente, con las que se obtendrn los productos parciales finales.
Para la parte 0 la reduccin es la siguiente (Derecha a Izquierda):
De la misma manera, para la parte 0 la reduccin es la siguiente (Izquierda a Derecha):
De estas reducciones obtenemos 18 bits a la salida, de los cuales P[0] a P[7] son los productos finales
y los bits menos significativos de la multiplicacin final.
A continuacin el diagrama de la implementacin de reduccin a nivel de bloques para la parte 0 y
la parte 1:
Parte 0:
Parte 1:
Para obtener los productos que faltan utilizamos el Sumador con propagacin de acarreo y el MBEC.
La combinacin de productos P0[8]P0[9]P0[10] debemos sumarla con la combinacin
P1[8]P1[9]P1[10], utilizamos el sumador con propagacin de acarreo que simplemente el sumador
con los bloques de sumador completo, en este caso de 3 bits, as obtendremos los productos finales
p[8], P[9] y P[10], aparte del acarreo de salida que ser la lnea seleccionadora del MBEC.
Los productos parciales finales que sobran P1[11], P1[12], P1[13], P1[14] y P1[15] sern la entrada
del MBEC, esto significa segn la definicin de su funcionamiento que si el acarreo de salida del
sumador de propagacin es 0, saldr esta combinacin de nmeros como los productos finales
definitivos que faltaban. Pero si el acarreo de salida del sumador de propagacin es 1, saldr la
combinacin incrementada en uno para completar los productos finales del multiplicador. De esta
forma las salidas finales se dan as:
A continuacin la simulacin que demuestra el correcto funcionamiento del multiplicador:
Binario:
Hexadecimal:
Para la implementacin se conectaron los registros a la entrada y decodificadores diseados en la
anterior prctica de laboratorio a la salida.
Esta implementacin es muy interesante ya que originalmente el rbol de Dadda tiene un menor
costo en cuanto a compuertas y es ms veloz que el conocido rbol de Wallace, pero en este caso
esta optimizada para que sea an ms veloz, pero conservando el algoritmo de reduccin original.
3. Conclusiones:
Se reforz la teora vista en clase como los circuitos MSI, circuitos aritmticos y
biestables sncronos.
No son necesarias conexiones externas a la tarjeta DE0 para cargar ms de 10
entradas, esto gracias a los registros.
Hay muchas formas diferentes de implementar un circuito o sistema digital.
4. Referencias:
A Design Technique for Faster Dadda Multiplier, artculo escrito por B. Ramkumar, V. Sreedeep y Harish M Kittur. Articulo disponible en el siguiente link: http://arxiv.org/ftp/arxiv/papers/1110/1110.3281.pdf