• No se han encontrado resultados

Complementador. Corrector. 1) ai ci Si Ci a 2. a i. a 1. a n C 1 =1. c i C 2. C n C 3. c i+1. C n+1 S 2 S 1.

N/A
N/A
Protected

Academic year: 2021

Share "Complementador. Corrector. 1) ai ci Si Ci a 2. a i. a 1. a n C 1 =1. c i C 2. C n C 3. c i+1. C n+1 S 2 S 1."

Copied!
63
0
0

Texto completo

(1)

1) an an-1 …..ai a2 a1 2)

Sólo se dispone de resgistros de 4 bits, por ello: FORMULA A UTILIZAR PARA CALCULO DEL REGISTRO:

[–2

n-1

, 2

n-1

-1]; donde n= número de bits

 TAMAÑO REGISTRO

El rango de valores con los uqe se puede trabajar internamente es [-8, 7 ], por lo tanto los valores máximo y mínimo de A y B deberán estar comprendidos en ese rango.Como A y B deben ser positivos, el valor máximo deberá ser 7, es decir el bit de mayor peso de la entrada será 0.

ai ci Si Ci+1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 ai ci ci+1 Si a2 C2 C3 S2 a1 C1=1 C2 S1 an Cn Cn+1 Sn I4 I3 I2 I1 B3 B2 B1 B0

7483

Complementador

R4 R3 R2 R1 R0 A3 A2 A1 A0 Rc3 Rc2 Rc1 Rc0

Corrector

Signo Cin Cout

(2)

Complementador

Complementar a 2 es invertir y sumar 1. La suma de 1 la introducimos por la entrada de acarreo del 7483. Los bits de B se invierten:

Corrector

Si Cout= R4= 1 entonces el resultado es negativo y hay que complementar para obtener la magnitud. Los valores máximos y mínimos del resultado será:

Rmax= 7-0= 7 Rmin= 0-7 = -7

Los valores negativos tendrán el R3= 1 En ese caso hay que invertir el resultado y activar la salida signo. Si R3= 0 se deja pasar la R tal cual.

R3 Ri Rci

0

0 0

0

1 1

1

0 1

1

1 0

I4 I3 I2 I1

7483

B0 B1 B2 B3 1 R3 R2 R1 R0 Rc3 Rc2 Rc1 Rc0

Corrector

Signo R0 R1 R2 R3 RC0 RC1 RC2 RC3 Signo

(3)

3) En este caso A y B pueden se ser positivos o negativos:

El rango de valores a introducir es [-8, 7 ]. Como puede realizarse la operación A+B o A-B los valores a obtener en el resultado serán :

-8-(+8) = -16 8+8= 16

Con un registro de 5 bits podemos obtener el resultado., excepto para el valor 16. Entonces utilizando la salida Cout del sumador podemos corregir el resultado.

Signo A = 1, entonces A será negativo y habrá que invertir y sumar 1. Signo B = 1, entonces B será negativo y habrá que invertir y sumar 1. Operación = 1 = será A-B, entonces habrá que invertir y sumar 1 a B.

I4 I3 I2 I1 B3 B2 B1 B0

7483

Complementador

R4 R3 R2 R1 R0 A3A2 A1 A0 Rc3 Rc2 Rc1 Rc0

Corrector

Signo Cin Cout

+ o -

+ o -

Valor máximo a introducir : 8 Signo B Signo A Operación M4 M3 M2 M1

(4)

+ 0 -

Signo Bi Ini

0

0 0

0

1 1

1

0 1

1

1 0

Complementador

Si operación = 1 entonces hay que invertir, sino nada. Por lo tanto es igual que el anterior

B0 B1 B2 B3 In0 In1 In2 In3 Signo I0 I1 I2 BI M0 M1 M2 M3 Operción

7483

R4 R3 R2 R1 R0 Cout R5

7483

I0 I1 I2 I3

(5)

Corrector

Si Cout= R4= 1 entonces el resultado es negativo y hay que complementar para obtener la magnitud. Excepto si el resultado fuese 16, es decir 10000.

Si 16 = 1 no es 16 por lo tanto es un número negativo y hay que complementar. Si 16= 0 es el 16 y no hay que complementar. Tampoco habrá que hacerlo si R4=0 Si comp = 1 hay que complementar y signo 1, sino no.

Es 16? Complementar?

16 R5 Comp

0

0

0

0

1

1

1

0

0

1

1

0

Complementador

Igual que el ejercicio anterior

R4 R3 R2 R1 R0 Rc4Rc3 Rc2 Rc1 RC0

Complementador

Signo

Es 16?

16

Complementar?

Comp

(6)

4)

a

n

a

n-1

a

n-2

…………..a

i

………a

3

a

2

a

1

1 0 1

a

n

a

n-1

a

n-2

…………..a

i

………a

3

a

2

a

1

0 0 0 0 0 0 0 0 0

a

n

a

n-1

a

n-2

………. …..…a

i-2

…… ……….

a

2

a

1

R

n+3

R

n+2

R

n+1

R

n

R

n-1

R

n-2

………… R

i

……… R

4

R

3

R

2

R

1

R

n+3

R

n+2

R

n+1

R

n

R

n-1

R

n-2

………… R

i

……… R

4

R

3

a

2

a

1

C

I

c

I+1

a

i

c

i

c

i+1

R

i

a

i-2

(7)

5) a) Número máximo: 3 X 3 = 9  4 bits A B C D F1 F2 F3 F4 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 Otra forma:

a

1

a

0

b

1

b

0

a

1

b

0

b

0

a

0

a

1

b

1

a

0

b

1

R

3

R

2

R

1

R

0

F

1

A B C D

F

2

F

