国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的流水線單精度浮點數(shù)乘法器設(shè)計*

2017-03-10 08:54彭章國張征宇王學(xué)淵賴瀚軒
關(guān)鍵詞:乘法器浮點消耗

彭章國,張征宇,2,王學(xué)淵,賴瀚軒,茆 驥

(1. 西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010;2. 中國空氣動力研究與發(fā)展中心,四川 綿陽 621000)

基于FPGA的流水線單精度浮點數(shù)乘法器設(shè)計*

彭章國1,張征宇1,2,王學(xué)淵1,賴瀚軒1,茆 驥1

(1. 西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010;2. 中國空氣動力研究與發(fā)展中心,四川 綿陽 621000)

針對現(xiàn)有的采用Booth算法與華萊士(Wallace)樹結(jié)構(gòu)設(shè)計的浮點乘法器運算速度慢、布局布線復(fù)雜等問題,設(shè)計了基于FPGA的流水線精度浮點數(shù)乘法器。該乘法器采用規(guī)則的Vedic算法結(jié)構(gòu),解決了布局布線復(fù)雜的問題;使用超前進(jìn)位加法器(Carry Look-ahead Adder,CLA)將部分積并行相加,以減少路徑延遲;并通過優(yōu)化的4級流水線結(jié)構(gòu)處理,在Xilinx?ISE 14.7軟件開發(fā)平臺上通過了編譯、綜合及仿真驗證。結(jié)果證明,在相同的硬件條件下,本文所設(shè)計的浮點乘法器與基4-Booth算法浮點乘法器消耗時鐘數(shù)的比值約為兩者消耗硬件資源比值的1.56倍。

浮點乘法器;超前進(jìn)位加法器;華萊士樹;流水線結(jié)構(gòu);Vedic算法;Booth算法

0 引言

陣列乘法器是采用移位與求和的算法而設(shè)計的一種乘法器[1]。陣列乘法器具有規(guī)則的結(jié)構(gòu),易于布局布線等特點。隨著乘數(shù)位寬的增加,部分乘積的個數(shù)也成倍地增加,部分乘積項數(shù)目決定了求和運算的次數(shù),直接影響乘法器的速度。修正的Booth算法對乘數(shù)重新編碼,可以減少相加的部分乘積的數(shù)量,因為部分積的存在,部分積相加過程與陣列乘法器沒有太大差異。為了實現(xiàn)速度的提高,Wallace樹結(jié)構(gòu)可以改變部分積求和方式,將求和級數(shù)從O(N)減少到O(logN)。因此現(xiàn)有很多乘法器設(shè)計都采用修正的Booth算法與Wallace樹結(jié)構(gòu)相結(jié)合的方法。但是Wallace樹結(jié)構(gòu)缺乏規(guī)整性,布局布線困難;引線的延長導(dǎo)致寄生電容增加,妨礙了電路速度的進(jìn)一步提高。同時不規(guī)則的結(jié)構(gòu)會增加硅板的面積,并且由于路由復(fù)雜而導(dǎo)致中間連接過程的增多,繼而導(dǎo)致功耗的增大[2-3]。

吠陀乘法器具有其獨特規(guī)則的結(jié)構(gòu),隨著乘數(shù)位寬的增加,門延遲和面積的增加很緩慢,因此乘法器能夠在時間延遲、面積、功耗上達(dá)到最優(yōu)。文獻(xiàn)[4]設(shè)計了一種高速的4×4位吠陀乘法器,通過實驗證明了4×4位吠陀乘法器比同位寬的陣列乘法器、Booth算法乘法器的運算速度快;文獻(xiàn)[5]設(shè)計了單精度的浮點乘法器,其中尾數(shù)計算部分分別采用了吠陀乘法器和Booth算法乘法器兩種方法,結(jié)果證明吠陀乘法器在時間延遲和面積上都優(yōu)于Booth算法乘法器;文獻(xiàn)[6]在吠陀乘法器中分別采用行波進(jìn)位加法器(eRipple Carry Adders,RCA)和超前進(jìn)位加法器(eCarry Look-ahead Adder,CLA)計算部分乘積的和,通過實驗數(shù)據(jù)對比,采用超前進(jìn)位加法器可以獲得更高的速度和占更少的面積。然而對于海量的圖像數(shù)據(jù)進(jìn)行浮點數(shù)乘法運算時,每一組數(shù)據(jù)從運算開始到結(jié)束期間會產(chǎn)生時間延遲,可以在乘法器中加入流水線結(jié)構(gòu)來減少延遲時間,為此本文設(shè)計了一種基于吠陀數(shù)學(xué)的流水線浮點乘法器。

1 總體設(shè)計

本文所設(shè)計的單精度浮點數(shù)乘法器主要包含以下幾個部分:24位吠陀乘法器、一個8位無符號加法器、一個9位無符號減法器、一個符號位計算單元和一個標(biāo)準(zhǔn)化單元。其結(jié)構(gòu)框圖如圖1所示。

圖1 單精度浮點數(shù)乘法器結(jié)構(gòu)圖

1.1 符號位與階碼計算

IEEE 754標(biāo)準(zhǔn)[7]為二進(jìn)制浮點運算提供了一個精確的浮點數(shù)格式計算規(guī)范操作及異常處理。這一標(biāo)準(zhǔn)定義了32位單精度浮點數(shù)和64位雙精度浮點數(shù)兩種類型。它們都分別由符號位、尾數(shù)、階碼組成,表1給出了單精度浮點數(shù)格式,由式(1)表示為:

P=(-1)S2(Exp-Bias)M

第三,高校要利用“互聯(lián)網(wǎng)+監(jiān)管”的方式來營造良好的網(wǎng)絡(luò)環(huán)境?!盎ヂ?lián)網(wǎng)+”時代的到來拓展了大學(xué)生企業(yè)家精神教育的新內(nèi)容,形成了開放、互通、共享的教學(xué)模式,同時還實現(xiàn)了從大一統(tǒng)教學(xué)到個性化教學(xué)的轉(zhuǎn)變,大學(xué)生實現(xiàn)了從被動學(xué)習(xí)到主動學(xué)習(xí)的轉(zhuǎn)變。但是龐大冗雜的信息、開放自由的環(huán)境也給正處于成長期的大學(xué)生提供了負(fù)面信息傳播和宣泄的場所,高校要實時對互聯(lián)網(wǎng)中良莠不齊的信息進(jìn)行篩選與甄別,及時關(guān)注學(xué)生的思想形態(tài),營造風(fēng)清氣正、積極向上的網(wǎng)絡(luò)環(huán)境。

(1)

式中S代表符號位;Exp表示階碼;Bias為固定值,其值為127;M為尾數(shù)。

表1 單精度浮點數(shù)的格式

(1)符號位計算:兩個數(shù)相乘的結(jié)果的符號位由這兩個乘數(shù)的符號位相異或(⊕)得到,如式(2)所示。

S=S1⊕S2

(2)

式中S1、S2為兩個單精度度浮點數(shù)的符號位,S為兩者之間的異或結(jié)果。

(2)階碼計算:該加法器模塊主要將兩個乘數(shù)的階碼相加,其結(jié)果再減去偏差值而得到相乘后結(jié)果的階碼,如式(3)所示。

PExp=AExp+BExp-Bias

(3)

式中AExp、BExp為兩個單精度浮點數(shù)的階碼;Bias為固定值,其值為127。

1.2 24位吠陀乘法器的邏輯電路設(shè)計

圖2 2×2吠陀乘法器

吠陀乘法器是基于吠陀數(shù)學(xué)而設(shè)計的。吠陀數(shù)學(xué)是Sri Bharati Krishna Tirthaji(巴拉蒂·克里希納·第勒塔季)在研究印度古代吠陀經(jīng)文的基礎(chǔ)上重構(gòu)的數(shù)學(xué)計算體系,其中包括了算術(shù)、代數(shù)、幾何、三角函數(shù)和微積分等學(xué)科的處理方法。本文設(shè)計的24位吠陀乘法器是基于Urdhva Tiryakbhyam Sutra(字面意思是垂直和橫向)而設(shè)計的,2位吠陀乘法器的結(jié)構(gòu)框圖如圖2所示,它由4個與門和2個半加器組成,它是24位吠陀乘法器的基本組成單元。

根據(jù)2位吠陀乘法器的結(jié)構(gòu),一個4位吠陀乘法器可以分解為4個2位吠陀乘法器和3個4位加法器,如圖3所示。

圖3 4×4位吠陀乘法器

同理,一個8位吠陀乘法器可以由4個4位吠陀乘法器和3個8位加法器組成,因此,n位的吠陀乘法器能夠使用4個n/2位吠陀乘法器和3個n位的加法器實現(xiàn)。綜上,n位的吠陀乘法器被分解成n/2個n/2位的乘法器,然后這些較小位寬的乘法器(n/2位)再次分為更小位寬的乘法器(n/4位),直到被乘數(shù)位寬為2位,從而簡化整個增殖過程。

由吠陀乘法器的結(jié)構(gòu)可知,乘法器中會用到進(jìn)位加法器將各部分積并行相加,隨著加法器的引入,必然會產(chǎn)生路徑時間延遲,從而降低乘法器的運算速度。本文使用CLA先行求得多位加法各位間的進(jìn)位值,它由進(jìn)位位產(chǎn)生進(jìn)位,各進(jìn)位彼此獨立,不依賴于進(jìn)位傳播,從而減少等待進(jìn)位所需要的時間延遲。其推導(dǎo)過程如下:

設(shè)二進(jìn)制加法器的第i位為Ai和Bi,輸出為Si,進(jìn)位輸入為Ci,進(jìn)位輸出為Ci+1,則有:

Si=Ai+Bi+Ci

(4)

Ci+1=Ai&Bi+Ci&(Ai+Bi)

(5)

令:Gi=Ai&Bi,Pi=Ai+Bi,則有:

Ci+1=Gi+Ci&Pi

(6)

只要Gi=1 ,就會產(chǎn)生向Ci+1位的進(jìn)位,稱Gi為進(jìn)位產(chǎn)生函數(shù)。同樣,只要Pi=1,就會把Ci傳遞到Ci+1位;其中Pi為進(jìn)位傳遞函數(shù)。隨著位數(shù)的增加式(5)會加長,但總保持三個邏輯級的深度,因此形成進(jìn)位的延遲是與位數(shù)無關(guān)的常數(shù)。

24位吠陀乘法器結(jié)構(gòu)圖如圖4所示,其中包括1個16位吠陀乘法器、2個16×8位吠陀乘法器、1個8位吠陀乘法器、3個CLA。

圖4 24位吠陀乘法器結(jié)構(gòu)圖

1.3 流水線結(jié)構(gòu)設(shè)計

為了提高FPM對批量數(shù)據(jù)的運算速度,根據(jù)乘法器內(nèi)部獨特的結(jié)構(gòu),乘法器中采用了4級流水線進(jìn)行處理,如圖5所示。通過對24位吠陀乘法器的結(jié)構(gòu)進(jìn)行分析可知,該乘法器主要由4個不同位寬的吠陀乘法器級聯(lián)而成,因此從最基本的2位吠陀乘法器單元出發(fā),在每一個乘法器單元中加入了移位寄存器,形成流水線結(jié)構(gòu)。

2 實驗結(jié)果與分析

整個FPM設(shè)計使用Verilog HDL語言描述,然后在Xilinx?ISE14.7集成軟件環(huán)境下進(jìn)行了編譯、綜合及功能仿真,最后在XiLinx公司的Virtex-6(xc6vlx240t-1ff1156 )硬件實驗平臺上進(jìn)行了驗證。FPM中尾數(shù)乘積部分是其最重要的部分,因此設(shè)計了采用Vedic、基2-Booth、基4-Booth三種算法的24位無符號整數(shù)乘法器,并對三種算法的乘法器消耗的硬件資源進(jìn)行了對比,如表2所示。

由表2可知,由于乘法器中每一級都包含了3個CLA,Vedic算法乘法器消耗的LUTs數(shù)目是三種算法乘法器中最多的,而在其他方面的資源消耗是最少的?;?-Booth算法乘法器相對于基2-Booth算法乘法器消耗了更多的資源。三種算法的24位無符號整數(shù)乘法器的仿真波形如圖6~圖8所示。其中基2-Booth算法完成一次計算需要52個時鐘周期,基4-Booth算法需要15個時鐘周期,而Vedic算法乘法器由組合邏輯電路設(shè)計而成,不需要消耗時鐘周期。

表2 三種算法的24位無符號整數(shù)乘法器消耗硬件資源數(shù)目對比 (個)

圖6 基2-Booth算法的24位無符號整數(shù)乘法器仿真圖

圖7 基4-Booth算法的24位無符號整數(shù)乘法器仿真圖

圖9 基2-Booth算法的浮點乘法器仿真圖

圖10 基4-Booth算法的浮點乘法器乘法器仿真圖

圖8 Vedic算法的24位無符號整數(shù)乘法器仿真圖

圖11 Vedic算法的浮點乘法器乘法器仿真圖

表3列出了基2-Booth、基4-Booth兩種算法設(shè)計的FPM與本文設(shè)計的基于吠陀數(shù)學(xué)的流水線FPM在消耗FPGA資源數(shù)目上的對比。

由表3所知,三種方法的FPM在資源、時鐘周期消耗上與無符號整數(shù)乘法器所得結(jié)論基本一致。其中基2-Booth算法FPM完成一次計算需要52個時鐘周期,基4-Booth算法需要24個時鐘周期,Vedic算法的浮點乘法器需要9個時鐘周期。綜上,Vedic算法FPM在運算速度上更快,這是因為吠陀乘法器的部分積并行相加的結(jié)果,采用高速的超前進(jìn)位加法器,使得運算速度進(jìn)一步提升。三種算法的浮點數(shù)乘法器的仿真波形如圖9~圖11所示。

表3 三種算法的浮點數(shù)乘法器消耗硬件資源數(shù)目對比 (個)

通過計算基4-Booth FPM與本文設(shè)計的FPM消耗資源、時鐘周期數(shù)目的比值發(fā)現(xiàn),本文設(shè)計的FPM與基4-Booth算法FPM消耗時鐘數(shù)的比值約為兩者消耗FPGA資源比值的1.56倍。

