16位乘法器芯片設(shè)計(jì) 3月9日_第1頁(yè)
16位乘法器芯片設(shè)計(jì) 3月9日_第2頁(yè)
16位乘法器芯片設(shè)計(jì) 3月9日_第3頁(yè)
16位乘法器芯片設(shè)計(jì) 3月9日_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

16位乘法器芯片設(shè)計(jì)方法乘法器的設(shè)計(jì)方法有兩種:組合邏輯設(shè)計(jì)方法和時(shí)序邏輯設(shè)計(jì)方法。采用組合邏輯設(shè)計(jì)方法,電路事先將所有的乘積項(xiàng)全部算出來(lái),然后做加法運(yùn)算。采用時(shí)序邏輯設(shè)計(jì)方法,電路將部分已經(jīng)得到的乘積結(jié)果右移,然后與乘積項(xiàng)相加并保存和值,反復(fù)迭代上述步驟直到計(jì)算出最終積。組合邏輯的實(shí)現(xiàn)可以以16*3位的乘法器為例做出如下設(shè)想:A為16位二進(jìn)制乘數(shù),B為3位二進(jìn)制乘數(shù),C為A與B相乘的積。則:C的結(jié)果實(shí)際上只能為如下值中的一個(gè):0,A,2A,3A,4A,5A,6A,7A因?yàn)锽為3位二進(jìn)制,則B只能是000,001,010,011,100,101,110,111中的一個(gè)。初步設(shè)想符合現(xiàn)實(shí),由于要實(shí)現(xiàn)ASIC芯片的生產(chǎn),所以對(duì)各端口定義如下:reset:芯片復(fù)位、清零信號(hào)。值為0,芯片復(fù)位。start:芯片使能信號(hào)。值為1,芯片讀入乘數(shù)和被乘數(shù),并將乘積復(fù)位清零。ain:被乘數(shù),16bit。bin:乘數(shù),3bit。yout:乘積輸出,19bit。done:芯片輸出標(biāo)志信號(hào),值為1,乘法運(yùn)算完成,yout端口的數(shù)據(jù)穩(wěn)定,得到最終的乘積;值為0,乘法運(yùn)算未完成,yout端口數(shù)據(jù)不穩(wěn)定。編寫的Verilog程序如下:Modulemult16(reset,start,ain,bin,done,yout);ParameterN=16;Inputreset;Inputstart;Input[N-1:0]ain;Input[2:0]bin;Output[N+3:0]yout;Outputdone;Integeraa,ab,ac,temp;Integersu;Regdone;Always@(ain)BeginIf(start&&!reset)Beginaa=ain;ab=ain+ain;ac=ab+ab;temp=aa+ab;case(bin)3’b000:su=0;done=1’b1;3’b001:su<=aa;done=1’b1;3’b010:su<=ab;done=1’b1;3’b011:su<=aa+ab;done=1’b1;3’b100:su<=ac;done=1’b1;3’b101:su<=aa+ac;done=1’b1;3’b110:su<=ab+ac;done=1’b1;3’b111:su<=temp+ac;done=19b1;default:su<=0;done=1’b0;elseif(reset)beginsu=0;aa=0;ab=0;ac=0;done=1’b0;endelseif(!start)beginsu=0;done=1’b0;endendassignyout=su;endmodule基于組合邏輯的乘法器,在程序語(yǔ)言上通俗易懂,思路清晰,但是有致命缺點(diǎn),當(dāng)乘數(shù)和被乘數(shù)位數(shù)很多的時(shí)候,不可能一一列舉各種乘積結(jié)果,用case語(yǔ)句就顯得很繁瑣,所以基于時(shí)序邏輯的乘法器的研制在所難免。時(shí)序邏輯實(shí)現(xiàn)流程圖如下:

開始結(jié)束否B的最低位b0為0??——是開始結(jié)束否B的最低位b0為0??——是B=B>>1是載入被乘數(shù)A和乘數(shù)B,乘積結(jié)果D復(fù)位清零A=A<<1D=DD=D+A數(shù)據(jù)入口定義clk:時(shí)鐘。reset:芯片復(fù)位、清零信號(hào)。start:芯片使能信號(hào)。ain:被乘數(shù)a。bin:被乘數(shù)b。數(shù)據(jù)出口定義yout:乘積輸出。done:芯片輸出標(biāo)志信號(hào)。3.VerilogHDL描述moduletmult16(clk,reset,start,done,ain,bin,yout);parameterN=16;inputclk,reset,start;input[N-1:0]ain;input[N-1:0]bin;output[2*N-1:0]yout;outputdone;//乘法器的數(shù)據(jù)寄存器reg[2*N-1:0]a;reg[N-1:0]b;reg[2*N-1:0]yout;regdone;//reset的信號(hào)下降沿啟動(dòng)復(fù)位過(guò)程always@(posedgeclkornegedgereset)beginif(~reset)begina<=0;b<=0;yout<=0;done<=1’b1;endelsebeginif(start)begina<=ain;b<=bin;yout<=0;done<=0;endelsebeginif(~done)beginif(b!=0)begi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論