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