You are on page 1of 7

PRIMERA ACTIVIDAD EVALUABLE

1: Asignatura: FUNDAMENTOS de SISTEMAS DIGITALES

2: Ttulo de la Actividad:
Diseo, Implementacin, Simulacin y Validacin de un Circuito en Lgica
Combinacional

3: Datos personales:
- Nombre y Apellidos: Alejandro Domnguez Al-lal
- DNI: 45312176Z
- Centro asociado: Centro Asociado de Melilla

4: Cdigo de la actividad que le ha correspondido realizar: A-E-1-076

5: Enunciado.

Enunciado

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>P0>P1 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 AB.
b) Si la prioridad es de la seal P1 entonces debe realizar la operacin lgica A B .
c) Si la prioridad es de P0 debe hacer la operacin aritmtica con arrastre A PLUS B
PLUS 1.
d) Por ltimo, si las seales son todas cero y ninguna es prioritaria entonces la ALU
debe ponerse a 1.

Disee el circuito del codificador y selo para controlar las operaciones de la ALU que se
han especificado.

SOLUCIN:

6: Diseo de los distintos bloques funcionales (para cada uno de los bloques debe
presentar: la tabla de verdad terica, las expresiones lgicas de las variables de
salidas y explicar el diseo realizado).
7: Implementacin de cada uno de los bloques funcionales en el simulador PSpice
(para cada uno de los bloques debe presentar: el esquema, el cronograma resultante
y la verificacin de que su funcionamiento es el deseado).

8: Descripcin de los parmetros usados en la implementacin final de cada bloque


(debe presentar los tiempos de los generadores de pulsos que ha usado para probar
cada uno de los circuitos).

9: Implementacin del circuito completo en el simulador PSpice (debe unir todos


los bloques y presentar: el esquema, el cronograma resultante y la verificacin de
que la ALU realiza las operaciones pedidas de acuerdo con las condiciones de
control).
Para la verificacin debe usar las palabras:
P (P2P1P0) = (101), (011), (001), (000)
Y como datos sobre los que opera la ALU, las palabras:
A (A3A2A1A0) = (1011)
B (B3B2B1B0) = (0110)
10: Comentarios: Explique los problemas/dificultades encontrados y la forma y
procedimiento por el que los ha resuelto.
6: BLOQUES FUNCIONALES

Codificador
Circuito Adjunto: Codificador.sch

Para el diseo de este circuito codificador de prioridad disponemos de 3 entradas P2, P1


y P0 las cuales corresponden a los pulsos de reloj P2, P1 y P0 respectivamente, y cuya
prioridad es P2>P1>P0

Segn los valores de entrada podemos tener cuatro estados de salida que corresponden a
cada una de las operaciones que realizar la ALU. Para representar estos cuatro estados
nos basta tener dos bits
o lineas de salida del circuito, S1 y S2, las cuales corresponden a las salidas de U1A y
U2A respectivamente.

Matemticamente podemos expresar el circuito de la siguiente forma:

C1=P2+P1 C0=P2+(invP1*P0)

Cuya tabla de verdad es la siguiente


P2 P1 P0 C1 C0
0 0 0 0 0
0 0 1 0 1
0 1 X 1 0
1 X X 1 1

En este caso, las casillas con X indican que no nos importa si valor, pues la prioridad la
marca el mayor 1 del orden de prioridad (P2>P1>P0)

Siendo su representacin en circuito y su cronograma

Como podemos comprobar, los valores se cumplen para todos los casos representados
en la tabla de verdad.
Valores para los relojes y la simulacion
P2: ONTIME=1ms / OFFTIME=1ms
P1: ONTIME=2ms / OFFTIME=2ms
P0: ONTIME=4ms / OFFTIME=4ms

y en Analysis Setup Transient he configurado:


Print Setup = 2ns
Final Time = 20ms (Para que d tiempo a las tres entradas a estar en baja y en alta)

Para esta demostracion solo tomaremos los primeros 8 intervalos, por ofrecer estos una muestra
suficiente.

Intervalo P2 P1 P0 C1 C0 Operacin
0-1ms 0 0 0 0 0 1
1-2ms 1 0 0 1 1 A Plus AB
2-3ms 0 1 0 1 0 A*B
3-4ms 1 1 0 1 1 A Plus AB
4-5ms 0 0 1 0 1 A Plus B Plus 1
5-6ms 1 0 1 1 1 A Plus AB
6-7ms 0 1 1 1 0 A*B
7-8ms 1 1 1 1 1 A Plus AB

Diseo final: Codificador + ALU

Fichero adjunto: codificador completo con ALU.sch

Segn el enunciado, dependiendo de la prioridad, debemos realizar las siguientes operaciones

OP ALU S3 S2 S1 S0 M Cn

1 1 1 0 0 1 X
A plus B plus 1 1 0 0 1 0 0

A*B 0 0 1 0 1 X
A plus AB 1 0 0 0 0 1

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 (C) que codifican las
operaciones que realizar la ALU.
Segn el valor de C1 y C0 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*C0)+(C1*C0)+C1C0
S2 = C1*C0
S1 = C1*C0
S0 = C1*C0
M = C1*C0+C1*C0
CN = C1*C0

Para sintetizar las anteriores ecuaciones he aadido entre el circuito codificador y la ALU dos
puertas inversoras, una para C1 y otra para C0, y otras tres puertas OR y ocho 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 C0

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 (A2, B3 y B0) en baja (0) y a los mas significativos (A0, A1,
B0 y B1) los he dejado fijo, para facilitar la interpretacin de la tabla, asi como las
comprobaciones de las operaciones.

Su cronograma quedara de la siguiente manera

Y la tabla de verdad seria la que sigue


En este caso, los colores indican la prioridad de la sea, siendo estos colores azul para ninguna
prioridad (todas las seales apagadas), verde para P2, amarillo para P1 y gris para P0.

Viendo la tabla, podemos comprobar como todas las operaciones se realizan de manera correcta,
seleccionado correctamente la prioridad en cada operacin.

Ademas, como seales de control dadas en el enunciado, comprobamos que se realizan


correctamente, siendo estos testigos los que siguen:
Para (P2, P1, P0) = (1,0,1)

Como podemos comprobar, el resultado es correcto, puesto que (1,0,1,1) + (1,0,1,1)*(0,1,1,0)


da como resultado (1,0,1,1)+(0,0,1,0)=(1,0,1,1)
Para (P2, P1, P0) = (0,1,1)

Como podemos comprobar: A*B es (0,1,0,0)*(0,1,1,0)=(0,1,0,0) como se muestra


Para (P2, P1, P0) = (0,0,1)

Como podemos comprobar: A PLUS B PLUS 1 (1,0,1,1)+(0,1,1,0)+1 con acarreo, da el


resultado (0,0,1,0)
Para (P2, P1, P0) = (0,0,0)
Como podemos comprobar, cuando todas las seales estn a cero, la ALU, automticamente
pone todos los valores a 1, pues (1,0,1,1)+(0,1,1,0)=(1,1,1,1)

Comentarios
Para esta practica, la mayor dificultad que he encontrado ha sido la representacin de la seal
S3, puesto que a la hora de sacar la funcin lgica por mapas de Karnaugh, mostraba la
posibilidad de usar una puerta XOR negada, lo cual provocaba que esta salida no mostrara los
resultados correctos

You might also like