tema 7: módulos secuenciales básicos

158
José Manuel Mendías Cuadros Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid Tema 7: Módulos secuenciales básicos Fundamentos de computadores I

Upload: others

Post on 01-Jul-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 7: Módulos secuenciales básicos

José Manuel Mendías CuadrosDpto. Arquitectura de Computadores y AutomáticaUniversidad Complutense de Madrid

Tema 7:Módulos secuenciales básicosFundamentos de computadores I

Page 2: Tema 7: Módulos secuenciales básicos

2

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Registro. Registro de desplazamiento. Contadores. Banco de registros. RAM (Random‐Access Memory). Rutas de datos y controladores.

Transparencias basadas en los libros: • R. Hermida, F. Sánchez y E. del Corral. Fundamentos de computadores.• D. Gajsky. Principios de diseño digital.

Page 3: Tema 7: Módulos secuenciales básicos

3

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

REG

Registro de n bits

si la entrada ld vale 1, almacena la entrada, si no, conserva el valor almacenado

x 1 entrada de datos de n bits

q 1 salida de datos de n bits

ld 1 entrada de carga paralela

cl 1 entrada de inicialización asíncrona

clk 1 entrada de reloj

x

q

cl

n

n

ldclk

si cl(t) = 1  q(t+t) = 0

si cl(t) = 0  q(t+1) =q(t) si ld(t)=0

x(t) si ld(t)=1

Page 4: Tema 7: Módulos secuenciales básicos

4

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

10

q2

D

Q

10

q1

D

Q

10

q0

D

Q

ld

10

Implementación directaRegistro de 4 bits

Page 5: Tema 7: Módulos secuenciales básicos

5

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

x3

q2

D

Q

x2

q1

D

Q

x1

q0

D

Q

ld

x0

Implementación directaRegistro de 4 bits

10 10 10 10

Page 6: Tema 7: Módulos secuenciales básicos

6

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

10

x3

q2

D

Q

10

x2

q1

D

Q

10

x1

q0

D

Q

ld

10

x0

Implementación directaRegistro de 4 bits

Page 7: Tema 7: Módulos secuenciales básicos

7

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

10

x3

q2

D

Q

10

x2

q1

D

Q

10

x1

q0

D

Q

ld

10

x0

Implementación directaRegistro de 4 bits

Page 8: Tema 7: Módulos secuenciales básicos

8

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

10

x3

q2

D

Q

10

x2

q1

D

Q

10

x1

q0

D

Q

ld

10

x0

Implementación directaRegistro de 4 bits

Page 9: Tema 7: Módulos secuenciales básicos

9

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

x FF 8A 17 23

ld

cl

clk

REG

x

q

cl

8

8

ldclk

z

Page 10: Tema 7: Módulos secuenciales básicos

10

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

x FF 8A 17 23

ld

cl

clk

REG

x

q

cl

8

8

ldclk

z XX

Page 11: Tema 7: Módulos secuenciales básicos

11

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

x FF 8A 17 23

ld

cl

clk

REG

x

q

cl

8

8

ldclk

z XX 8A

Page 12: Tema 7: Módulos secuenciales básicos

12

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

x FF 8A 17 23

ld

cl

clk

REG

x

q

cl

8

8

ldclk

z XX 8A 17

Page 13: Tema 7: Módulos secuenciales básicos

13

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

x FF 8A 17 23

ld

cl

z XX 8A 17 00

clk

REG

x

q

cl

8

8

ldclk

Page 14: Tema 7: Módulos secuenciales básicos

14

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

x FF 8A 17 23

ld

cl

z XX 8A 17 00 23

clk

REG

x

q

cl

8

8

ldclk

Page 15: Tema 7: Módulos secuenciales básicos

15

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

SHIFT REG

Registro de desplazamiento de n bits

x 1 entrada paralela de datos de n bits

q 1 salida de datos de n bits

srsi 1 entrada serie de datos para desplazamiento a la derecha

slsi 1 entrada serie de datos para desplazamiento a la izquierda

op 1 entrada de selección de operación

cl 1 entrada de inicialización asíncrona

clk 1 entrada de reloj

x

q

cl

n

n

opclk

si cl(t) = 1  q(t+t) = 0

q(t+1) =

q(t) si op(t)=(00) sin cambio

si cl(t) = 0 (srsi, qn‐1(t)... q1(t)) si op(t)=(01) desplaza a la derecha

(qn‐2(t)... q0(t), slsi) si op(t)=(10) desplaza a la izquierda

x(t) si op(t)=(11) carga paralela

slsisrsi

2

Page 16: Tema 7: Módulos secuenciales básicos

16

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

D Q D Q D Qsrsi

clk

cl

qn-1 qn-2 q0

Desplazamiento a la derecha

Page 17: Tema 7: Módulos secuenciales básicos

17

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

D Q D Q D Qsrsi

clk

cl

qn-1 qn-2 q0

DQDQDQ slsi

clk

cl

q0q1qn-1

Desplazamiento a la derecha

Desplazamiento a la izquierda

Page 18: Tema 7: Módulos secuenciales básicos

18

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

30

q2

D

Q

q1

D

Q

q0

D

Q

1 2 30 1 230 1 2 30 1 2

Implementación directaRegistro de desplazamiento de 4 bits

op

Page 19: Tema 7: Módulos secuenciales básicos

19

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

30

q2

D

Q

q1

D

Q

q0

D

Q

1 2

srsi30 1 230 1 2 30 1 2

Implementación directaRegistro de desplazamiento de 4 bits

op

Page 20: Tema 7: Módulos secuenciales básicos

20

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

30

q2

D

Q

q1

D

Q

q0

D

Q

op

1 2

srsi30 1 230 1 2 30 1 2

slsi

Implementación directaRegistro de desplazamiento de 4 bits

Page 21: Tema 7: Módulos secuenciales básicos

21

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

30

x3

q2

D

Q

x2

q1

D

Q

x1

q0

D

Q

op

x0

1 2

srsi30 1 230 1 2 30 1 2

slsi

Implementación directaRegistro de desplazamiento de 4 bits

Page 22: Tema 7: Módulos secuenciales básicos

22

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

30

x3

q2

D

Q

x2

q1

D

Q

x1

q0

D

Q

op

x0

1 2

srsi30 1 230 1 2 30 1 2

slsi

Implementación directaRegistro de desplazamiento de 4 bits

Page 23: Tema 7: Módulos secuenciales básicos

23

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

30

x3

q2

D

Q

x2

q1

D

Q

x1

q0

D

Q

op

x0

1 2

srsi30 1 230 1 2 30 1 2

slsi

Implementación directaRegistro de desplazamiento de 4 bits

Page 24: Tema 7: Módulos secuenciales básicos

24

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Aplicaciones al diseño:1. Convertir datos serie en datos paralelo y viceversa.2. Implementar reconocedores de patrones.

2

Reconocedor del patrón = "011"como máquina de Moore

DQDQDQ x

clk

cl

z

Reconocedor del patrón = "011"como máquina de Mealy

DQDQ x

clk

cl

z

Page 25: Tema 7: Módulos secuenciales básicos

25

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

CONT ASC

Contador ascendentemódulo 2n

q

cln

ceclk

tc

si cl(t) = 1  q(t+t) = 0

si cl(t) = 0  q(t+1) =[q(t)+1] mod 2n si ce(t)=1

q(t) en caso contrario

si cl(t) = 1  tc(t+t) = 0

si cl(t) = 0  tc(t+t) =1 si q(t)=2n‐1 y ce(t)=1

0 en caso contrario

