Está en la página 1de 8

Quinto Informe: Montaje de circuitos en la

FPGA
Adriana Tofiño Villafañe – 240162004
Universidad Central del Valle–Tuluá-Valle
Tecnología en Electrónica
Guadalajara de Buga, Colombia
adriana.tofino01@uceva.edu.co

Resumen
Este informe hace se presenta los circuitos
montados en la FPGA, half hadder, fulhader,
sumador, decodificador de binario a entero, la
ALU, el shifter, el barriershifter, el multiplicadr y 3. conceptos
enetres otros.
Abstract Unidad aritmética lógica

This report presents the circuits mounted on En computación, la unidad aritmética


the FPGA, half hadder, fulhader, adder, lógica o unidad aritmético-lógica, también
binary decoder to the whole, the ALU, the conocida como ALU (siglas en inglés de
gear change, the obstacle eliminator, the
arithmetic logic unit), es un circuito digital
multiplier and others.
que calcula operaciones aritméticas
1. Introducción (como suma, resta, multiplicación, etc.) y
operaciones lógicas (si, y, o, no), entre
valores (generalmente uno o dos) de los
Los proyectos montados sirven familiarizarnos argumentos.
más con la FPGA y poder comprender el
funcionamiento de la lógica aritmética de los
computadores, para este informe se montara un
proyecto que una todo lo que se ha ido
montando en clase durante este ultimo corte. Por mucho, los circuitos electrónicos más
complejos son los que están construidos
2. Objetivos dentro de los chips de
microprocesadores modernos. Por lo
 Objetivo general tanto, estos procesadores tienen dentro
de ellos un ALU muy complejo y potente.
 Implementar Quartus y en la FPGA De hecho, un microprocesador moderno
los circuitos comprendidos en cada clase. (y los mainframes) puede tener múltiples
núcleos, cada núcleo con múltiples
 Objetivos específicos unidades de ejecución, cada una de ellas
con múltiples ALU.
 Realizar cada circuito dejado
en clase. Muchos otros circuitos pueden
contener en el interior una unidad
 Realizar y analizar cada aritmético-lógica: unidades de
circuito. procesamiento gráfico como las que
están en las GPU modernas, FPU Desplazamiento lógico a la derecha
como el viejo coprocesador difiere del desplazamiento aritmético a la
matemático 80387, y procesadores derecha. Por lo tanto, muchos idiomas
digitales de señales como los que se tienen diferentes operadores para ellos.
encuentran en tarjetas de sonido, Por ejemplo, en Java y JavaScript, el
lectoras de CD y los televisores de operador lógico de desplazamiento a la
alta definición. Todos éstos tienen derecha es >>>, pero el operador de
desplazamiento a la derecha aritmético
en su interior varias ALU potentes y
es >>. (Java tiene solo un operador de
complejas.
desplazamiento a la izquierda (<<),
porque el desplazamiento a la izquierda
Shifter a través de la lógica y la aritmética tienen
el mismo efecto).
En ciencias de la computación, un
cambio lógico es una operación en modo Sin embargo, los lenguajes de
bit que desplaza todos los bits de su programación C, C ++ y Go solo tienen
operando. Las dos variantes básicas son un operador de desplazamiento a la
el desplazamiento lógico a la izquierda y derecha, >>. La mayoría de las
el desplazamiento lógico a la derecha. implementaciones C y C ++, y Go, eligen
Esto se modula adicionalmente por el el desplazamiento correcto para realizar
número de posiciones de bits que se dependiendo del tipo de entero que se
cambiará un valor dado, como está desplazando: los enteros con signo
desplazamiento a la izquierda por 1 o se desplazan usando el desplazamiento
desplazamiento a la derecha por n. A aritmético, y los enteros sin signo se
diferencia de un cambio aritmético, un desplazan usando el desplazamiento
cambio lógico no conserva el bit de signo lógico.
de un número ni distingue el exponente
de un número de su significado Todos los estándares C actualmente
(mantisa); cada bit en el operando relevantes (ISO / IEC 9899: 1999 a 2011)
simplemente se mueve un número dado dejan una brecha de definición para los
de posiciones de bit, y las posiciones de casos en que el número de turnos es
bit vacantes se llenan, generalmente con igual o mayor que el número de bits en
ceros, y posiblemente unos (contraste los operandos de forma que el resultado
con un cambio circular). no está definido. Esto ayuda a los
compiladores de C a emitir códigos
A menudo se usa un cambio lógico eficientes para varias plataformas al
cuando su operando se trata como una permitir el uso directo de las
secuencia de bits en lugar de como un instrucciones de turno nativas que tienen
número. un comportamiento diferente. Por
ejemplo, shift-left-word en PowerPC elige
Los cambios lógicos pueden ser útiles el comportamiento más intuitivo donde el
como formas eficientes de realizar la desplazamiento por ancho de bit o
multiplicación o división de enteros sin superior da cero, mientras que SHL en
signo por potencias de dos. El x86 elige enmascarar la cantidad de
desplazamiento hacia la izquierda de n desplazamiento a los bits más bajos para
bits en un número binario con signo o sin reducir el tiempo máximo de ejecución de
signo tiene el efecto de multiplicarlo por las instrucciones, y como tal un
2n. Al desplazarse a la derecha con n desplazamiento por el ancho del bit no
bits en un número binario sin signo, se cambia el valor.
divide entre 2n (redondeando hacia 0).
Algunos lenguajes, como .NET de A, B, C y D). La palanca de
Framework y LLVM, también dejan de cambios tiene una variedad de
desplazarse por el ancho del bit y por aplicaciones, que incluyen ser un
encima sin especificar (.NET) [4] o componente útil en los
indefinido (LLVM). Otros optan por microprocesadores (junto con la
especificar el comportamiento de sus
ALU).
plataformas de destino más comunes,
como C # que especifica el
comportamiento x86.

Barrel Shifter La multiplicación de dos números


binarios se hace con papel y lápiz por
Esquema de una palanca de sumas sucesivas y corrimientos. Este
desplazamiento de barra cruzada de proceso se ilustra de mejor manera con un
4 bits. x denota bits de entrada y y ejemplo numérico. Vamos a multiplicar
denota bits de salida. los dos números binarios 11011 y 10110
27 11011 multiplicando 22 10110
Un desplazador de barril es un multiplicador ._____. 00000 11011 11011
circuito digital que puede desplazar 00000 11011 .____________ 594
una palabra de datos en un número 1001010010 El proceso consiste en
específico de bits sin el uso de observar los bits sucesivos del
ninguna lógica secuencial, solo lógica multiplicador, empezando con el bit
puramente combinacional. Una forma menos significativo. Si tal bit es 1 el
de implementarlo es como una multiplicando se copia abajo. En caso
secuencia de multiplexores donde la contrario los 0s se copian abajo. Los
salida de un multiplexor se conecta a números que se copian abajo se corren
la entrada del siguiente multiplexor de una posición a la izquierda del número
una manera que depende de la previo. Al final, los números se adicionan
distancia de desplazamiento. Con y sus sumas forman el producto, como se
frecuencia se usa una palanca de hace para el caso decimal que aprendimos
cambios para cambiar y girar n bits desde la infancia. Obsérvese, que el
en los microprocesadores modernos, producto de dos números binarios de n
normalmente dentro de un solo ciclo bits puede ser hasta 2n bits de largo.
de reloj. Cuando el proceso anterior se implementa
en hardware digital resulta conveniente
cambiar el proceso. Primero, en vez de
proporcionar circuitos lógicos para
Por ejemplo, tome una palanca de almacenar y sumar al mismo tiempo
cambios de barril de cuatro bits, con tantos números binarios como 1s existan
las entradas A, B, C y D. La palanca en el multiplicador, es mejor diseñar
de cambios puede hacer un ciclo del circuitos para sumar dos números
orden de los bits ABCD como DABC, binarios y acumular en forma sucesiva los
CDAB o BCDA; en este caso, no se productos parciales en un registro de
pierden bits. Es decir, puede tamaño conveniente. Segundo, en lugar
desplazar todas las salidas hasta tres de correr el producto parcial a la
posiciones hacia la derecha (y así izquierda éste se corre hacia la derecha lo
hacer cualquier combinación cíclica cual resulta en dejar el producto parcial y
el multiplicando en las posiciones
relativas necesarias. Tercero, cuando el Fig. 5. ALU.
bit correspondiente del multiplicador es 0,
no hay necesidad de sumar todos los
ceros al producto, ya que esto no altera su
valor.

3. Diseño

Fig. 6. MUX 2 a 1.

Fig. 1.Half adder.

Fig. 7. Shifter.

Fig. 2. Full adder.

Fig. 7. Primera etapa del banco de registro.

Fig. 3 Sumador de 4 bits.

Fig. 8. Banco de Registro.

Fig. 4. Sumador restador de 5 bits.


Fig. 11. Decodificador de 3 a 8 bits.

Fig. 9. MUX 2 a 1 de 8bits

Fig. 12.Conversor BCD.

Fig. 10. MUX de 8 a 1 de 8 bits.


Fig. 16. Banco de registro, ALU y Shifter.

Fig. 13. Conversor binario a decimal 8 bits. Fig. 17. Barrel Shifter

Fig. 18. Banco de registro, ALU, Shifter y Barrel


Fig. 14. ALU-SHIFTER-CONVERSOR DE shifter
binario a decimal de 8 bits.
.

Fig. 15. Banco de Registro y ALU.

Fig. 19. Etapa 1 del multiplicador 8 bits.


TOTAL $ 55500
Tabla 2. Gastos del laboratorio
5. Conclusiones
De acuerdo con los resultados obtenidos
en la investigación se concluyó lo
siguiente:
 Se implemento lo visto en las clases y
se analizó cada etapa del laboratorio
en la FPGA.
 Se diseñó e implementó algunos
circuitos para el funcionamiento del
laboratorio.

 Además, se aprendió el
funcionamiento de cada etapa de este
circuito.

6. Bibliografía
Tema3_secuenciales
Fig. 20. Multiplicador de 8 bits

 webgrafía
http://creaciodigital.upf.edu/~s
miguel/b13maquinaEstados.htm
https://www.youtube.com/watch
?v=0m4NIFOS_gM
https://www.youtube.com/watch
?v=jsjvZ4L8KSc
https://www.youtube.com/watch
?v=c17REOv7H4A
Fig. 21. . Banco de registro, ALU, Shifter ,
Barrel shifter Y Multiplicador de 8bits

4. TABLA DE COSTOS DE LOS MATERIALES


DESCRIPCION VALOR VALOR
PRODUCTO UNITARIO TOTAL
leds $150 X 16 $ 2400
baquela $ 2500X 2 $ 5000
Cables jumper $ 400 X 34 $ 13600
4017b $ 1500 X 1 $ 1500
swhic $ 500X16 $ 8000
Meterial vario $ 25000 $ 25000

También podría gustarte