3

F

4

R

3

a

1

a

0

b

1

b

0

R

2

R

1

R

0

c

1

C

2 Sumador Completo AND

(8)
(9)
(10)

1) Ver cuántas salidas habría 2) Ir viendo de dónde se obtienen

 Produce C2  Produce C3  Produce C4

 Produce C5

(11)
(12)
(13)
(14)

6)

Disponemos de sumadores binarios naturales (SBN) (7483) que al hacer 9 + 9 darán 18 en binario = 10010 pero lo que necesitamos es convertir ese número binario en BCD, es decir, 0001 1000.

Sólo hay que diseñar el corrector. Para ello estudiamos la función que debe cumplir, es decir, analizamos las salidas obtenidas en SBN y las correspondientes deseadas:

BN

C

out

B

3

B

2

B

1

B

0 C

S

3

S

2

S

1

S

0 BN 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 … … … … … … … … 9 0 1 0 0 1 0 1 0 0 1 9 10 0 1 0 1 1 1 0 0 0 0 10 11 1 0 0 0 1 11 … … … … … … … … 18 1 0 0 1 0 1 1 0 0 0 18 19 X X X X X X X X X X X … … … … … … … … 31 X X X X X X X X X X X

A partir del 18 nunca aparecerán.

Se observa que del 0-10 el corrector no debe hacer nada. Sin embargo, del 10 al 18 debe sumar 6.

Por lo tanto habrá q ue diseñar un circuito que detecte cuándo la salida del 7483 es menor que 10. En ese caso suma S_BCD BCD_1 BCD_2 BCD_I MAXIMO= 9 Salida máximo = 9 + 9 = 18 1 8 7483 BCD_1 BCD_2

B

0

B

1

B

2

B

3 CORRECTOR BN A BCD

S

0

S

1

S

2

S

3

C

C

out

(15)

1) Diseño del bloque >10?

c

00

01

11

10

00

0 1 3 2

01

4 5 7 6

11

12 13 15 14

10

8 9 11 10

c

00

01

11

10

00

0 1 3 2

01

4 5 7 6

11

12 13 15 14

10

8 9 11 10

B

0

B

1

B

2

B

3  10?

S

0

S

1

S

2

S

3

C

C

out +6 O +0 B1B0 B3B2 B1B0 B3B2

1

1

1

1

1

X

X

X

X

X

X

X

X

1

1

1

1

X

X

X

X

X

C

out

B

3

B

1

B

3

B

2

C

out

f>10

(16)

2) Diseño de +6 o +0. Si f>10= 1 entonces +6 === 0 1 1 0 Si f>10= 0 entonces +0 === 0 0 0 0

0 f>10 f>10 0

B

0

B

1

B

2

B

3 7483

f

>10

(17)

7) 0 0 1 1 2 2 1 3 3 2 1

C

A

C

A

C

A

A

C

A A A

A3 A2 A1 A0 C3 C2 C1 C0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 X X X X 1 0 1 1 X X X X 1 1 0 0 X X X X 1 1 0 1 X X X X 1 1 1 0 X X X X 1 1 1 1 X X X X

(18)

8)

Disponemos de sumadores binarios naturales (SBN) (7483) que al hacer 9 + 9 darán 24 en binario = 11000 pero lo que necesitamos es convertir ese número binario en BCD+3, es decir, 18 en BCD+3= 0100 1100.

Sólo hay que diseñar el corrector. Para ello estudiamos la función que debe cumplir, es decir, analizamos las salidas obtenidas en SBN y las correspondientes deseadas:

S_BCD BCD+3_MAXIMO= 9 en BCD+3= 12 = 1100 Salida máximo = 9 + 9 = 1100 + 1100 = 11000 Salida mínima = 0 + 0 = 0011 + 0011 = 0110 1 8 7483 BCD_1 BCD_2

B

0

B

1

B

2

B

3 CORRECTOR BN A BCD+3

S

0

S

1

S

2

S

3

C

out BCD+3_1 BCD+3_2

C

0

C

1

C

2

C

3

(19)

BN

C

out

B

3

B

2

B

1

B

0

C

3

C

2

C

1

C

0

S

3

S

2

S

1

S

0 +3 BN 6 0 0 1 1 0 0 0 0 0 0 0 1 1 0 3 7 0 0 1 1 1 0 0 0 0 0 1 0 0 1 4 8 0 1 0 0 0 0 0 0 0 0 1 0 1 2 5 9 0 1 0 0 1 0 0 0 0 0 1 1 0 3 6 10 0 1 0 1 0 -3 0 0 0 0 0 1 1 1 4 7 11 0 1 0 1 1 0 0 0 0 1 0 0 0 5 8 12 0 1 1 0 0 0 0 0 0 1 0 0 1 6 9 13 0 1 1 0 1 0 0 0 0 1 0 1 0 7 10 14 0 1 1 1 0 0 0 0 0 1 0 1 1 8 11 15 0 1 1 1 1 0 0 0 0 1 1 0 0 9 12 16 1 0 0 0 0 0 1 0 0 0 0 1 1 10 19 17 1 0 0 0 1 0 1 0 0 0 1 0 0 11 20 18 1 0 0 1 0 0 1 0 0 0 1 0 1 12 21 19 1 0 0 1 1 +3 0 1 0 0 0 1 1 0 13 22 20 1 0 1 0 0 0 1 0 0 0 1 1 1 14 23 21 1 0 1 0 1 0 1 0 0 1 0 0 0 15 24 22 1 0 1 1 0 0 1 0 0 1 0 0 1 16 25 23 1 0 1 1 1 0 1 0 0 1 0 1 0 17 26 24 1 1 0 0 0 0 1 0 0 1 0 1 1 18 27