q 1 salida de datos de n bits

ce 1 entrada de capacitación de cuenta

tc 1 salida de fin de cuenta

cl 1 entrada de inicialización asíncrona

clk 1 entrada de reloj

Page 26: Tema 7: Módulos secuenciales básicos

26

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

+

0n n

n

arraybiestables D

q

cl

clk

tc ce

Page 27: Tema 7: Módulos secuenciales básicos

27

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

+

0n n

n

arraybiestables D

q

cl

clk

0qi

cico

di

tc ce

FA(Full Adder)

Page 28: Tema 7: Módulos secuenciales básicos

28

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

+

0n n

n

arraybiestables D

q

cl

clk

0qi

cico

di

tc ce

FA(Full Adder)

Page 29: Tema 7: Módulos secuenciales básicos

29

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

ci

di

qi

qi ci co di

0 0 0 00 1 0 11 0 0 11 1 1 0

di = qi cico = qiꞏci

+

0n n

n

arraybiestables D

q

cl

clk

tc ceco

HA(Half Adder)

Page 30: Tema 7: Módulos secuenciales básicos

30

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

q2

D

Q

q1

D

Q

q0

D

Q

Implementación directaContador ascendente módulo 16

HAHAHAHA cetc

Page 31: Tema 7: Módulos secuenciales básicos

31

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

CONT DESC

Contador descendentemódulo 2n

q

cln

ceclk

tc

si cl(t) = 1  q(t+t) = 0

si cl(t) = 0  q(t+1) =[q(t)‐1] mod 2n si ce(t)=1

q(t) en caso contrario

si cl(t) = 1  tc(t+t) = 0

si cl(t) = 0  tc(t+t) =1 si q(t)=0 y ce(t)=1

0 en caso contrario

q 1 salida de datos de n bits

ce 1 entrada de capacitación de cuenta

tc 1 salida de fin de cuenta

cl 1 entrada de inicialización asíncrona

clk 1 entrada de reloj

Page 32: Tema 7: Módulos secuenciales básicos

32

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

0

ce

n n

n

arraybiestables D

q

cl

clk

tc

Page 33: Tema 7: Módulos secuenciales básicos

33

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21 qi

bibo

di

-

0

ce

n n

n

arraybiestables D

q

cl

clk

tc

0

FS(Full Subtractor)

Page 34: Tema 7: Módulos secuenciales básicos

34

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21 qi

bibo

di

-

0

ce

n n

n

arraybiestables D

q

cl

clk

tc

0

FS(Full Subtractor)

Page 35: Tema 7: Módulos secuenciales básicos

35

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

0n n

n

arraybiestables D

q

cl

clk

tc

qi bi bo di

0 0 0 00 1 1 11 0 0 11 1 0 0

bo = qiꞏbi

di = qi bi

bibo

di

qi

ce

HS(Half Subtractor)

Page 36: Tema 7: Módulos secuenciales básicos

36

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

q2

D

Q

q1

D

Q

q0

D

Q

Implementación directaContador descendente módulo 16

HSHSHSHS cetc

Page 37: Tema 7: Módulos secuenciales básicos

37

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

CONT ASC/DES

Contador ascendente/descendentemódulo 2n

q

cln

opclk

tc

q 1 salida de datos de n bits

op 1 entrada de selección de operación

ce 1 entrada de capacitación de cuenta

tc 1 salida de fin de cuenta

cl 1 entrada de inicialización asíncrona

clk 1 entrada de reloj

ce

si cl(t) = 1  q(t+t) = 0

si cl(t) = 0  q(t+1) =

[q(t)+1] mod 2n si op(t)= 0 y ce(t)=1

[q(t)‐1] mod 2n si op(t)= 1 y ce(t)=1

q(t) en otro caso

si cl(t) = 1  tc(t+t) = 0

si cl(t) = 0  tc(t+t) =1 si ( q(t)=2n‐1 y op(t)=0 y ce(t)=1 )

ó ( q(t)=0 y op(t)=1 y ce(t)=1 )

0 en caso contrario

Page 38: Tema 7: Módulos secuenciales básicos

38

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

+/-

0

op

n n

n

arraybiestables D

q

cl

clk

tc ce

Page 39: Tema 7: Módulos secuenciales básicos

39

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

+/-

0

op

n n

n

arraybiestables D

q

cl

clk

tc ce

di = qi cbicbo = opꞏqiꞏcbi+ opꞏqiꞏcbi

op qi cbi cbo di

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 01 0 1 1 11 1 0 0 11 1 1 0 0

Page 40: Tema 7: Módulos secuenciales básicos

40

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

cbi

di

qi

op

cbo

+/-

0

op

n n

n

arraybiestables D

q

cl

clk

tc

di = qi cbicbo = opꞏqiꞏcbi+ opꞏqiꞏcbi

op qi cbi cbo di

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 01 0 1 1 11 1 0 0 11 1 1 0 0

ce HAS(Half Adder/Subtractor)

Page 41: Tema 7: Módulos secuenciales básicos

41

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

q2

D

Q

q1

D

Q

q0

D

Q

Implementación directaContador ascendente/descendente  módulo 16

HASHASHASHAS cetc

op

Page 42: Tema 7: Módulos secuenciales básicos

42

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

CONT

Contador ascendente concarga paralela módulo 2n

x

q

cl

n

nce

clk ld

tc

si cl(t) = 1  q(t+t) = 0

si cl(t) = 0  q(t+1) =

x(t) si ld(t)=1

[q(t)+1] mod 2n si ld(t)=0 y ce(t)=1

q(t) en caso contrario

si cl(t) = 1  tc(t+t) = 0

si cl(t) = 0  tc(t+t) =1 si q(t)=2n‐1 y ld(t)=0 y ce(t)=1

0 en caso contrario

x 1 entrada de datos de n bits

q 1 salida de datos de n bits

ld 1 entrada de carga paralela

ce 1 entrada de capacitación de cuenta

tc 1 salida de fin de cuenta

cl 1 entrada de inicialización asíncrona

clk 1 entrada de reloj

Page 43: Tema 7: Módulos secuenciales básicos

43

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

10

q2

D

Q

10

q1

D

Q

10

q0

D

Q

ld

10

Page 44: Tema 7: Módulos secuenciales básicos

44

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

10

q2

D

Q

10

q1

D

Q

10

q0

D

Q

ld

10

x3 x2 x1 x0

Page 45: Tema 7: Módulos secuenciales básicos

45

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

D

Q

10

x3

q2

D

Q

10

x2

q1

D

Q

10

x1

q0

D

Q

ld

10

x0

HAHAHAHA cetc

Page 46: Tema 7: Módulos secuenciales básicos

46

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

10

x3

q2

D

Q

10

x2

q1

D

Q

10

x1

q0

D

Q

ld

10

x0

HAHAHAHA cetc

Page 47: Tema 7: Módulos secuenciales básicos

47

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

q3

clclk

D

Q

10

x3

q2

D

Q

10

x2

q1

D

Q

10

x1

q0

D

Q

ld

10

x0

HAHAHAHA cetc

Implementación directaContador ascendente con carga paralela módulo 16

Page 48: Tema 7: Módulos secuenciales básicos

48

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Varios contadores  se pueden componer en serie para para comportarse como un contador de mayor anchura.

Implementación en cascadaContador ascendente con carga paralela módulo 256

CONTce

CONT

4

q3..0

4

q7..4tc

4

x3..04

x7..4

clkcl

ld

ldcetc tc

ldce

Page 49: Tema 7: Módulos secuenciales básicos

