Diseño e Implementación de un 4 bits ALU Diseño e Implementación de un 4 bits ALU Propósito:
El propósito de esta práctica de laboratorio es: • • •
1. Diseñar un 4 bits ALU 2. Implementar la ALU en una F!A o "LD #. ara comprobar e$perimentalmente la operación de la ALU Este laboratorio es di%erente de las otras asi&naciones en el sentido de 'ue se trata de un diseño de pro(ecto 'ue le da más libertad para lle&ar a sus propias soluciones. El si&uiente relato sir)e como una &u*a para a(udarle a diseñar el laboratorio. +in embar&o, si usted encuentra maneras más e-cientes o más ele&antes para implementar partes de la ALU, adelante. +ólo ase&rese de 'ue /usti-ca su diseño ( lo e$plica claramente en el in%orme del laboratorio relato. Esta asi&nación es más e$tensa 'ue las anteriores. Es importante 'ue usted )iene bien preparado para el laboratorio. Deber*as 0aber diseñado los principales componentes de la ALU ALU antes de )enir )enir al laboratorio. +us diseños tienen 'ue ser escrito en su cuaderno de prácticas ( -rmado por el A al inicio del laboratorio .
Asignación Pre-lab: a. Planteamiento del problema:
Una unidad aritmtica ( ló&ica 3ALU es un circuito combinacional 'ue reali5a la ló&ica ( la micro6operaciones aritmticas en un par de operandos de n bits 3e$ A. 7#: 89 ( 7#: 89. Las operaciones reali5adas por una ALU son controlados por un con/unto de funciones de selección de entradas. En esta práctica de laboratorio, el diseño de un 4 bits ALU con #6%unción de selección de entradas: ;odo ;, +elect +1 ( +8 entradas. La entrada de modo ; se selecciona entre una ló&ica 3; < 8 ( Aritmtica 3; < 1 operación. Las %unciones reali5adas por la ALU se especi-can en la abla I. Tabla 1: Funciones de ALU
M = 0 Lógica S1
S0
C0
0
0
X
0
1
X
1
0
X
1
1
X
FUNCIÓN A i B i Ai B+i A iA B i (A iA B i ) '
OPERACIÓN (bit a bit) Y Oregón XOR XNOR
FUNCIÓN La A+1 A+B A +B +1
FUNCIONAMIENTO Transferencia A Incremento A por 1 Añadir A y B Incrementar la suma de A y B por
M = 1 1 Aritmética S1
S0
C0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
A+B' A-B A '+ B B-A
1 Complemento A más de uno de B Reste B de A (es decir, B '+ A + 1) B más el complemento a uno de A B menos A (o A '+ B + 1)
Un dia&rama de blo'ues se da en la Fi&ura 1.
Fi&ura 1: Dia&rama de blo'ues de la 46bit ALU.
Al 0acer la aritmtica, es necesario decidir cómo representar nmeros ne&ati)os. "omo se 0ace comnmente en los sistemas di&itales, los nmeros ne&ati)os se representan en complemento a dos. Esto tiene una serie de )enta/as con respecto a la representación si&no ( la ma&nitud como la %acilidad de adición o sustracción de nmeros positi)os ( ne&ati)os mi$tas. Además, el nmero cero tiene una nica representación en complemento a dos. El complemento de dos de un nmero de n bits se de-ne como =,
2 n 6 = < 32 n 6 1 6 = > 1
La ltima representación nos da una manera %ácil de encontrar complemento a dos: tomar el bit complemento racional de la cantidad ( añadir 1 a la misma. "omo e/emplo, para representar el nmero 6?, tomamos el complemento a dos de ? 3< 8181 como si&ue, 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 ran&o 6 32 n61 a > 32 n61 6 1. ara un nmero de 4 bits, esto si&ni-ca 'ue el nmero está en el inter)alo 6@6. Ba( un problema potencial 'ue toda)*a tenemos 'ue tener en cuenta cuando se traba/a con el complemento a dos, es decir, e$ceso o desbordamiento como se ilustra en el si&uiente e/emplo, 0 1 0 0 (= llevan Ci)
5 0 1 0 1 4 9
+ 0 1 0 0 0 1 0 0 1 = -7!
ambin, 1 0 0 0 (= llevan Ci)
-7 1 0 0 1 -2 -9
+ 1 1 1 0 1 0 1 1 1 = 7!
Ambos cálculos dan los resultados erróneos 36 en lu&ar de C o en lu&ar de 6C 'ue es causada por el 0ec0o de 'ue el resultado C 6C o está %uera de la &ama permisible para un nmero de 4 bits de complemento a dos. +iempre 'ue el resultado es ma(or 'ue o menor 'ue 6@ 0a( un desbordamiento o subdesbordamiento ( el resultado de la suma o resta es erróneo. E$tracto ( re-nado pueden ser detectados %ácilmente cuando el transporte %uera de la etapa más si&ni-cati)a 3es decir, " 4 es di%erente de la prórro&a de la etapa anterior 3es decir, " # . +e puede suponer 'ue las entradas A ( están en complemento a dos cuando se presentan a la entrada de la ALU. b. Diseñar estrategias
En el diseño de la ALU )amos a se&uir el di)ide ( )encerás principio con el -n de utili5ar un diseño modular 'ue consta de, blo'ues más pe'ueños ( mane/ables, al&unos de los cuales pueden ser reutili5ados. En lu&ar de diseñar el 46bit ALU como un circuito )amos a diseñar un primero de un bit ALU, tambin llamado una rebanada-bit . Estas rebanadas6bits se pueden /untar para 0acer una 46bit ALU. Ba( di%erentes maneras de diseñar un bit6slice de la ALU. Un mtodo consiste en escribir la tabla de )erdad para el uno6bit ALU. Esta tabla tiene entradas 3;, +1, +8, " 8 , A i ( i ( dos salidas F i ( " i > 1 . Esto se puede 0acer, pero puede ser tedioso cuando tiene 'ue 0acerse a mano. Una %orma alternati)a es di)idir la ALU en dos módulos, uno ló&ica ( un módulo aritmtico.El diseño de cada módulo por separado será más %ácil 'ue el diseño de un tramo poco como una unidad. Un dia&rama de blo'ues posible de la ALU se muestra en la -&ura 2. +e compone de tres módulos: 2: 1 ;U, una unidad de ló&ica ( una unidad aritmtica.
Fi&ura 2: Dia&rama de blo'ues de un bit6slice ALU
c.Viendo los resultados. ara la %ácil )er la salida de la ALU 'ue mostrará los
resultados en las pantallas de siete se&mentos ( los LEDs 3LD. 1.El resultado de la operación ló&ica se puede mostrar en los LEDs 3LD. Utilice tambin uno de estos LED para )isuali5ar el indicador de desbordamiento G. 2.uesto 'ue usted está traba/ando con una representación de 4 bits para los nmeros de complemento a 2, el nmero má$imo positi)o es ( el nmero más ne&ati)o es 6@. As*, un solo indicador de siete se&mentos se puede utili5ar para mostrar la ma&nitud del nmero. Utilice otro indicador de siete se&mentos para el si&no 6 3por e/emplo, uso se&mento & . #.Ba( una complicación cuando se utili5a más de una de las pantallas de siete se&mentos de la placa del Di&ilab, como se puede seens de las cone$iones de los se&mentos LED de las pantallas. Usted se dará cuenta de 'ue las cuatro pantallas de siete se&mentos comparten los mismos cátodos A, , ..., !. Esto implica 'ue no se puede conectar directamente a las señales de los se&mentos de la ma&nitud ( el si&no de estos terminales, (a 'ue 0ar*a corta las salidas de las puertas 'ue dañar*an la F!A H. "ómo 0as podido resol)er este problemaJDibu/e una posible solución en su cuaderno de prácticas. 3+u&erencia:. uede alternar las señales aplicadas a los cátodos de entre los de la ma&nitud ( si&no pantallas +i usted 0ace esto a más de #8 )eces por se&undo 'ue el o/o no notará el parpadeo Usted tambin tendrá 'ue alternar las señales de ánodo.. Ku tipo de circuito se necesitarán para lo&rar estoJ Usted puede 0acer uso de un relo/ en el c0ip, llamado +"4 'ue proporciona señales de relo/ de @ ;B5, ?88 MB5, ?C8B5 ( 1? B5. 4.La Fi&ura # muestra un es'uema del sistema en &eneral, 'ue consiste en la ALU, el decodi-cador ( el circuito de conmutación, ( pantallas en el tablero Di&ilab.
Fi&ura #: +istema &eneral, inclu(endo las unidades de UA ( )isuali5ación de 4 bits.
d. Tareas : Nealice las si&uientes tareas antes de enir al laboratorio . Escribe las respuestas a todas las pre&untas en su cuaderno de
prácticas antes de )enir al laboratorio.=o e$iste presentación en l*nea para el pre6 laboratorio. re&unta al A para -rmar la sección de pre6práctica en su cuaderno de prácticas en el inicio de la sesión de laboratorio. ambin tendrá 'ue incluir la respuesta a las pre&untas pre6práctica en su in%orme de laboratorio. 1. Diseñar el MUX . Usted puede ele&ir el diseño de la ;U con
puertas o escribiendo códi&o BDL 3GBDL. Eli/a uno de los dos mtodos ( escribir el diseño en su cuaderno de prácticas. 2. Diseño de la unidad lógica . A'u* tambin tiene )arias opciones para el diseño de esta unidad: a. Escribe tabla de )erdad, deri)ar el M6mapa ( dar el m*nimo Aplicación puerta b. Use un 4: 1 ;U ( puertas c. Escribir un arc0i)o de BDL
"omo parte de la pre6práctica, se puede ele&ir cual'uiera de los tres mtodos. Ousti-car bre)emente por 'u eli&ió un mtodo de diseño en particular. E$plicar el procedimiento de diseño ( dar el dia&rama ló&ico o el arc0i)o de BDL. En caso de 'ue utilice un ;U, tambin es necesario para dar el es'uema o el arc0i)o de BDL para el ;U. #. Diseñar la unidad aritmética . Una )e5 más, a'u* tienes di%erentes
opciones para diseñar e implementar la unidad aritmtica. Un mtodo particularmente atracti)a es a'uella 'ue 0ace uso de módulos diseñados pre)iamente, tales como su serpiente llena. La unidad aritmtica reali5a básicamente adiciones en un con/unto de entradas. Al ele&ir las entradas apropiadas, se puede reali5ar una serie de operaciones. Este en%o'ue se muestra en la Fi&ura 4. Los nicos blo'ues 'ue deben ser
diseñados son los circuitos ló&icos de una ló&ica ( . Usted puede 0acer uso de su sumador completo diseñado pre)iamente 3;PFA.
Fi&ura 4: Dia&rama de blo'ues es'uemático de la unidad aritmtica. 1. Dar las tablas de )erdad para las %unciones de i ( Pi con como entradas +1, +8 ( Bai, ( +1, +8 ( i, respecti)amente. "omplete los si&uientes cuadros.=ótese 'ue en la de-nición de tabla I de la ALU, la )ariable " 8 acta como la entrada de acarreo.Dependiendo del )alor de " 8 , uno reali5a la %unción en las entradas de pares o impares de la tabla de de-nición I. "omo e/emplo, la primera entrada es trans%erencia A 3para " 8 < 8, mientras 'ue el se&undo es A > 1 3para " 8 < 1Q Del mismo modo para A > ( A > > 1, etc. S1
S0
Ai
Xi (A Logic)
S1
S0
Bi
Yi (B Logic)
0 0
0 0
0 1
. .
0 0
0 0
0 1
. .
0 0 1 1 1 1
1 1 0 0 1 1
0 1 0 1 0 1
. . . .
0 0 1 1 1 1
1 1 0 0 1 1
0 1 0 1 0 1
. . . . . .
. .
abla II: abla de )erdad para la A ( circuitos ló&icos.
2.
Dar el M6map para %unciones de i ( Pi. Encuentra la reali5ación m*nima de i ( Pi. #. Dibu/e el dia&rama ló&ico de i ( Pi. 4. Diseñe el circuito 'ue sobre o underRoS detecta. 4.Diseñar el decodicador de los displa(s de siete se&mentos. Necuerde 'ue los se&mentos de la pantalla se acti)a ba/a. Los decodi-cadores deben ser diseñadas de tal manera 'ue cuando se selecciona el modo ló&ico 3; < 8, sólo los LEDs están acti)os ( cuando el modo aritmtico 3; < 1 se selecciona sólo las pantallas de siete se&mentos están acti)os. ?.Diseñar la conmutación de circuitos 'ue se necesita para usar las dos pantallas de siete se&mentos 3)er sección c# arriba.
!n laboratorio asignación:
A. Piezas y equipo: • •
• •
1. " 2. Berramientas Fundación ilin$ 3disponibles en los " de la EE re&rado Lab #. Ounta Di&ilab 4. rotoboard B. Experimentos
+u tarea consiste en diseñar e implementar el 46bit ALU utili5ando las 0erramientas de ilin$ Foundation ( uno de los tableros de prototipos 3mesa Di&ilab, F!A demoboard, el +48 o tableros +C?. +i&a las directrices de la pre6práctica en el diseño de la 46bit ALU.Ga a crear un pro(ecto 3)er tareas más aba/o con un es'uema de ni)el superior 'ue consiste en el 46bit ALU. Este arc0i)o de ni)el superior tendrá )arias macros 'ue usted necesita para crear con el editor de es'uemas o GBDL. Las macros pueden tener macros incrustadas en ella. Como este proyecto es más complicado que los proyectos anteriores, será importante que seas muy sistemática durante el diseño. Cada macro debe ser simulado y los errores correidos antes de continuar. !e no "acerlo, será más di#$cil de depurar el sistema. Tarea ": •
•
•
• •
•
• •
"rear un nue)o pro(ecto en el modo de Ru/o es'uemático: =ombre 'ue ;P4ALU. "oloca este pro(ecto en la carpeta 3con su nombre en la unidad ":. Abra el editor de es'uemas 3la 0o/a debe tener el mismo nombre 'ue el pro(ecto: ;P4ALU1.sc0. Esta será su superior es'uemática 6le)el. 3=ota: "ada )e5 'ue se abre una nue)a 0o/a se llamará ;P4ALU2.sc0, ;P4ALU#.sc0Q todas estas 0o/as son parte del es'uema de ni)el superior Debe utili5ar )arias 0o/as sólo cuando su es'uema de ni)el superior es tan &rande 'ue. 'ue no cabe en una sola 0o/a. "rear macros para cada módulo 3leer atentamente la sección sobre "reación de ;acros en los utoriales de ilin$ 6 no utili5ar la 0o/a superior como una macroH. Esto se puede 0acer en la )entana Es'uema Editor seleccionando BENNA;IE=A+ 6T +;L asistente. De-nir los arc0i)os de ori&en sub(acentes para las macros. Nealice una simulación %uncional de las macros 3colocarlos en el ni)el superior es'uemática primero. Geri-car el %uncionamiento adecuado antes de proceder al si&uiente paso. Esto 0ará 'ue la depuración muc0o más %ácil. +i encuentra al&n error en la %orma de onda simulada, depurar el circuito. Ne)ise su códi&o es'uemática o BDL. Necuerde 'ue los nombres de macros BDL debe tener un má$imo de @ caracteres. Al comprobar el es'uema, utilice las sondas añadir señales 3nombres netos a la Gentana de simulador. Esto le a(udará a tra5ar el error de una manera sistemática. Ba&a la rebanada poco 3esto debe ser una macro 'ue contiene )arias macros sub Bacer el 46bit ALU. Diseño ( a&re&ue el circuito 'ue detecta desbordamiento G a su es'uema.
•
+imular la plena ALU de 4 bits ( )eri-'ue 'ue todas las operaciones ló&icas ( aritmticas %uncionan correctamente. Tarea #: Las entradas ( salidas
•
• •
•
•
•
•
• •
•
•
•
Esta tarea dependerá un poco del tipo de tar/eta 'ue está planeando utili5ar. +i está utili5ando el tablero Di&ilab: ara las entradas A ( , utilice la diapositi)a de propósito &eneral interruptores +V16@. ara las entradas de selección ( el modo 3;, +1, +8 ( "I=, tendrá 'ue utili5ar un cable corto 'ue se conecta entre el pin correspondiente de la F!A ( el Gdd o tierra para 'ue la señal 1 o 8 , respecti)amente. Utilice los si&uientes colores: "in: amarilloQ;: No/oQ +1: A5ul ( +8: =e&ro. "ompruebe los pines de la F!A +partan 3+18L para encontrar contactos está disponible para las entradas. El resultado de las operaciones ló&icas se puede )isuali5ar en los LED 3LD. Utilice tambin uno de estos LED para indicar cuando se produce desbordamiento. Los resultados de las operaciones aritmticas se )isuali5an en dos pantallas de siete se&mentos 3uno para el si&no ( uno para la ma&nitud. "omo se e$plica en la pre6práctica, esto re'uerirá la inserción del circuito de conmutación entre el decodi-cador ( las pantallas. uede tambin mostrar los )alores decimales de las entradas A ( cuando se utili5a en operaciones de cálculoJ +i usted tiene un demoboard F!A: Utilice la pantalla U@ de se&mentos para mostrar el resultado de la operación aritmtica ( el indicador de barra de LED para las operaciones ló&icas. La señal se puede mostrar en uno de los se&mentos de LED 3por e/emplo, & de la se&unda pantalla U de se&mentos. Diseñar los decodi-cadores de tal manera 'ue cuando se selecciona el modo aritmtico 3; < 1, sólo los LED de se&mentos están acti)os ( en el modo de ló&ica 3; < 8, sólo el indicador de la barra LED está acti)o. El desbordamiento W bit de underRoS se puede mostrar en la barra de LED. Diseñar ( simular los decodi-cadores para las pantallas. Añadir a la es'uemática. ara las entradas A ( , utilice la entrada cambia +V# en la demoboard. ara las entradas de selección 3"in, ;, +1 ( +8 tendrá 'ue utili5ar un cable corto conectado a una entrada de la F!A ( su protoboard. uede conectar este cable en el protoboard a tierra o ?G dependiendo del estado de las entradas. "ompruebe el pasador de la F!A para encontrar contactos está disponible para las entradas. ara obtener una ima&en de la demoboard con protoboard, 0a&a clic a'u*. Ba&a una lista de todas las entradas ( salidas ( asi&nar nmeros de pin para ellos.
•
•
•
•
•
•
•
•
•
En caso de 'ue usted está usando la tabla +48, usted sólo tiene una pantalla de se&mentos disponibles. Usted puede usar esto para mostrar tanto la aritmtica las operaciones ló&icas 3por e/emplo, se&mentos de b, c, e ( %, dependiendo del )alor del bit de modo, ;. ara la muestra, ( el desbordamiento W bit underRoS puede utili5ar LEDs e$ternos conectados entre uno de los pasadores disponibles de la F!A 3por e/emplo, pasadores #, ( 4 ( el suelo 3pin ?2. ara ello será necesario 'ue colo'ue la /unta +48 en una protoboard. bser)e 'ue la corriente en el diodo necesita ser limitado mediante la colocación de una resistencia de apro$imadamente ##8 o0mios en serie con el diodo. Diseñar ( simular los decodi-cadores para las pantallas. Añadir a la es'uemática. Las entradas A ( se aplican a tra)s del puerto paralelo.Necuerde 'ue para la D# ( D4 puerto paralelo, tendrá 'ue utili5ar los parc0es de propósito especial ;D8 ( ;D2, respecti)amente 3D# ( D4 están conectados a los pines #2 ( #4 en el tablero +48. ara el bit de modo, B, los bits de selección, +1 ( +8, ( el "in señal tendrá 'ue utili5ar un cable corto conectado a los pines de entrada propios de la F!A ( molido o Gdd. Lo más %ácil ser*a para colocar el tablero +48 en un protoboard para 0acer estas cone$iones. . "ompruebe el pasador de la F!A para encontrar contactos está disponible para las entradas. Ba&a clic a'u* para )er una ima&en 'ue muestra al&unas de las cone$iones utili5ando una protoboard. Ba&a una lista de todas las entradas ( salidas ( asi&nar nmeros de pin para ellos. ara la /unta +C? sólo 0a( una pantalla de se&mentos disponibles. Usted puede usar esto para mostrar tanto la aritmtica, las operaciones ló&icas 3por e/emplo, se&mentos de b, c, e ( %, dependiendo del )alor del bit de modo, ;. El punto decimal se puede utili5ar para indicar el si&no. ara mostrar el desbordamiento W bit de underRoS, usted tendrá 'ue usar un diodo e$terno entre uno de los pines disponibles 3por e/emplo, el pin 4 del "LD ( el suelo. ara el l*mite de la corriente en el diodo es necesario a&re&ar una resistencia de ##8 o0mios en serie con el diodo. En este caso, usted tendrá 'ue colocar la /unta +C? en una protoboard lle&ar al %ácil acceso a los pines. Diseñar ( simular los decodi-cadores para las pantallas. Añadir a la es'uemática. Las entradas A ( se aplican a tra)s del puerto paralelo. ara el bit de modo, B, los bits de selección, +1 ( +8, ( "in, usted tendrá 'ue utili5ar un cable corto conectado a los pines de entrada propios de la "LD ( molido o Gdd. Lo más %ácil ser*a para colocar el tablero +C? en un protoboard para 0acer estas cone$iones. ."ompruebe el pasador de la "LD para saber 'u contactos
•
•
•
•
está disponible para las entradas. Ba&a clic a'u* para )er una ima&en 'ue muestra al&unas de las cone$iones utili5ando una protoboard. Ba&a una lista de todas las entradas ( salidas ( asi&nar nmeros de pin para ellos. Especi-'ue la ubicación de pines 3usando el editor de restricción o en el es'uema, implementar ( probar la ALU. +erá instructi)o 0acer una simulación de tiempo para tener una idea acerca de la )elocidad &eneral del circuito. Dale un demo para el instructor de laboratorio ( con)encerlo W ella 'ue su ALU %unciona correctamente. El instructor -rmará su cuaderno de prácticas. "uando se traba/a en ilin$, mantener el pro(ecto en el disco duro. Al -nal de la práctica de laboratorio, debe copiar el pro(ecto de nue)o a un directorio en su cuenta para uso %uturo. +i el arc0i)o es demasiado &rande, usted puede %ácilmente 5ip (endo a la bobinadora !erente de ro(ecto ( seleccionando Arc0i)o6T Arc0i)ar pro(ecto. Esto 5ip todo el pro(ecto con todas las bibliotecas de pro(ectos necesarios.
$ano-en
Usted tiene 'ue entre&ar un in%orme de laboratorio 'ue contiene lo si&uiente: 1. *tulo del "urso, Lab no, t*tulo Lab, su nombre ( %ec0a 2. La sección en la pre6práctica 'ue e$plica el diseño de cada blo'ue ( dar las respuestas a cada tarea. #. La sección sobre el e$perimento de laboratorio: a. re)e descripción de los ob/eti)os. b. re)e e$plicación del en%o'ue de diseño, el es'uema &eneral ( de cada macro. c. "opia del códi&o de es'uemas ( BDL %uente 3como una captura de pantalla. Eti'uetar los es'uemas ( 0acer comentarios sobre el códi&o %uente. d. La simulación ló&ica 3captura de pantalla de las %ormas de ondaQ eti'uetar las salidas para probar 'ue el circuito %unciona correctamente. e. La discusión de los resultados 'ue indican 'ue el circuito %unciona correctamente. 4. "onclusión ( discusión. El in%orme del laboratorio es una parte importante del laboratorio. Escribe con cuidado, ser claro ( bien or&ani5ado. Es la nica manera de transmitir lo 'ue 0iciste un &ran traba/o en el laboratorio. Es pre%erible 3pero no necesario 'ue escribe el in%orme del laboratorio.