El dígito de mayor peso en BCD+3 no se ha escrito en BCD+3 sino en BCD para hacer la diferencia más sencilla. Habrá que corregir después esta “trampa”.

Se observa que del 6-15 el corrector debe restar tres. Sin embargo, del 16 al 24 debe sumar tres.

Si se hubiera reflejado en la tabla los valores de 0 y 1 en BCD+3 la operación sería del 6-15 el corrector debe sumar 45. Sin embargo, del 16 al 24 debe sumar 51.

Optamos por la opción de la “trampa”.

Por lo tanto habrá que diseñar un circuito que detecte cuándo la salida del 7483 es menor que 16. Se observa que esa función la realiza el

C

out por lo tanto no hay necesidad de diseño de circuito.

En ese caso suma cero y en caso que sea mayor que 10 suma seis.

1) Diseño de +3 o -3. Si f>15= 0 entonces -3 === 1 1 0 1 Si f>15= 1 entonces +3 === 0 0 1 1

B

0

B

1

B

2

B

3  15?

S

0

S

1

S

2

S

3

C

out +3 O -3

f>15

(20)

2) Corrección del dígito de mayor peso en BCD+3 Si

C

out = 0 =

C

3

C

2

C

1

C

0 = 0 0 1 1 Si

C

out = 1 =

C

3

C

2

C

1

C

0 = 0 1 0 0

B

0

B

1

B

2

B

3 7483

f

>15

Vcc

S

0

S

1

S

2

S

3

(21)

9)

(22)

10)

E

A

A

y

E

A

A

y

E

A

A

y

E

A

A

y

0 1 3 0 1 2 0 1 1 0 1 0

Entradas

Salidas

E

A

1

A

0

0 1 2 3

1

0

0

1 0 0 0

1

0

1

0 1 0 0

1

1

0

0 0 1 0

1

1

1

0 0 0 1

0

0

0

0 0 0 0

EN Dec 2-4 A1 A0

(23)

En función de A3A2 se activa uno u otro bloque.

Entradas

Salidas

A

3

A

2

A

1

A

0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0

0

0

0

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0

0

0

1

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0

0

1

0

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

0

0

1

1

0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

0

1

0

0

0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0

0

1

0

1

0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0

0

1

1

0

0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

0

1

1

1

0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

1

0

0

0

0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

1

0

0

1

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

1

0

1

0

0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0

1

0

1

1

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

1

1

0

0

0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

1

1

0

1

0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0

1

1

1

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0

1

0

0

1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

Dec 4-16 15 2 1 0 ...

A3 A2 A1 A0

(24)

A0

A1

A2

A3

0 1 Dec 2 3 0 1 Dec 2 3 0 1 Dec 2 3 0 1 Dec 2 3 0 1 Dec 2 3 Vcc

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

(25)

11)

Se desea diseñar

74150 74150

(26)

12) 2 2 2 2 0 1 0 1 1 0 2 1 0 3 1 0 1 0 1 0 4 2 5 2 0 6 2 1 7 2 1 0

Y

D S S S

D S S S

D S S S

D S S S

D S S S

D S S S

D S S S

D S S S

2 2 2 2 2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 2 2 0 2 1 2 1 0

(

)

1.

0.

1.

1.

0.

1.

0.

0.

f X X X

X X S

X X X

X X X

X X X

X X X

X X X

X X X

X X X

D

0

= 1

D

1

= 0

D

2

= 1

D

3

= 1

D

4

= 0

D

5

= 1

D

6

= 0

D

7

= O

S

0

= A

S

1

= B

S

2

= C

m

0

m

2

m

3

m

5

X

0

= A

X

1

= B

X

2

= C

(27)

13)

1 5 6 7

( , , )

0.

1.

0.

0.

0.

1.

1.

1.

F a b c

abc

abc

abc

abc

m

m

m

m

abc

abc

abc

abc

abc

abc

abc

abc

c = S

0

b = S

1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

( , , )

0.

1.

0.

0.

0.

1.

1.

1.

F a b c

aS S

aS S

aS S

aS S

aS S

aS S

aS S

aS S

0 1 0 1 1 0 2 1 0 3 1 0

Y

D S S

D S S

D S S

D S S

D0 = 0

D1 = 1

D2 = a

D3 = a

b

c

a

Vcc

a

0

F

(28)

14) 2 2 2 2 0 1 0 1 1 0 2 1 0 3 1 0 1 0 1 0 4 2 5 2 0 6 2 1 7 2 1 0

Y

D S S S

D S S S

D S S S

D S S S

D S S S

D S S S

D S S S

D S S S

3 2 3 2 3 2 3 2 3 2 1 0 1 0 1 0 1 0 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 2 1 0 2 1 2 0 2 3 3 0 3 1 3 1 0 1 0 1 0 3 2 3 2 0 3 2 1 3 2 1 0

(

)

1.

1.

1.

1.

1.

0.

0.

0.

0.

1.

0.

0.

0.

1.

1.

1.

f X X X X

X X X S

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

D0 = X3

D1 = 1

D2 =

D3 =

D4 = X3

D5 = X3

D6 = X3

D7 = X3

S

0

= A

S

1

= B

S

2

= C

(29)

15) ALU

Las operaciones a realizar son

A+B + 0

A+B+1

A-1 = A + 1111 + 0

A + 0 = A + 0000+ 0

A + 1 = A + 0000 + 1

A – B = A + BC1 + 0

A – B = A + BC1 + 1

Son todo parejas de mismas operaciones únicamente se

diferencian en el acarreo.

Hay 7 operaciones aritméticas y 4 lógicas  necesitamos 4 bits

