?

基于quartus II的計算機運算器設計

2014-10-21 19:53田小敏
科學時代·下半月 2014年12期
關鍵詞:被除數除數標志

田小敏

【摘 要】隨著EDA技術、CPLD/FPGA的迅猛發展以及相關軟件的日益成熟,利用計算機來設計計算機成為一種行之有效且勢在必行的新方式。本文基于Q uartus II 6.0的圖形設計方式,輔助Verilog HDL語言,以封裝的基本邏輯單元為基礎設計了4位定點除法器。仿真結果表明,本文設計的除法器能夠完成預期的除法運算功能。

【關鍵詞】Q uartus; II 6.0;除法器設計;CPLD/FPGA

1 手工除法運算方法分析

計算機內部數據一般用補碼表示[1],為了找出適合于計算機運算器執行的除法運算方法,下面以4位二進制數為例分析手工除法算法[2]。

正整數做除法運算時,商的數碼由高到低生成,確定商之前需要比較被除數與除數位數相同的部分是否夠減,不夠減商位0,夠減商為1[3]。由于這種試商操作是從被除數的高位開始的,為了保證位數的一致性,將被除數的最高位填寫3個”0”,然后進行4位數的比較。每次得到的部分差要左移一位,最低位要由被除數沒參加比較的下一位填充。當被除數的最低位數碼經過試商,前次部分差和此次一位商與除數的積相減后,得到的部分差就是余數。

分析該手工除法運算方法可知:當部分積為0時,要直接將前次部分差左移一位,使之低3位的成為下一次的被減數的高3位,否則,將本次減法運算的結果左移一位,使之成為被減數的高3位。

整個除法的運算過程認定除數是不動的,那么被除數和商是每步相減之后,到要左移一位,添加下面一位,然后與一位乘積做減法。

2 正整數除法器設計

按照上述分析在Quartus II[4]中設計正整數除法電路如圖1所示。主要部件為加減運算單元,保存為cfq1.bdf。用一條輸入線和它的非門的或運算給減法控制線sub賦值1。正整數除法的除數和被除數的最高位均為0,因此,將補充的被除數的高3位直接同被除數的最高位連在一起,就能夠得到使高位補充數碼都為0的目的。

每次試商的時候要判斷部分差是否夠減,判斷的過程就用減法器來進行。當減法器輸出的最高位是1時,表明試商時不夠減,因此本位商的數碼應是0,否則是1。

本次試商的數碼可以直接用非門電路從減法運算的最高位得到,部分差可以又能夠減法器的最高位控制。當本次減法輸出的最高位是1時,就表示不夠減,因此要讓上一次的部分差做下一次的被減數;如果夠減,就讓本次減法運算的差做下一次的被減數,這種設計被稱作本位差邏輯。除數被送到每次減法運算的b輸入端,被減數是通過本位差邏輯送到被減數a端的,通過商數碼線就得到本位商。當被除數的最低位試商過后,本位差邏輯的輸出就是除法的余數。

3 正負對稱區間除法器設計

正負對稱區間上有符號除法器是在正整數除法器基礎上設計的,首先將有符號數轉化成絕對值,然后利用正數除法器計算,最后將結果利用符號關系進行轉化。

3. 1 結果轉換控制電路設計

結果轉換控制電路時根據求補碼的方法進行的[5]。轉換編碼是根據有符號數的最高位來求補碼的,從而達到求商或余數符號的目的。根據除法運算的符號規定,通過輸入數的最高位同號還是異號來決定商的符號。當除數和被除數符號相反時,用它們的異或表示,并用這個標志線來將商改成附屬的補碼表示形式。余數的符號就是由被除數符號來確定。

3. 2 對稱除法器設計

對稱除法器的電路如圖2所示。在正數除法器前端輸入初添加絕對值電路,后端添加轉換控制電路。

4 實用除法器設計

實用除法器前端要設計除數為0的控制,還要設置最高位是1且其余各位都是0的最小負數的判斷,它是限位計數表示的最小數,也是補碼制的最小的數。如果除數為0,那么應立即中止除法計算,并報警。如果遇到除數是最小數但被除數不是最小數的情況,那么商就是0,余數是被除數。如果除數被除數都是最小數,那么商就是1,余數是0,如果只被除數是最小數的情況,那么可以用絕對值比它小1的數代替做除法,然后調整余數和商,最后能得到正確結果。調整余數和商的方法是將余數的絕對值加1,然后與除數比較,若等于除數則商加1余數為0,不然只是將加1的結果作余數。

