Documente Academic
Documente Profesional
Documente Cultură
Enunciado A-E-1_015: Disponemos de tres seales P2, P1 y P0 con las que queremos controlar el funcionamiento de una Unidad Aritmtico Lgica, pero la programacin de la ALU no depende directamente de estas seales sino de la prioridad de estas seales. As, el criterio de prioridad de las seales es P2>P1>P0 y las operaciones de las palabras de 4 bits que debe realizar la ALU son las siguientes: a) Si la prioridad es de la seal P2, la operacin que debe realizar es la operacin aritmtica sin acarreo A PLUS B. b) Si la prioridad es de la seal P1 entonces debe realizar la operacin lgica A+B. c) Si la prioridad es de P0 entonces debe hacer la operacin aritmtica con arrastre A PLUS 1. e) Si las seales son todas cero (ninguna es prioritaria) entonces la ALU debe ponerse a 0. Disee el circuito codificador con prioridad y selo para controlar las operaciones de la ALU que se han especificado.
S2 = P2 + [ inv(P1) P0 ]
0 1 0 0
0 x 1 0
0 x x 1
0 1 1 0
0 1 0 1
Cero
A PLUS B A+ B A PLUS 1
Donde x puede tomar el valor 1 o 0 independientemente, ya que el valor 1 marca la prioridad P2>P1>P0.
DSTM1: ONTIME=1ms / OFFTIME=1ms DSTM2: ONTIME=2ms / OFFTIME=2ms DSTM3: ONTIME=3ms / OFFTIME=3ms y en Analysis Setup Transient he configurado:
Print Setup = 2ns Final Time = 6ms (Para que de tiempo a las tres entradas a estar en baja y en alta) El resultado de dicha
simulacin es el siguiente:
Para DSTM1=P2, DSTM2=P1, DSTM3=P0, U1A=S1, U2A=S2, 1 = Alta y 0= Baja tenemos que:
P2 0 1 0 1 0 1
P1 0 0 1 1 0 0
P0 0 0 0 1 1 1
S1 0 1 1 1 0 1
S2 0 1 0 1 1 1
Op. ALU
Cero
A PLUS B A+B A PLUS B A PLUS 1 A PLUS B
Se puede observar que los resultados de la tabla de verdad prctica coinciden con los de la tabla de verdad terica.
Segn el enunciado, el circuito final tiene que realizar cuatro operaciones, una lgica ( A+B) y tres aritmticas (A PLUS B, A PLUS 1, Cero ). Para seleccionar la operacin la ALU dispone de cuatro entradas de seleccin S3, S2, S1 y S0; una entrada M para seleccionar el tipo de funcin (Aritmtica o Lgica); y una entrada CN para seleccionar si la operacin es con acarreo o no. Siendo 1=H (Alta) y 0=L(Baja) y teniendo en cuenta las especificaciones de la ALU SN74181, para seleccionar las operaciones indicadas en el enunciado, las entradas de la ALU tienen que tomar los siguientes valores:
Op. ALU S3 0 1 1 0 S2 0 0 1 0 S1 1 0 1 0 S0 1 1 0 0 M 0 0 1 0 CN 0 1 X 0
Cero
A PLUS B A+ B A PLUS 1
Donde X puede tomar el valor 1 o 0 independientemente, ya que las operaciones lgicas no tienen acarreo. La seleccin de operacin de la ALU depende del circuito codificador con prioridad diseado previamente, el cual, dependiendo de tres entradas (P), obtiene dos salidas (S) que codifican las operaciones que realizar la ALU. A partir de ahora, las salidas del codificador las llamar C1 y C2 para que no se confundan con las entradas de seleccin de la ALU. De esta forma tenemos la tabla de verdad del codificador de prioridad de la siguiente forma:
P2 0 1 0 0 P1 0 x 1 0 P0 0 x x 1 C1 0 1 1 0 C2 0 1 0 1 Op. en la ALU
Cero
A PLUS B A+ B A PLUS 1
Segn el valor de C1 y C2 las entradas de la ALU S3, S2, S1, S0, M y CN tienen que tomar los valores indicados anteriormente. Esta relacin se puede expresar matemticamente de la siguiente forma: S3 = C1 S2 = C1 inv(C2) S1 = inv(C2) S0 = [ inv(C1) + C2 ] [ C1 + inv(C2) ] M = C1 inv(C2) CN = C1 Para sintetizar las anteriores ecuaciones he aadido entre el circuito codificador y la ALU dos puertas inversoras, una para C1 y otra para C2, y otras dos puertas OR y AND para poder representar las relaciones matemticas arriba expuestas y se seleccionen las operaciones correctas de la ALU en funcin de los valores de C1 y C2. El circuito final queda de la siguiente forma:
A los operandos de la ALU A y B, como se recomienda en el texto de la actividad, les he puesto los dos bits menos significativos (A3, A2, B3 y B2) en baja (0) y a los mas significativos (A0, A1, B0 y B1) les he asignado los generadores de pulso DSTM4, DSTM5, DSTM6 y DSTM7 respectivamente. Para realizar la simulacin de este circuito he programado los relojes de la siguiente forma: DSTM1: ONTIME=1ms / OFFTIME=1ms DSTM2: ONTIME=2ms / OFFTIME=2ms DSTM3: ONTIME=3ms / OFFTIME=3ms DSTM4: ONTIME=1ms / OFFTIME=1ms DSTM5: ONTIME=2ms / OFFTIME=2ms DSTM6: ONTIME=4ms / OFFTIME=4ms DSTM7: ONTIME=8ms / OFFTIME=8ms y en Analysis Setup Transient he configurado: Print Setup = 2ns Final Time = 16ms (Para que de tiempo a todas las entradas a estar en baja y en alta) el resultado de dicha
simulacin es el siguiente:
Para
DSTM1=P2,
DSTM2=P1,
DSTM3=P0,
DSTM4=A0,
DSTM5=A1,
DSTM6=B0,
DSTM7=B1, A3=A2=B3=B2=0, U2:Fbar0=F0, U2:Fbar1=F1, U2:Fbar2=F2, U2:Fbar3=F3, 1 = Alta y 0 = Baja, tenemos los siguientes resultados en la simulacin cada 1 ms :
S. Prioridad Periodo 0 a 1ms 1 a 2ms 2 a 3ms 3 a 4ms 4 a 5ms 5 a 6ms 6 a 7ms 7 a 8ms 8 a 9ms 9 a 10ms 10 a 11ms 11 a 12ms 12 a 13ms 13 a 14ms 14 a 15ms 15 a 16ms P2 P1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 P0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1
Operandos ALU 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Resultados ALU F2 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 F1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 F0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
M CN A0 A1 B0 B1 F3
Se puede observar que las seales de seleccin de operacin son las correctas para cada valor de las seales de prioridad, ya que coinciden en la simulacin y en las tablas tericas antes expuestas, por lo tanto la ALU esta realizando correctamente las operaciones solicitadas en el enunciado. Para comprobarlo vamos a ver el estado de las entradas y de las salidas en un periodo de 1ms de cada operacin en la simulacin: Puesta a cero de la ALU:
Periodo 12 a 13ms
P2 P1 0 0
P0 0
S3 0
S2 0
S1 1
S0 1
M CN A0 A1 B0 B1 F3 0 0 0 0 1 1 0
F2 0
F1 0
F0 0
En sistema decimal se observa que para P=0 F=0 independientemente del valor de A y de B. A PLUS B cuando P2=1:
Periodo 11 a 12ms
P2 P1 1 1
P0 1
S3 1
S2 0
S1 0
S0 1
M CN A0 A1 B0 B1 F3 0 1 1 1 0 1 0
F2 1
F1 0
F0 1
En sistema decimal se observa que para A=3 y B=2 F=5, se ha realizado la suma aritmtica correctamente. A + B cuando P2=0 y P1=1: P2 P1 0 1 P0 0 S3 1 S2 1 S1 1 S0 0 M CN A0 A1 B0 B1 F3 1 1 0 1 1 1 0 F2 0 F1 1 F0 1
Periodo 14 a 15ms
Para A=0010 y B=0011 F=0011, se ha realizado el OR lgico correctamente. A PLUS 1 cuando P2=0, P1=0 y P0=1: P2 P1 0 0 P0 1 S3 0 S2 0 S1 0 S0 0 M CN A1 A0 B1 B0 F3 0 0 0 0 1 0 0 F2 0 F1 0 F0 1
Periodo 4 a 5ms
En sistema decimal se observa que para A=0 F=1, se le ha sumado 1 a A correctamente. Concluyendo, los resultados finales del circuito diseado coinciden con los resultados tericos que se proponen en el enunciado, y la ALU est realizando correctamente, en cada caso, las operaciones solicitadas dependiendo del estado de los bits de prioridad P2, P1 y P0.