国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于quartus II的計(jì)算機(jī)運(yùn)算器設(shè)計(jì)

2014-10-21 19:53田小敏
科學(xué)時(shí)代·下半月 2014年12期
關(guān)鍵詞:被除數(shù)除數(shù)標(biāo)志

田小敏

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

【關(guān)鍵詞】Q uartus; II 6.0;除法器設(shè)計(jì);CPLD/FPGA

1 手工除法運(yùn)算方法分析

計(jì)算機(jī)內(nèi)部數(shù)據(jù)一般用補(bǔ)碼表示[1],為了找出適合于計(jì)算機(jī)運(yùn)算器執(zhí)行的除法運(yùn)算方法,下面以4位二進(jìn)制數(shù)為例分析手工除法算法[2]。

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

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

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

2 正整數(shù)除法器設(shè)計(jì)

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

每次試商的時(shí)候要判斷部分差是否夠減,判斷的過程就用減法器來進(jìn)行。當(dāng)減法器輸出的最高位是1時(shí),表明試商時(shí)不夠減,因此本位商的數(shù)碼應(yīng)是0,否則是1。

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

3 正負(fù)對稱區(qū)間除法器設(shè)計(jì)

正負(fù)對稱區(qū)間上有符號除法器是在正整數(shù)除法器基礎(chǔ)上設(shè)計(jì)的,首先將有符號數(shù)轉(zhuǎn)化成絕對值,然后利用正數(shù)除法器計(jì)算,最后將結(jié)果利用符號關(guān)系進(jìn)行轉(zhuǎn)化。

3. 1 結(jié)果轉(zhuǎn)換控制電路設(shè)計(jì)

結(jié)果轉(zhuǎn)換控制電路時(shí)根據(jù)求補(bǔ)碼的方法進(jìn)行的[5]。轉(zhuǎn)換編碼是根據(jù)有符號數(shù)的最高位來求補(bǔ)碼的,從而達(dá)到求商或余數(shù)符號的目的。根據(jù)除法運(yùn)算的符號規(guī)定,通過輸入數(shù)的最高位同號還是異號來決定商的符號。當(dāng)除數(shù)和被除數(shù)符號相反時(shí),用它們的異或表示,并用這個(gè)標(biāo)志線來將商改成附屬的補(bǔ)碼表示形式。余數(shù)的符號就是由被除數(shù)符號來確定。

3. 2 對稱除法器設(shè)計(jì)

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

4 實(shí)用除法器設(shè)計(jì)

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

4.1 最小數(shù)判斷電路

當(dāng)標(biāo)志線為0時(shí),表示否定;標(biāo)志線為1時(shí),表示肯定。電路圖如3所示。

4. 2 僅除數(shù)是最小數(shù)的判斷

利用對稱區(qū)間的有符號數(shù)除法器進(jìn)行除法運(yùn)算的關(guān)鍵是變?yōu)榻^對值進(jìn)行,因而當(dāng)除數(shù)是最小數(shù)時(shí),它的絕對值最大,任何相同位數(shù)的數(shù)的絕對值都不會超過它,這樣商是0,余數(shù)是被除數(shù)。表明僅除數(shù)是最小數(shù)的因素有兩條線,一是數(shù)據(jù)a的最小標(biāo)志線,二是數(shù)據(jù)b的最小標(biāo)志線,確定僅除數(shù)是最小數(shù)的應(yīng)是它們的聯(lián)合。當(dāng)僅除數(shù)最小標(biāo)志線為1時(shí),通過一個(gè)非門將前面運(yùn)算的結(jié)果都?xì)w0了,因此商是0。另一方面,由僅除數(shù)最小標(biāo)志線直接控制余數(shù),和被除數(shù)通過與門和或門輸出余數(shù)。

4. 3 除數(shù)與被除數(shù)都是最小數(shù)的設(shè)計(jì)

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

4. 4 被除數(shù)是最小數(shù)的設(shè)計(jì)

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

(1)求最小數(shù)的相鄰數(shù)

經(jīng)分析知道,最小數(shù)最高位是1,其余都是0,將這個(gè)數(shù)加1的結(jié)果是只有最低位變成了反碼,所以對被除數(shù)最低位加異或門。

(2)加1電路設(shè)計(jì)

將減法器的b輸入端和加減控制端都置為0,為了能夠控制是否加1,又在最低的進(jìn)位端引進(jìn)了被除數(shù)是最小數(shù)而除數(shù)不是的標(biāo)志線f,當(dāng)f = 1時(shí),輸出數(shù)據(jù)就是輸入數(shù)據(jù)加1,否則不進(jìn)行加1運(yùn)算。

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

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

(4)求最后的商

商的最終結(jié)果取決于余數(shù)的計(jì)算,是否加1要由標(biāo)志線zfh控制,當(dāng)zfh=1時(shí)商加1,否則不加。

5 除法器總體設(shè)計(jì)

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

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

6 小結(jié)

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

參考文獻(xiàn):

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

[2]姜詠江.基于QuartusII的計(jì)算機(jī)核心設(shè)計(jì)[M].北京:清華大學(xué)出版社, 2007: 50- 75.

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

[4]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2006:127- 190.

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

猜你喜歡
被除數(shù)除數(shù)標(biāo)志
多功能標(biāo)志桿的使用
“除數(shù)是整十?dāng)?shù)的筆算除法”的教學(xué)實(shí)踐與反思
除法中的數(shù)學(xué)問題
首都的標(biāo)志是只熊
為什么奧林匹克以五環(huán)為標(biāo)志?
被除數(shù)可能是多少
巧求被除數(shù)
商和除數(shù)可以交換位置嗎
錯(cuò)中求對
如何在除法估算中求近似數(shù)