FPGA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
FPGA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁
FPGA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁
FPGA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁
FPGA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、合肥工業(yè)大學(xué)大學(xué)實(shí)驗(yàn)報(bào)告課程名稱: FPGA設(shè)計(jì) 實(shí)驗(yàn)名稱: 移位乘法器設(shè)計(jì) & 8位Booth乘法器設(shè)計(jì) 姓 名: 陶輝 學(xué) 號(hào): 20114712 班 級(jí): 電子科學(xué)與技術(shù)11-1班 指導(dǎo)教師: 倪偉 合肥工業(yè)大學(xué)電子科學(xué)與應(yīng)用物理學(xué)院制2移位乘法器一、 實(shí)驗(yàn)原理移位和相加乘法原理,乘法通過逐項(xiàng)移位相加原理來實(shí)現(xiàn),從被乘數(shù)的最低位開始,若為1,則乘數(shù)右移后與上一次的和相加;若為0,左移后以全零相加,直至被乘數(shù)的最高位。 移位乘法器工作流程圖二、 實(shí)驗(yàn)步驟算法主程序module MUL(A,B,data );input 7:0 A;input 7:0 B;output 15:0 da

2、ta;wire 15:0 data;reg 7:0 D;reg 7:0 A1;reg 7:0 B1;reg C;always (A or B)beginA1 = A;B1 = B;D = 0;C = 0;repeat(8)beginif(A10=1)C,D = D + B1;elseC,D = D + 0;C,D,A1 = C,D,A1 >> 1;endendassign data = D,A1;endmodule移位乘法器測(cè)試文件module test;reg 7:0 A;reg 7:0 B;/ Outputswire 15:0 data;/ Instantiate the Un

3、it Under Test (UUT)MUL uut (.A(A), .B(B), .data(data);initial begin/ Initialize InputsA = 0;B = 0;/ Wait 100 ns for global reset to finish#20;A = 8'b0000_0010;B = 8'b0000_1101; / Add stimulus hereend endmodule三、 實(shí)驗(yàn)結(jié)果及分析2進(jìn)制輸入輸出結(jié)果10進(jìn)制輸入輸出結(jié)果四、 體會(huì)通過移位乘法器的設(shè)計(jì),簡(jiǎn)單的了解了ISE軟件的基本功能,主要菜單選項(xiàng),以及如何建立一個(gè)工程,如何在

4、工程里面寫程序和進(jìn)行編譯和綜合等。 總體來說最困難的部分就是把這個(gè)移位乘法器的算法弄明白??赡芪覀兤匠W约核愠朔]有任何困難,但是要通過編碼的形式,讓計(jì)算機(jī)能夠了解整個(gè)算法的流程卻不是一件容易的事情。在整個(gè)編寫移位乘法器的過程中,看懂整個(gè)流程圖花費(fèi)了我很長(zhǎng)的時(shí)間。了解整個(gè)算法的流程之后編程自然順理成章了。所以,我在之后做自己的課題“booth乘法器”的時(shí)候我也花費(fèi)了很長(zhǎng)的時(shí)間通過上網(wǎng)查詢,詳細(xì)了解這個(gè)算法的確切含義。雖然花費(fèi)了很長(zhǎng)的時(shí)間在研究算法上,但是我覺得是值得的,因?yàn)槟鞘亲罡镜牡胤?。最后結(jié)果也如愿出來了。所以,我覺得以后在編程的時(shí)候,了解你要編寫模塊的作用以及通過什么算法來實(shí)現(xiàn)是一件很

5、重要的事情。8位booth乘法器設(shè)計(jì)一、 實(shí)驗(yàn)原理Booth算法是一種十分有效的計(jì)算有符號(hào)數(shù)乘法的算法。算法的新型之處在于減法也可用于計(jì)算乘積。Booth發(fā)現(xiàn)加法和減法可以得到同樣的結(jié)果。因?yàn)樵诋?dāng)時(shí)移位比加法快得多,所以Booth發(fā)現(xiàn)了這個(gè)算法,Booth算法的關(guān)鍵在于把1分類為開始、中間、結(jié)束三種,如下圖所示當(dāng)然一串0或者1的時(shí)候不操作,所以Booth算法可以歸類為以下四種情況:Booth算法根據(jù)乘數(shù)的相鄰2位來決定操作,第一步根據(jù)相鄰2位的4中情況來進(jìn)行加或減操作,第二部仍然是將積寄存器右移,算法描述如下:(1) 根據(jù)當(dāng)前為和其右邊的位,做如下操作: 00: 0的中間,無任何操作; 01:

6、 1的結(jié)束,將被乘數(shù)加到積的左半部分; 10:1的開始,積的左半部分減去被乘數(shù); 11: 1的中間,無任何操作。(2) 將積寄存器右移1位。 因?yàn)锽ooth算法是有符號(hào)數(shù)的乘法,因此積寄存器移位的時(shí)候,為了保留符號(hào)位,進(jìn)行算術(shù)右移。同時(shí)如果乘數(shù)或者被乘數(shù)為負(fù)數(shù),則其輸入為該數(shù)的補(bǔ)碼,若積為負(fù)數(shù),則輸出結(jié)果同樣為該數(shù)的補(bǔ)碼。二、 實(shí)驗(yàn)步驟主程序代碼:module booth8(data_on,data_out);input data_on;wire 15:0 data_on;output 19:0 data_out;wire 19:0 data_out;reg 7:0 R0,R1,R2;reg

7、c1,p;reg 4:0 i;reg 3:0 tmp;reg 19:0 data;always(data_on)beginR0=0;R1=data_on7:0;R2=data_on15:8;p=0;repeat(8)begincase(R20,p)2'b00: R0=R0;2'b01: R0=R0+R1;2'b10: R0=R0-R1;2'b11: R0=R0;endcasec1=R07;c1,R0,R2,p=c1,R0,R2,p>>1;enddata=0;repeat(16)beginrepeat(5)begintmp,data=tmp,data&

8、lt;<4;if(tmp>=5)tmp=tmp+3;elsetmp=tmp;data3:0=tmp;enddata,R0,R2=data,R0,R2<<1;endendassign data_out=data;endmodule頂層模塊:module top(clk,rst,data_out,data_in);input clk,rst;output 19:0 data_out;output 15:0 data_in;wire 15:0 data_in;reg 2:0 addra,ct;reg clk1;always(posedge clk or negedge rst

9、)beginif(rst = 0)beginct<=0;clk1<=0;endelse if(ct=7)beginclk1<=clk1;ct<=0;endelsect<=ct+1;endbooth8 U1(.data_out(data_out),.data_on(data_in);rom U2(.clka(clk1), / input clka.addra(addra), / input 2 : 0 addra.douta(data_in) / output 15 : 0 douta);always(posedge clk1 or negedge rst)begi

10、nif (rst=0)addra <= 0;elseaddra <= addra + 1;endendmodule測(cè)試模塊:module test;/ Inputsreg clk;reg rst;/ Outputswire 19:0 data_out;wire 15:0 data_in;/ Instantiate the Unit Under Test (UUT)top uut (.clk(clk), .rst(rst), .data_out(data_out), .data_in(data_in);initial begin/ Initialize Inputsclk = 0;r

11、st = 1;#10 rst=0;#10 rst=1;/ Wait 100 ns for global reset to finish#800 $stop; / Add stimulus hereendalways #5 clk=clk; endmodule三、 實(shí)驗(yàn)結(jié)果及分析COE文件,輸入的8組數(shù)據(jù)cdc輸出結(jié)果:A:乘數(shù) B:被乘數(shù) data_booth:BCD輸出積A:乘數(shù) B:被乘數(shù) data_booth:十進(jìn)制輸出積測(cè)試波形四、 體會(huì)經(jīng)過兩個(gè)禮拜的不懈努力,終于把最后的實(shí)驗(yàn)結(jié)果按要求完成了。從一開始的一頭霧水到逐漸明白了方向,了解了該如何操作。一切都是對(duì)未知知識(shí)上下求索。雖然團(tuán)隊(duì)只有三個(gè)人,但是我們互相協(xié)助,各司其職,每個(gè)人分派自己的任務(wù),并且每天按時(shí)按量完成;雖然我們?nèi)齻€(gè)人的基礎(chǔ)不是很好,但是我們齊心協(xié)力,把劣勢(shì)變成優(yōu)勢(shì),把壓力當(dāng)成動(dòng)力,每天在實(shí)驗(yàn)室忙完了還會(huì)主動(dòng)的在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論