如圖所示茂装,以實(shí)現(xiàn)兩個4bit的二進(jìn)制數(shù)相乘為例。
需要4個硬件部件(圖中已編號):
①:一個8位寄存器瘾晃,用來保存被乘數(shù)(根據(jù)機(jī)算乘法,每與乘數(shù)的一位相乘幻妓,就要向前移動一位蹦误,所以4位數(shù)相乘,要給8位來供被乘數(shù)移動)肉津;
附加功能:左移强胰,即每與乘數(shù)的一位相乘,就向前移動一位供下一輪與乘數(shù)的下一位相乘阀圾,這一部操作是為了使被乘數(shù)能與中間結(jié)果正確 哪廓。
②:同樣的一個8位寄存器,用來保存乘積(中間結(jié)果+最終結(jié)果初烘,最后一次運(yùn)算時產(chǎn)生最終結(jié)果)涡真;
③:一個8位加法運(yùn)算器,供每一次將中間結(jié)果與本次運(yùn)算結(jié)果相加肾筐;
④:一個4位寄存器哆料,用來保存乘數(shù)。
附加功能:右移吗铐,最低位與控制邏輯相連东亦。每與被乘數(shù)相乘一次,就向后移動一位供下一輪與乘數(shù)的下一位相乘唬渗。
⑤:一個控制邏輯部件典阵,用來指揮每個部件的運(yùn)行。
附加功能:
- 控制被乘數(shù)寄存器的左移
- 控制乘數(shù)寄存器的右移
- 判斷是否進(jìn)行下一輪計算(當(dāng)前乘積寄存器中的結(jié)果是否為最終結(jié)果)
基本運(yùn)算步驟:
接下來進(jìn)行一次簡單的二進(jìn)制乘法運(yùn)算:1000 x 1001
①.判斷乘數(shù)最低位是否為1镊逝,是壮啊,進(jìn)入③;
②.將被乘數(shù)左移1位撑蒜;
③.乘數(shù)與被乘數(shù)在加法器中相加歹啼;
④.加法器結(jié)果再與乘積寄存器相加;
⑤.判斷是否為第4次循環(huán)座菠,是狸眼,直接輸出結(jié)果;否浴滴,乘數(shù)寄存器右移1位拓萌,接著重復(fù)步驟①-⑤。
那么第四輪運(yùn)算結(jié)束之后,乘數(shù)寄存器4位數(shù)全部置0瘸恼,被乘數(shù)被移動到被乘數(shù)寄存器的高4位劣挫,乘積寄存器此時保存的是最終結(jié)果(如圖6)。