13ejs
TRANSCRIPT
-
8/15/2019 13ejs
1/27
UC amb seqüenciador: Exercicis
11Elena Valder rama & Mercè Rullan
Universidad Autónoma de Barcelona
-
8/15/2019 13ejs
2/27
Problema 1
-
8/15/2019 13ejs
3/27
Problema 1
-
8/15/2019 13ejs
4/27
Programa de control
0 IF (not-inici) GOTO 0
1 EXE (acció 1)
2 IF X1 GOTO 5
3 EXE (acció 3)
4 GOTO 6
5 EXE (acció 2)
6 EXE (acció 4)
7 IF X2 GOTO 10
8 EXE (acció 6) (fi=1)
9 GOTO 0
10 EXE (acció 5)
11 GOTO 6
Problema 1
-
8/15/2019 13ejs
5/27
0 IF (not-inici) GOTO 0
1 EXE (acció 1)
2 IF X1 GOTO 5
3 EXE (acció 3)
4 GOTO 6
5 EXE (acció 2)
6 EXE (acció 4)
7 IF X2 GOTO 10
8 EXE (acció 6) (fi=1)
9 GOTO 0
10 EXE (acció 5)
11 GOTO 6
Problema 1
0 IF (not-inici) GOTO 0
1 EXE (Z02
-
8/15/2019 13ejs
6/27
Memòria ROM
-
8/15/2019 13ejs
7/27
Memòria ROM
Contador
Load
CK
…
-
8/15/2019 13ejs
8/27
Memòria ROM
Contador
Load
CK
…
next_address o Z’s
Tipus d’instrucció Condició
-
8/15/2019 13ejs
9/27
Contador
Cond TI next_address o Z’s
TI TI(1) T
IF 0
GOTO 0
EXE 1
Cond C(1)
not-inici 0
X1 0
X2 1
Load
CK
-
8/15/2019 13ejs
10/27
Contador
Cond TI next_address o Z’s
= 0 +
TI TI(1)
IF 0
GOTO 0
EXE 1
Cond C(1)
not-inici 0
X1 0
X2 1
CK
2
CK
Inici
X1
X2
Load
-
8/15/2019 13ejs
11/27
Contador
Cond TI next_address o Z’s
TI TI(1) T
IF 0
GOTO 0
EXE 1
TI(1)
CK
2
CK
Inici
X1
X2
Load
= 0 +
-
8/15/2019 13ejs
12/27
Programa de
controlCond TI
n ext_ address o Z ’ s C(1) C( 0 ) TI(1) TI(0)
0 IF not - inici GOTO 0
1 EXE (acció 1)
2 IF X1 GOTO 5
3 EXE (acció 3 )
4 GOTO 6
5 EXE (acció 2 )
6 EXE (acció 4 )
7 IF X2 GOTO 1 0
8 EXE (acció 2 ) (fi =1 )
9 GOTO 0
10 EXE (acció 5 )
11 GOTO 6
-
8/15/2019 13ejs
13/27
Programa de
controlTI
IF
GOTO
EXE
Cond TInext_add(3) next_add(2) next_add(1) next_add(0)
Z02 Z13 Z45 fiC(1) C(0) TI(1) TI(0)
0 IF not-inici GOTO 0 0 0 0 0 0 0 0 0 0
1 EXE (acció 1) 0
2 IF X1 GOTO 5 0
3 EXE (acció 3) 0
4 GOTO 6 0
5 EXE (acció 2) 0
6 EXE (acció 4) 0
7 IF X2 GOTO 10 0
8 EXE (acció 2) (fi=1) 1
9 GOTO 0 0
10 EXE (acció 5) 0
11 GOTO 6 0
Cond
not-ini
X1
X2
-
8/15/2019 13ejs
14/27
Programa de
controlCond TI
next_add(3) next_add(2) next_add(1) next_add(0)
Z02 Z13 Z45 fiC(1) C(0) TI(1) TI(0)
0 IF not-inici GOTO 0 0 0 0 0 0 0 0 0 0
1 EXE (acció 1) - - 1 0 1 0 0 - 0
2 IF X1 GOTO 5 0 1 0 0 0 1 0 1 0
3 EXE (acció 3) 0
4 GOTO 6 0
5 EXE (acció 2) 0
6 EXE (acció 4) 0
7 IF X2 GOTO 10 0
8 EXE (acció 2) (fi=1) 1
9 GOTO 0 0
10 EXE (acció 5) 0
11 GOTO 6 0
TI
IF
GOTO
EXE
noop acció 1
acció 2
acció 3
acció 4
acció 5
acció 6
Cond
not-ini
X1
X2
-
8/15/2019 13ejs
15/27
Programa de
controlCond TI
next_add(3) next_add(2) next_add(1) next_add(0)
Z02 Z13 Z45 fiC(1) C(0) TI(1) TI(0)
0 IF not-inici GOTO 0 0 0 0 0 0 0 0 0 0
1 EXE (acció 1) - - 1 0 1 0 0 - 0
2 IF X1 GOTO 5 0 1 0 0 0 1 0 1 0
3 EXE (acció 3) - - 1 0 0 1 1 - 0
4 GOTO 6 - - 0 1 0 1 1 0 0
5 EXE (acció 2) - - 1 0 0 0 1 - 0
6 EXE (acció 4) - - 1 0 1 0 1 - 0
7 IF X2 GOTO 10 1 0 0 0 1 0 1 0 0
8 EXE (acció 2) (fi=1) - - 1 0 0 0 1 - 1
9 GOTO 0 - - 0 1 0 0 0 0 0
10 EXE (acció 5) - - 1 0 1 1 0 - 0
11 GOTO 6 - - 0 1 0 1 1 0 0
TI
IF
GOTO
EXE
noop acció 1
acció 2
acció 3
acció 4
acció 5
acció 6
Cond
not-ini
X1
X2
-
8/15/2019 13ejs
16/27
Contador
Cond TI next_address o Z’s fi
43
4
4
TI(1)2
CK
Inici
X1
X2
Load
-
8/15/2019 13ejs
17/27
Inici
X1
X2
Contador
Load
CK
Cond TI next_address o Z’s fi
43
42
4
seqüenciadorcontrol
seq.
W1k
TI(1)
-
8/15/2019 13ejs
18/27
Problema 2
-
8/15/2019 13ejs
19/27
Problema 4: cos(x)
-
8/15/2019 13ejs
20/27
Problema 4: cos(x)
INI: If not inici then goto INI;
cos
-
8/15/2019 13ejs
21/27
INI: If not inici then goto INI;
cos
-
8/15/2019 13ejs
22/27
mòdul acció inputs output
M/D multiplica x,x q
S/R resta 0,q q
M/D multiplica p,q p
S/R suma k,1 k
M/D multiplica k,f f
S/R suma k,1 k
M/D multiplica k,f f
S/R resta n,k ff
M/D divide p,f R
S/R suma cos,R cos
Si sign=1 => k>n
-
8/15/2019 13ejs
23/27
0 1 2 3 0 1 2 3 0 1 2 30 1 2 3
0 1
S / R M / D
ff
cos p f k q
0 k R q k cos p f p q k f
XN
X1 Resultat
1
Z1 Z2
Z3 Z4
Z5
Z12
Z 6
Z 7
Z 8
Z 9
Z 1 0
Z 1 1
resetresetresetreset
-
8/15/2019 13ejs
24/27
0 IF not-inici GOTO 0
1 EXE (cos
-
8/15/2019 13ejs
25/27
Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z10 Z11
Mux
S/R
Mux
M/D S/R M/D Mux q
Load
cos Load p Load f Load k Load q
Load
R
noop 00 00 0 0 0 0 0 0 0 0 0
cos:=1;k:= 0;p:= 1;f:=1;q:= x
* x- 00 - 0 0 0 0 0 0 1 -
q := 0 –q 00 -- 1 - 1 0 0 0 0 1 -
p := p * q; k:= k +1 01 01 0 0 - 0 1 0 1 0 -
f := f * k; k:= k +1 01 10 0 0 - 0 0 1 1 0 -
f := f * k; ff:= signe(n-k) 10 10 1 0 - 0 0 1 0 0 -
R:= p/f -- 11 - 1 - 0 0 0 0 0 1
cos := cos + R 11 -- 0 - - 1 0 0 0 0 0
(fi = 1) 00 00 0 0 0 0 0 0 0 0 0
Tabla de correspondencia
-
8/15/2019 13ejs
26/27
Z1 Z2b Z4 Z6 Z7 Z8 Z9 Z10 ZC1
noop 00 0 0 0 0 0 0 0 0
cos:=1;k:= 0;p:= 1;f:=1;q:= x * x - 0 0 0 0 0 0 1 0
q := 0 –q 00 - - 0 0 0 0 1 1
p := p * q; k:= k +1 01 1 0 0 1 0 1 0 0
f := f * k; k:= k +1 01 0 0 0 0 1 1 0 1
f := f * k; ff:= signe(n-k) 10 0 0 0 0 1 0 0 1
R:= p/f -- 1 1 0 0 0 0 0 1
cos := cos + R 11 - - 1 0 0 0 0 -
fi = 1 00 0 0 0 0 0 0 0 0
Za = Z5 = Z = ZC
Z3 = Z = ZC
Tabla de correspondencia simplificada
-
8/15/2019 13ejs
27/27
k
(11)