版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實戰(zhàn)訓(xùn)練6、16位乘法器芯片設(shè)計乘法器是眾多數(shù)字系統(tǒng)中的基本模塊。從原理上說它屬于組合邏輯范疇;但從工程實際設(shè)計上來說,它往往會利用時序邏輯設(shè)計的方法來實現(xiàn),屬于時序邏輯范疇。通過這個實驗使大家能夠掌握利用FPGA/CPLD設(shè)計乘法器的思想,并且能夠?qū)⑽覀冊O(shè)計的乘法器應(yīng)用到實際工程中。下面我們分別列舉了十進(jìn)制乘法運算和二進(jìn)制乘法運算的例子。下面這種計算乘法的方式是大家非常熟悉的:乘積項與乘數(shù)相應(yīng)位對齊(即將乘積項左移),加法運算的數(shù)據(jù)寬度與被乘數(shù)的數(shù)據(jù)位寬相同。下面例子中的被乘數(shù)和乘數(shù)都是無符號的整數(shù),對于有符號數(shù)的乘法,可以將符號與數(shù)據(jù)絕對值分開處理,即絕對值相乘,符號異或。乘法器的設(shè)計方法有兩種:組合邏輯設(shè)計方法和時序邏輯設(shè)計方法。采用組合邏輯設(shè)計方法,電路事先將所有的乘積項全部計算出來,最后加法運算。采用時序邏輯設(shè)計方法,電路將部分已經(jīng)得到的乘積結(jié)果右移,然后與乘積項相加并保存和值,反復(fù)迭代上述步驟直到計算出最終乘積。在本次實驗中我們就利用時序邏輯設(shè)計方法來設(shè)計一個16位乘法器,既然是利用時序邏輯設(shè)計方法那么我們就得利用時鐘信號控制乘法器運算,那么這樣用時序邏輯設(shè)計方法與用組合邏輯設(shè)計方法比較,它有什么好處呢?利用時序邏輯設(shè)計方法可以使整體設(shè)計具備流水線結(jié)構(gòu)的特征,能適用在實際工程設(shè)計中。IO口定義:clk:芯片的時鐘信號。rst_n:低電平復(fù)位、清零信號。定義為0表示芯片復(fù)位;定義為1表示復(fù)位信號無效。start:芯片使能信號。定義為0表示信號無效;定義為1表示芯片讀入輸入管腳得乘數(shù)和被乘數(shù),并將乘積復(fù)位清零。2也:輸入@(被乘數(shù)),其數(shù)據(jù)位寬為16bit.6也:輸入6(乘數(shù)),其數(shù)據(jù)位寬為16bit.yout:乘積輸出,其數(shù)據(jù)位寬為32bit.done:芯片輸出標(biāo)志信號。定義為1表示乘法運算完成,yout端口的數(shù)據(jù)穩(wěn)定,得到最終的乘積;定義為0表示乘法運算未完成,yout端口的數(shù)據(jù)不穩(wěn)定。數(shù)據(jù)吞吐量的計算:數(shù)據(jù)吞吐量使指芯片在一定時鐘頻率條件下所能處理的有效數(shù)據(jù)量。假設(shè)本實驗設(shè)計的芯片時鐘頻率可達(dá)300MHz,那么該芯片的數(shù)據(jù)吞吐量是多少呢?由于芯片完成一次乘法運算需要1個以上的時鐘周期,因此,即使芯片采用300MHz的時鐘頻率,它每秒鐘所能處理的有效數(shù)據(jù)吞吐量也一定小于300M。對于16位乘法器而言,ain和bin均為0xFFFF時,芯片的運算量最大,計算所需的時間也最長,這種情況才能作為我們計算數(shù)據(jù)吞吐量的依據(jù)。假設(shè)芯片在200MHz的條件下ain和bin均為0xFFFF時需要16個時鐘周期才能得到乘法結(jié)果,那么芯片在200MHz的條件下的數(shù)據(jù)吞吐量就為:200M/16=12.5M。仿真波形:完成一個256×16928=4333568的運算,約16個時鐘周期以后done置高,表示運算結(jié)束,結(jié)果輸出。16bitX16bit無符號數(shù)乘法程序:(說明:start信號置位期間,ain和bin必須保持穩(wěn)定,如果需要再次進(jìn)行一次新的運算,則Start信號必須重新來一個上升沿。done輸出高電平以后需要軟件將其重新拉低。)待解決問題:不知道OutPut口是否能由外部電平拉高或者拉低?modulemux16(clk,rst_n,start,ain,bin,yout,done);inputclk; 〃芯片的時鐘信號。inputrst_n; 〃低電平復(fù)位、清零信號。定義為0表示芯片復(fù)位;定義為1表示復(fù)位信號無效。inputstart; 〃芯片使能信號。定義為0表示信號無效;定義為1表示芯片讀入輸入管腳得乘數(shù)和被乘數(shù),并將乘積復(fù)位清零。input[15:0]ain; 〃輸入a(被乘數(shù)),其數(shù)據(jù)位寬為16bit.input[15:0]bin; 〃輸入b(乘數(shù)),其數(shù)據(jù)位寬為16bit.OUtPUt[31:0]yout; 〃乘積輸出,其數(shù)據(jù)位寬為32bit.outputdone; 〃芯片輸出標(biāo)志信號。定義為1表示乘法運算完成.reg[15:0]areg;〃乘數(shù)a寄存器reg[15:0]breg; 〃乘數(shù)b寄存器reg[31:0]yout_r; 〃乘積寄存器regdone_r;reg[4:0]i; 〃移位次數(shù)寄存器always@(POSedgeClk)beginif(!rst_n)beginareg<=16'h0000;breg<=16'h0000;done_r<=1'b0;yout_r<=32'h00000000;i<=5'd0;endelseif(start) 〃啟動運算beginif(i<5'd21)i<=i+1'b1;if(i==5'd0)begin 〃鎖存乘數(shù)、被乘數(shù)areg<=ain;breg<=bin;endelseif(i>5'd0&&i<5'd16)beginif(areg[i-1])yout_r={1'b0,yout[30:15]+breg,yout_r[14:1]};〃累加并移位elseyout_r<=yout_r>>1;//移位不累加endelseif(i==5'd16&&areg[15])yout_r[31:16]<=yout_r[31:16]+breg;〃累加不移位elseif(i==5'd18)done_r<=1'b1;〃乘完成標(biāo)志位置位elseif(i==5'd20)done_r<=1'b0;〃乘完成標(biāo)志位清除endelsei<=5'd0;endassigndone=done_r;assignyout=yout_r;endmodule16bit×16bit有符合數(shù)乘法程序:modulemux_16bit_sign(clk,reset,start,ain,bin,yout,done);inputclk;inputreset;inputstart;input[15:0]ain;input[15:0]bin;output[31:0]yout;outputdone;reg[15:0]areg;reg[15:0]breg;reg[31:0]yout;regdone;integeri;initialbegindone<=0;i=0;yout=32'h00000000;areg=16'h0000;breg=16'h0000;endalways@(PoSedgeClk)beginif(!reset)beginareg=16'h0000;breg=16'h0000;yout=32'h00000000;i=0;endelseif(start&&(!done))beginif(ain[15])areg=~ain+1;elseareg=ain;if(bin[15])breg=~bin+1;elsebreg=bin;if(i==0)yout=32'h00000000;if((i<16)&&areg[i])yout[31:16]=yout[31:16]+breg;if(i==16)beginif(ain[15]^bin[15])beginyout=~(yout-1);endi=0;done<=1;endelsebegini="i"+1;yout=yout>>1;endendelsei="0";endendmodule以下是采用組合邏輯電路設(shè)計的16位乘法器綜合結(jié)果:(顯然的采用了很多的寄存器和加法器進(jìn)行運算)程序:modulemux(clk,rst_n,en,a,b_in,rdy,mux_out);inputclk;〃主時鐘信號inputrst_n;〃復(fù)位信號,低電平有效inputen;〃輸入使能信號,高電平有效input[15:0]a,b_in;〃兩個16位的輸入信號outputrdy;〃乘法結(jié)果輸出有效信號,高電平有效output[31:0]mux_out;//乘法輸出結(jié)果regrdy;〃reg[31:0]mux_out;reg[15:0]mux_reg0=16'd0;reg[16:0]mux_reg1=17'd0;reg[17:0]mux_reg2=18'd0;reg[18:0]mux_reg3=19'd0;reg[19:0]mux_reg4=20'd0;reg[20:0]mux_reg5=21'd0;reg[21:0]mux_reg6=22'd0;reg[22:0]mux_reg7=23'd0;reg[23:0]mux_reg8=24'd0;reg[24:0]mux_reg9=25'd0;reg[25:0]mux_reg10=26'd0;reg[26:0]mux_reg11=27'd0;reg[27:0]mux_reg12=28'd0;reg[28:0]mux_reg13=29'd0;reg[29:0]mux_reg14=30'd0;reg[30:0]mux_reg15=31'd0;reg[31:0]mux_reg16=32'd0;integeri;always@(rst_noraorb_inoren)beginif(!rst_n)beginrdy<=1'b0;endelseif(en)beginif(a[0])mux_reg0<=b_in;elsemux_reg0<=16'd0;if(a[1])mux_reg1<={b_in,mux_reg16[0]};elsemux_reg1<=17'd0;if(a[2])mux_reg2<={b_in,mux_reg16[1:0]};elsemux_reg2<=18'd0;if(a[3])mux_reg3<={b_in,mux_reg16[2:0]};elsemux_reg3<=19'd0;if(a[4])mux_reg4<={b_in,mux_reg16[3:0]};elsemux_reg4<=20'd0;if(a[5])mux_reg5<={b_in,mux_reg16[4:0]};elsemux_reg5<=21'd0;if(a[6])mux_reg6<={b_in,mux_reg16[5:0]};elsemux_reg6<=22'd0;if(a[7])mux_reg7<={b_in,mux_reg16[6:0]};elsemux_reg7<=23'd0;if(a[8])mux_reg8<={b_in,mux_reg16[7:0]};elsemux_reg8<=24'd0;if(a[9])mux_reg9<={b_in,mux_reg16[8:0]};elsemux_reg9<=25'd0;if(a[10])mux_reg10<={b_in,mux_reg16[9:0]};elsemux_reg10<=26'd0;if(a[11])mux_reg11<={b_in,mux_reg16[10:0]};elsemux_reg11<=27'd0;if(a[12])mux_reg12<={b_in,mux_reg16[11:0]};elsemux_reg12<=28'd0;if(a[13])mux_reg13<={b_in,mux_reg16[12:0]};elsemux_reg13<=29'd0;if(a[14])mux_reg14<={b_in,mux_reg16[13:0]};elsemux_reg14<=30'd0;if(a[15])mux_reg
溫馨提示
- 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è)備有限公司企業(yè)管理制度
- 江蘇省常熟市2024-2025學(xué)年八年級上學(xué)期期末質(zhì)量監(jiān)測歷史卷(含答案)
- 等離子體參數(shù)測試方法 編制說明
- 值守辦公室協(xié)議書(2篇)
- 2025年DCA-1皮革固色劑項目發(fā)展計劃
- 2025年魚、蝦、貝、藻類新品種合作協(xié)議書
- 成都七中模考題數(shù)學(xué)試卷
- 廣播站工作參考計劃范文1
- 財產(chǎn)租賃協(xié)議
- 集裝箱租賃合同范本
- 《工程倫理學(xué)》配套教學(xué)課件
- 研究生英語閱讀教程(基礎(chǔ)級)第三版-課后習(xí)題答案
- 文件袋、檔案袋密封條模板
- 校本課程《典籍里的中國》教案
- 四年級上冊信息技術(shù)教案-9演示文稿巧編輯 |人教版
- 2022年人力資源管理各專業(yè)領(lǐng)域必備知識技能
- 租賃(出租)物品清單表
- 提高聚氯乙烯卷材地面一次驗收合格率
- 甲型H1N1流感防治應(yīng)急演練方案(1)
- LU和QR分解法解線性方程組
- 漏油器外殼的落料、拉深、沖孔級進(jìn)模的設(shè)計【畢業(yè)論文絕對精品】
評論
0/150
提交評論