tema 7: módulos secuenciales básicos

Post on 01-Jul-2022

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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)

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)

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

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

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

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)

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)

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)

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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;

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

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

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

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

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

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.

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;

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;

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;

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;

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;

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;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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)

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;

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;

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;

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;

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;

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;

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;

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;

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

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

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

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;

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;

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;

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;

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;

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;

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

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

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

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

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.

top related