para diferenciarlas.

S

3

S

2

S

1

S

0

, se toma S

2

para diferenciar operaciones aritméticas o

lógicas. Se toma S

3

para definir el acarreo.

1) Diseño de la unidad aritmética

Las operaciones aritméticas siempre son sumas de números de 4 bits. Se utiliza un sumador 7483. Uno de los sumandos siempre es A, es otro es variable:

i S3 S2 S1 S0 Operacion a realizar 0 0 0 0

A+B + 0

0 0 0 1

A + 1111 + 0

0 0 1 0

A + 0000+ 0

0 0 1 1

A + BC1 + 0

0 1 0 0 AND 0 1 0 1 OR 0 1 1 0 NOT A 0 1 1 1 A XOR B 1 0 0 0

A+B+1

1 0 0 1

A + 1111 + 0

1 0 1 0

A + 0000 + 1

1 0 1 1

A + BC1 + 1

1 1 0 0 X 1 1 0 1 X 1 1 1 0 X 1 1 1 1 X

Y

0

Y

1

Y

2

Y

3 7483

S

0

S

1

S

2

S

3

A

0

A

1

A

2

A

3

B

0

B

1

B

2

B

3 Y-GEN

S

0

S

1

S

3

C

OUT

(30)

Diseño de Y-GEN_i, es decir para cada bit de entrada su circuito Y-GEN

2) Diseño de la unidad lógica

S1 S0 BI Y1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 S1 S0 Ai Bi FLi 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0

(31)

3) Circuito completo

A

0

A

1

A

2

A

3

B

3

B

2

B

1

B

0

Y

0

Y

1

Y

2

Y

3 7483

S

0

S

1

S

3

A

0

B

0

A

1

B

1

A

2

B

2

A

3

B

3

FL

0

FL

1

FL

2

FL

3

S

0

S

1

S

2

S

3 74157

S

2

C

OUT

F

0

F

1

F

2

F

3

(32)

16) ALU

Las operaciones a realizar son

A+B + 0

A+B+1

A – B = A + BC1 + 0

A – B = A + BC1 + 1

A + 1 = A + 0000 + 1

A-1 = A + 1111 + 0

A + 0 = A + 0000+ 0

A + 0 = A + 1111 + 1

0000 + BC1 + 0

0000 + BC1 + 1

A + A

0000 + 1111 + 0

0000 + 1111 + 1 = 0 + 0

Son casi todo parejas de mismas operaciones únicamente se diferencian en el acarreo. Por ello, en realidad

hay 7 operaciones aritméticas. Por lo tanto, se necesitan 3 bits de selección de operación.

Como lógicas hay 7 son necesarios, también, 3 bits.

Otro bit necesario para la selección de aritmético-lógica (S

3

) y otro para marcar la necesidad de acarreo inicial

(S

4

)

S

4

S

3

S

2

S

1

S

0

,.

S3 S2 S1 S0 S4 =0 S4 =1 0 0 0 0

A+B + 0

A+B+1

0 0 0 1

A + BC1 + 0

A + BC1 + 1

0 0 1 0

A + 0000+ 0

A + 0000 + 1

0 0 1 1

A + 1111 + 0

A + 1111 + 1

0 1 0 0

0000 + BC1 + 0

0000 + BC1 + 1

0 1 0 1

A + A + 0

0 1 1 0

0000 + 1111 + 0

0000 + 1111 + 1

0 1 1 1 1 0 0 0 AND 1 0 0 1 OR 1 0 1 0 NOT A 1 0 1 1 NOT B 1 1 0 0 A XOR B 1 1 0 1 NAND 1 1 1 0 NOR 1 1 1 1

(33)

1) Diseño de la unidad aritmética

Las operaciones aritméticas siempre son sumas de números de 4 bits. Se utiliza un sumador 7483. En Este ejercicio los dos sumandos pueden variar

Diseño de Y-GEN_i, es decir para cada bit de entrada su circuito Y-GEN Diseño de X-GEN_i, es decir para cada bit de entrada su circuito X-GEN

Ai Bi S2 S1 S0 Xi Yi 1 0 0 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 X X 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 X X Ai Bi S2 S1 S0 Xi Yi 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 X X 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 1 X X

Y

0

Y

1

Y

2

Y

3 7483

S

0

S

1

S

2

S

3

A

0

A

1

A

2

A

3

B

3

B

2

B

1

B

0 Y-GEN

S

0

S

1

S

4

C

OUT X-GEN

X

0

X

1

X

2

X

3

S

2 3 4

(34)

2) Diseño de la unidad lógica

Se diseña a partir de la tabla de verdad cuya cabecera es:

3) Circuito completo S2 S1 S0 Ai Bi FLi

A

0

A

1

A

2

A

3

B

3

B

2

B

1

B

0

Y

0

Y

1

Y

2

Y

3 7483

S

0

S

1

S

4

A

0

B

0

A

1

B

1

A

2

B

2

A

3

B

3

FL

0

FL

1

FL

2

FL

3

S

0

S

1

S

2

S

3 74157

S

2

C

OUT

F

0

F

1

F

2

F

3

X

0

X

1

X

2

X

3

S

3

0

1

(35)
(36)
(37)
(38)

19)

a) Diagrama de Bloques

Tamaño del registro: Cantidad máxima a introducir /precio

15

n = 4 +

Se deben restar cantidades

+ signo

+ n = 1

n = 5

7 Recibir producto No hay sufiente dinero

Suma

3. bloque

Código del producto.

1. bloque

Valor del producto C2.

2. bloque

Go Chi Re Pi Dinero introducido Cod A B

Correcor

4. bloque

BIN-BCD

5. bloque

BCD-7seg Dec

