Tema 7: Módulos secuenciales básicos
Transcript of 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
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.