Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DepartamentodeIngenieradeSistemas
FacultaddeIngeniera
UniversidaddeAntioquia
ArquitecturadeComputadoresyLaboratorioISI355(20112)
PrcticaNo.1
Diseoeimplementacindeunaunidadaritmticolgica(ALU)
1. Objetivo
Aplicarelprocesodediseodesistemasdigitalescombinacionales.
Emplearherramientasdesoftwareparaeldiseoylasimulacindesistemasdigitales.
2. Descripcin
LaALUesunodeloscomponentesfundamentalesdeuncomputadoryaqueseencarga
derealizaroperacionesaritmticasylgicassobredatosdeentradaovaloresproducidos
durantelaejecucindelosprogramas.SusmbolosemuestraenlaFigura1.
Figura1.SmboloquerepresentaunaALU
ElsentidoylafuncionalidaddelassealesdelaALUdelaFigura1eselsiguiente:
a,b: Operandosdeentrada.
ALUoperation: Sealdecontrolqueordenalaoperacinarealizarsobrelosoperandos
deentrada.
Result: Resultadodelaoperacin.
2
Zero: Salidaqueseactiva(seponeen1)cuandoResultesigualacero.
Overflow: Salida que se activa (se pone en 1) cuando la operacin produce un
desbordamiento.
Como la arquitectura MIPS que vamos a estudiar en la segunda parte del curso tiene un
tamao de palabra de 32 bits, construiremos una ALU con operandos de este tamao.
Para lograr este propsito, debemos permitir que la ALU soporte las operaciones AND,
OR,NOR,suma,restayactivesiesmenorque(setonlessthan,SLT)
1
.
GraciasalaregularidaddelasoperacionesquerealizaunaALU,unaALUconoperandos
de 32 bits puede construirse conectando 32 ALUs de 1 bit. Por lo tanto, seguiremos un
estilo diseo estructural y jerrquico, partiendo de componentes simples para lograr
otros ms complejos, y as hacer manejable la complejidad del problema. El proceso de
diseodelaALUde32bitsempieza,entonces,poreldiseodeunaALUde1bit.
ALUde1bit
LasoperacioneslgicasANDyORarealizarporlaALUsonmuysimplesporquemapean
directamente a componentes de hardware bsicos. La unidad lgica de 1 bit para las
operacionesANDyORtienelaformadescritaenelFigura2.Elmultiplexorseencargade
dirigiralasalidaelresultadodelaoperacinelegidasobrelosoperandosdeentrada.
Figura2.Unidadlgicade1bitparalasoperacionesANDyOR
Paraimplementarlaoperacindesumarequerimosdedosentradasparalosoperandosy
una salida para el resultado, adems de una entrada y una salida extras que harn las
veces de acarreos de entrada y salida, respectivamente. El objetivo es construir un
sumadorcompletode1bit,comoelquesemuestraenlaFigura3.
Conociendoelcomportamientodelaoperacindesuma,podemosconstruirunatablade
verdad que relaciona las entradas y salidas del sumador completo de 1 bit, tal como se
muestra en la Tabla 1. A partir de esta tabla, y empleando los mapas de Karnaugh, es
posible obtener expresiones lgicas minimizadas para las dos salidas del sumador
completode1bit(CarryOutySum).
1
Laoperacinsetonlessthancomparalosoperandosdeentrada,produciendoun1enlasalidaResultcuandoa
seamenorqueb(a<b).Encualquierotrocaso,produceun0.
3
Figura3.Vistadealtoniveldelsumadorcompletode1bit
Tabla1.Relacindeentradasysalidasparaelsumadorcompletode1bit
Figura4.ALUde1bitquerealizalasoperacionessuma,ANDyOR
4
ab=a+(b)=a+(b+1)
Para lograr que la ALU de 1 bit pueda restar, debemos tener la posibilidad de invertir la
entrada b y sumarle 1. Para invertir la entrada b podemos agregar una puerta NOT, y
usar un multiplexor para elegir entre el valor de b y su complemento, tal como se
muestra en la Figura 5, en donde la nueva seal Binvert es la seal de control de este
multiplexor. Para sumar el 1 que demanda el complemento a dos en caso de una
operacin de resta, podemos fijar un 1 en la entrada CarryIn, logrando el efecto
deseado.
Figura5.ALUde1bitquerealizalasoperacionessuma,resta,AND,OR
ParaimplementarlaoperacinNORpodemosreutilizarmuchodelhardwaredelaALUde
1bitdelaFigura5.RecordandoelteoremadeDeMorgan:
(a+b)=ab
Vemos que NOT (a OR b) equivale a (NOT a) AND (NOT b), y para calcular esto ltimo
disponemos de una puerta AND y del valor NOT b, de modo que slo requerimos del
complementodea.ParainvertirlaentradaapodemosagregarunapuertaNOT,yusarun
multiplexor para elegir entre el valor de a y su complemento, mediante la seal de
control Ainvert, tal como se muestra en la Figura 6. Por lo tanto, para realizar la
5
operacin NOT (a OR b) elegimos los valores a (haciendo Ainvert = 1) y b (haciendo
Binvert = 1), y tomamos como resultado aquel que produce la puerta AND. As
completamosunaALUde1bitquepuederealizarlasoperacionessuma,resta,AND,ORy
NOR,lacualseilustraenlaFigura6.
Figura6.ALUde1bitquerealizalasoperacionessuma,resta,AND,ORyNOR
ALUde32bits
LaALUde32bitssepuedeconstruirapartirdelencadenamientode32ALUsde1bit,tal
comoseilustraenlaFigura7,endondecadaALUde1bitaportaunbitalresultadode32
bits.ObservequeelacarreodesalidadelaALUquecalculaelbitmenossignificativodel
resultado(ALU0)sepropagaatravsdetodoelsumador.
AndebemoslograrquelaALUrealicelaoperacinsetonlessthan(SLT).Recordemos
queestaoperacinproduceun1cuandoa<b,y0enotrocaso.Porlotanto,enelcaso
deunaALUde32bits,laoperacinSLTajustatodoslosbitsdelresultadoa0,exceptoel
menossignificativo,elcualseajustadeacuerdoalresultadodelacomparacin.Paraque
laALUpuedarealizarlaoperacinSLT,esnecesarioexpandirelmultiplexordesalidade
laFigura6agregndoleunaentradaparaproducirelresultadodelaoperacinSLT.Esta
nueva entrada se denomina Less y se usa solamente en la operacin SLT, tal como se
puedeobservarenlaFigura8.
Figura7.ALUde32bitsconstruidaapartirde32ALUsde1bit
Figura8.ALUde1bitquerealizalasoperacionessuma,resta,AND,ORyNORyconunaentrada
directaparalaoperacinSLT
Para conformar el resultado de la operacin SLT necesitamos tomar el bit de signo del
resultadodelaoperacinab,elcualcorrespondealasalidadelsumadorcompletode1
bitdelaALUquecalculaelbitmssignificativodelresultado.LaFigura9ilustraelnuevo
diseo de la ALU de 1 bit necesaria para calcular el bit ms significativo del resultado.
7
Aqu,lasalidadelsumadorcompletode1bitsellevaalasalidaSet,usadasolamentepor
la operacin SLT. Como se necesita una ALU especial para el bit ms significativo,
tambin se considera aqu la lgica necesaria para la deteccin de la condicin de
desbordamiento (bloque Overflow detection), que calcula la salida Overflow. El
desbordamiento ocurre cuando el resultado de una operacin no puede representarse
con el hardware disponible. Por ejemplo, cuando se suman dos nmeros de 32 bits el
resultadopuederequerirde33bitsparaserrepresentadocorrectamente.Laausenciade
este bit extra significa que cuando ocurre un desbordamiento, el bit de signo del
resultadoesrealmenteelbitmssignificativodelmismo.LalgicadelbloqueOverflow
detectionsepuedeimplementardemuydiversasmaneras.
Figura9.ALUde1bitquerealizalasoperacionessuma,resta,AND,ORyNOR,conunaentradayuna
salidadirectasparalaoperacinSLT
La salida Zero de la ALU de la Figura 1 es una salida de 1 bit que se activa cuando el
resultado es igual a cero. Tal como se muestra en la Figura 11, esta condicin se detecta
medianteelbloqueZerodetection,elcualseencargadeanalizarelresultadoproducido
porlaALUde32bits,paragenerarlasalidaZero.
Considerando la Figura 10, observe que cada vez que deseamos que la ALU realice la
operacin de resta es necesario ajustar la entrada Binvert a 1 y asegurarnos de que el
acarreo de entrada de la ALU que calcula el bit menos significativo del resultado sea
igualmente 1. Cuando la ALU realiza las dems operaciones, ambas lneas de control
deben ser 0. Por consiguiente, podemos simplificar el control de la ALU mediante la
combinacin de las seales CarryIn (de la ALU que calcula el bit menos significativo del
8
resultado)yBinvertenunasolalneadecontrolllamadaBnegate,queser1cuandola
ALUdebacalcularunaresta,y0cuandolaALUdebarealizarotraoperacin.Demanera
similar, podemos combinar la seal Ainverter, la seal Bnegate y la seal de 2 bits
Operation en sola una seal de control de 4 bits para la ALU, que le indica calcular las
operaciones suma, resta, AND, OR, NOR y SLT, con la codificacin que se muestra en la
Tabla2.EnlaFigura11seilustralaformadefinitivadelaALUde32bits.
Figura10.ALUde32bitsquerealizalasoperacionessuma,resta,AND,OR,NORySLT
Tabla2.ValoresdelaslneasdecontroldelaALUde32bits(Ainvert,BnegateyOperation(2))ysu
correspondientefuncin
Figura11.ALUde32bitsquerealizalasoperacionessuma,resta,AND,OR,NORySLT,consalidasZero
yOverflow
3. Procedimiento
Cadagrupodetrabajoseguirladescripcindelnumeralanteriorparaimplementaruna
ALU de 32 bits. El diseo se har siguiendo un estilo de diseo estructural en el que se
diseanbloquesbsicosqueluegosoninstanciadosparacrearotrosmscomplejosyde
mayornivelenlajerarquadediseo.
Laestructuraaniveldebloques(endiferentesnivelesdelajerarquadediseo)quedebe
tenerlaALUde32bitseslasiguiente:
ALU32bits(Figura1)
ALU1bit(Paralos31bitsmenossignificativos.VerFigura8)
ALU1bit(Paraelbitmssignificativo.VerFigura9)
10
Overflow detection (Bloque para detectar el desbordamiento en el bit ms
significativo.VerFigura9)
Zerodetection(BloqueparagenerarlasalidaZero.VerFigura11)
Sumadorcompletode1bit(BloqueparaimplementarlasALUsde1bit.VerFigura3)
Multiplexor4:1(ParaelegirelresultadodelaoperacindelasALUsde1bit)
Para el diseo del sumador completo de 1 bit se deben obtener las expresiones lgicas
minimizadasparasussalidasempleandomapasdeKarnaugh,partiendodeladescripcin
funcionalquesemuestraenlaTabla1.
LaimplementacindelosbloquesOverflowdetectionyZerodetectionsedeberealizar
mediantecompuertaslgicasbsicas,documentandoampliamentesudiseo.
LosdemselementosnecesariosparaimplementarlaALUde32bitsserntomadosdela
bibliotecadecomponentesdeLogisim.
LaALUde32bitstienequesersimuladaexhaustivamenteconlamismaherramientapara
verificarsucorrectofuncionamiento.Especialatencinsedebedaralaverificacindela
deteccincorrectadelascondicionesdedesbordamiento.
4. Informe
Cada equipo debe realizar un informe escrito que incluya una descripcin completa del
procesodediseodelaALUde32bits,losesquemticosdelosdiferentescomponentes
del diseo, una simulacin exhaustiva del mismo, y las observaciones y conclusiones del
trabajo.
5. Sustentacin
Diseojerrquicodecircuitoscombinacionales.
SimplificacindeexpresioneslgicasmediantemapasdeKarnaugh
Deteccindeldesbordamientoenoperacionesaritmticas.
ManejodelaherramientaLogisim.
11
6. Evaluacin
7. Materialdesoporte
LaherramientaLogisimsepuededescargaraqu:
http://ozark.hendrix.edu/~burch/logisim