6. bloque

BCD-7seg Dec

7. bloque R Rc 7 Su Sd

(39)

Entradas : Cantidad introducida

[0, 15]

Go, Chi, Re, Pi

0 Activa; 1 Inactiva

Salidas : Cod : Código binario asociado a cada producto [0,3]

A: Cantidad en C2 asociada al coste de cada producto [-12, 0]

R : Resultado de la resta [-12, 15]

Rc : Resultado de la resta en positivo [0, 15]

b) Diseño óptimo de cada bloque

Bloque 1: 74348 : codificador con prioridad.

Bloque 2: Tabla de Verdad

Cod1 Cod0 A4 A3 A2 A1 A0

0

0

1

0

1

0

0

0

1

1

1

0

1

1

1

0

1

1

1

0

1

1

1

1

1

1

1

0

Bloque 3: Suma dos número de 4 bits:

Bloque 4: Circuito combinacional + 7483

R4 Ri Ii

0

0 0

0

1 1

1

0 1

1

1 0

I4 I3 I2 I1 R4 R3 R2 R1 R0 0 1 2 3 4 5 6 7 A2 A1 A0 Go Chi Re Pi Cod1 Cod0 Vcc EI Circuito Combinacional Cod1 Cod0 A4 A3 A2 A1 A0 7483 7483 A3 A2 A1 A0 B3 B2 B1 B0 B4 A4 R3 R2 R1 R0 R4

7483

CC

Rc3 Rc2 Rc1 Rc0

(40)

Bloque 5. Convertidor de BIN-BCD.

Bloque 6. Consultar en los apuntes y ejercicios anteriores.

BIN-BCD

5

Rc: [0, 15]

Su: [0, 9] Sd: [0, 1]

(41)

20) U: [0-9] Z: [0-2] J: [0-25] Codificador A: [0-9] Codificador B: [0-9] Teclado 1 Teclado 2 A Mayor que 4 y par? Si = 1 Abre P1 A / 2 Si correcto,: [4-8] C: [2-4] C-2 C+2 D: [0-2] E: [4-6] B  [D-E]? Si = 1 Aforo max. en binario F: [0-25] S1 S2 R +1 o -1 G: [0-31] C2 Añadimos bit de signo Sitios libres:F+Gc2= F-G Es cero el resultado? No = 1

Ver aforo max o sitios libres

Selecciona aforo o sitios H: [0-25] Convertidor bin/BCD Deco. Deco. Displays Abre P2 Abre P3 P1 P2 P3 R= ZU

(42)

Codificador:

A Mayor que 4 y par? P1 = m4+m6+m8

A/2

C+2

C - 2

B  [D-E]? .

Las entradas en cascada, A = B a Vcc y las otras a tierra Abre P2, será una puerta AND

74147 0 1 2 3 4 5 6 7 8 9 D C B A =a3 a2 a1 a0 ; b3 b2 b1 b0 a3 a2 a1 a0 c2 c1 c0 7483 c2 c1 c0 0 0 1 0 7483 c2 c1 c0 1 1 1 0 D Beti positiboa E A B A =B 7485 B D B>A B=A OR A B A =B 7485 B E A>B B=A OR AND

(43)

+ 1 o -1 usamos el contador que se propone en el ejercicio.

C2 de G, invertimos todos los bits que componen G y añadimos el bit de signo, que será el sexto y lo ponemos a Vcc.

F+Gc2

Es cero el resultado? Puerta OR. Abre P3

Puerta AND Selecciona Aforo o sitios

Convertidor de Binario a BCD

Cuando J  [0-9], la salida del convertidor es igual a la entrada. R = J + 0 Cuando J  [10-19], la salida del convertidor es la entrada más seis: R = J + 6 Cuando J  [20-25], la salida del convertidor es la entrada más doce. R = J + 12

7483 7483 g3c2 g2c2 g1c2 g0c2 f3 f2 f1 f0 1 1g5c2 g4c2 0 0 0 f4 h3 h2 h1 h0 h4 H Beti positiboa A B 74157 A B 74157 h3 h2 h1 h0 f3 f2 f1 f0 0 0 0 h4 0 0 0 f4 j3 j2 j1 j0 j4 Aforo = 0

(44)

Se diseña una función de dos variables que diferencie los tres bloques.

m1 = f (j4 j3 j2 j1 j0) =  (20, 21, 22, 23, 24, 25) + K(26-31)

m0 = f (j4 j3 j2 j1 j0) =  (10, 11, 12, 13, 14, 15, 16, 17, 18, 19) + K(26-31)

Decodificadores: Utilizamos el 7448. Para la supresión del cero del dígito de mayor peso conectamos su RBI a cero.

m1mo Tramo 0 0 J  [0-9] 0 1 J  [10-19] 1 0 J  [20-25] 7483 j3 j2 j1 j0 m1 r3 r2 r1 r0 = u3 u2 u1 u0 j4 j3 j2 j1 j0 +0, +6, +12 m0 z1 z0

(45)

21) a) Diagrama de bloques M H = S o N H= h7h6 ... h1 S 7 R 1 (SI) 0 (NO) MSB L S F E D C B 1. Bloque Votos a favor A 2. Bloque S-3 > 0? S – 3 = 0? F F = 1 Si [0, 6] L = 1 empate MUX 4-1 (4. Bloque) 0 V V = 1 Si Cambiar o no el resultado T T = 1 Cambia el resultadoa X = 1, Si R = 1 SI

Decodficador que

genera SI o NO

(dependiendo de R)

Dependiendo de N/P y T elige I/O o

El número

(8. Bloque)

Selector

9. Bloque N/P N/P = 0 número L= l7l6 ... l1 L = I o O