49

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Aplicaciones al diseño:1. Generar secuencias (secuenciador).2. Generar patrones.

CONT

0

cl

clkld

ce ce

cl q3 q2 q1 q0

x3 x2 x1 x0

0 00

tcContador ascendente BCD

CONT ASC cecl q1 q0

z

1cl

clk

Generador del patrón "0001"

1 2

z3 z2 z1 z0

Page 50: Tema 7: Módulos secuenciales básicos

50

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Aplicaciones al diseño:3. Dividir frecuencias.4. Medir tiempo (temporizador).

CONT ASC ce

q3 q2 q1 q0

3 4

1

fCLK = 200 MHz

100 MHz

0

50 MHz25 MHz

12,5 MHz

cl CONT

0

cl26

ld

ce

q

e1

cl

= 49.999.999

fCLK = 50 MHz (tCLK = 20 ns)

20 ns1 s

26

(num. ciclos) = tiempo / tclk tiempo × fclk

1 s 1ꞏ109 ns(1ꞏ109 ns) / (20 ns/ciclo) = 50.000.000 ciclos

Page 51: Tema 7: Módulos secuenciales básicos

51

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

REG FILE

Banco de 2k registros de n bits(con 1 entrada de datos y 2 salidas de datos)

wd

rd1

n

n

weclk

wd 1 entrada de datos de n bits

rd1, rd2 2 salidas de datos de n bits

wa 1 entrada de dirección de escritura de k bits 

ra1, ra2 2 entradas de dirección de lectura de k bits 

we 1 entrada de capacitación de escritura

clk 1 entrada de reloj

ra2k

ra1k

wa

k

rd2

n

k

Page 52: Tema 7: Módulos secuenciales básicos

52

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

REG0

REG1

REG2

REG3

ld

ld

ld

ld

Implementación directaRegistro de 4 registros de n bits

clk

Page 53: Tema 7: Módulos secuenciales básicos

53

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

REG0

REG1

REG2

REG3

wdn

clk

ld

ld

ld

ld

n

n

n

n

Implementación directaRegistro de 4 registros de n bits

Page 54: Tema 7: Módulos secuenciales básicos

54

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

0

3

1

21

0

wa1

wa0

REG0

REG1

REG2

REG3

n

clkwe

Eld

ld

ld

ld

n

n

n

n

Implementación directaRegistro de 4 registros de n bits

wd

Page 55: Tema 7: Módulos secuenciales básicos

55

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

0

3

1

21

0

wa1

wa0

REG0

REG1

REG2

REG3

n

clk

0

3

1

2

nrd1

1 0

ra11 ra10we

Eld

ld

ld

ld

n

n

n

n

n

n

n

n

Implementación directaRegistro de 4 registros de n bits

wd

Page 56: Tema 7: Módulos secuenciales básicos

56

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

0

3

1

21

0

wa1

wa0

REG0

REG1

REG2

REG3

n

clk

0

3

1

2

nrd1

1 0

ra11 ra10we

Eld

ld

ld

ld

n

n

n

n

n

n

n

n

Implementación directaRegistro de 4 registros de n bits

wd

0

3

1

2

nrd2

1 0

ra21ra20

Page 57: Tema 7: Módulos secuenciales básicos

57

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

0

3

1

21

0

wa1

wa0

REG0

REG1

REG2

REG3

n

clk

0

3

1

2

nrd1

1 0

ra11 ra10we

Eld

ld

ld

ld

n

n

n

n

n

n

n

n

Implementación directaRegistro de 4 registros de n bits

wd

0

3

1

2

nrd2

1 0

ra21ra20

Page 58: Tema 7: Módulos secuenciales básicos

58

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

RAM

CE

RAM 2k×n(2k palabras de n bits)

dak n

WE OE

d 1 entrada/salida de datos de n bits

a 1 entrada de dirección de k bits 

CE 1 entrada de capacitación

OE 1 entrada de capacitación de lectura

WE 1 entrada de capacitación de escritura

memoria volátil de capaz de almacenar2k palabras de n bits cada una

Page 59: Tema 7: Módulos secuenciales básicos

59

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

SRAM (Static RAM)– Cada bit se almacena en un latch. – No requiere refresco.

DRAM (Dynamic RAM)– Cada bit se almacena en un condensador.– Requiere refresco.

SDRAM (Synchronous Dynamic RAM)– Cada bit se almacena en un condensador.– Requiere refresco.– El interfaz de lectura/escritura es síncrono.

D QG

I O

W S

celda elementalde SRAM

Page 60: Tema 7: Módulos secuenciales básicos

60

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

RAM 4×4

Page 61: Tema 7: Módulos secuenciales básicos

61

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

RAM 4×4

0

3

1

21

0

a1

a0

Page 62: Tema 7: Módulos secuenciales básicos

62

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

d0d1d3 d2

RAM 4×4

0

3

1

21

0

a1

a0

Page 63: Tema 7: Módulos secuenciales básicos

63

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

d0d1d3 d2

RAM 4×4

0

3

1

21

0

a1

a0

CEWE

Page 64: Tema 7: Módulos secuenciales básicos

64

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

OE

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

d0d1d3 d2

RAM 4×4

0

3

1

21

0

a1

a0

CEWE

Page 65: Tema 7: Módulos secuenciales básicos

65

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

0

3

1

21

0

a1

a0

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

I OSW

CEOE

d0d1d3 d2WE

RAM 4×4

Page 66: Tema 7: Módulos secuenciales básicos

66

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Varias RAM se pueden componer para comportarse como una RAM de mayor anchura de palabra.

ak k k

n

...RAM 2k×n

RAM 2k×n

n

RAM 2k×n

n...

nꞏm

m

Implementación multimóduloRAM 2k×(n∙m) usando m RAM 2k×n

ceweoe

Page 67: Tema 7: Módulos secuenciales básicos

67

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Varias RAM se pueden componer para comportarse como una RAM de mayor profundidad.

ak-1..0

k k k

n

...RAM 2k×n

RAM 2k×n

n

RAM 2k×n

n

n

2m-k

0 2m‐k‐1

am-1...k

...1

m-k

Implementación multimóduloRAM 2m×n usando 2m‐k RAM 2k×n

bus

CE CE CE

weoe

ce E

Page 68: Tema 7: Módulos secuenciales básicos

68

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cuando un sistema secuencial realiza un algoritmo complejo no es viable especificarlo mediante un diagrama de estados.

Diseño algorítmico: implementa un algoritmo en hardware.o Ruta de datos: realiza las operaciones y almacena resultados parciales.o Controlador: secuencia la realización de las operaciones según lo indicado 

por el algoritmo.

Ruta de datos

Controlador

Señales decontrolSeñales de

estado

Entradade datos

Salidade datos

Salidade control

Entradade control

módulos aritméticoslógica discretaregistroscontadores ...

máquina de estados

Page 69: Tema 7: Módulos secuenciales básicos

69

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: interfaz

Multiplicador

A B

iniciofin

clk

R

64

32 32

rst

110101

000110000000

+ 011000

011110

a2a1a0

b2b1b0

(000a2a1a0) b0(00a2a1a00) b1

+ (0a2a1a000) b2

1. Especificación de alto nivel

XXXXXXXX 0000001E

00000006

00000005

A

B

inicio

fin

R

clk

r5r4r3r2r1r0

Algoritmo para operandos de 3 bits

carga operandos

vuelcaresultado

Page 70: Tema 7: Módulos secuenciales básicos

70

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

Para operandos de 32 bits el bucle sería de 0 a 31

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 71: Tema 7: Módulos secuenciales básicos

