Вы находитесь на странице: 1из 8

PRIMERA ACTIVIDAD EVALUABLE

1: Asignatura: FUNDAMENTOS de SISTEMAS DIGITALES

2: Título de la Actividad:
Diseño, Implementación, Simulación y Validación de un Circuito en Lógica Combinacional

3: Datos personales:
- Nombre y Apellidos: Jorge Pérez Tester
- DNI:
- Nº de matrícula:
- Centro asociado: Alzira – Valencia (Valencia) Francisco Tomás Y Valiente.

4: Código de la actividad que le ha correspondido realizar: A-E-1-080

5: Enunciado.

Enunciado A-E-1-080

Disponemos de tres señales P2, P1 y P0 con las que queremos controlar el funcionamiento de una
Unidad Aritmético Lógica, pero la programación de la ALU no depende directamente de estas
señales sino de la prioridad de estas señales. Así el criterio de prioridad de las señales es
P0>P1>P2 y las operaciones de las palabras de 4 bits que debe realizar la ALU son las siguientes:
a) Si la prioridad es de la señal P2 la operación que debe realizar es la operación aritmética sin
acarreo A PLUS AB.
b) Si la prioridad es de la señal P1 entonces debe realizar la operación lógica A ⊕ B .
c) Si la prioridad es de P0 debe hacer la operación aritmética con arrastre A MINUS B.
d) Por último, si las señales son todas cero y ninguna es prioritaria entonces la ALU debe
ponerse a 0.

Diseñe el circuito del codificador y úselo para controlar las operaciones de la ALU que se han
especificado.
Apellidos, nombre: Pérez Tester, Jorge
DNI: 33465980Z A-E-1-080

DISEÑO DEL CIRCUITO DE CONTROL DE LA ALU. CODIFICADOR CON PRIORIDAD

Para el diseño de este circuito codificador con prioridad disponemos de tres entradas P2, P1 y P0, cuya prioridad
es P0>P1>P2. Según los valores de entrada podemos tener cuatro valores de salida que corresponden a cada
una de las operaciones que realizará la ALU. Para representar estos cuatro estados nos basta con tener dos
líneas de salida del circuito, Y1 y Y0.

La tabla de verdad teórica del circuito codificador sería:

P2 P1 P0 Y1 Y0 Operación
0 0 0 0 0 Cero
x x 1 1 1 A MINUS B
x 1 0 1 0 A⊕B
1 0 0 0 1 A PLUS AB

Por inspección de tabla obtenemos:

Y1 = P0 + P1 Y0 = P0 + P1 * P2

Esto nos da el circuito codificador siguiente: CodPrioridad.sch

Para realizar la simulación del circuito y generar las diferentes combinaciones, programamos los relojes con los
siguientes valores:

DSTM0: ONTIME = 1ms / OFFTIME = 1ms


DSTM1: ONTIME = 2ms / OFFTIME = 2ms
DSTM2: ONTIME = 3ms / OFFTIME = 3ms

2
Apellidos, nombre: Pérez Tester, Jorge
DNI: 33465980Z A-E-1-080

Y el apartado Analysis Setup lo configuramos como se indica a continuación:

FINAL TIME: 6ms (este tiempo es suficiente para que en los tres secuencias se den todas las combinaciones
posibles).
PRINT STEP: 2ns (utilizamos un valor pequeño para descartar valores confusos en la gráfica).
Las entradas P2, P1 y P0 corresponden a los pulsos de reloj DSTM2, DSTM1 y DSTM0, mientras que las salidas
del circuito Y1 e Y0 corresponden a U2A y U1A respectivamente.
El resultado de la simulación del circuito es el siguiente:

Y obtenemos la tabla de verdad práctica respecto a la gráfica resultante:

Periodo P2 P1 P0 Y1 Y0 ALU
0-1ms 0 0 0 0 0 Cero
1-2ms 0 0 1 1 1 A MINUS B
2-3ms 0 1 0 1 0 A ⊕ B
3-4ms 1 1 1 1 1 A MINUS B
4-5ms 1 0 0 0 1 A PLUS AB
5-6ms 1 0 1 1 1 A MINUS B

Los resultados obtenidos de la tabla de verdad teórica son los mismos que los de la tabla de verdad práctica.

3
Apellidos, nombre: Pérez Tester, Jorge
DNI: 33465980Z A-E-1-080

DISEÑO DEL CIRCUITO FINAL. CODIFICADOR CON PRIORIDAD Y ALU SN74181

El circuito final debe realizar cuatro operaciones distintas, una lógica ( A ⊕ B ), y tres aritméticas (A PLUS AB, A
MINUS B con acarreo, y Cero). Para seleccionar la operación, la ALU presenta cuatro entradas de selección: S3,
S2, S1 y S0, una entrada M para seleccionar el tipo de función (Aritmética o lógica), y una entrada Cn para
seleccionar si la operación es con acarreo o no.
Para poder seleccionar las operaciones requeridas por la actividad, las entradas de la ALU deben de tomar los
siguientes valores (teniendo en cuenta las especificaciones de la ALUSN74181):

S3 S2 S1 S0 M Cn Operación
0 0 1 1 0 0 Cero
0 1 1 0 0 1 A MINUS B
1 0 0 1 1 X A⊕B
1 0 0 0 0 0 A PLUS AB

Como las operaciones lógicas no contemplan el acarreo, X puede tomar tanto el valor cero como el valor uno.

La selección de la operación de la ALU depende del circuito codificador con prioridad que hemos diseñado
anteriormente, el cual, dependiendo de tres entradas obtiene dos salidas que codifican las diferentes operaciones
que realizará la ALU.
Según el valor de Y1 e Y0 de la tabla de verdad teórica del codificador, las entradas de la ALU deben de tomar los
valores indicados anteriormente. La relación entre ambos circuitos queda expresada de la siguiente manera:

S3 = (Y1 * Y0) + (Y1 * Y0)

S2 = Y1 * Y0

S1 = ((Y1 * Y0) + (Y1 * Y0))

S0 = Y0

M = Y1 * Y0

Cn = Y1

Estas funciones quedarán sintetizadas en el circuito final, entre la salida del codificador de prioridad y la entrada
de la ALU.

4
Apellidos, nombre: Pérez Tester, Jorge
DNI: 33465980Z A-E-1-080

El circuito final que obtenemos es el siguiente: CircuitoFinal.sch

2
1.- S3 = (Y1 * Y0) + (Y1 * Y0)

2.- S2 = Y1 * Y0
1

3.- S1 = ((Y1 * Y0) + (Y1 * Y0))

4.- S0 = Y0

5.- M = Y1 * Y0 5
6
6.- Cn = Y1

A los operandos de la ALU A2, A3, B1 y B3 les asignamos los dos bits menos significativos en baja (0), y a los
restantes, A0, A1, B0 y B1 les asignamos los relojes DSTM3, DSTM4, DSTM5 y DSTM6 respectivamente.

Para realizar la simulación del circuito programamos los relojes de la siguiente manera:

DSTM0: ONTIME = 1ms / OFFTIME = 1ms


DSTM1: ONTIME = 2ms / OFFTIME = 2ms
DSTM2: ONTIME = 3ms / OFFTIME = 3ms
DSTM3: ONTIME = 1ms / OFFTIME = 1ms
DSTM4: ONTIME = 2ms / OFFTIME = 2ms
DSTM5: ONTIME = 4ms / OFFTIME = 4ms
DSTM6: ONTIME = 8ms / OFFTIME = 8ms

5
Apellidos, nombre: Pérez Tester, Jorge
DNI: 33465980Z A-E-1-080

Y el apartado Analysis Setup lo configuramos como se indica a continuación:

FINAL TIME: 16ms (para que de tiempo a todas las entradas a estar en alta y en baja).
PRINT STEP: 2ns

El resultado de la simulación es el siguiente:

Donde tenemos las siguientes correspondencias:

Entradas del codificador:


DSTM0 = P0 DSTM1 = P1 DSTM2 = P2

Operandos de la ALU:
DSTM3 = A0 DSTM4 = A1 DSTM5 = B0 DSTM6 = B1

Salidas de la ALU:
U5Fbar0 = F0 U5Fbar1 = F1 U5Fbar2 = F2 U5Fbar3 = F3

6
Apellidos, nombre: Pérez Tester, Jorge
DNI: 33465980Z A-E-1-080

Señal
Selección Operación ALU Operandos ALU Salidas ALU
Periodo Prioridad Operación
P2 P1 P0 S3 S2 S1 S0 M Cn A0 A1 B0 B1 F3 F2 F1 F0
0-1ms 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 Cero
1-2ms 0 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 A MINUS B
2-3ms 0 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 A ⊕ B
3-4ms 1 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 0 A MINUS B
4-5ms 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 A PLUS AB
5-6ms 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 A MINUS B
6-7ms 0 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 A ⊕ B
7-8ms 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 A MINUS B
8-9ms 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 Cero
9-10ms 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 A MINUS B
10-11ms 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 A ⊕ B
11-12ms 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 A MINUS B
12-13ms 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 Cero
13-14ms 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 0 1 A MINUS B
14-15ms 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 A ⊕ B
15-16ms 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 A MINUS B

Se puede observar que las señales de selección de operación de la ALU (S3, S2, S1 y S0) son correctas para
cada valor de las señales de prioridad (P2, P1 y P0), coincidiendo tanto en la simulación como en las tablas
teóricas.
Para comprobar que la ALU realiza correctamente las operaciones indicadas en la actividad, escogemos un
periodo correspondiente a cada una de las operaciones realizadas, y verificamos que sea cierto:

• Si la prioridad es de P0 debe hacer la operación aritmética con arrastre A MINUS B.

En el periodo 7 - 8ms:

P2 P1 P0 S3 S2 S1 S0 M Cn A0 A1 B0 B1 F3 F2 F1 F0
0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1

La operación aritmética A MINUS B con arrastre para los valores A = 3 y B = 1 da como resultado F = 2 ( 3 – 1
– 1 = 1), por lo que es correcto.

7
Apellidos, nombre: Pérez Tester, Jorge
DNI: 33465980Z A-E-1-080

• Si la prioridad es de la señal P1 entonces debe realizar la operación lógica A ⊕ B .

En el periodo 6 - 7ms:

P2 P1 P0 S3 S2 S1 S0 M Cn A0 A1 B0 B1 F3 F2 F1 F0
0 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0

La operación lógica A ⊕ B para los valores A = 0010 y B = 0001 da como resultado F = 1100, por lo que es
correcto.

• Si la prioridad es de la señal P2 la operación que debe realizar es la operación aritmética sin


acarreo A PLUS AB.

En el periodo 4-5ms:

P2 P1 P0 S3 S2 S1 S0 M Cn A0 A1 B0 B1 F3 F2 F1 F0
1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1

La operación aritmética A PLUS AB para los valores A = 0 y B = 1, da como resultado F = 1, siendo correcto

• Por último, si las señales son todas cero y ninguna es prioritaria entonces la ALU debe ponerse
a 0.

En el periodo 0-1ms:

P2 P1 P0 S3 S2 S1 S0 M Cn A0 A1 B0 B1 F3 F2 F1 F0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0

Para los valores P = 0 la salida F = 0, resultando correcto.

Siendo así, la ALU realiza correctamente las operaciones solicitadas dependiendo de la prioridad de las señales
de entrada P0>P1>P2.

Вам также может понравиться