0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2018-12-31 07:35 ? 次閱讀

1 引言

在數(shù)字化飛速發(fā)展的今天,人們對微處理器的性能要求也越來越高。作為衡量微處理器 性能的主要標(biāo)準(zhǔn),主頻和乘法器運(yùn)行一次乘法的周期息息相關(guān)。因此,為了進(jìn)一步提高微處理器性能,開發(fā)高速高精度的乘法器勢在必行。同時(shí)由于基于IEEE754 標(biāo)準(zhǔn)的浮點(diǎn)運(yùn)算具 有動(dòng)態(tài)范圍大,可實(shí)現(xiàn)高精度,運(yùn)算規(guī)律較定點(diǎn)運(yùn)算更為簡捷等特點(diǎn),浮點(diǎn)運(yùn)算單元的設(shè)計(jì) 研究已獲得廣泛的重視。 本文介紹了 32 位浮點(diǎn)乘法器的設(shè)計(jì),采用了基4 布思算法,改進(jìn)的4:2 壓縮器及布思 編碼算法,并結(jié)合FPGA 自身特點(diǎn),使用流水線設(shè)計(jì)技術(shù),在實(shí)現(xiàn)高速浮點(diǎn)乘法的同時(shí),也 使是系統(tǒng)具有了高穩(wěn)定性、規(guī)則的結(jié)構(gòu)、易于FPGA 實(shí)現(xiàn)及ASIC 的HardCopy 等特點(diǎn)。

2 運(yùn)算規(guī)則及系統(tǒng)結(jié)構(gòu)

2.1 浮點(diǎn)數(shù)的表示規(guī)則

本設(shè)計(jì)采用單精度IEEE754 格式【2】。設(shè)參與運(yùn)算的兩個(gè)數(shù)A、B 均為單精度浮點(diǎn)數(shù), 即:

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)

2.2 浮點(diǎn)乘法器的硬件系統(tǒng)結(jié)構(gòu)

本設(shè)計(jì)用于專用浮點(diǎn)FFT 處理器,因此對運(yùn)算速度有較高要求。為了保證浮點(diǎn)乘法器 可以穩(wěn)定運(yùn)行在80M 以下,本設(shè)計(jì)采用了流水線技術(shù)。流水線技術(shù)可提高同步電路的運(yùn)行 速度,加大數(shù)據(jù)吞吐量。而FPGA 的內(nèi)部結(jié)構(gòu)特點(diǎn)很適合在其中采用流水線設(shè)計(jì),并且只需 要極少或者根本不需要額外的成本。綜上所述,根據(jù)系統(tǒng)分割,本設(shè)計(jì)將采用5 級流水處理, 圖1 為浮點(diǎn)乘法器的硬件結(jié)構(gòu)圖。

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)


3 主要模塊設(shè)計(jì)與仿真

3.1 指數(shù)處理模塊(E_Adder)設(shè)計(jì)

32位浮點(diǎn)數(shù)格式如文獻(xiàn)【2】中定義。由前述可知,浮點(diǎn)乘法的主要過程是兩個(gè)尾數(shù)相 乘,同時(shí)并行處理指數(shù)相加及溢出檢測。對于32位的浮點(diǎn)乘法器而言,其指數(shù)為8位,因而 本設(shè)計(jì)采用帶進(jìn)位輸出的8位超前進(jìn)位加法器完成指數(shù)相加、去偏移等操作,具體過程如下。

E_Adder 模塊負(fù)責(zé)完成浮點(diǎn)乘法器運(yùn)算中指數(shù)域的求和運(yùn)算,如下式所示:

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)



其中,E[8]為MSB 位產(chǎn)生的進(jìn)位。Bias=127 是IEEE754 標(biāo)準(zhǔn)中定義的指數(shù)偏移值。 Normalization 完成規(guī)格化操作,因?yàn)橹笖?shù)求和結(jié)果與尾數(shù)相乘結(jié)果有關(guān)。在本次設(shè)計(jì)中,通 過選擇的方法,幾乎可以在Normalization 標(biāo)志產(chǎn)生后立刻獲得積的指數(shù)部分,使E_Adder 不處于關(guān)鍵路徑。

本設(shè)計(jì)收集三級進(jìn)位信號,配合尾數(shù)相乘單元的 Normalization 信號,對計(jì)算結(jié)果進(jìn)行 規(guī)格化處理,并決定是否輸出無窮大、無窮小或正常值。

根據(jù) E_Adder 的時(shí)序仿真視圖,可看出設(shè)計(jì)完全符合應(yīng)用需求。

3.2 改進(jìn)的Booth 編碼器設(shè)計(jì)

由于整個(gè)乘法器的延遲主要決定于相加的部分積個(gè)數(shù),因此必須減少部分積的數(shù)目才能 進(jìn)而縮短整個(gè)乘法器的運(yùn)算延遲。本設(shè)計(jì)采用基4 布思編碼器,使得部分積減少到13 個(gè), 并對傳統(tǒng)的編碼方案進(jìn)行改進(jìn)。編碼算法如表1 所示。

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)

由于 FPGA 具有豐富的與、或門資源,使得該方法在保證速度和準(zhǔn)確性的前提下,充分 利用了FPGA 內(nèi)部資源,節(jié)省了面積,同時(shí)符合低功耗的要求。

3.3 部分積產(chǎn)生與壓縮結(jié)構(gòu)設(shè)計(jì)

3.3.1 部分積產(chǎn)生結(jié)構(gòu)

根據(jù)布思編碼器輸出結(jié)果,部分積產(chǎn)生遵循以下公式【4】:

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)



其中,PPi 為部分積;Ai 為被乘數(shù)。經(jīng)過隱藏位和符號位的擴(kuò)展后,26 位的被乘數(shù)尾數(shù)將產(chǎn) 生13 個(gè)部分積。在浮點(diǎn)乘法器中,尾數(shù)運(yùn)算采用的是二進(jìn)制補(bǔ)碼運(yùn)算。因此,當(dāng)NEG=1 時(shí)要在部分積的最低位加1,因?yàn)镻Pi 只完成了取反操作。而為了加強(qiáng)設(shè)計(jì)的并行性,部分 積最低位加1 操作在部分積壓縮結(jié)構(gòu)中實(shí)現(xiàn)。另外,為了完成有符號數(shù)相加,需對部分積的 符號位進(jìn)行擴(kuò)展,其結(jié)果如圖4 所示。13 個(gè)部分積中,除第一個(gè)部分積是29 位以外,其余 部分積擴(kuò)展為32 位。其中,第一個(gè)部分積包括3 位符號擴(kuò)展位“SSS”,第2 至13 個(gè)部分 積的符號擴(kuò)展位為“SS”,加一操作位為“NN”,遵循如下公式:

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)

其中,i 為部分積的行數(shù),sign(i)為第i 行部分積的符號。

3.3.2 部分積壓縮結(jié)構(gòu)

本設(shè)計(jì)混合使用 4:2 壓縮器、3:2 壓縮器、全加器和半加器,實(shí)現(xiàn)了13 個(gè)部分積的 快速壓縮,并保證了精度。本文部分積壓縮結(jié)構(gòu)的劃分如圖2 所示。

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)

圖 2 中,虛線給出了傳統(tǒng)部分積的壓縮劃分,而實(shí)線描述的是本文采用的部分積壓縮結(jié) 構(gòu)劃分,這樣的劃分有利于簡化第二級的壓縮結(jié)構(gòu),從而在保證速度的基礎(chǔ)上,節(jié)省FPGA 內(nèi)部資源。從圖2 中可看出,有些位不必計(jì)算,因?yàn)檫@些位是由Booth 編碼時(shí)引入的乘數(shù)尾 數(shù)的符號位產(chǎn)生的,48 位足以表達(dá)運(yùn)算結(jié)果。

3.3.3 改進(jìn)的4:2 壓縮器

本設(shè)計(jì)采用廣泛使用的 4:2 壓縮器,并針對FPGA 內(nèi)部資源特點(diǎn),對其進(jìn)行了改進(jìn)。 如圖3 所示。 傳統(tǒng)的 4:2 壓縮器即兩個(gè)全加器級聯(lián),共需要四個(gè)異或門和8 個(gè)與非門。而改進(jìn)的4: 2 壓縮器需要四個(gè)異或門和兩個(gè)選擇器(MUX)。8 個(gè)與非門需要36 個(gè)晶體管,而兩個(gè)MUX 需要20 個(gè)晶體管。同時(shí),F(xiàn)PGA 內(nèi)部集成了大量的異或門和選擇器資源,這種設(shè)計(jì)方法也是對FPGA 的一個(gè)充分利用。

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)



由于壓縮部分積需要大量的4:2 壓縮器,所以改進(jìn)的電路能 在一定程度上減小版圖的面積,也為該乘法器的ASIC 后端設(shè)計(jì)帶來了優(yōu)勢。另外,改進(jìn)的 壓縮器的4 個(gè)輸入到輸出S 的延時(shí)相同,都是3 級XOR 門延時(shí)。

4 32 位浮點(diǎn)乘法器的實(shí)現(xiàn)與仿真