71

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 72: Tema 7: Módulos secuenciales básicos

72

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 1

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 73: Tema 7: Módulos secuenciales básicos

73

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 74: Tema 7: Módulos secuenciales básicos

74

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 75: Tema 7: Módulos secuenciales básicos

75

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 76: Tema 7: Módulos secuenciales básicos

76

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 16. 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 77: Tema 7: Módulos secuenciales básicos

77

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 16. 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 04. 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 78: Tema 7: Módulos secuenciales básicos

78

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 16. 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 04. 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 05. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 79: Tema 7: Módulos secuenciales básicos

79

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 16. 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 04. 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 05. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 06. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 80: Tema 7: Módulos secuenciales básicos

80

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 16. 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 04. 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 05. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 06. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 14. 2 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 81: Tema 7: Módulos secuenciales básicos

81

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 16. 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 04. 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 05. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 06. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 14. 2 0 1 1 1 1 0 0 1 1 0 0 0 0 0 15. 2 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 82: Tema 7: Módulos secuenciales básicos

82

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 16. 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 04. 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 05. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 06. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 14. 2 0 1 1 1 1 0 0 1 1 0 0 0 0 0 15. 2 0 1 1 1 1 0 1 1 0 0 0 0 0 0 16. 2 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 83: Tema 7: Módulos secuenciales básicos

83

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Especificación de alto nivel: algoritmo

C R5 R4R3R2R1R0 A5 A4A3A2A1A0 B2B1B0

1. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 ‐ ‐ ‐2. ‐ ‐ ‐ ‐ ‐ ‐ ‐ 0 0 0 1 1 0 1 0 13. ‐ 0 0 0 0 0 0 0 0 0 1 1 0 1 0 14. 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 15. 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 16. 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 04. 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 05. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 06. 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 14. 2 0 1 1 1 1 0 0 1 1 0 0 0 0 0 15. 2 0 1 1 1 1 0 1 1 0 0 0 0 0 0 16. 2 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0

2. Especificación del algoritmo

Algoritmo para operandos de 3 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<3; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 84: Tema 7: Módulos secuenciales básicos

84

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Diseño de la ruta de datos

3. Diseño de la ruta de datos

Algoritmo para operandos de 32 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 85: Tema 7: Módulos secuenciales básicos

85

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Elementos de almacenamiento

REG R

REG A

REG B

ld

ldcl

cl

clld

64

64

32

64

64

32

CONT ASC0‐31 ce

cl

5

3. Diseño de la ruta de datos

Algoritmo para operandos de 32 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 86: Tema 7: Módulos secuenciales básicos

86

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

CONT ASC0‐31

Desplazamiento de operandos

REG R

SHT REG A

SHT REG B

ld

ldcl

cl

clld

64

64

32

lsh

rsh

64

64

32

cecl

5

3. Diseño de la ruta de datos

Algoritmo para operandos de 32 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 87: Tema 7: Módulos secuenciales básicos

87

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

CONT ASC0‐31

Conexión con el exterior

REG R

SHT REG A

SHT REG B

ld

ldcl

cl

clld

64

64

32

lsh

rsh

64

64

32

32

A B

0

R

32

cecl

5

3. Diseño de la ruta de datos

Algoritmo para operandos de 32 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 88: Tema 7: Módulos secuenciales básicos

88

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Suma de productos parciales

REG R

SHT REG A

SHT REG B

ld

ldcl

cl

clld

64

64

32

lsh

rsh

64

64

64

+

32

32

32

A B

0

R

cecl

5

3. Diseño de la ruta de datos

CONT ASC0‐31

Algoritmo para operandos de 32 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 89: Tema 7: Módulos secuenciales básicos

89

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Inicialización y almacenaje

REG R

SHT REG A

SHT REG B

ld

ldcl

cl

clld

64

64

32

lsh

rsh

64

64

64

+

32

32

A B

0

R

64

10

0 64

32

cecl

5

3. Diseño de la ruta de datos

CONT ASC0‐31

Algoritmo para operandos de 32 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 90: Tema 7: Módulos secuenciales básicos

90

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Chequeo de condiciones

REG R

SHT REG A

SHT REG B

ld

ldcl

cl

clld

64

64

32

lsh

rsh

64

64

64

+

32

32

A B

0

R

64

10

0 64

B032

31

cecl

5

3. Diseño de la ruta de datos

CONT ASC0‐31

Algoritmo para operandos de 32 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 91: Tema 7: Módulos secuenciales básicos

91

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Detección del fin del bucle

REG R

SHT REG A

SHT REG B

ld

ldcl

cl

clld

64

64

32

lsh

rsh

64

64

64

+

32

32

A B

0

R

64

10

0 64

B032

31

cecl

= 0

5

5C C=0

3. Diseño de la ruta de datos

CONT ASC0‐31

Algoritmo para operandos de 32 bits

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 92: Tema 7: Módulos secuenciales básicos

92

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Señales de control

6464

64

REG R

64

SHT REG A

10

64

64

32

32 SHT REG B

32

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

64+

ld

ldB

ldA

selR

ldR

lshA

rshB

B032

31

ceCcecl

= 0

5

4. Identificación de las señales de control

CONT ASC0‐31

Page 93: Tema 7: Módulos secuenciales básicos

93

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Señales de estado

6464

64

REG R

64

SHT REG A

10

64

64

32

32 SHT REG B

32

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

64+

ld

ldB

ldA

selR

ldR

lshA

rshB

B032

31B0

Cz

ceCcecl

= 0

5

5. Identificación de las señales de estado

CONT ASC0‐31

Page 94: Tema 7: Módulos secuenciales básicos

94

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Conexión del reloj y reset

6464

64

REG R

64

SHT REG A

10

64

64

32

32 SHT REG B

32

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

64+

ld

ldB

ldA

selR

ldR

lshA

rshB

B0

Cz

clk rst

B032

31

ceCcecl

= 0

5

CONT ASC0‐31

Page 95: Tema 7: Módulos secuenciales básicos

95

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

CONTR

OLA

DOR

inicio

fin

Conexión con el controlador

6464

64

REG R

64

SHT REG A

10

64

64

32

32 SHT REG B

32

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

64+

ld

ldB

ldA

selR

ldR

lshA

rshB

B0

Cz

clk rst

cl

B032

31

ceCcecl

= 0

5

CONT ASC0‐31

Page 96: Tema 7: Módulos secuenciales básicos

96

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

CONT ASC0‐31

Estructura del sistema completo

CONTR

OLA

DOR

6464

64

REG R

64

SHF REG A

10

64

64

32

32 SHT REG BldB

32

ld

ldcl

cl

cl

A B

0

0

R

ldA

selR

ldR

lsh lshA

B0

rsh rshB

B0

Cz

clk rst

cl

inicio

fin

64+

ld

RUTA DE DATOS

32

31

ceCcecl

= 0

5

Page 97: Tema 7: Módulos secuenciales básicos

97

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Formalismo ASM (Algorithmic State Maquine)

Para facilitar la expresión del algoritmo como una FSM usaremos un diagrama ASM como formalismo intermedio.

Un diagrama ASM es un grupo de bloques interconectados.o Cada bloque se corresponde con un estado de la FSM e indica las 

acciones que se realizan en paralelo en dicho estado. 

Todo bloque (recuadro azul) esta formado por:o 1 caja de estado (rectangular): que indica las transferencias entre 

registros que se realizan incondicionalmente en el estado.o 0..n cajas de selección (romboidales): indican las condiciones bajo 

