Post on 21-Dec-2015
234262
Tutorial #6
Controller + DataPath
part II
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
GCD (Euclid's algorithm)
a is given at the first cycle and that b is given at the following cycle
ALUOpCC
A B
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
Other hardware
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
DP construction
Variables…
Operations…
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
DP flow chart (Moore)(a)
A ß a
(c)
A-B
(f)
(e)
A ß A-B
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0 A-B > 0
*
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
Switch implementation
LdA A B
ALUOpCC
In
SelB
LdB
SelA 0 1 0 1
(a)
A ß a
(c)
A-B
(f)
(e)
A ß A-B
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0 A-B > 0
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
A B
ALUOpCC
In
SelB
LdB
SelA 0 1 0 1
(a)selA=1LD_A
(c)
OP=A-B
(f)
ready
(e)Sel_A=0
LD_AOP=A-B
CC=zero
(b)Sel_B=1
LD_B
(d)Sel_B=0
LD_BOP=B-A
CC=neg CC=pos
(a)
A ß a
(c)
A-B
(f)
(e)
A ß A-B
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0 A-B > 0
Implementation – just as in tutorial 4…
LdA
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
GCD – slower ALU
A B
ALUOpCCALU
In
SelB
LdB
SelA 0 1 0 1
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
GCD – slower ALU(a)
selA=1LD_A
(c)
OP=A-B
(f)
ready
(e)Sel_A=0
LD_AOP=A-B
CC=zero
(b)Sel_B=1
LD_B
(d)Sel_B=0
LD_BOP=B-A
CC=neg CC=pos
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
GCD – slower ALU
(a)selA=1LD_A
(c)
OP=A-B
(f)
ready
(e)Sel_A=0
LD_AOP=A-B
CC=zero
(b)Sel_B=1
LD_B
(d)Sel_B=0
LD_BOP=B-A
CC=neg CC=pos
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
(a)selA=1LD_A
(c)
OP=A-B
(f)
ready
(e)Sel_A=0
LD_AOP=A-B
CC=zero
(b)Sel_B=1
LD_B
(d)Sel_B=0
LD_BOP=B-A
CC=neg CC=pos
GCD – slower ALU
?
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
(a)
A ß a
(c)
A-B
(f)
(e)
A ß A-B
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0 A-B > 0
*
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
*
GCD – slower ALU
A B
ALUOpCCALU
In
SelB
LdB
SelA 0 1 0 1
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
GCD – slower ALU
A B
ALUOp
CCALU
In
SelB
LdB
SelA 0 1 0 1
CC
'0'
ReadCC
01
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
A B
ALUOpCCALU
In
SelB
LdB
SelA0 1 0 1
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
ALUop
אות הסטטו
ס
234262 © – Dima Elenbogen 2009 Technion - IIT
ALUop
אות הסטטו
ס
234262 © – Dima Elenbogen 2009 Technion - IIT
A B
ALUOp
CCALU
In
SelB
LdB
SelA 0 1 0 1
CC
'0'
ReadCC
10
ALUop
Output comb. logics
Transition comb. logics
..
..
234262 © – Dima Elenbogen 2009 Technion - IIT
ספחת סטטית
FF של ALUOP חסר ספחת סטטית חייב להיות!
היא תופעה שבה יחידה יכולה לשנות ספחת סטטית את המוצא שלה כאשר הכניסות שלה לא השתנו
234262 © – Dima Elenbogen 2009 Technion - IIT
(a)
A ß a
(c)
A-B
(f)
(e)
A ß A-B
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0 A-B > 0
000
001
010
100101
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
DP mealy (regular ALU)
(a)
A ß a
(c)If (A-B>0)A ß A-B
(f)
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0
A-B > 0
(a)
A ß a
(c)
A-B
(f)
(e)
A ß A-B
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0 A-B > 0
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
Controller Mealy(a)
selA=1Ld_A
(c)OP=A-B
Sel_A = 0If (CC=pos)
LD_A
(f)
ready
CC=zero
(b)Sel_B=1
LD_B
(d)Sel_B=0
LD_BOP=B-A
CC=neg
CC = pos
(a)
A ß a
(c)If (A-B>0)A ß A-B
(f)
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0
A-B > 0
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
234262 © – Yohai Devir 2007Technion - IIT
Controller Mealy(a)
selA=1Ld_A
(c)OP=A-B
Sel_A = 0If (CC=pos)
LD_A
(f)
ready
CC=zero
(b)Sel_B=1
LD_B
(d)Sel_B=0
LD_BOP=B-A
CC=neg
CC = pos
(a)
A ß a
(c)If (A-B>0)A ß A-B
(f)
A-B == 0
(b)
B ß b
(d)
B ß B-A
A-B < 0
A-B > 0
?
selA=0selB=0if (CC==pos) ldA, OP=A-Bif (CC==neg) ldB, OP=B-A
CC=posCC=neg
?
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
ALUOP depends on CCALU!
A B
ALUOpCCALU
In
SelB
LdB
SelA 0 1 0 1
Combinatorial Logics NS
CS
LdA
234262 © – Dima Elenbogen 2009 Technion - IIT
ALUOP depends on CCALU!
A B
ALUOpCCALU
In
SelB
LdB
SelA 0 1 0 1
Comb. LogicsNS
CS
LdA
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
Mistake by standard notations
(a)
(c)
(f)
CC=zero
(b)
CC=neg/Sel_B=0LD_B
OP=B-ACC = pos/OP=A-B
Sel_A = 0LD_A
/selA=1Ld_A
/Sel_B=1LD_B
/ready
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT
Mealy Controller (a)selA=1Ld_A
(c)OP=A-B
Sel_A = 0If (CC=pos)
LD_A
(f)
ready
CC=zero
(b)Sel_B=1
LD_B
(d)Sel_B=0
LD_BOP=B-A
CC=neg
CC = pos
234262 © – Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT