• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于CPLD的簡易串行數(shù)字乘法器

      2013-04-20 00:43:50茹勝華周麗君
      制導(dǎo)與引信 2013年4期
      關(guān)鍵詞:乘法器乘數(shù)乘積

      茹勝華, 馬 亮, 周麗君

      (上海無線電設(shè)備研究所,上海200090)

      0 引言

      在現(xiàn)代可編程邏輯電路的設(shè)計(jì)中,通常采用具有乘法器單元的FPGA 完成高速、復(fù)雜的信號處理算法[1],以較高的成本解決數(shù)字信號處理中大量乘法運(yùn)算。但在對乘法運(yùn)算和時(shí)序邏輯有需求但不高的場合,若采用FPGA 設(shè)計(jì)乘法器,浪費(fèi)資源,增加產(chǎn)品成本,且難于技術(shù)加密。針對這種情況,本文采用無乘法器資源的CPLD 完成16位無符號數(shù)字乘法器的設(shè)計(jì),它以串行、移位方式進(jìn)行數(shù)據(jù)相乘運(yùn)算,特別適合串行通訊。該乘法器運(yùn)算步驟少,算法簡單,占資源少,可封裝為經(jīng)典模塊,供重復(fù)使用。

      1 算法推理

      無符號數(shù)字串行乘法可以從6位二進(jìn)制乘法展開推導(dǎo),歸納總結(jié)出n位的二進(jìn)制乘法。

      設(shè)有兩個(gè)6位二進(jìn)制A 和B,分別為

      那么,A 與B的乘積X 可以表示

      X =A×B =x11×211+x10×210+x9×29+x8×28+x7×27+x6×26+x5×25+x4×24+x3×23+x2×22+x1×21+x0×20

      其中:

      c1~c10為乘積X 的第1位數(shù)(x1)~第10位數(shù)(x10)的進(jìn)位,從x0~x11的表達(dá)式可以總結(jié)出第k位數(shù)的通式xk。

      式中:i+j=k,i是乘數(shù)A 的下標(biāo),j是乘數(shù)B 的下標(biāo),k是乘積X 的下標(biāo);0≤i ≤k,0≤j ≤k;0≤i≤n-1,0≤j ≤n-1;0≤k ≤11,即k ≤2n-1,n是乘數(shù)和被乘數(shù)的位數(shù),式中n=6;

      從6位的乘法的計(jì)算公式,可以歸納、總結(jié)出兩個(gè)n位二進(jìn)制數(shù)的乘法。假定:兩個(gè)n 位二進(jìn)制數(shù)分別為A(an-1an-2……a2a1a0)和B(bn-1bn-2……b2b1b0),那 么,它 們 的 乘 積X(x2n-1x2n-2x2n-3……x2x1x0)可表示為

      式(4)為兩個(gè)n 位無符號串行二進(jìn)制數(shù)乘法的逐位運(yùn)算規(guī)則,xk是乘積X 第k 位數(shù)的運(yùn)算通式。

      2 算法設(shè)計(jì)

      依據(jù)式(4),可以將兩個(gè)n 位乘法計(jì)算分為n次完成,每次計(jì)算均按照xk項(xiàng)進(jìn)行計(jì)算,如圖1所示。

      圖1 串行二進(jìn)制乘法器算法原理

      圖1中,被乘數(shù)與乘數(shù)按照移位時(shí)序送入寄存器,每次移位將對“被乘數(shù)”、“乘數(shù)”和“進(jìn)位”計(jì)算,形成該位“乘積”和“進(jìn)位”。隨著數(shù)據(jù)的串行進(jìn)入,逐位求積,當(dāng)信號結(jié)束時(shí),完成乘法運(yùn)算。在每一次計(jì)算完成后,對乘數(shù)、被乘數(shù)和進(jìn)位寄存器進(jìn)行清零,準(zhǔn)備下一次的乘法運(yùn)算。

      3 基于CPLD 的乘法器的實(shí)現(xiàn)

      根據(jù)上述算法原理,設(shè)計(jì)16位乘法器[2],如圖2所示。

      圖2 16位乘法器電路

      圖2 中,寄存器B 的Q0~Q15 的輸出為QB0~QB15,寄存器A 的Q0~Q15 的輸出為QA0~QA15,工作可分為以下幾個(gè)階段。

      乘法器工作流程如下:

      a)乘數(shù)裝訂,按照時(shí)序首先給寄存器B裝訂乘數(shù),從寄存器B的QB0~QB15輸出,可以串行裝訂,也可以并行裝訂;

      b)被乘數(shù)寄存器A 清零,即QA0~QA15置“0”,本步驟可與乘數(shù)裝訂同時(shí)進(jìn)行;

      c)被乘數(shù)輸入,寄存器A 按序逐位輸入16位串行被乘數(shù);

      d)對寄存器A 依次進(jìn)入的數(shù)據(jù),進(jìn)行逐位計(jì)算,并最終形成乘積。

      在相同的時(shí)鐘周期情況下,該乘法器的最快運(yùn)算周期數(shù)為:乘數(shù)加載周期數(shù)、被乘數(shù)位數(shù)、乘數(shù)位數(shù)的總和,即33個(gè)時(shí)鐘周期。

      4 仿真及試驗(yàn)驗(yàn)證

      根據(jù)圖2,運(yùn)用原理圖方法完成乘法器設(shè)計(jì)。為驗(yàn)證上述算法的有效性,采用Lattice公司的ispLEVER 軟件進(jìn)行時(shí)序仿真[4],結(jié)果分別如圖3、4所示。

      圖3、4中,各信號意義如下:CLEAN 是進(jìn)位寄存器清零信號,“1”有效;CLOCK A 是寄存器A(被乘數(shù)寄存器)的時(shí)鐘,上升沿有效;CLOCK B是寄存器B(乘數(shù)寄存器)的時(shí)鐘,上升沿有效;CLOCK C 是進(jìn)位寄存器的時(shí)鐘,上升沿有效;CMA 是寄存器A 的串并工作方式控制,“0”為串行狀態(tài),“1”為并行方式;CM B 是寄存器B 的串并工作方式控制,“0”為串行狀態(tài),“1”為并行方式;DATA A 是寄存器A 的串行輸入數(shù)據(jù),先低后高;DATA B 是寄存器B 的串行輸入數(shù)據(jù),先低后高;PDB0~PDB15是寄存器B 的并行輸入數(shù)據(jù),其中PDB0 為最低位,PDB15 為最高位;DOUT 為乘積輸出,先低后高。

      圖3對第一組數(shù)據(jù)輸入進(jìn)行仿真,寄存器B的并行端口D0~D15 輸入并行數(shù)據(jù)(PDB)為1000010101110001;在寄存器A 的Data A 端口依次輸入串行數(shù)據(jù)為0001111000011101(送數(shù)次序?yàn)橄鹊秃蟾撸?。仿真結(jié)果為32 位數(shù)據(jù)為00001111101100100101101111001101,即為寄存器A、B的乘積,驗(yàn)證了乘法器的有效性。

      圖3 第一組16×16位數(shù)乘法器仿真結(jié)果

      圖4 第二組16×16位數(shù)乘法器仿真結(jié)果

      圖4對第二組數(shù)據(jù)輸入進(jìn)行仿真,寄存器B輸 入 0001011100100000,寄 存 器 A 輸 入0001111111100000。仿真結(jié)果為32 位數(shù)據(jù)為00000010111000010001110000000000,即為寄存器A、B的乘積,也驗(yàn)證了乘法器的有效性。

      仿真結(jié)果達(dá)到預(yù)期效果后,通過CPLD 的硬件平臺,完成軟件的下載,模塊驗(yàn)證結(jié)果與仿真完全一致。目前,該16位乘法器作為模塊使用,經(jīng)過級連擴(kuò)展成64位串行乘法器,在某產(chǎn)品上穩(wěn)定工作。該乘法器算法的實(shí)現(xiàn),避免了硬件平臺向FPGA 升級所造成資源和成本的浪費(fèi)。

      5 使用資源的估算

      采用上述方法設(shè)計(jì)的乘法器所使用的資源與采用的編譯軟件、CPLD 器件類型、編寫代碼(原理圖、VHDL 等)等因素相關(guān)。下面撇開這些干擾因素,對該乘法器使用的資源進(jìn)行理論推算[3]。

      從圖1可以看出,該乘法器由與門、全加器和寄存器構(gòu)成。

      5.1 兩輸入與門數(shù)量

      兩輸入的與門使用的總數(shù)量應(yīng)等于被乘數(shù)或乘數(shù)的位數(shù),即與門數(shù)=n;

      5.2 三輸入全加器數(shù)量

      全加器由本位全加器和進(jìn)位全加器構(gòu)成,進(jìn)位全加器又分為十位全加器、千位全加器、萬位全加器、…、l位全加器,l應(yīng)滿足2l≥n,r1為滿足3r1 ≤n的最大整數(shù)。

      ……

      綜上所述,n 位乘法電路所用全加器的總數(shù)Un為:

      5.3 寄存器數(shù)量

      寄存器分為進(jìn)位寄存器、乘數(shù)寄存器和被乘數(shù)寄存器三類。進(jìn)位寄存器由2p1≥n 決定,即p1≥log2n。乘數(shù)寄存器和被乘數(shù)寄存器各一個(gè)。

      綜合上述,乘法器所用總資源如表1所示。

      上述計(jì)算分析表明,該乘法器占用較少的資源。

      表1 乘法器所用資源匯總

      6 結(jié)束語

      本文針對不含有內(nèi)置乘法器的CPLD,對串行乘法器的乘法機(jī)理進(jìn)行詳細(xì)分析后,形成算法設(shè)計(jì)和原理圖設(shè)計(jì),并進(jìn)行時(shí)序仿真和試驗(yàn)驗(yàn)證,最終驗(yàn)證了串行無符號整數(shù)乘法器設(shè)計(jì)有效。采用該方法設(shè)計(jì)的乘法器占用較少的資源,并具有良好的擴(kuò)展性,能夠擴(kuò)展到任意位數(shù)。在含有內(nèi)置乘法器的FPGA 設(shè)計(jì)中,該設(shè)計(jì)方法可以大大擴(kuò)展乘法器的可用數(shù)量,在實(shí)時(shí)性要求不高的條件下,選擇低容量器件,降低成本,減少硬件資源浪費(fèi)。

      上述乘法器通過拓展,可應(yīng)用于其它實(shí)時(shí)性要求不高的場合。比如,增加一個(gè)串行轉(zhuǎn)并行的模塊,就可以實(shí)現(xiàn)并行數(shù)據(jù)的乘法;增加符號位的異或門,可應(yīng)用于有符號的運(yùn)算。另外,通過對浮點(diǎn)數(shù)進(jìn)行整數(shù)化近似后,分別進(jìn)行整數(shù)相乘和指數(shù)相加的運(yùn)算,可將本乘法器應(yīng)用于浮點(diǎn)小數(shù)的近似運(yùn)算,以降低成本和資源。

      [1] 王磊磊.基于CZT 的頻率細(xì)化方法的FPGA 實(shí)現(xiàn)[J].制導(dǎo)與引信,2010,31(1):29-32.

      [2] 吳靜,李樹榮,等.一種基于RISC 結(jié)構(gòu)單片機(jī)的數(shù)字乘法器的設(shè)計(jì).微電子學(xué),2004,34(5):593-594.

      [3] 羅朝杰.數(shù)字邏輯設(shè)計(jì)基礎(chǔ)上冊[M].北京:人民郵電出版社,1982,(9):223-224.

      [4] 高路.基于FPGA 的DSP外部總線接口設(shè)計(jì)[J].制導(dǎo)與引信,2011,32(2):20-23.

      猜你喜歡
      乘法器乘數(shù)乘積
      乘積最大
      Dirichlet級數(shù)及其Dirichlet-Hadamard乘積的增長性
      看錯(cuò)了數(shù)字
      基于FPGA的流水線單精度浮點(diǎn)數(shù)乘法器設(shè)計(jì)*
      理性認(rèn)知西藏投資乘數(shù)小于1問題:以1996—2014年為例
      西藏研究(2016年4期)2016-06-05 11:31:15
      尋找突破角巧解算式謎
      復(fù)變?nèi)呛瘮?shù)無窮乘積的若干應(yīng)用
      Dirichlet級數(shù)的Dirichlet-Hadamard乘積
      Lagrange乘數(shù)法的部分應(yīng)用
      乘法器模塊在FPGA中的實(shí)現(xiàn)
      通榆县| 建阳市| 准格尔旗| 商洛市| 永修县| 大荔县| 江都市| 大关县| 万盛区| 曲松县| 石渠县| 城市| 姜堰市| 毕节市| 滦南县| 庆元县| 南靖县| 札达县| 赫章县| 龙门县| 马龙县| 囊谦县| 丹棱县| 昭通市| 安西县| 江华| 彰化县| 紫阳县| 施秉县| 秦安县| 岳阳市| 嘉兴市| 吴川市| 县级市| 林口县| 虎林市| 孝感市| 平湖市| 蛟河市| 隆安县| 仁化县|