las cuales se que se determina el estado siguiente del sistema o se realizan ciertas transferencias entre registros.

o 0..n cajas condicionales (ovaladas): indica las trasferencias entre registros que se realizan condicionalmente en un estado.

Page 98: Tema 7: Módulos secuenciales básicos

98

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

S0

Algoritmo en ASM

1

0inicio

RA AinRB Bin

fin 1

6. Reformulación del algoritmo como unasecuencia de transferencias entre registros

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 99: Tema 7: Módulos secuenciales básicos

99

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

S1

Algoritmo en ASM

1

0

RR 0fin 0

inicio

RA AinRB Bin

fin 1

10B0

6. Reformulación del algoritmo como unasecuencia de transferencias entre registros

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 100: Tema 7: Módulos secuenciales básicos

100

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Algoritmo en ASM

1

0

RR 0fin 0

inicio

RA AinRB Bin

fin 1

RA RA << 1RB RB >> 1RC RC + 1

fin 0

10B0

S2

6. Reformulación del algoritmo como unasecuencia de transferencias entre registros

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 101: Tema 7: Módulos secuenciales básicos

101

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Algoritmo en ASM

1

0

RR 0fin 0

inicio

RA AinRB Bin

fin 1

RR RA + RRRA RA << 1RB RB >> 1RC RC + 1

fin 0

RA RA << 1RB RB >> 1RC RC + 1

fin 0

10B0

S3

6. Reformulación del algoritmo como unasecuencia de transferencias entre registros

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 102: Tema 7: Módulos secuenciales básicos

102

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Algoritmo en ASM

(Cz,B0)0100

1X

1

0

S4

RR 0fin 0

inicio

RA AinRB Bin

fin 1

RR RA + RRRA RA << 1RB RB >> 1RC RC + 1

fin 0

RA RA << 1RB RB >> 1RC RC + 1

fin 0

fin 0

10B0

6. Reformulación del algoritmo como unasecuencia de transferencias entre registros

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 103: Tema 7: Módulos secuenciales básicos

103

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Algoritmo en ASM

6. Reformulación del algoritmo como unasecuencia de transferencias entre registros

RR RA + RRRA RA << 1RB RB >> 1RC RC + 1

fin 0

RA RA << 1RB RB >> 1RC RC + 1

fin 0

(Cz,B0)

fin 0

10

0100

1X

1

0S0

S1

S3S2

S4

RR 0fin 0

inicio

RA AinRB Bin

fin 1

B0

1. A = Ain;2. B = Bin;3. R = 0;

for( C=0; C<32; C++ ){

4. if( B0==1 ) R = R+A;

5. A = A << 1;6. B = B >> 1;

};7. Rout = R;

Page 104: Tema 7: Módulos secuenciales básicos

104

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Algoritmo en ASM

RR RA + RRRA RA << 1RB RB >> 1RC RC + 1

fin 0

RA RA << 1RB RB >> 1RC RC + 1

fin 0

(Cz,B0)

fin 0

10

0100

1X

1

0

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

S0

S1

S3S2

S4

RR 0fin 0

inicio

RA AinRB Bin

fin 1

B0

tiempo de cálculo: 2+32×2 = 66 ciclos

Page 105: Tema 7: Módulos secuenciales básicos

105

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Algoritmo como una FSM

S2 S3

S0

S1

S4 estado ldB rshB ldA lshA ceC selR ldR finS0 1 0 1 0 0 ‐ 0 1S1 0 0 0 0 0 0 1 0S2 0 1 0 1 1 ‐ 0 0S3 0 1 0 1 1 1 1 0S4 0 0 0 0 0 ‐ 0 0

Estado inicial

(1,X,X)

(X,X,1)(X,X,0)

(X,1,X)

(X,0,1)(X,0,0)

(X,X,X) (X,X,X)

estado inicio Cz B0 estado'S0 0 X X S0S0 1 X X S1S1 X X 0 S2S1 X X 1 S3S2 X X X S4S3 X X X S4S4 X 0 0 S2S4 X 0 1 S3S4 X 1 X S0

(0,X,X)

entradas del controlador: (inicio, Cz, B0) 7. Especificación del controlador como FSM

Función de transición de estados

Función de salida

Page 106: Tema 7: Módulos secuenciales básicos

106

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

6464

64

64

64

64

32

32

32

64

32

31

B0

CONTR

OLA

DOR

ldB

ldA

selR

ldR

lshA

rshB

B0

Cz

cl

Diseño del controlador

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

CONT ASC ceCcecl

= 0

5

8. Diseño del controlador

Page 107: Tema 7: Módulos secuenciales básicos

107

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

ROM + registro de estado

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

6464

64

64

64

64

32

32

32

64

32

31

B0

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

CONT ASC cecl

= 0

5

8. Diseño del controlador

Page 108: Tema 7: Módulos secuenciales básicos

108

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Generación del contenido de la ROMq 2 q 1 q 0

inicio

Cz B0 q 2'

q 1'

q 0'

ldB

rshB ldA

lshA

ceC

selR

ldR fin

a5 a4 a3 a2 a1 a0 DIR. d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 10 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 10 0 0 0 1 0 2 0 0 0 1 0 1 0 0 0 0 10 0 0 0 1 1 3 0 0 0 1 0 1 0 0 0 0 10 0 0 1 0 0 40 0 0 1 0 1 50 0 0 1 1 0 60 0 0 1 1 1 70 0 1 0 0 0 80 0 1 0 0 1 90 0 1 0 1 0 100 0 1 0 1 1 110 0 1 1 0 0 120 0 1 1 0 1 130 0 1 1 1 0 140 0 1 1 1 1 15

... ... ...1 1 1 1 1 1 63

estado ldB rshB ldA lshA ceC selR ldR finS0 1 0 1 0 0 ‐ 0 1S1 0 0 0 0 0 0 1 0S2 0 1 0 1 1 ‐ 0 0S3 0 1 0 1 1 1 1 0S4 0 0 0 0 0 ‐ 0 0

estado inicio Cz B0 estado'S0 0 X X S0S0 1 X X S1S1 X X 0 S2S1 X X 1 S3S2 X X X S4S3 X X X S4S4 X 0 0 S2S4 X 0 1 S3S4 X 1 X S0

ROM 64×11 8. Diseño del controladordirección

Page 109: Tema 7: Módulos secuenciales básicos

109

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Generación del contenido de la ROMq 2 q 1 q 0

inicio

Cz B0 q 2'

q 1'

q 0'

ldB

rshB ldA

lshA

ceC

selR

ldR fin

a5 a4 a3 a2 a1 a0 DIR. d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 10 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 10 0 0 0 1 0 2 0 0 0 1 0 1 0 0 0 0 10 0 0 0 1 1 3 0 0 0 1 0 1 0 0 0 0 10 0 0 1 0 0 4 0 0 1 1 0 1 0 0 0 0 10 0 0 1 0 1 5 0 0 1 1 0 1 0 0 0 0 10 0 0 1 1 0 6 0 0 1 1 0 1 0 0 0 0 10 0 0 1 1 1 7 0 0 1 1 0 1 0 0 0 0 10 0 1 0 0 0 80 0 1 0 0 1 90 0 1 0 1 0 100 0 1 0 1 1 110 0 1 1 0 0 120 0 1 1 0 1 130 0 1 1 1 0 140 0 1 1 1 1 15

... ... ...1 1 1 1 1 1 63

estado ldB rshB ldA lshA ceC selR ldR finS0 1 0 1 0 0 ‐ 0 1S1 0 0 0 0 0 0 1 0S2 0 1 0 1 1 ‐ 0 0S3 0 1 0 1 1 1 1 0S4 0 0 0 0 0 ‐ 0 0