4.1 最小數判斷電路

當標志線為0時,表示否定;標志線為1時,表示肯定。電路圖如3所示。

4. 2 僅除數是最小數的判斷

利用對稱區間的有符號數除法器進行除法運算的關鍵是變為絕對值進行,因而當除數是最小數時,它的絕對值最大,任何相同位數的數的絕對值都不會超過它,這樣商是0,余數是被除數。表明僅除數是最小數的因素有兩條線,一是數據a的最小標志線,二是數據b的最小標志線,確定僅除數是最小數的應是它們的聯合。當僅除數最小標志線為1時,通過一個非門將前面運算的結果都歸0了,因此商是0。另一方面,由僅除數最小標志線直接控制余數,和被除數通過與門和或門輸出余數。

4. 3 除數與被除數都是最小數的設計

除數與被除數都是最小數的除法相對簡單,只要商1,余數為0即可。a,b最小線同時為1的標志線,通過非門控制運算輸出??刂朴鄶档呐c門組使余數為0,而商的控制有了變化,這時僅使商的高位全為0,而最低位通過特殊設計使之為1,從而使商位1。

4. 4 被除數是最小數的設計

實用除法器最為復雜的設計應屬被除數是最小數的設計了。解決這一問題的辦法是求最小數相鄰的數與該除數的除法運算結果,然后判斷余數加1是否等于除數,如果等于,則商加1,余數為0,否則用加1后的數做最終的余數。具體分以下幾步:

(1)求最小數的相鄰數

經分析知道,最小數最高位是1,其余都是0,將這個數加1的結果是只有最低位變成了反碼,所以對被除數最低位加異或門。

(2)加1電路設計

將減法器的b輸入端和加減控制端都置為0,為了能夠控制是否加1,又在最低的進位端引進了被除數是最小數而除數不是的標志線f,當f = 1時,輸出數據就是輸入數據加1,否則不進行加1運算。

(3)判斷余數加1是否與除數相等

用最小數相鄰數做除法,得到的余數必須加1,但加1之后的值有可能等于余數。如果相等,商必須加1,以0作為余數;如果不等,那么加1之后才是所求余數。當相減 結果是0時,由f和zfh與運算的非決定著是否輸出非0余數或余數0。f=1表示被除數是最小數,除數不是。zfh=1表示加1后的余數與除數相等,否則不等。因此f和zfh的與運算的非能夠決定輸出的余數。

(4)求最后的商

商的最終結果取決于余數的計算,是否加1要由標志線zfh控制,當zfh=1時商加1,否則不加。

5 除法器總體設計

實用4位除法器的完整電路如圖4所示。要說完整,還要添加除數為0的判斷,建立中斷,本文暫不考慮。

仿真結果如圖5所示。計算1000除以0011,被除數為最小數,商為1110,余數為1110。其它三種情況也都仿真成功,說明除法器設計成功。

6 小結

本文基于QuartusII平臺設計了4位除法器,仿真結果表明,該除法器能夠完成4位帶符號數的除法操作。該除法器的運算位數可以根據需要增加,只是電路設計更加復雜,但原理相似。在本文設計的除法器基礎上進一步加上存儲器,控制器,接口,中斷,DMA,輸入輸出設備等,成為一個比較完整的8位除法計算器。

參考文獻:

[1]余孟嘗.數字電子技術基礎簡明教程[M].北京:高等教育出版社,1999:5- 65.

[2]姜詠江.基于QuartusII的計算機核心設計[M].北京:清華大學出版社, 2007: 50- 75.

[3]蔣本珊.計算機組成原理[M].北京:清華大學出版社,2002:43- 48.

[4]潘松,黃繼業.EDA技術實用教程[M].北京:科學出版社,2006:127- 190.

[5]趙保經.中國集成電路大全TTL集成電路分冊、COMS集成電路分冊[M].北京:國防工業出版社,1985:23- 28.

猜你喜歡
被除數除數標志
多功能標志桿的使用
“除數是整十數的筆算除法”的教學實踐與反思
除法中的數學問題
首都的標志是只熊
為什么奧林匹克以五環為標志?
被除數可能是多少
巧求被除數
商和除數可以交換位置嗎
錯中求對
如何在除法估算中求近似數
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合