Dec BCD/7

seg

7 N= n7n6 ... n1 7 7

Pasar letro o nada

10. Bloque 7 3. Bloque

5.

Blokea

6.

blokea

7. Bloque D1 D2 6.Bloque 5.Bloque

(46)

1. Bloque 2. Bloque 3. Bloque 4. Bloque A V F F F E D C B A 74183 Cn a b E Cn+1 74183 Cn a b E Cn+1 7483 A1 A2 A3 A4 B1 B2 B3 B4 C0 E1 E2 E3 E4

S (E4 0 será siempre)

7483 A1 A2 A3 A4 B1 B2 B3 B4 C0 E1 E2 E3 E4 S Vcc S NOR atea 3 L 1 (SI) 0 (NO) 74352 C0 C1 C2 C3 G A B L Y

(47)

5. Bloque 6. Bloque R Letra a b c d e f g 1 S 0 1 0 0 1 0 0 0 N 0 0 0 1 0 0 1 1 I 1 1 1 1 0 0 1 0 O 0 0 0 0 0 0 1 7 Bloque V

X-OR

puerta R T R L1a L2b L3c L4d L5e L6f L7g h1a h2b h3c h4d h5e h6f H7g I o O S o N 1 7447 A B C D S0 S1 S2 S3 RBI LT 1 a b c d e f g N

(48)

8. Bloque M=1 letra B = letra A = numero 9. Bloque 10. Bloque 74157 A1 A2 A3 A4 B1 B2 B3 B4 Y1 Y2 Y3 Y4 S G 74157 A1 A2 A3 A4 B1 B2 B3 B4 Y1 Y2 Y3 Y4 S G L1a L2b L3c L4d L5e L6f L7g Ng Nf Ne Nd Nc Nb Na D1 M M puertas OR T N/P M puertas di=M+hi’ M h1a h2b h3c h4d h5e h6f h7g 7 D2

(49)

22) Teclado Teclado 10 10 Codificador con prioridad Decimal/binar io Codificador con prioridad Decimal/binar io 4 4

Circuito sumador y multiplicador

5 (max 18) 7 (max 81)

MUX (seleccionar el resultado de la suma o de la multiplicación) 7

Conversor de binario a BCDnat

4 MSB 4 LSB Decodificador BCD/7 segmentos Decodificador BCD/7 segmentos 7 MSB 7 LSB Display de 7 segmentos Display de 7 segmentos

(50)

23)

a) 11 operaciones  4 variables s3s2s1s0

A, B = BACD Nat  [0, 9]  nº max = 9 + 9 =18 = 10010 Registro de 6 Nº min = -9 S2 = aritméticas s2s1s0 s3 000 A + 1 A + 0 FA=A + 0 + 1= 00a3a2a1a0 + 000000 + FA=A + 0 + 0= 00a3a2a1a0 + 000000 + 1 0 001 A + B FA=A + B + 0 = 00a3a2a1a0 + 00b3b2b1b0 + 0 010 A * 2 FA=A + A = 00a3a2a1a0 + 00a3a2a1a0 + 0 011 A - B FA=A + Bc1= 00a3a2a1a0 + 11b´3b´2b´1b´0 + 0 100 A + B A + B´ fli=ai +bi fli=ai +b´i 0 1 101 A  B A  B´ fli=ai bi fli=ai b´i 0 1 110 B´ fli=b´i 0 111 A . B fli=ai .bi 0 Unidad Aritmética mi g0 g1 7483 B´, B, A, 0 S3 4 A B S0 S1 7483 1, 0 a3 a2 a1 a0 S0 S1

Corrector del resultado para leer en C1 S [-9, 18]

Nº en C1 o corregido

Obtención del módulo 1 Hace C1 o pasa H FA Signo fA4 fA3 fA2 fA1 fA0 [-9, 18] A B S1 S0

(51)

Corrector del resultado para leer en C1

Si hay Overflow(7º bit), hay que sumar 1 al resultado.

Obtención del módulo 1 Hace C1 o pasa Si h5 = 1  C1 Si h5 = 0  pasa h5 hi FAi 0 0 0 0 1 1 1 0 1 1 1 0

Módulo que genera 0 o 1 dependiendo de s1s0

S1 S0 g1 g0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 7483 7483 s3 s2 s1 s0 s6 s5 s4 h3 h2 h1 h0 h5 h4 s1 s0 g g h5 hi FAi

(52)

Módulo que genera b,b´,a o 0 dependiendo de s1s0 mi = s1´s0bi + s1s0´ai + s1s0bi Unidad lógica S1 S0 ai bi mi 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0 a0 b0 fl0 s0 s1 s2 a1 b1 fl1 a2 b2 fl2 a3 b3 fl3 3 b0 a0 b1 a1 b2 a2 b3 a3 m0 m1 m2 m3 s1 s0

(53)

Bloque i

Bloque que genera bi o b´i

yi = S3 bi S3 S1 S0 operación 0 0 0 A+B 0 0 1 AB 0 1 0 B´ 0 1 1 A.B 1 0 0 A+B´ 1 0 1 AB´ 1 1 0 X 1 1 1 X S3 bi yi 0 0 0 0 1 1 1 0 1 1 1 0 yi C3 C2 C1 C0 74153 A G B fli s0 s1 bi o b´i bi S3 ai

(54)

ALU completa fl3 fl2 fl1 fl0 fa4 fa3 fa2 fa1 fa0 3 U.A. U.L. s0 s1 s3 a3 a2 a1 a0 b3 b2 b1 b0 2 MUX 157 s2 A42 A32 A22 A12 A41 A31 A21 A11 B42 B32 B22 B12 B41 B31 B21 B11 strobe select f4 f3 f2 f1 f0 A B A B signo Aritmético lógico y02 y31 y21 y11 y01

