下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告姓名學(xué)號、班級、實(shí)驗(yàn)題目運(yùn)算器部件實(shí)驗(yàn)乘法器一、實(shí)驗(yàn)?zāi)康恼莆粘朔ㄆ饕约癰ooth乘法器的原理二、實(shí)驗(yàn)原理乘法計(jì)算步驟:〔1〕從右到左用乘數(shù)的每一位乘以被乘數(shù),每一次乘得的中間結(jié)果比上一次的結(jié)果往左移一位?!?〕積的位數(shù)比被乘數(shù)和乘數(shù)的位數(shù)要多的多。事實(shí)上,如果我們忽略符號位,n位的被乘數(shù)和m位的乘數(shù)相乘的結(jié)果的位數(shù)有〔n+m〕位。因此,乘法必須象加法那樣處理溢出問題,如果兩個32位的數(shù)相乘,積也只有32位的時候,就會出現(xiàn)溢出。在上面的例子中,我們把十進(jìn)制數(shù)的各位限制為0或1。因此,每一步的乘法相當(dāng)簡單:〔1〕如果乘數(shù)位是1,那么簡單的復(fù)制被乘數(shù)到適宜的位置〔1×被乘數(shù)〕;〔2〕如果乘數(shù)位是0,那么在適宜的位置置0因?yàn)槎M(jìn)制數(shù)的各位是0或1,所以與上面情況類似。一個有效的計(jì)算有符號數(shù)乘法的是Booth算法,算法的新穎之處在于減法也可以用于計(jì)算乘積。假定210×610,或者說00102×01102:0010X0110+0000移位〔乘數(shù)位為0〕+0010相加〔乘數(shù)位為1〕+0010相加〔乘數(shù)位為1〕+0000移位〔乘數(shù)位為0〕00001100Booth發(fā)現(xiàn)加法和減法可以得到同樣的結(jié)果。例如,610=-210+810或者01102=-00102+10002因?yàn)樵诋?dāng)時移位比加法快得多,所以Booth發(fā)現(xiàn)了這個算法。Booth算法的關(guān)鍵在于把1分類為開始、中間、結(jié)束三種。當(dāng)然一串0的時候加法減法都不做。因此,總結(jié)1的分類情況有4種如表2.4所示:表2.41的分類當(dāng)前位當(dāng)前位右邊的位分類101的開始111的中間011的結(jié)束000的中間Booth算法那么是根據(jù)乘數(shù)的相鄰2位來決定操作,第一步根據(jù)相鄰2位的4種情況來進(jìn)行加或減操作,第二步仍然是將積存放器右移。算法描述如下:根據(jù)當(dāng)前位和其右邊的位,做如下操作:00:0的中間,無任何操作;01:1的結(jié)束,將被乘數(shù)加到積的左半局部;10:1的開始,積的左半局部減去被乘數(shù);11:1的中間,無任何操作。將積存放器右移1位。需要注意的是,因?yàn)锽ooth乘法器是有符號數(shù)的乘法,因此積存放器移位的時候,為了保存符號位,進(jìn)行算術(shù)右移,不像前面的算法邏輯右移就可以了。對于Booth算法,舉例如下,210×-310=-610,或者說是00102×11012=111110102。表2.5Booth乘法器舉例重復(fù)步驟被乘數(shù)〔md〕積〔p〕0初始值001000001101011:10→積=積-被乘數(shù)00101110110102:積右移1位001011110110121:01→積=積+被乘數(shù)00100001011012:積右移1位001000001011031:10→積=積-被乘數(shù)00101110101102:積右移1位001011110101141:11→空操作00101111010112:積右移1位0010111110101三、實(shí)驗(yàn)步驟1.翻開Quartus->tools->programmer,將booth_multiplier.sof下載到FPGA中。注意進(jìn)行programmer時,應(yīng)在program/configure下的方框中打勾,然后下載。2.在實(shí)驗(yàn)臺上通過模式開關(guān)選擇FPGA獨(dú)立調(diào)試模式010。3.將短路子DZ3短接且短路子DZ4斷開,使FPGA-CPU所需要的時鐘使用正單脈沖時鐘。四、實(shí)驗(yàn)現(xiàn)象本實(shí)驗(yàn)實(shí)現(xiàn)4位數(shù)的Booth乘法〔有符號數(shù)乘法〕。輸入輸出規(guī)那么對應(yīng)如下:1.輸入的4位被乘數(shù)〔multiplicand〕md3~md0對應(yīng)開關(guān)SD11~SD8。2.輸入的4位乘數(shù)〔multiplier〕mr3~mr0對應(yīng)開關(guān)SD3~SD0。3.按單脈沖按鈕,輸入脈沖,也即節(jié)拍。4.乘積product〔8位〕p7~p0對應(yīng)燈A8~A1,輔助位A0。5.當(dāng)計(jì)算結(jié)束時,final信號為1,對應(yīng)燈R7。如表2.5的booth算法舉例,一共需要0~8九個小步驟計(jì)算出結(jié)果。本實(shí)驗(yàn)也是通過九個小步驟實(shí)現(xiàn)的,通過按單脈沖按鈕輸入脈沖,觀察積存放器的變化,掌握booth乘法器的原理?!?〕撥動開關(guān)SD11~SD8輸入4位被乘數(shù)〔md3~md0〕0010,SD3~SD0輸入4位乘數(shù)〔mr3~mr0〕1101?!?〕按動單脈沖按鈕,輸入脈沖,對照表2.5觀察積存放器即燈A8~A0的變化情況,當(dāng)燈R7亮?xí)r,說明計(jì)算結(jié)束,燈A8~A1為最后相乘結(jié)果。根據(jù)以上操作細(xì)節(jié),仿照表2.5填寫表中各步驟。進(jìn)行新的乘法運(yùn)算時,或者說當(dāng)上一次運(yùn)算結(jié)束即燈R7亮?xí)r,輸入新的被乘數(shù)、乘數(shù)〔撥動開關(guān)〕,然后按動單脈沖開關(guān)即可觀察正確的存放器結(jié)果。00:0的中間,無任何操作;重復(fù)步驟被乘數(shù)〔md〕積〔p〕被乘數(shù)是(-7)10乘數(shù)是(6)100初始值100100000110011:00→空操作10010000011002:積右移1位100100000011021:10→積=積-被乘數(shù)10010111001102:積右移1位100100111001131:11→空操作10010011100112:積右移1位100100011100141:01→積=積+被乘數(shù)10011010110012:積右移1位100111010110重復(fù)步驟被乘數(shù)〔md〕積〔p〕被乘數(shù)是(-4)10乘數(shù)是(-5)100初始值110000001011011:10→積=積-被乘數(shù)11000100101102:積右移1位110000100101121:11→空操作11000010010112:積右移1位110000010010131:01→積=積+被乘數(shù)11001101001012:積右移1位110011101001041:10→積=積-被乘數(shù)11000010100102:積右移1位110000010100思考題試述Booth乘法器的原理,即為什么可以用相鄰兩位的差來決定加減操作Booth算法的關(guān)鍵在于把1分類為開始、中間、結(jié)束三種。當(dāng)然一串0的時候加法減法都不做。因此,總結(jié)1的分類情況有4種如表2.4所示:表2.41的分類當(dāng)前位當(dāng)前位右邊的位分類101的開始111的中間011的結(jié)束000的中間Booth算法那么是根據(jù)乘數(shù)的相鄰2位來決定操作,第一步根據(jù)相鄰2位的4種情況來進(jìn)行加或減操作,第二步仍然是將積存放器右移。算法描述如下:根據(jù)當(dāng)前位和其右邊的位,做如下操作:00:0的中間,無任何操作;01:1的結(jié)束,將被乘數(shù)加到積的左半局部;10:1的開始,積的左半局部減去被乘數(shù);11:1的中間,無任何操作。將積存放器右移1位。需要注意的是,因?yàn)锽ooth乘法器是有符號數(shù)的乘法,因此積存放器移位的時候,為了保存符號位,進(jìn)行算術(shù)右移,不像前面的算法邏輯右移就可以了。附錄代碼:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityBoothisport(multiplicand:instd_logic_vector(3downto0);multiplier:instd_logic_vector(3downto0);clk:instd_logic;clr:instd_logic;product:bufferstd_logic_vector(8downto0);final:outstd_logic);endentity;architecturertlofBoothissignalm:std_logic_vector(8downto0):=multiplicand&"00000";signalboothstep:std_logic_vector(2downto0):="000";signalflag:std_logic_vector(1downto0);------后兩位局部積signaltemp:std_logic_vector(8downto0);----局部積存放器beginprocess(flag)is----------后兩位控制加還是減beginif(flag="01")thentemp<=product+m;elsif(flag="10")thentemp<=product-m;elsetemp<=product;endif;endprocess;flag<=product(1downto0);process(clk,clr)is--------時鐘到來移位beginif(clr='0')thenproduct<="0000"&multiplier&'0';--qianhoubu0elsif(clk'eventandclk='1')thenproduct<=temp(8)&temp(8downto1);----存放器中的數(shù)據(jù)保存到product中endif;endprocess;process(clk)isbeginifclr='0'thenfinal<='0';boothst
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聚丙烯成型加工課程設(shè)計(jì)
- 煙草專業(yè)知識課程設(shè)計(jì)
- 自駕貨車租賃合同范例
- 貨運(yùn)代理企業(yè)合同范例
- 電視報(bào)價合同范例
- 培訓(xùn)學(xué)校合伙人合作協(xié)議書3篇
- 合作貸款協(xié)議書版3篇
- 學(xué)校保潔員勞動協(xié)議書3篇
- 農(nóng)村宅基地協(xié)議書范本3篇
- 合同法延期交貨賠償3篇
- 臨時用電配電箱日常檢查表
- 錄井技術(shù)服務(wù)方案與技術(shù)措施
- DB63-T 2042-2022繁殖期母牦牛適度補(bǔ)飼技術(shù)規(guī)程
- 憲法學(xué)完整版教學(xué)課件全套ppt教程
- 漢字起源與發(fā)展(最新完美版)
- 網(wǎng)絡(luò)安全的應(yīng)急預(yù)案(精選13篇)
- 撫順齊隆化工有限公司5萬噸-年熱聚樹脂項(xiàng)目環(huán)境影響評價文件
- 房屋租賃合同終止協(xié)議書格式(3篇)
- sy4209-《石油天然氣建設(shè)工程施工質(zhì)量驗(yàn)收規(guī)范-天然氣凈化廠建設(shè)工程》
- (第一個游戲)你來比劃我來猜詞語(圣誕晚會)課件
- PPT成功的秘訣——勤奮
評論
0/150
提交評論