estado inicio Cz B0 estado'S0 0 X X S0S0 1 X X S1S1 X X 0 S2S1 X X 1 S3S2 X X X S4S3 X X X S4S4 X 0 0 S2S4 X 0 1 S3S4 X 1 X S0

ROM 64×11 8. Diseño del controladordirección

Page 110: Tema 7: Módulos secuenciales básicos

110

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Generación del contenido de la ROMq 2 q 1 q 0

inicio

Cz B0 q 2'

q 1'

q 0'

ldB

rshB ldA

lshA

ceC

selR

ldR fin

a5 a4 a3 a2 a1 a0 DIR. d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 10 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 10 0 0 0 1 0 2 0 0 0 1 0 1 0 0 0 0 10 0 0 0 1 1 3 0 0 0 1 0 1 0 0 0 0 10 0 0 1 0 0 4 0 0 1 1 0 1 0 0 0 0 10 0 0 1 0 1 5 0 0 1 1 0 1 0 0 0 0 10 0 0 1 1 0 6 0 0 1 1 0 1 0 0 0 0 10 0 0 1 1 1 7 0 0 1 1 0 1 0 0 0 0 10 0 1 0 0 0 8 0 1 0 0 0 0 0 0 0 1 00 0 1 0 0 1 90 0 1 0 1 0 10 0 1 0 0 0 0 0 0 0 1 00 0 1 0 1 1 110 0 1 1 0 0 12 0 1 0 0 0 0 0 0 0 1 00 0 1 1 0 1 130 0 1 1 1 0 14 0 1 0 0 0 0 0 0 0 1 00 0 1 1 1 1 15

... ... ...1 1 1 1 1 1 63

estado ldB rshB ldA lshA ceC selR ldR finS0 1 0 1 0 0 ‐ 0 1S1 0 0 0 0 0 0 1 0S2 0 1 0 1 1 ‐ 0 0S3 0 1 0 1 1 1 1 0S4 0 0 0 0 0 ‐ 0 0

estado inicio Cz B0 estado'S0 0 X X S0S0 1 X X S1S1 X X 0 S2S1 X X 1 S3S2 X X X S4S3 X X X S4S4 X 0 0 S2S4 X 0 1 S3S4 X 1 X S0

ROM 64×11 8. Diseño del controladordirección

Page 111: Tema 7: Módulos secuenciales básicos

111

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Generación del contenido de la ROMq 2 q 1 q 0

inicio

Cz B0 q 2'

q 1'

q 0'

ldB

rshB ldA

lshA

ceC

selR

ldR fin

a5 a4 a3 a2 a1 a0 DIR. d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

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

... ... ...1 1 1 1 1 1 63

estado ldB rshB ldA lshA ceC selR ldR finS0 1 0 1 0 0 ‐ 0 1S1 0 0 0 0 0 0 1 0S2 0 1 0 1 1 ‐ 0 0S3 0 1 0 1 1 1 1 0S4 0 0 0 0 0 ‐ 0 0

estado inicio Cz B0 estado'S0 0 X X S0S0 1 X X S1S1 X X 0 S2S1 X X 1 S3S2 X X X S4S3 X X X S4S4 X 0 0 S2S4 X 0 1 S3S4 X 1 X S0

ROM 64×11 8. Diseño del controladordirección

Page 112: Tema 7: Módulos secuenciales básicos

112

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

000

XXXXXX

000000

0000

1

1

0

0

0

0

0000000

000000

XXXXXX

XXXXXX

000

1

B0

cecl

= 0

0

00

1

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

CONT ASC0‐2

Page 113: Tema 7: Módulos secuenciales básicos

113

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

000

000000

XXXXXX

000000

001

1

1

0

0

0

0

1101110

000110

XXXXXX1

B0

0000

cecl

= 0

0

00

1

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

CONT ASC0‐2

Page 114: Tema 7: Módulos secuenciales básicos

114

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

001

000110

0

0

0

0

1

0

XXXXXXX

XXXXXX

XXXXXX

000000

XXXXXX

011

0

B0

1011

cecl

= 0

0

00

1

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

CONT ASC0‐2

Page 115: Tema 7: Módulos secuenciales básicos

115

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

011

000110

0

0

1

1

1

1

XXXXXXX

XXXXXX

000110

000110

000000

100

0

B0

1011

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

cecl

= 0

1

00

1

CONT ASC0‐2

Page 116: Tema 7: Módulos secuenciales básicos

116

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

100

001100

0

0

0

0

0

0

XXXXXXX

XXXXXX

010010

000000

000110

010

0

B0

0100

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

cecl

= 0

0

01

0

CONT ASC0‐2

Page 117: Tema 7: Módulos secuenciales básicos

117

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

010010

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

010

001100

0

0

1

0

0

1

XXXXXXX

XXXXXX

000000

000110

100

0

B0

0100

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

cecl

= 0

1

0

01

CONT ASC0‐2

Page 118: Tema 7: Módulos secuenciales básicos

118

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

011110

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

100

011000

0

0

0

0

0

0

XXXXXXX

XXXXXX

000000

000110

011

0

B0

0011

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

cecl

= 0

0

10

0

CONT ASC0‐2

Page 119: Tema 7: Módulos secuenciales básicos

119

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

011110

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

110

011000

0

0

1

1

1

1

XXXXXXX

XXXXXX

011110

000110

100

0

B0

0011

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

cecl

= 0

1

0

10

CONT ASC0‐2

Page 120: Tema 7: Módulos secuenciales básicos

120

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

001110

Simulación del sistema (operandos de 3 bits) 

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

100

110000

0

0

0

0

0

0

XXXXXXX

XXXXXX

000000

011110

000

0

B0

0000

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

cecl

= 0

0

00

1

CONT ASC0‐2

Page 121: Tema 7: Módulos secuenciales básicos

121

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

001110

Simulación del sistema (operandos de 3 bits)

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

000

110000

1

1

0

0

0

0

XXXXXXX

XXXXXX

000000

011110

000

1

B0

0000

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

cecl

= 0

0

00

1

CONT ASC0‐2

Page 122: Tema 7: Módulos secuenciales básicos

122

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

A

B

inicio

fin

R

clk

estado

RB

RC

RA

000

000

XXXXXX

110

101

000

00

101

000000 000110

S0 S1 S3 S4 S2 S4 S3 S4 S0

010 001 000

001100 011000 110000

01 10 00

000110 011110

101

000110

000000

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

tiempo de cálculo: 2+3×2 = 8 ciclos

Page 123: Tema 7: Módulos secuenciales básicos

123

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Otro posible controlador: ROM + contador

S2 S3

S0

S1

S4

Estado inicial

(1,X,X)

(X,X,1)(X,X,0)

(X,1,X)

(X,0,1)(X,0,0)

(X,X,X) (X,X,X)

(0,X,X)

entradas del controlador: (inicio, Cz, B0)

ROM64×13

a5 a2

ldrselRceClshAldA

rshBldB

fin d0

d1

d2

d3

d4

d5

d6

a4 a3 a0a1

inic

ioB

0 Cz

d10

d7

d8

d9

d12d11

CONTcl e2 e1 e0

q2 q1 q0 celd

q inicio Cz B0 e ld ceS0 0 X X ‐ 0 0S0 1 X X ‐ 0 1S1 X X 0 ‐ 0 1S1 X X 1 S3 1 0S2 X X X S4 1 0S3 X X X ‐ 0 1S4 X 0 0 S2 1 0S4 X 0 1 S3 1 0S4 X 1 X S0 1 0