(55)

b) g f e d c b a 2 MUX 157 g f e d c b a LT RBI Convertidor de BIN/BCD D = [0,18] f4 f3 f2 f1 f0 7448 7448 LT Vcc Vcc RBI S2 g f e d c b a B42 B32 B22 B12 B41 B31 B21 B11 A42 A32 A22 A12 A41 A31 A21 A11 strobe select y22 y12 y02 y31 y21 y11 y01 7 7 7 S2

(56)

24)

A) BLOQUES Ai. DISEÑAMOS UNO.

v5 v4 v3 v2 v1 .

Vi( asambleistas) = 1 voto a favor Ri = resultado en binario.

Utilizando sumadores completos, donde:

Cin A B Cout S Número

votantes 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 2 1 0 0 0 1 1 1 0 1 1 0 2 1 1 0 1 0 2 1 1 1 1 1 3

La salida del SC nos da el numero de votos positivos en binario natural. Por lo tanto: v1 v2 v3 v4 v5

Cout S Cout S

Como el número máximo a obtener es 5, la salida de mayor peso del sumador y la salida de carry no se utilizarán.

Notas

El uso exclusivo de 7483 para este diseño no es el más apropiado.

El realizarlo todo mediante puertas se da por bueno siempre y cuando las funciones de salida se hayan simplificado correctamente y lo máximo posible y se hayan definido las variables tanto de entrada como de salida.

B) Sumador BCD diseñado en ejercicios anteriores y en teoría.

C) El tipo de display a utilizar es de ánodo común porque las salidas del decodificador son activas a nivel bajo.

El decodificador correspondiente al dígito de mayor peso deberá tener las entradas D y C conectadas a tierra, LT a H y RBI a L. El de menor peso LT y RBI a H.

SC A B Cin S Cout SC SC 7483 R0 R1 R2 Ai R0 R1 R2

(57)

25)

Si se utilizan códigos Hammnig para 4 bits de datos se necesitan 3 bits de paridad. Si se quieren detectar dobles errores hay que añadir un bit de paridad más. Por lo tanto los bits que llegan al receptor son:

Bits de datos : D0 D1 D2 D3 en las posiciones 3,5,6,7  D3,D5,D2,D7 Bits de paridad: P0,P1, P2, P3 en las posiciones 1,2,4,8. P1,P2,P4,P8

Posición 1 2 3 4 5 6 7 8

Palabra P1 P2 D3 P4 D5 D6 D7 P8

Los bits de paridad hacen referencia a los siguientes conjuntos: P1 = D3,D5,D7 P2 = D3,D6,D7 P4 = D5,D6,D7

P8 = P1,P2,D3,P4,D5,D6,D7

A) (0,5 puntos + 0,25 puntos de explicaciones)

A1)Diagrama de bloques del detector y corrector de errores

(1) C8 8 (2) C1 D7,D5,D3,P1 (3) C2 D7,D6,D3,P2 (4) C4 D7,D6,D5,P4 (5) Doble error. DR Di i= 3,5,6,7 Corrector

(7)

Línea errónea

(6)

C1,C2,C4 CDi i= 3,5,6,7 4 4 Dc= D7c D6c D5c D3c Dc= D3c D2c D1c D0c P1 P2 D3 P4 D5 D6 D7 P8

(58)

A2) Diagrama de bloques de la parte aritmética. Si DR = 1  Salida = Dc (bits corregidos)

Si DR = 0  Salida  Dc  Si Dc  [7,15]  Salida = Dc - 4 Si Dc  [7,15]  Salida = Dc + 5 El resultado siempre será positivo. El número mínimo es el 3 y el máximo el 11.

B

B1) El desarrollo del detector y corrector de errores.

Los bloques (1), (2), (3), (4) son sumas exclusivas negadas, ya que es paridad impar y, por lo tanto, si el número de unos es impar la salida debe ser cero. Su desarrollo para paridad par puede consultarse en los apuntes. Para la impar sólo debe complementarse la salida.

Los desarrollos de los bloques (6), (7) pueden consultarse en los apuntes de clase. B2) Desarrollo de la parte aritmética

Bloque (8) Si Dc  [7,15]  f = 1 

f

7,8,9,10,11,12,13,14,15

D

3c

D D D

2c 1c 0c Bloque (9) Si f = 1  1100 (-4 = 4 en C2)  N = N3N2N1N0 = f 1 0 f Si f = 0  0101 (+5)

Bloque (10) Utilizando el cuádruple multiplexor.

C)

Como R  [3,11]  Hay que convertir a BCD  2 displays.

Consultar en los apuntes el convertidor BIN/BCD y la supresión del cero.

Dc [7,15] (8) -4 o +5 (9) f 7483 Pasa el oper ació n o Dc (10) N S R DR Dc 1 0 MUX S3 S2 S1 S0 R3 R2 R1 R0 D3c D2c D1c D0c DR Dc3 = D0c Dc5 = D1c Dc2 = D2c Dc7= D3c

(59)

26)

a) Si los sensores detectan entre –20 y 30  [-2n

, 2n-1]  n = 6  1 bit de signo y 5 de magnitud.

4

7 Bloque 1

Alarma Carne 6 Salida Sensor Carne

5 M : Magnitud Bloque 3 Si alarma  cero Ac 6 Bloque 5

Secciona Ver Carne o Vino

S Bloque 2

Alarma Vino 6 Salida Sensor Vino

