基于陣列除法的數據接收/顯示模塊設計
表1以45 10/1010=101101 2/10102作為一個(gè)數值計算的例子,詳細展示了圖3所示的不恢復余數法算法流程圖。首先將余數尺和被除數A聯(lián)合左移一位,如果余數R的符號位S為0,將執行減法操作,否則應該加上除數D,如果余數大于零,則當前商位為‘1’,否則為‘0’,循環(huán)這個(gè)過(guò)程直到被除數A的所有位都完成運算。最后得商:0001002,余數:000101 2。本文引用地址:http://dyxdggzs.com/article/191864.htm
在除法中所需要的部分余數的左移可以用余數保持固定,而用除數沿對角線(xiàn)右移的等效操作來(lái)代替。如圖4所示,不恢復余數陣列除法器可以用一個(gè)由可控加法/減法(CAS)單元所組成的疊接陣列來(lái)實(shí)現。不恢復陣列每一行所執行的操作究竟是加法還是減法,取決于前一行輸出的符號與被除數的符號是否一致(最上面一行所執行的初始操作通常是減法,因此最上面一行的控制線(xiàn)P固定置成‘1’。當出現不夠減時(shí),部分余數相對于被除數來(lái)說(shuō)要改變符號。這時(shí)應該產(chǎn)生一個(gè)商位‘0’,除數首先沿對角線(xiàn)右移,然后加到下一行的部分余數上。當部分余數不改變它的符號時(shí),即產(chǎn)生商位‘1’,下一行的操作應該是減法。
3 仿真驗證
圖5的仿真結果說(shuō)明了數據接收/顯示模塊的功能特點(diǎn)。串行高度數據接收模塊將串行數據轉換為并行報文數據,從并行報文中提取出高度數據(1100h=4352,068eh=1678),不恢復余數疊接陣列除法器將多位二進(jìn)制編碼的高度數據轉換為千、百、十、個(gè)位BCD碼送到掃描七段碼顯示控制器。scanout信號選擇四位七段共陽(yáng)極數碼管的某一位,leddata分別對應7個(gè)陰極引腳,對應分段字符串“abcdefg”,實(shí)現一位一位輪流點(diǎn)亮顯示。由于視覺(jué)的記憶性,看到的是穩定的多位十進(jìn)制高度數據顯示。從仿真結果圖中可見(jiàn)其與前述設計思想完全吻合。
4 結論
采用不恢復余數陣列除法設計的BIN碼到BCD碼轉換器,僅需少量的移位、加/減法等操作,該算法邏輯簡(jiǎn)單,結構規整,速度高,非常適合實(shí)時(shí)性要求較高的場(chǎng)合,而且非常容易向其它進(jìn)制轉換擴展。以異步串行數據接收、陣列除法及動(dòng)態(tài)顯示等技術(shù)為基礎的脈沖雷達高度表串行高度數據接收/顯示模塊作為一個(gè)工程的子模塊,在某雷達高度表的設計中已經(jīng)得到應用。
評論