sistemas digitales

7
Diseño, Implementación y Simulación de un Circuito en Lógica Combinacional. Nombre y apellidos: MOHAMED CHEMLAL DNI: X-6319315-L Asignatura: SISTEMAS DIGITALES Centro Asociado: MELILLA Enunciado A-E-1_015: 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 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 señal P2, la operación que debe realizar es la operación aritmética sin acarreo A PLUS B. 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 entonces debe hacer la operación aritmética con arrastre A PLUS 1. e) Si las señales son todas cero (ninguna es prioritaria) entonces la ALU debe ponerse a 0. Diseñe el circuito codificador con prioridad y úselo para controlar las operaciones de la ALU que se han especificado.

Transcript of sistemas digitales

Page 1: sistemas digitales

Diseño, Implementación y Simulación de un Circuito en

Lógica Combinacional.

• Nombre y apellidos: MOHAMED CHEMLAL

• DNI: X-6319315-L

• Asignatura: SISTEMAS DIGITALES

• Centro Asociado: MELILLA

Enunciado A-E-1_015: 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 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 señal P2, la operación que debe realizar es

la operación aritmética sin acarreo A PLUS B.

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 entonces debe hacer la operación aritmética

con arrastre A PLUS 1.

e) Si las señales son todas cero (ninguna es prioritaria) entonces la ALU

debe ponerse a 0.

Diseñe el circuito codificador con prioridad y úselo para controlar las

operaciones de la ALU que se han especificado.

Page 2: sistemas digitales

Diseño del circuito de control de la ALU. Codificador con prioridad.

Para el diseño de este circuito codificador de prioridad disponemos de 3 entradas P2, P1 y P0

las cuales corresponden a los pulsos de reloj DSTM1, DSTM2 y DSTM3 respectivamente, y

cuya prioridad es P2>P1>P0

Según 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.

Matemáticamente podemos expresar el circuito de la siguiente forma:

S1 = P2 + P1 y S2 = P2 + [ inv(P1) • P0 ]

cuya tabla de verdad teórica sería:

P2 P1 P0 S1 S2 Op. en la ALU

0 0 0 0 0 Cero

1 x x 1 1 A PLUS B

0 1 x 1 0 A + B

0 0 1 0 1 A PLUS 1

Donde x puede tomar el valor 1 o 0 independientemente, ya que el valor 1 marca la prioridad

P2>P1>P0.

El circuito que representa las dos ecuaciones anteriores es el siguiente:

La programación ha sido realizada de la siguiente forma:

Page 3: sistemas digitales

• 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

simulación es el siguiente:

Para DSTM1=P2, DSTM2=P1, DSTM3=P0, U1A=S1, U2A=S2, 1 = Alta y 0= Baja tenemos que:

Periodo P2 P1 P0 S1 S2 Op. ALU

De 0 a 1ms 0 0 0 0 0 Cero

De 1 a 2ms 1 0 0 1 1 A PLUS B

De 2 a 3ms 0 1 0 1 0 A + B

De 3 a 4ms 1 1 1 1 1 A PLUS B

De 4 a 5ms 0 0 1 0 1 A PLUS 1

De 5 a 6ms 1 0 1 1 1 A PLUS B

Se puede observar que los resultados de la tabla de verdad práctica coinciden con los de la tabla de verdad

teórica.

Diseño del circuito final. Codificador con prioridad + ALU.

Page 4: sistemas digitales

Según el enunciado, el circuito final tiene que realizar cuatro operaciones, una lógica ( A+B) y tres

aritméticas (A PLUS B, A PLUS 1, Cero ). Para seleccionar la operación la ALU dispone de 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.

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 S2 S1 S0 M CN

Cero 0 0 1 1 0 0

A PLUS B 1 0 0 1 0 1

A + B 1 1 1 0 1 X

A PLUS 1 0 0 0 0 0 0

Donde X puede tomar el valor 1 o 0 independientemente, ya que las operaciones lógicas no tienen acarreo.

La selección de operación de la ALU depende del circuito codificador con prioridad diseñado 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

selección de la ALU. De esta forma tenemos la tabla de verdad del codificador de prioridad de la siguiente forma:

P2 P1 P0 C1 C2 Op. en la ALU

0 0 0 0 0 Cero

1 x x 1 1 A PLUS B

0 1 x 1 0 A + B

0 0 1 0 1 A PLUS 1

Según 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 relación se puede expresar matemáticamente 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 añadido 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

matemáticas arriba expuestas y se seleccionen las operaciones correctas de la ALU en función de los valores

de C1 y C2.

El circuito final queda de la siguiente forma:

Page 5: sistemas digitales

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 simulación 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

simulación es el siguiente:

Page 6: sistemas digitales

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 simulación cada 1 ms :

S. Prioridad S. selección de op. ALU Operandos ALU Resultados ALU

Periodo P2 P1 P0 S3 S2 S1 S0 M CN A0 A1 B0 B1 F3 F2 F1 F0

0 a 1ms 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0

1 a 2ms 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1

2 a 3ms 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0

3 a 4ms 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1

4 a 5ms 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1

5 a 6ms 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 0

6 a 7ms 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1

7 a 8ms 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 0

8 a 9ms 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0

9 a 10ms 1 0 1 1 0 0 1 0 1 1 0 0 1 0 0 1 1

10 a 11ms 0 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0

11 a 12ms 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1

12 a 13ms 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0

13 a 14ms 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0

14 a 15ms 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1

15 a 16ms 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0

Page 7: sistemas digitales

Se puede observar que las señales de selección de operación son las correctas para cada valor de las

señales de prioridad, ya que coinciden en la simulación y en las tablas teóricas 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

operación en la simulación:

• Puesta a cero de la ALU:

Periodo P2 P1 P0 S3 S2 S1 S0 M CN A0 A1 B0 B1 F3 F2 F1 F0

12 a 13ms 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 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 P2 P1 P0 S3 S2 S1 S0 M CN A0 A1 B0 B1 F3 F2 F1 F0

11 a 12ms 1 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 1

En sistema decimal se observa que para A=3 y B=2 → F=5, se ha realizado la suma aritmética

correctamente.

• A + B cuando P2=0 y P1=1:

Periodo P2 P1 P0 S3 S2 S1 S0 M CN A0 A1 B0 B1 F3 F2 F1 F0

14 a 15ms 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1

Para A=0010 y B=0011 → F=0011, se ha realizado el OR lógico correctamente.

• A PLUS 1 cuando P2=0, P1=0 y P0=1:

Periodo P2 P1 P0 S3 S2 S1 S0 M CN A1 A0 B1 B0 F3 F2 F1 F0

4 a 5ms 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1

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 diseñado coinciden con los resultados teóricos 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.