Bloque 4 Si alarma  cero Av 6 6 Bloque 6 C2 o Pasa Signo Bloque 7 BIN/BCD 4 Bloque 9 BCD/7segmentos 7 C V R U D Bloque 10 Displays Bloque 8 Controlador de ceros en los Display Av Ac RBI1 RBI2

(60)

Bloque 1-2: Entradas : 6 bits [-20, 30] ; Salida : 1 bit : Ac = 1 alarma por fuera de rango.

Bloque 3: Entradas : 6 bits de temperatura + 1 bit de alarma. Salida: 6 bits entre [-3, 4]: Si está fuera de rango genera

ceros si está dentro pasa la temperatura.

Bloque 4: Entradas : 6 bits de temperatura + 1 bit de alarma. Salida: 6 bits entre [14, 17]: Si está fuera de rango

genera ceros si está dentro pasa la temperatura.

Bloque 5: Entradas: 6 bits, temperaturas de la carne y el vino (si está fuera de rango será cero) + bit de selección : 1

carne 0 vino. Salidas : 6 bits entre [-3, 17], selecciona la temperatura a visualizar en el display

Bloque 6: Entradas : 6 bits de temperatura seleccionada. Salidas: 1 bit para el signo y 5 bits para la magnitud entre

[0, 17].

Bloque 7: Entradas: 5 bits entre [0, 17]. Salidas: 8 bits: 4 par alas unidades (0-9) y 4 para las decenas (0-1). Bloque 8: Entradas: S, Ac, Av. Salidas: RBI1, RBI2 . Controla la generación de ceros en el display: 00 (por fuera de

(61)

27) a) f L Compara A y B ¿A>B? Selecciona el menor de A, B Selecciona el Mayor de A, B 3 B A 3 3 B A 3 3 B A 3 3 3 l Compara l y C Compara L y C 3 3 C C ¿l <C? ¿L>C? Selecciona el menor de l, C 3 C l 3 3 Selecciona el Mayor de L, C 3 C L 3 3 m M C  [2,5] C 3 Genera  m 4 Suma M + ( m ) 4 R R 0 siempre R max= 14 Rmin= 0 m´

(62)

b)

Obtención de M y m

Los circuitos comparadores serán los 7485 con las entradas de cascada conectadas correctamente. Los bits de mayor peso a 0.

Los circuitos seleccionadores serán los 74157: cuádruple mux de 2-1. Los bits de mayor peso a 0.

Obtención de R

Circuito generador de f. F será 1 para los valores 2,3,4,5 

2 1 2 1 2 1 fc cc c  c c Circuito M m M + m = M + m 0 M - m = M + m 1  

El circuito Generador de  m pasa m o la complementa bit a bit dependiendo de f 

i

i i i

m

 

f m

f m

 

f

m

i = 0,1,2

m3 = f ya que será el bit de signo.

Circuito M m con el 7483 f mi mi´ 0 0 0 0 1 1 1 0 1 1 1 0 7483 M C  [2,5] C 3 f Genera mi o

m

i 3 m R

(63)

c)

R  [0, 14]  siempre positivo y dos displays.

Convertidor Bin R3 R2 R1 R0 D0 U3 U2 U1 U0 BCD Bin 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 2 0 0 1 0 0 0 0 1 0 2 2 3 0 0 1 1 0 0 0 1 1 3 3 4 0 1 0 0 0 0 1 0 0 4 4 5 0 1 0 1 0 0 1 0 1 5 5 6 0 1 1 0 0 0 1 1 0 6 6 7 0 1 1 1 0 0 1 1 1 7 7 8 1 0 0 0 0 1 0 0 0 8 8 9 1 0 0 1 0 1 0 0 1 9 9 10 1 0 1 0 1 0 0 0 0 10 16 11 1 0 1 1 1 0 0 0 1 11 17 12 1 1 0 0 1 0 0 1 0 12 18 13 1 1 0 1 1 0 0 1 1 13 19 14 1 1 1 0 1 0 1 0 0 14 20

Comparando la lectura binaria:

R [0,9]  R = U ; R  [10-14]  U = R + 6 Convertidor de BIN a BCD

4

R

4 Digito de menor peso

1 Decod. BCD/7seg. Decod. BCD/7seg. 7 7 Display de ánodo común Display de ánodo común D U Detecta R  [10-14] 4 R 7483 4 R 4 U D0 RBI = H LT = H RBI = L LT = H

Referencias

Documento similar

Si el progreso de las instituciones de Derecho público no ha tenido lugar en los pueblos que se han reservado para el Poder judicial en abso- luto las

Tal como se ha expresado en El Salvador coexisten dos tipos de control de constitucionalidad: el abstracto y el concreto. Sobre ambos se ha proporcionado información que no precisa

Lo más característico es la aparición de feldespatos alcalinos y alcalino térreos de tamaño centimétrico y cristales alotriomorfos de cuarzo, a menudo en agregados policristalinos,

Imparte docencia en el Grado en Historia del Arte (Universidad de Málaga) en las asignaturas: Poéticas del arte español de los siglos XX y XXI, Picasso y el arte español del

Que en la reumon de la Comisión de Gestión Interna, Delegada del Consejo Social, celebrada el día 17 de marzo de 2011 , con quórum bastante para deliberar y

De esta manera, ocupar, resistir y subvertir puede oponerse al afrojuvenicidio, que impregna, sobre todo, los barrios más vulnerables, co-construir afrojuvenicidio, la apuesta

Pero, al fin y al cabo, lo que debe privar e interesar al sistema, es la protección jurisdiccional contra las ilegalidades de la Administración,221 dentro de las que se contemplan,

a) Ao alumnado que teña superado polo menos 60 créditos do plan de estudos da licenciatura que inclúan materias troncais e obrigatorias do primeiro curso recoñeceráselles o