圖 4 顯示了本設(shè)計(jì)的FPGA 時(shí)序仿真結(jié)果,時(shí)序仿真環(huán)境為Quartus II 7.0,目標(biāo)芯片為 Cyclone 系列的EP1C6Q240C8,功能仿真環(huán)境為Modelsim 6.0b。整個(gè)設(shè)計(jì)采用VHDL 語言進(jìn)行結(jié)構(gòu)描述,綜合策略為面積優(yōu)先。由仿真視圖可看出,該浮點(diǎn)乘法器可穩(wěn)定運(yùn)行在80M 及以下頻率,在延時(shí)5 個(gè)周期后,以后每一個(gè)周期可穩(wěn)定輸出一級乘法運(yùn)算結(jié)果,實(shí)現(xiàn)了高 吞吐量。如果采用全定制進(jìn)行后端版圖布局布線,乘法器的性能將更加優(yōu)越。

采用FPGA器件與流水線技術(shù)實(shí)現(xiàn)浮點(diǎn)乘法器設(shè)計(jì)

5 結(jié)語

針對FPGA 器件內(nèi)部資源特性,獨(dú)創(chuàng)地提出了一種適合FPGA 實(shí)現(xiàn) 的5 級流水高速浮點(diǎn)乘法器。該乘法器支持IEEE754 標(biāo)準(zhǔn)32 位單精度浮點(diǎn)數(shù),采用了基4 布思算法、改進(jìn)的布思編碼器、部份積壓縮結(jié)構(gòu)等組件,從而在保證高速的前提下,縮小了 硬件規(guī)模,使得該乘法器的設(shè)計(jì)適合工程應(yīng)用及科學(xué)計(jì)算,并易于ASIC 的后端版圖實(shí)現(xiàn)。 該設(shè)計(jì)已使用在筆者設(shè)計(jì)的浮點(diǎn)FFT 處理器中,取得了良好效果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601239
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3573

    瀏覽量

    133982
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2244

    瀏覽量

    82267
收藏 人收藏

    評論

    相關(guān)推薦

    怎么設(shè)計(jì)基于FPGA的WALLACETREE乘法器

    在數(shù)字信號處理中,乘法器是整個(gè)硬件電路時(shí)序的關(guān)鍵路徑。速度和面積的優(yōu)化是乘法器設(shè)計(jì)過程的兩個(gè)主要考慮因素。由于現(xiàn)代可編程邏輯芯片FPGA的集成度越來越高,及其相對于ASIC設(shè)計(jì)難度較低和產(chǎn)品設(shè)計(jì)
    發(fā)表于 09-03 07:16

    基于FPGA的高速流水線浮點(diǎn)乘法器該怎么設(shè)計(jì)?

    在數(shù)字化飛速發(fā)展的今天,人們對微處理器的性能要求也越來越高。作為衡量微處理器性能的主要標(biāo)準(zhǔn),主頻和乘法器運(yùn)行一次乘法的周期息息相關(guān)。因此,為了進(jìn)一步提高微處理器性能,開發(fā)高速高精度的乘法器勢在必行
    發(fā)表于 09-03 08:31

    【夢翼師兄今日分享】 流水線設(shè)計(jì)講解

    了觸發(fā)器,數(shù)據(jù)的采集需要發(fā)生在時(shí)鐘上升沿),總處理數(shù)據(jù)的吞吐量增加了。流水線改造實(shí)例接下來我們用一個(gè)很簡單的例子來說明如何對電路進(jìn)行簡單的流水線改造,假設(shè)我們現(xiàn)在要實(shí)現(xiàn)(4*a+6*b)-10,那么我們
    發(fā)表于 12-05 11:53

    請問一下高速流水線浮點(diǎn)法器FPGA怎么實(shí)現(xiàn)?

    請問一下高速流水線浮點(diǎn)法器FPGA怎么實(shí)現(xiàn)?
    發(fā)表于 05-07 06:44

    怎么實(shí)現(xiàn)32位浮點(diǎn)陣列乘法器的設(shè)計(jì)?

    本文介紹了32 位浮點(diǎn)陣列乘法器的設(shè)計(jì), 采用了改進(jìn)的Booth 編碼, 和Wallace樹結(jié)構(gòu), 在減少部分積的同時(shí), 使系統(tǒng)具有高速度, 低功耗的特點(diǎn), 并且結(jié)構(gòu)規(guī)則, 易于VLSI的實(shí)現(xiàn)
    發(fā)表于 05-08 07:44

    基于Pezaris 算法的流水線陣列乘法器設(shè)計(jì)

    介紹了補(bǔ)碼陣列乘法器的Pezaris 算法。為提高運(yùn)算速度,利用流水線技術(shù)進(jìn)行改進(jìn),設(shè)計(jì)出流水線結(jié)構(gòu)陣列乘法器,使用VHDL語言建模,在Qu
    發(fā)表于 08-02 16:38 ?0次下載

    基于FPGA 的單精度浮點(diǎn)數(shù)乘法器設(shè)計(jì)

    設(shè)計(jì)了一個(gè)基于FPGA的單精度浮點(diǎn)數(shù)乘法器.設(shè)計(jì)中采用改進(jìn)的帶偏移量的冗余Booth3算法和跳躍式Wallace樹型結(jié)構(gòu),并提出對Wallace樹產(chǎn)生的2個(gè)偽和
    發(fā)表于 09-29 16:46 ?44次下載

    什么是流水線技術(shù)

    什么是流水線技術(shù) 流水線技術(shù)
    發(fā)表于 02-04 10:21 ?3911次閱讀

    高速流水線浮點(diǎn)法器FPGA實(shí)現(xiàn)

    高速流水線浮點(diǎn)法器FPGA實(shí)現(xiàn) 0  引言現(xiàn)代信號處理技術(shù)通常都需要進(jìn)行大量高速
    發(fā)表于 02-04 10:50 ?2336次閱讀
    高速<b class='flag-5'>流水線</b><b class='flag-5'>浮點(diǎn)</b>加<b class='flag-5'>法器</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>

    基于FPGA的高速流水線浮點(diǎn)乘法器設(shè)計(jì)與實(shí)現(xiàn)

    設(shè)計(jì)了一種支持IEEE754浮點(diǎn)標(biāo)準(zhǔn)的32位高速流水線結(jié)構(gòu)浮點(diǎn)乘法器。該乘法器采用新型的基4布思
    發(fā)表于 02-29 11:20 ?3504次閱讀

    一種高速流水線乘法器結(jié)構(gòu)

    產(chǎn)生9個(gè)部分積,有效降低了部分積壓縮陣列的規(guī)模與延時(shí).通過對5級流水線關(guān)鍵路徑中壓縮陣列和64位超前進(jìn)位(CLA)加法器的優(yōu)化設(shè)計(jì),減少了乘法器的延時(shí)和面積.經(jīng)現(xiàn)場可編程邏輯器件仿真驗(yàn)
    發(fā)表于 03-15 13:34 ?6次下載
    一種高速<b class='flag-5'>流水線</b><b class='flag-5'>乘法器</b>結(jié)構(gòu)

    使用verilogHDL實(shí)現(xiàn)乘法器

    本文在設(shè)計(jì)實(shí)現(xiàn)乘法器時(shí),采用了4-2和5-2混合壓縮器對部分積進(jìn)行壓縮,減少了乘法器的延時(shí)和資源占 用率;經(jīng)XilinxISE和QuartusII兩種集成開發(fā)環(huán)境下的綜合仿真測試,與用
    發(fā)表于 12-19 13:30 ?1.1w次閱讀
    使用verilogHDL<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>乘法器</b>

    乘法器原理_乘法器的作用

    乘法器(multiplier)是一種完成兩個(gè)互不相關(guān)的模擬信號相乘作用的電子器件。它可以將兩個(gè)二進(jìn)制數(shù)相乘,它是由更基本的加法器組成的。乘法器可以通過使用一系列計(jì)算機(jī)算數(shù)
    發(fā)表于 02-18 15:08 ?2.6w次閱讀
    <b class='flag-5'>乘法器</b>原理_<b class='flag-5'>乘法器</b>的作用

    采用Gillbert單元如何實(shí)現(xiàn)CMOS模擬乘法器的應(yīng)用設(shè)計(jì)

    在集成電路系統(tǒng)中,模擬乘法器在信號調(diào)制解調(diào)、鑒相、頻率轉(zhuǎn)換、自動(dòng)增益控制和功率因數(shù)校正控制等許多方面有著非常廣泛的應(yīng)用。實(shí)現(xiàn)模擬乘法器的方法有很多,按采用的工藝不同,可以分為三極管
    的頭像 發(fā)表于 03-23 09:40 ?5174次閱讀
    <b class='flag-5'>采用</b>Gillbert單元如何<b class='flag-5'>實(shí)現(xiàn)</b>CMOS模擬<b class='flag-5'>乘法器</b>的應(yīng)用設(shè)計(jì)

    可加快數(shù)據(jù)處理速度的高速近似乘法器

    乘法器,采用近似加法實(shí)現(xiàn)部分累加運(yùn)算,從而減少近似乘法器的資源消耗,同時(shí)通過流水線結(jié)構(gòu)增加系統(tǒng)的時(shí)鐘頻率,進(jìn)而提高數(shù)據(jù)吞吐率。統(tǒng)計(jì)結(jié)果表明,
    發(fā)表于 05-19 14:10 ?7次下載