3 結(jié)論

本文設(shè)計了一種基于吠陀數(shù)學(xué)的流水線FPM。乘法器采用Vedic算法,并在其結(jié)構(gòu)中采用超前進(jìn)位保留加法器將產(chǎn)生的部分積結(jié)果并行相加,從而減少了電路延遲,4級流水線結(jié)構(gòu)也使得乘法器運算速度進(jìn)一步得到了提高。相比于華萊士樹算法相結(jié)合設(shè)計的乘法器,吠陀乘法器具有較規(guī)則的結(jié)構(gòu),容易布局布線。雖然本文設(shè)計的浮點乘法器消耗了更多的資源,但是在速度上獲得了提高。

[1] 胡正偉,仲順安. 一種多功能陣列乘法器的設(shè)計方法[J]. 計算機(jī)工程, 2007, 33(22): 23-25.

[2] 夏煒, 肖鵬. 一種高效雙精度浮點乘法器[J]. 計算機(jī)測量與控制,2013, 21(4): 1017-1020.

[3] 李飛雄, 蔣林.一種結(jié)構(gòu)新穎的流水線 Booth 乘法器設(shè)計[J]. 電子科技, 2013, 26(8):46-48.

[4] KARTHIK S, UDAYABHAUN P. FPGA implementation of high speed vedic multipliers[C].International Journal of Engineering Research and Technology. ESRSA Publications, 2012, 1(10).

[5] KONERU P, SREENIVASU T, RAMESH A P. Asynchronous single precision floating point multiplier using verilog HDL[J]. IJ of Advanced Research in Electronics and Communication Engineering, 2013.

[6] ANJANA S, PRADEEP C, SAMUEL P. Synthesize of high speed floating-point multipliers based on Vedic mathematics[J]. Procedia Computer Science, 2015, 46: 1294-1302.

[7] IEEE 754-2008, IEEE Standard for Floating-Point Arithmetic[S]. 2008.

彭章國 (1990-),男,碩士研究生,主要研究方向:數(shù)字信號和視頻圖像處理技術(shù)。

張征宇 (1971-),通信作者,男,博士,研究員,主要研究方向:光學(xué)測量及其在風(fēng)洞實驗中的應(yīng)用等。E-mail:zzyxjd@163.com。

王學(xué)淵 (1974-),男,博士,副教授,主要研究方向:測試數(shù)據(jù)采集與處理。

A single precision floating-point multiplier design of assembly line based on FPGA

Peng Zhangguo1,Zhang Zhengyu1,2,Wang Xueyuan1,Lai Hanxuan1,Mao Ji1

(1.School of Informatin Engineering, Southwest University of Science and Technology, Mianyang 621010,China;2. China Aerodynamics Research and Development Center, Mianyang 621000,China)

Considering the existing floating-point multiplier based on Booth algorithm and Wallace tree, which has slow speed and complex layout, a single precision floating-point multiplier is designed using Vedic mathematics. The Vedic multiplier(VM) has a regular structure therefore can be easily placed and routd in a silicon chip. Carry look-ahead adder (CLA) structure is used to add the part of the product in parallel for reducing the path delay. The floating-point multiplier design employs an optimized 4-stage pipeline processing and the simulation and synthesis are done in Xilinx?ISE 14.7.The results prove that under the condition of the same hardware, the ratio of consumed clock number between the designed multiplier in this paper and arithmetic point multiplier based on 4-Booth is about 1.56 times than that of consumed hardware resources.

floating-point multiplier; carry look-ahead adder; Wallace tree; pipeline structure; Vedic algorithm; Booth algorithm

國家自然科學(xué)基金(51475453);國家自然科學(xué)基金(11472297)

TP331.2

A

10.19358/j.issn.1674- 7720.2017.04.022

彭章國,張征宇,王學(xué)淵,等.基于FPGA的流水線單精度浮點數(shù)乘法器設(shè)計[J].微型機(jī)與應(yīng)用,2017,36(4):74-77,83.

2016-08-29)

猜你喜歡
乘法器浮點消耗
玉鋼燒結(jié)降低固體燃料消耗實踐
一種基于中國剩余定理的高效乘法器設(shè)計
轉(zhuǎn)爐煉鋼降低鋼鐵料消耗的生產(chǎn)實踐
LEO星座增強(qiáng)GNSS PPP模糊度浮點解與固定解性能評估
一種低開銷的近似乘法器設(shè)計
降低鋼鐵料消耗的生產(chǎn)實踐
基于Simulink浮點模型和定點模型的問題研究
基于浮點DSP的鐵路FSK信號檢測
我們消耗很多能源
一種高性能快速傅里葉變換的硬件設(shè)計