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