基于陣列除法的數據接收/顯示模塊設計
除法過(guò)程可通過(guò)重復應用遞歸式1來(lái)得到證明。本文引用地址:http://dyxdggzs.com/article/191864.htm
對j=0
上述迭代推導過(guò)程說(shuō)明了除法過(guò)程是由一系列加法、減法或移位所組成,對于基數r=2,q…∈{0,1}。
當部分被除數rR(j)不夠除數D減時(shí),商qj+1為0,同時(shí)補充被除數的下一位,組成更大的部分被除數;如果夠減,則該位商為1,在部分被除數rR(j)中減去除數D,然后補充被除數的下一位,直至被除數的每一位都使用到為止。
在除法進(jìn)行過(guò)程中,可使用專(zhuān)門(mén)的數據比較器來(lái)比較部分被除數rR(j)是否比除數D大(nonperforming算法),或直接用部分被除數減去除數。方式1浪費了專(zhuān)門(mén)的數據比較電路,運算延遲加大,降低了運算速度。方式2,當完成了減法操作后,如果不夠減,把除數加回到產(chǎn)生的差,以恢復原來(lái)余數(恢復余數法);或把產(chǎn)生的差留給下一次運算時(shí)再處理(不恢復余數法)。
2.1 不恢復余數陣列除法器
為簡(jiǎn)化起見(jiàn),下文用A表示被除數,D表示除數,R表示余數。在恢復余數法中,如果余數R為負數,即不夠減,則需要加上除數D,恢復成原來(lái)的余數,即R+D。然后,余數R和被除數A聯(lián)合左移1位。此時(shí)余數為2(R+D)+ai,其中ai為A中的一位,被移入R中。隨后,進(jìn)入下一步運算。即從余數中減去除數D:(2(R+D)+ai)-D,有
(2(R+D)+ai)-D=2R+ai+D (5)
因此,當在某一步中,余數R為負,無(wú)需再加上除數D來(lái)恢復成原來(lái)的余數,只需在下一步中把恢復余數法中的減去除數D改成加上除數D,這種算法稱(chēng)為不恢復余數法?;謴陀鄶党ㄐ枰?個(gè)步驟來(lái)確定1個(gè)商位,而不恢復余數法沒(méi)有這個(gè)缺點(diǎn)。
評論