Matrix-Multiply FSMD
S1 S3 S2 S5 S4 S6 S8 S7 S9 Start=1 Cnt<63 Cnt=63 k=7 k<7 Cnt<511 S10 RFB(j,k)=Din A = RFA(i,k) P=A*B Sum=P+Sum RFC(i,j)=Sum Dout = RFC(j,k) B = RFB(k,j) Cnt=0 Sum=0 Cnt=0 Cnt = Cnt +1 Cnt=0 Cnt=511 Cnt<63 Cnt=63 Sum=0 Cnt = Cnt +1 Cnt = Cnt +1 Done=1 Start=0 RegFile (RFB) RegFile (RFA) RegFile (RFC)
Adder
Reg (Sum)
Multiplier
Counter (Cnt) Din Dout
WAddr RAddr
Reg (A) Reg (B) Reg (P)
Rst Inc WEn REn Ld Rst Ld Rst Ld Rst Ld Rst WEn WAddr REn RAddr
Controller Start Done Comparator
j k Eq511 Eq63 i REn RAddr WAddr WEn