Page 124: Tema 7: Módulos secuenciales básicos

124

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del coste y tiempo de ciclo

+6464

64

10

64

64

64

FAFA64

64

área: 64×29.49 = 1887 m2

retardo: 64×226 = 14464 ps

área: 64×11.05 = 707.2 m2

retardo: 1×223 = 223 ps

REGcl

ld

n

n

n

n

área: n×11.05 + n×32.26 = n×43.31 m2

retardo CLKQ: 1×167 = 167 psretardo inD: 1×223 = 223 ps

ROM64×11

CONT ASC cecl tc

5

SHT REG ldcl

n

sh

n

64

área: n×23.04 + n×32.26 = n×55.3 m2

retardo CLKQ: 1×167 = 167 psretardo inD: 1×250 = 250 ps

HAHA5

5

área: 5×15.77 + 5×32.26 = 240.6 m2

retardo CLKQ: 1×167 = 167 psretardo inD: 5×114 = 570 ps

área: 971 m2

retardo: 573 ps= 0

área: 15,67 m2

retardo: 126 ps

Page 125: Tema 7: Módulos secuenciales básicos

125

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

6464

64

64

64

64

32

32

32

64

32

31

B0

14464

573

167 250

167 250

167 223

223

167

223

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (B0=0) ir a S2;si (B0=1) ir a S3;

S2 RA RA << 1; RB RB >> 1;RC RC + 1; fin 0;ir a S4;

S3 RR RA + RR; RA RA << 1; RB RB >> 1; RC RC + 1; fin 0;ir a S4;

S4 fin 0; si (Cz=1) ir a S0;si (Cz=0 y B0=0) ir a S2;si (Cz=0 y B0=1) ir a S3;

CONT ASC cecl

= 0

5

167 570

126

Page 126: Tema 7: Módulos secuenciales básicos

126

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

SHT REG A ldcl

A

0

lsh

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

64

32

32

573

250

167

transferencia retardo

RA Ain 990 ps

Page 127: Tema 7: Módulos secuenciales básicos

127

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

SHT REG B ldcl

B

rsh

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

32

573

250

167

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

Page 128: Tema 7: Módulos secuenciales básicos

128

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

fin

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

573

167

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

Page 129: Tema 7: Módulos secuenciales básicos

129

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

REG R

10

cl

0

ld

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

64

64

64

573

223

223

167

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

RR 0 1186 ps

Page 130: Tema 7: Módulos secuenciales básicos

130

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

SHT REG A ldcl lsh

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

573

250

167

167 transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

RR 0 1186 ps

RA RA << 1 990 ps

Page 131: Tema 7: Módulos secuenciales básicos

131

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

SHT REG B ldcl rsh

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

573

250

167

167

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

RR 0 1186 ps

RA RA << 1 990 ps

RB RB >> 1 990 ps

Page 132: Tema 7: Módulos secuenciales básicos

132

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

REG R

SHT REG A

10

ldcl

cl

0

R

lsh

+

ld

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

6464

64

64

64

64

14464

573

167

167 223

223

167

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

RR 0 1186 ps

RA RA << 1 990 ps

RB RB >> 1 990 ps

RR RA + RR 15077ps

Page 133: Tema 7: Módulos secuenciales básicos

133

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

CONT ASC

Cálculo del tiempo de ciclo

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

573

167

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

RR 0 1186 ps

RA RA << 1 990 ps

RB RB >> 1 990 ps

RR RA + RR 15077ps

RC RC + 1 1350 ps

cecl

570

Page 134: Tema 7: Módulos secuenciales básicos

134

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

REGcl

ROM64×11

3

a5 a0d10

d0

. . .

. . .

573

167

3

223

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

RR 0 1186 ps

RA RA << 1 990 ps

RB RB >> 1 990 ps

RR RA + RR 15077ps

RC RC + 1 1350 ps

cálculo de estado 1089 ps

CONT ASC cecl

= 0

5

167

126

SHT REG B ldcl rsh

inicio

32

31

B0

167

Page 135: Tema 7: Módulos secuenciales básicos

135

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del tiempo de ciclo

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

6464

64

64

64

64

32

32

32

64

32

31

B0

14464

573

167 250

167 250

167 223

223

167

223

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

RR 0 1186 ps

RA RA << 1 990 ps

RB RB >> 1 990 ps

RR RA + RR 15077ps

RC RC + 1 1350 ps

cálculo de estado 1089 ps

máximo 15077ps

𝒇𝒄𝒍𝒌1

𝑡1

15077 · 10 s 𝟔𝟔 𝐌𝐇𝐳

CONT ASC cecl

= 0

5

167 570

126

tiempo de cálculo: 1 s(66 ciclos × 15077 ps/ciclo)

Page 136: Tema 7: Módulos secuenciales básicos

136

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Cálculo del coste

REG R

SHT REG A

10

SHT REG B

ld

ldcl

cl

cl

A B

0

0

R

lsh

rsh

+

ld

inicio

fin

REGcl

ROM64×11

3

3

a5 a0d10

d0

. . .

. . .

6464

64

64

64

64

32

32

32

64

32

31

B0

1770

transferencia retardo

RA Ain 990 ps

RB Bin 990 ps

fin X 740 ps

RR 0 1186 ps

RA RA << 1 990 ps

RB RB >> 1 990 ps

RR RA + RR 15077ps

RC RC + 1 1350 ps

cálculo de estado 963 ps

máximo 15077ps

𝒇𝒄𝒍𝒌1

𝑡1

15077 · 10 s 𝟔𝟔 𝐌𝐇𝐳

3539

1887

707

2772

241

130

971

área: 12033 m2

CONT ASC cecl

= 0

516

tiempo de cálculo: 1 s(66 ciclos × 15077 ps/ciclo)

Page 137: Tema 7: Módulos secuenciales básicos

137

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

Máximo comúndivisor

A B

iniciofin

clk

R

n

n n

rst

algoritmo de Euclides

A3A2A1A0 B3 B2B1B0 R3R2R1 R0

1. 1 0 0 1 ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐2. 1 0 0 1 0 1 1 0 ‐ ‐ ‐ ‐3. 1 0 0 1 0 1 1 0 0 0 0 04. 0 0 1 1 0 1 1 0 0 0 0 05. 0 0 1 1 0 0 1 1 0 0 0 06. 0 0 1 1 0 0 1 1 0 0 1 1

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 138: Tema 7: Módulos secuenciales básicos

138

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

REG A ldcl

REG B ldcl

REG R

n

cl ld

n

n

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 139: Tema 7: Módulos secuenciales básicos

139

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

REG A ldcl

n

REG B ldcl

REG R

n

cl

R

ld

01

0n

n

n

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 140: Tema 7: Módulos secuenciales básicos

140

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

01

1 0

REG A ldcl

n

REG B ldcl

n

REG R

n

cl

R

ld

01

0n

n

n

n

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 141: Tema 7: Módulos secuenciales básicos

141

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

01

1 0

REG A ldcl

n

n

01

REG B ldcl

n

REG R

n

cl

R

ld

A

n

01

0n

n

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 142: Tema 7: Módulos secuenciales básicos

142

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

01

1 0

REG A ldcl

n

n

01

REG B ldcl

n

n

0 1

REG R

n

cl

R

ld

A B

n

n

01

0n

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 143: Tema 7: Módulos secuenciales básicos

143

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

01

1 0

REG A ldcl

n

n

01

REG B ldcl

n

n

