Sei sulla pagina 1di 10

Diseo e Implementacin de un 4 bits ALU

Diseo e Implementacin de un 4 bits ALU


Propsito:

El propsito de esta prctica de laboratorio es:

1. Disear un 4 bits ALU


2. Implementar la ALU en una FPGA o CPLD
3. Para comprobar experimentalmente la operacin de la ALU
Este laboratorio es diferente de las otras asignaciones en el sentido de que se trata
de un diseo de proyecto que le da ms libertad para llegar a sus propias
soluciones. El siguiente relato sirve como una gua para ayudarle a disear el
laboratorio. Sin embargo, si usted encuentra maneras ms eficientes o ms
elegantes para implementar partes de la ALU, adelante. Slo asegrese de que
justifica su diseo y lo explica claramente en el informe del laboratorio relato.
Esta asignacin es ms extensa que las anteriores. Es importante que usted viene
bien preparado para el laboratorio. Deberas haber diseado los principales
componentes de la ALU antes de venir al laboratorio. Sus diseos tienen que ser
escrito en su cuaderno de prcticas y firmado por el TA al inicio del laboratorio .

Asignacin Pre-lab:
a. Planteamiento del problema:
Una unidad aritmtica y lgica (ALU) es un circuito combinacional que realiza la
lgica y la micro-operaciones aritmticas en un par de operandos de n bits (ex A.
[3: 0] y B [3: 0]). Las operaciones realizadas por una ALU son controlados por un
conjunto de funciones de seleccin de entradas. En esta prctica de laboratorio,
el diseo de un 4 bits ALU con 3-funcin de seleccin de entradas: Modo M, Select
S1 y S0 entradas. La entrada de modo M se selecciona entre una lgica (M = 0) y
Aritmtica (M = 1) operacin. Las funciones realizadas por la ALU se especifican en
la Tabla I.
Tabla1:FuncionesdeALU

M=0Lgica
S1

S0

C0

FUNCIN OPERACIN(bitabit)
AiBi
Y
AiB+i Oregn
AiABi
XOR
(AiABi)' XNOR

M=1Aritmtica
S1

S0

C0

0
0

1
1

0
1

FUNCIN FUNCIONAMIENTO
La
TransferenciaA
A+1
IncrementoApor1
A+B
AadirAyB
A+B+1 IncrementarlasumadeAyBpor

A+B'
AB
A'+B
BA

1
ComplementoAmsdeunodeB
ResteBdeA(esdecir,B'+A+1)
BmselcomplementoaunodeA
BmenosA(oA'+B+1)

Un diagrama de bloques se da en la Figura 1.

Figura 1: Diagrama de bloques de la 4-bit ALU.


Al hacer la aritmtica, es necesario decidir cmo representar nmeros
negativos. Como se hace comnmente en los sistemas digitales, los nmeros
negativos se representan en complemento a dos. Esto tiene una serie de ventajas
con respecto a la representacin signo y la magnitud como la facilidad de adicin o
sustraccin de nmeros positivos y negativos mixtas. Adems, el nmero cero
tiene una nica representacin en complemento a dos. El complemento de dos de
un nmero de n bits se define como N,

- N = (2

- 1 - N) + 1

La ltima representacin nos da una manera fcil de encontrar complemento a


dos: tomar el bit complemento racional de la cantidad y aadir 1 a la misma. Como
ejemplo, para representar el nmero -5, tomamos el complemento a dos de 5 (=
0101) como sigue,
5 0 1 0 1 -> 1 0 1 0 (complemento bit a bit)
+ 1
1 0 1 1 (complemento a dos)
Los nmeros representados en la mentira de complemento a dos dentro del rango (2 n-1) a + (2 n-1 - 1). Para un nmero de 4 bits, esto significa que el nmero est en
el intervalo -8-7. Hay un problema potencial que todava tenemos que tener en
cuenta cuando se trabaja con el complemento a dos, es decir, exceso o
desbordamiento como se ilustra en el siguiente ejemplo,
0100(=llevanCi)
50101
4
+0100
901001=7!

Tambin,
1000(=llevanCi)
71001
2+1110
910111=7!
Ambos clculos dan los resultados errneos (-7 en lugar de 9 o 7 en lugar de -9)
que es causada por el hecho de que el resultado 9 -9 o est fuera de la gama
permisible para un nmero de 4 bits de complemento a dos. Siempre que el
resultado es mayor que o menor que 7 -8 hay un desbordamiento o
subdesbordamiento y el resultado de la suma o resta es errneo. Extracto y
refinado pueden ser detectados fcilmente cuando el transporte fuera de la etapa
ms significativa (es decir, C 4 ) es diferente de la prrroga de la etapa anterior (es
decir, C 3 ).
Se puede suponer que las entradas A y B estn en complemento a dos cuando se
presentan a la entrada de la ALU.
b. Disear estrategias
En el diseo de la ALU vamos a seguir el "divide y vencers" principio con el fin de
utilizar un diseo modular que consta de, bloques ms pequeos y manejables,
algunos de los cuales pueden ser reutilizados. En lugar de disear el 4-bit ALU
como un circuito vamos a disear un primero de un bit ALU, tambin llamado
una rebanada-bit . Estas rebanadas-bits se pueden juntar para hacer una 4-bit
ALU.
Hay diferentes maneras de disear un bit-slice de la ALU. Un mtodo consiste en
escribir la tabla de verdad para el uno-bit ALU. Esta tabla tiene 6 entradas (M, S1,
S0, C 0 , A i y Bi ) y dos salidas F i y C i + 1 . Esto se puede hacer, pero puede ser
tedioso cuando tiene que hacerse a mano.
Una forma alternativa es dividir la ALU en dos mdulos, uno lgica y un mdulo
aritmtico.El diseo de cada mdulo por separado ser ms fcil que el diseo de
un tramo poco como una unidad. Un diagrama de bloques posible de la ALU se
muestra en la figura 2. Se compone de tres mdulos: 2: 1 MUX, una unidad de
lgica y una unidad aritmtica.

Figura 2: Diagrama de bloques de un bit-slice ALU


c.Viendo los resultados. Para la fcil ver la salida de la ALU que mostrar los
resultados en las pantallas de siete segmentos y los LEDs (LD).
1.El resultado de la operacin lgica se puede mostrar en los LEDs (LD). Utilice
tambin uno de estos LED para visualizar el indicador de desbordamiento V.
2.Puesto que usted est trabajando con una representacin de 4 bits para los nmeros
de complemento a 2, el nmero mximo positivo es 7 y el nmero ms negativo es
-8. As, un solo indicador de siete segmentos se puede utilizar para mostrar la
magnitud del nmero. Utilice otro indicador de siete segmentos para el signo - (por
ejemplo, uso segmento "g") "".
3.Hay una complicacin cuando se utiliza ms de una de las pantallas de siete
segmentos de la placa del Digilab, como se puede seens de las conexiones de los
segmentos LED de las pantallas. Usted se dar cuenta de que las cuatro pantallas
de siete segmentos comparten los mismos ctodos A, B, ..., G). Esto implica que no
se puede conectar directamente a las seales de los segmentos de la magnitud y
el signo de estos terminales, ya que hara corta las salidas de las puertas que
daaran la FPGA !. Cmo has podido resolver este problema?Dibuje una posible
solucin en su cuaderno de prcticas. (Sugerencia:. Puede alternar las seales
aplicadas a los ctodos de entre los de la magnitud y signo pantallas Si usted hace
esto a ms de 30 veces por segundo que el ojo no notar el parpadeo Usted
tambin tendr que alternar las seales de nodo.). Qu tipo de circuito se
necesitarn para lograr esto? Usted puede hacer uso de un reloj en el chip,
llamado OSC4 que proporciona seales de reloj de 8 MHz, 500 KHz, 590Hz y 15 Hz.
4.La Figura 3 muestra un esquema del sistema en general, que consiste en la ALU, el
decodificador y el circuito de conmutacin, y pantallas en el tablero Digilab.

Figura 3: Sistema general, incluyendo las unidades de UTA y


visualizacin de 4 bits.
d. Tareas : Realice las siguientes tareas antes de venir al
laboratorio . Escribe las respuestas a todas las preguntas en su cuaderno de
prcticas antes de venir al laboratorio.No existe presentacin en lnea para el prelaboratorio. Pregunta al TA para firmar la seccin de pre-prctica en su cuaderno
de prcticas en el inicio de la sesin de laboratorio. Tambin tendr que incluir la
respuesta a las preguntas pre-prctica en su informe de laboratorio.

1.

Disear el MUX . Usted puede elegir el diseo de la MUX con


puertas o escribiendo cdigo HDL (VHDL). Elija uno de los dos mtodos y
escribir el diseo en su cuaderno de prcticas.
2.
Diseo de la unidad lgica . Aqu tambin tiene varias opciones
para el diseo de esta unidad:
a. Escribe tabla de verdad, derivar el K-mapa y dar el mnimo Aplicacin puerta
b. Use un 4: 1 MUX y puertas
c. Escribir un archivo de HDL
Como parte de la pre-prctica, se puede elegir cualquiera de los tres
mtodos. Justificar brevemente por qu eligi un mtodo de diseo en
particular. Explicar el procedimiento de diseo y dar el diagrama lgico o el archivo
de HDL. En caso de que utilice un MUX, tambin es necesario para dar el esquema
o el archivo de HDL para el MUX.

3.

Disear la unidad aritmtica . Una vez ms, aqu tienes diferentes


opciones para disear e implementar la unidad aritmtica. Un mtodo
particularmente atractiva es aquella que hace uso de mdulos diseados
previamente, tales como su serpiente llena. La unidad aritmtica realiza
bsicamente adiciones en un conjunto de entradas. Al elegir las
entradas apropiadas, se puede realizar una serie de operaciones. Este
enfoque se muestra en la Figura 4. Los nicos bloques que deben ser

diseados son los circuitos lgicos de una lgica y B. Usted puede hacer
uso de su sumador completo diseado previamente (MYFA).

Figura 4: Diagrama de bloques esquemtico de la unidad aritmtica.


1. Dar las tablas de verdad para las funciones de Xi y Yi con
como entradas S1, S0 y Hai, y S1, S0 y Bi,
respectivamente. Complete los siguientes cuadros.Ntese
que en la definicin de tabla I de la ALU, la variable
C 0 acta como la entrada de acarreo.Dependiendo del valor
de C 0 , uno realiza la funcin en las entradas de pares o
impares de la tabla de definicin I. Como ejemplo, la primera
entrada es "transferencia A" (para C 0 = 0), mientras que el
segundo es "A + 1 "(para C 0 = 1); Del mismo modo para A
+ B y A + B + 1, etc.
S1

S0

Ai

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Xi
(ALogic)
.
.
.
.
.
.
.

S1

S0

Bi

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

.
Tabla II: Tabla de verdad para la A y B circuitos lgicos.

Yi
(BLogic)
.
.
.
.
.
.
.
.

2.

Dar el K-map para funciones de Xi y Yi. Encuentra la


realizacin mnima de Xi y Yi.
3.
Dibuje el diagrama lgico de Xi y Yi.
4.
Disee el circuito que sobre o underflow detecta.
4.Disear el decodificador de los displays de siete segmentos. Recuerde que los
segmentos de la pantalla se activa baja. Los decodificadores deben ser diseadas
de tal manera que cuando se selecciona el modo lgico (M = 0), slo los LEDs
estn activos y cuando el modo aritmtico (M = 1) se selecciona slo las pantallas
de siete segmentos estn activos.
5.Disear la conmutacin de circuitos que se necesita para usar las dos pantallas de
siete segmentos (ver seccin c3 arriba).

En laboratorio asignacin:

A. Piezas y equipo:

1. PC
2. Herramientas Fundacin Xilinx (disponibles en los PC de la EE
Pregrado Lab)
3. Junta Digilab
4. Protoboard
B. Experimentos
Su tarea consiste en disear e implementar el 4-bit ALU utilizando las herramientas
de Xilinx Foundation y uno de los tableros de prototipos (mesa Digilab, FPGA
demoboard, el XS40 o tableros XS95). Siga las directrices de la pre-prctica en el
diseo de la 4-bit ALU.Va a crear un proyecto (ver tareas ms abajo) con un
esquema de nivel superior que consiste en el 4-bit ALU. Este archivo de nivel
superior tendr varias macros que usted necesita para crear con el editor de
esquemas o VHDL. Las macros pueden tener macros incrustadas en ella.
Como este proyecto es ms complicado que los proyectos anteriores,
ser importante que seas muy sistemtica durante el diseo. Cada macro
debe ser simulado y los errores corregidos antes de continuar. De no
hacerlo, ser ms difcil de depurar el sistema.
Tarea 1:

Crear un nuevo proyecto en el modo de flujo esquemtico: Nombre


que MY4ALU. Coloca este proyecto en la carpeta (con su nombre) en la
unidad C:.
Abra el editor de esquemas (la hoja debe tener el mismo nombre
que el proyecto: MY4ALU1.sch). Esta ser su superior esquemtica
-level. (Nota: Cada vez que se abre una nueva hoja se llamar
MY4ALU2.sch, MY4ALU3.sch; todas estas hojas son parte del esquema de
nivel superior Debe utilizar varias hojas slo cuando su esquema de
nivel superior es tan grande que. que no cabe en una sola hoja).
Crear macros para cada mdulo (leer atentamente la seccin
sobre "Creacin de Macros" en los Tutoriales de Xilinx - no utilizar la hoja
superior como una macro!). Esto se puede hacer en la ventana Esquema
Editor seleccionando HERRAMIENTAS -> SMBOLO asistente.
Definir los archivos de origen subyacentes para las macros.
Realice una simulacin funcional de las macros (colocarlos en el
nivel superior esquemtica primero). Verificar el funcionamiento
adecuado antes de proceder al siguiente paso. Esto har que la
depuracin mucho ms fcil. Si encuentra algn error en la forma de
onda simulada, depurar el circuito. Revise su cdigo esquemtica o
HDL. Recuerde que los nombres de macros HDL debe tener un mximo
de 8 caracteres. Al comprobar el esquema, utilice las sondas aadir
seales (nombres netos) a la Ventana de simulador. Esto le ayudar a
trazar el error de una manera sistemtica.
Haga la rebanada poco (esto debe ser una macro que contiene
varias macros sub)
Hacer el 4-bit ALU.
Diseo y agregue el circuito que detecta desbordamiento V a su
esquema.

Simular la plena ALU de 4 bits y verifique que todas las


operaciones lgicas y aritmticas funcionan correctamente.
Tarea 2: Las entradas y salidas

Esta tarea depender un poco del tipo de tarjeta que est


planeando utilizar.
Si est utilizando el tablero Digilab:
Para las entradas A y B, utilice la diapositiva de
propsito general interruptores SW1-8.
Para las entradas de seleccin y el modo (M, S1, S0 y
CIN), tendr que utilizar un cable corto que se conecta entre el pin
correspondiente de la FPGA y el Vdd o tierra para que la seal "1" o "0" ,
respectivamente. Utilice los siguientes colores: Cin: amarillo;M: Rojo; S1:
Azul y S0: Negro). Compruebe los pines de la FPGA Spartan (XS10XL)
para encontrar contactos est disponible para las entradas.
El resultado de las operaciones lgicas se puede
visualizar en los LED (LD). Utilice tambin uno de estos LED para indicar
cuando se produce desbordamiento.
Los resultados de las operaciones aritmticas se
visualizan en dos pantallas de siete segmentos (uno para el signo y uno
para la magnitud). Como se explica en la pre-prctica, esto requerir la
insercin del circuito de conmutacin entre el decodificador y las
pantallas.
Puede tambin mostrar los valores decimales de las
entradas A y B cuando se utiliza en operaciones de clculo?
Si usted tiene un demoboard FPGA:
Utilice la pantalla U8 de 7 segmentos para mostrar el
resultado de la operacin aritmtica y el indicador de barra de LED para
las operaciones lgicas. La seal se puede mostrar en uno de los
segmentos de LED (por ejemplo, "g") de la segunda pantalla U7 de 7
segmentos. Disear los decodificadores de tal manera que cuando se
selecciona el modo aritmtico (M = 1), slo los LED de 7 segmentos
estn activos y en el modo de lgica (M = 0), slo el indicador de la
barra LED est activo. El desbordamiento / bit de underflow se puede
mostrar en la barra de LED. Disear y simular los decodificadores para
las pantallas. Aadir a la esquemtica.
Para las entradas A y B, utilice la entrada cambia SW3
en la demoboard.
Para las entradas de seleccin (Cin, M, S1 y S0) tendr
que utilizar un cable corto conectado a una entrada de la FPGA y su
protoboard. Puede conectar este cable en el protoboard a tierra o 5V
dependiendo del estado de las entradas. Compruebe el pasador de la
FPGA para encontrar contactos est disponible para las entradas. Para
obtener una imagen de la demoboard con protoboard, haga clic aqu.
Haga una lista de todas las entradas y salidas y
asignar nmeros de pin para ellos.

En caso de que usted est usando la tabla XS40, usted slo


tiene una pantalla de 7 segmentos disponibles.
Usted puede usar esto para mostrar tanto la aritmtica
las operaciones lgicas (por ejemplo, segmentos de "b", "c", "e" y "f"),
dependiendo del valor del bit de modo, M. Para la muestra, y el
desbordamiento / bit underflow puede utilizar LEDs externos conectados
entre uno de los pasadores disponibles de la FPGA (por ejemplo,
pasadores 3, y 4) y el suelo (pin 52). Para ello ser necesario que
coloque la junta XS40 en una protoboard. Observe que la corriente en el
diodo necesita ser limitado mediante la colocacin de una resistencia de
aproximadamente 330 ohmios en serie con el diodo. Disear y simular
los decodificadores para las pantallas. Aadir a la esquemtica.
Las entradas A y B se aplican a travs del puerto
paralelo.Recuerde que para la D3 y D4 puerto paralelo, tendr que
utilizar los parches de propsito especial MD0 y MD2, respectivamente
(D3 y D4 estn conectados a los pines 32 y 34 en el tablero XS40).
Para el bit de modo, H, los bits de seleccin, S1 y S0, y
el Cin seal tendr que utilizar un cable corto conectado a los pines de
entrada propios de la FPGA y molido o Vdd. Lo ms fcil sera para
colocar el tablero XS40 en un protoboard para hacer estas
conexiones. . Compruebe el pasador de la FPGA para encontrar
contactos est disponible para las entradas. Haga clic aqu para ver una
imagen que muestra algunas de las conexiones utilizando una
protoboard.
Haga una lista de todas las entradas y salidas y
asignar nmeros de pin para ellos.
Para la junta XS95 slo hay una pantalla de 7 segmentos
disponibles.
Usted puede usar esto para mostrar tanto la
aritmtica, las operaciones lgicas (por ejemplo, segmentos de "b", "c",
"e" y "f"), dependiendo del valor del bit de modo, M. El punto decimal se
puede utilizar para indicar el signo. Para mostrar el desbordamiento / bit
de underflow, usted tendr que usar un diodo externo entre uno de los
pines disponibles (por ejemplo, el pin 4) del CPLD y el suelo. Para el
lmite de la corriente en el diodo es necesario agregar una resistencia de
330 ohmios en serie con el diodo. En este caso, usted tendr que colocar
la junta XS95 en una protoboard llegar al fcil acceso a los
pines. Disear y simular los decodificadores para las pantallas. Aadir a
la esquemtica.
Las entradas A y B se aplican a travs del puerto
paralelo.
Para el bit de modo, H, los bits de seleccin, S1 y S0, y
Cin, usted tendr que utilizar un cable corto conectado a los pines de
entrada propios de la CPLD y molido o Vdd. Lo ms fcil sera para
colocar el tablero XS95 en un protoboard para hacer estas
conexiones. .Compruebe el pasador de la CPLD para saber qu contactos

est disponible para las entradas. Haga clic aqu para ver una imagen
que muestra algunas de las conexiones utilizando una protoboard.
Haga una lista de todas las entradas y salidas y
asignar nmeros de pin para ellos.
Especifique la ubicacin de pines (usando el editor de restriccin o
en el esquema), implementar y probar la ALU.
Ser instructivo hacer una simulacin de tiempo para tener una
idea acerca de la velocidad general del circuito.
Dale un demo para el instructor de laboratorio y
convencerlo / ella que su ALU funciona correctamente. El instructor
firmar su cuaderno de prcticas.
Cuando se trabaja en Xilinx, mantener el proyecto en el disco duro. Al final de la
prctica de laboratorio, debe copiar el proyecto de nuevo a un directorio en su
cuenta para uso futuro. Si el archivo es demasiado grande, usted puede fcilmente
zip yendo a la bobinadora Gerente de Proyecto y seleccionando Archivo-> Archivar
proyecto. Esto zip todo el proyecto con todas las bibliotecas de proyectos
necesarios.

Mano-en
Usted tiene que entregar un informe de laboratorio que contiene lo siguiente:
1. Ttulo del Curso, Lab no, ttulo Lab, su nombre y fecha
2. La seccin en la pre-prctica que explica el diseo de cada bloque y dar las
respuestas a cada tarea.
3. La seccin sobre el experimento de laboratorio:
a. Breve descripcin de los objetivos.
b. Breve explicacin del enfoque de diseo, el esquema general y de cada macro.
c. Copia del cdigo de esquemas y HDL fuente (como una captura de
pantalla). Etiquetar los esquemas y hacer comentarios sobre el cdigo fuente.
d. La simulacin lgica (captura de pantalla de las formas de onda; etiquetar las
salidas para probar que el circuito funciona correctamente).
e. La discusin de los resultados que indican que el circuito funciona
correctamente.
4. Conclusin y discusin.
El informe del laboratorio es una parte importante del laboratorio. Escribe con
cuidado, ser claro y bien organizado. Es la nica manera de transmitir lo que
hiciste un gran trabajo en el laboratorio. Es preferible (pero no necesario) que
escribe el informe del laboratorio.

Potrebbero piacerti anche