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