0 1

REG R

n

cl

R

ld

A B

A<>0 y B<>0

n

n

01

0n

n

n A<>0 y B<>0

A

B

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 144: Tema 7: Módulos secuenciales básicos

144

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

01

1 0

REG A ldcl

n

n

01

REG B ldcl

n

n

0 1

REG R

n

cl

R

ld

A B

A ? B

A<>0 y B<>0

n

n

01

0n

2

zA=B 00A>B 10A<B 01

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 145: Tema 7: Módulos secuenciales básicos

145

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

01

1 0

REG A ldcl

n

n

01

REG B ldcl

n

n

0 1

REG R

n

cl

R

ld

A B

A ? B

A<>0 y B<>0

n

n

01

0n

2

selB

ldB

seli

selR

selA

ldA

seld

ldR

Page 146: Tema 7: Módulos secuenciales básicos

146

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

01

1 0

REG A ldcl

n

n

01

REG B ldcl

n

n

0 1

REG R

n

cl

R

ld

A B

A ? B

A<>0 y B<>0

n

n

01

0n

2

selB

ldB

seli

selR

selA

ldA

seld

ldR

cmp

nz

Page 147: Tema 7: Módulos secuenciales básicos

147

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

CONTR

OLA

DOR

-

01

1 0

REG A ldcl

n

n

01

REG B ldcl

n

n

0 1

REG R

n

cl

R

ld

A B

A ? B

A<>0 y B<>0

n

n

selB

cmp

ldB

seli

selR

nz

selA

cl

ldA

seld

2

01

0n

ldR

fin

inicio

RUTA DE DATOS

Page 148: Tema 7: Módulos secuenciales básicos

148

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

inicio

1

0S0

RA AinRB Bin

fin 1

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 149: Tema 7: Módulos secuenciales básicos

149

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

RR 0fin 0

nz0

inicio

1

0

S1

RA AinRB Bin

fin 1

1

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 150: Tema 7: Módulos secuenciales básicos

150

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

fin 0

cmp0110

S2

RB RB-RARA RA-RB

00

RR 0fin 0

nz0

inicio

1

0

RA AinRB Bin

fin 1

1

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 151: Tema 7: Módulos secuenciales básicos

151

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

RR 0fin 0

nz

1

0

inicio

1

0

fin 0

cmp0110

RB RB-RARA RA-RB

RR RAfin 0

00

RA AinRB Bin

fin 1

S3

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 152: Tema 7: Módulos secuenciales básicos

152

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

RR 0fin 0

nz

1

0

inicio

1

0S0

S1

fin 0

cmp0110

S2

RB RB-RARA RA-RB

RR RAfin 0 S3

00

RA AinRB Bin

fin 1

1. A = Ain;2. B = Bin;3. R = 0;

if( A!=0 && B!=0 ){

while( A!=B )if( A>B )

4. A = A–B;else

5. B = B–A;6. R = A;

};7. Rout = R;

Page 153: Tema 7: Módulos secuenciales básicos

153

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

RR 0fin 0

nz

1

0

inicio

1

0S0

S1

fin 0

cmp0110

S2

RB RB-RARA RA-RB

RR RAfin 0 S3

00

RA AinRB Bin

fin 1

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (nz=0) ir a S0;si (nz=1) ir a S2;

S2 fin 0;si (cmp=00) ir a S3;si (cmp=01) RB RB-RA, ir a S2;si (cmp=10) RA RA-RB, ir a S2;

S3 RR RA; fin 0;ir a S0;

Page 154: Tema 7: Módulos secuenciales básicos

154

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

entradas del controlador:

S2

S0

S1

Estado inicial

(1,X,X)

(X,0,X)

(inicio, nz, cmp)

(0,X,X)

(X,1,X)

S3

(X,X,10)

(X,X,X)

(X,X,00)(X,X,01)

estado cmp1 cmp0 selA selB ldA ldB seli seld selR ldR finS0 X X 0 0 1 1 ‐ ‐ ‐ 0 1S1 X X ‐ ‐ 0 0 ‐ ‐ 1 1 0S2 0 0 ‐ ‐ 0 0 ‐ ‐ ‐ 0 0S2 0 1 ‐ 1 0 1 1 1 ‐ 0 0S2 1 0 1 ‐ 1 0 0 0 ‐ 0 0S2 1 1 ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐S3 X X 0 0 0 0 ‐ ‐ 0 1 0

compatibles compatibles

estado inicio nz cmp1 cmp0 estado'S0 0 X X X S0S0 1 X X X S1S1 X 0 X X S0S1 X 1 X X S2S2 X X 0 0 S3S2 X X 0 1 S2S2 X X 1 0 S2S2 X X 1 1 ‐S3 X X X X S0

Page 155: Tema 7: Módulos secuenciales básicos

155

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

entradas del controlador:

S2

S0

S1

Estado inicial

(1,X,X)

(X,0,X)

(inicio, nz, cmp)

(0,X,X)

(X,1,X)

S3

(X,X,10)

(X,X,X)

(X,X,00)(X,X,01)

estado cmp1 cmp0 ldAldBseliseld

selAselBselR

ldR fin

S0 X X 1 1 0 0 1S1 X X 0 0 1 1 0S2 0 0 0 0 ‐ 0 0S2 0 1 0 1 1 0 0S2 1 0 1 0 1 0 0S2 1 1 ‐ ‐ ‐ ‐ ‐S3 X X 0 0 0 1 0

estado inicio nz cmp1 cmp0 estado'S0 0 X X X S0S0 1 X X X S1S1 X 0 X X S0S1 X 1 X X S2S2 X X 0 0 S3S2 X X 0 1 S2S2 X X 1 0 S2S2 X X 1 1 ‐S3 X X X X S0

Page 156: Tema 7: Módulos secuenciales básicos

156

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

-

01

1 0

REG A ldcl

n

n

01

REG B ldcl

n

0 1

REG R

n

cl

R

ld

A B

A ? B

A<>0 y B<>0

n

n2

01

0n

REGcl

2

3

ROM64×7

a5 a0d6

d0

. . .

. . .

fin

inicio

n

selB

cmp

ldB

seli

selR

nz

selA

ldA

seld

ldR

Page 157: Tema 7: Módulos secuenciales básicos

157

FC‐1

tema 7:

Mód

ulos secue

nciales bá

sicos

vers

ión

30/0

8/21

A

B

inicio

clk

estado

RB

RA

0000

0000

1001

0110

0000 0110

0000 1001

S0 S1 S2 S3 S0

0011 0110

0011 1001

S0 RA Ain; RB Bin; fin 1; si (inicio=0) ir a S0;si (inicio=1) ir a S1;

S1 RR 0; fin 0;si (nz=0) ir a S0;si (nz=1) ir a S2;

S2 fin 0;si (cmp=00) ir a S3;si (cmp=01) RB RB-RA, ir a S2;si (cmp=10) RA RA-RB, ir a S2;

S3 RR RA; fin 0;ir a S0;

fin

R XXXX 00110000

cmp 00 00 1010 01

Page 158: Tema 7: Módulos secuenciales básicos

158

FC‐1

vers

ión

30/0

8/21

tema 7:

Mód

ulos secue

nciales bá

sicos

Licencia CC (Creative Commons)o Ofrece algunos derechos a terceras personas bajo ciertas 

condiciones. Este documento tiene establecidas las siguientes:

Más información: https://creativecommons.org/licenses/by‐nc‐sa/4.0/

Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licenciahará falta reconocer la autoría. 

No comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales.

Compartir igual (Share alike):La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas.