在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如何在FPGA中實(shí)現(xiàn)高效的compressor加法樹呢?

FPGA之家 ? 來源:AI加速 ? 2023-11-08 09:06 ? 次閱讀

大規(guī)模的整數(shù)加法在數(shù)字信號(hào)處理和圖像視頻處理領(lǐng)域應(yīng)用很多,其對(duì)資源消耗很多,如何能依據(jù)FPGA物理結(jié)構(gòu)特點(diǎn)來有效降低加法樹的資源和改善其時(shí)序特征是非常有意義的。本篇論文是基于altera公司的FPGA,利用其LUT特點(diǎn),探索設(shè)計(jì)最大程度利用LUT以及改善時(shí)序的compressor樹的結(jié)構(gòu)。

01

半加器和全加器

半加器是兩個(gè)輸入bit相加,輸出結(jié)果S和進(jìn)位C。表達(dá)式為:

4a0f0034-7dd2-11ee-939d-92fbcf53809c.png

全加器是三個(gè)bit相加,有進(jìn)位參與,表達(dá)式為:

4a2faba4-7dd2-11ee-939d-92fbcf53809c.png

Compressor樹就是在全加器的基礎(chǔ)上建立的,通過全加器的S和C結(jié)果相互連接形成多層樹狀結(jié)構(gòu),其相比于普通的進(jìn)位加法樹消耗更少資源。普通進(jìn)位加法樹是用兩個(gè)或者三個(gè)加法模塊連接成樹,形成多層結(jié)構(gòu)來計(jì)算多輸入加法。放一張wallace樹的經(jīng)典文獻(xiàn)中的圖片來大致了解一下compressor樹的結(jié)構(gòu)。

4a4d1090-7dd2-11ee-939d-92fbcf53809c.jpg

圖1.1 compressor樹結(jié)構(gòu)

02

Compressor樹

Compressor樹就是在圖1.1中carry propagating adder以上的部分,其目的就是為了減少被加數(shù)個(gè)數(shù),上圖中降低到S和C兩個(gè)后送到進(jìn)位鏈加法器完成最后求和。這樣就可以降低加法對(duì)資源的消耗。假設(shè)有如下加數(shù):

4a6ce974-7dd2-11ee-939d-92fbcf53809c.png

Compressor樹的結(jié)果就是:

4a807d86-7dd2-11ee-939d-92fbcf53809c.png

Compressor樹就是由以上的全加器構(gòu)成的。全加器構(gòu)成一個(gè)基本的并行計(jì)數(shù)器,并行計(jì)數(shù)器(Generalized parallel counters)GPC可以用一個(gè)元組表示:

4a9c0d4e-7dd2-11ee-939d-92fbcf53809c.png

其中Ki表示的是輸入的被加數(shù)中處于同一位置的bit個(gè)數(shù),如果用點(diǎn)來代表bit,那么下圖中的bit0的個(gè)數(shù)有1,而bit1有2,bit2有3,…。假設(shè)一個(gè)GPC允許的最大輸入bit數(shù)為M,這個(gè)條件是考慮到FPGA中LUT的結(jié)構(gòu),比如在altera的stratix等器件中,LUT是6輸入的,為了更好的利用LUT資源,需要適配LUT輸入。那么根據(jù)這個(gè)條件,可以得到以下的約束:

4abc6e18-7dd2-11ee-939d-92fbcf53809c.png

4ada4afa-7dd2-11ee-939d-92fbcf53809c.jpg

圖2.1 (1, 4, 1, 5; 5)

第一個(gè)約束條件是所有列的bit數(shù)被限制在M以內(nèi),第二個(gè)條件是所能實(shí)現(xiàn)的最大數(shù)據(jù)范圍。后邊會(huì)根據(jù)這兩個(gè)條件提出一個(gè)在FPGA上優(yōu)化compressor樹的算法

用GPC來實(shí)現(xiàn)元組(1, 4, 1, 5; 5)為下圖:

4aed94d4-7dd2-11ee-939d-92fbcf53809c.png

圖2.2 實(shí)現(xiàn)元組(1, 4, 1, 5; 5)的GPC結(jié)構(gòu)

從圖中看出其延時(shí)包括一個(gè)FA的延時(shí)和4個(gè)進(jìn)位鏈產(chǎn)生的延時(shí)。在FPGA中提供了高速的進(jìn)位鏈,所以GPC很適合在FPGA中實(shí)現(xiàn)。因此在FPGA上利用好GPC可以降低加法樹的級(jí)數(shù)。

比如舉個(gè)例子,如圖2.3所示,計(jì)算兩列數(shù)據(jù)和,如果使用華萊士樹的方式,會(huì)采用兩級(jí)電路,第一級(jí)用兩個(gè)全加器,將三行數(shù)據(jù)降低到兩行數(shù)據(jù),最后再用一個(gè)進(jìn)位鏈加法器實(shí)現(xiàn)最后數(shù)據(jù)相加。而如果使用GPC(3, 3; 4)僅僅用一級(jí)電路就能實(shí)現(xiàn)這三行數(shù)據(jù)的相加。

4b0c51bc-7dd2-11ee-939d-92fbcf53809c.png

圖2.3 compressor樹構(gòu)建方式:a)用連個(gè)全加器和進(jìn)位鏈加法器 b)用一個(gè)(3, 3; 4)GPC

現(xiàn)在結(jié)合altera的器件結(jié)構(gòu)來分析如何能更好的利用LUT來搭建一個(gè)GPC。Stratix器件中的adaptive logic module(ALM)包含兩個(gè)6-LUT,這兩個(gè)LUT共享輸入,因此一個(gè)ALM模塊可以實(shí)現(xiàn)6-2的功能。

通過圖2.4可以看出,如果將6輸入3輸出進(jìn)行映射,會(huì)有一個(gè)LUT空置,利用率為75%。如果將6輸入4輸出映射到LUT,那么利用率為100%。如果將2個(gè)6輸入3輸出映射到2個(gè)ALM,這個(gè)無法實(shí)現(xiàn),因?yàn)锳LM中兩個(gè)LUT共享輸入則無法綜合。

4b2fe9a6-7dd2-11ee-939d-92fbcf53809c.jpg

圖2.4 (a)一個(gè)6-3GPC映射,只有75%利用率(b)6-4GPC映射,利用率100%(c)2個(gè)6-3映射到2個(gè)ALM不可實(shí)現(xiàn)

03

高效映射算法

為了提高LUT利用率,降低器件中邏輯使用面積,論文基于以上的兩個(gè)約束以及altera LUT結(jié)構(gòu)特點(diǎn)提出了GPC選擇的算法。

首先我們定義兩個(gè)概念,primitive GPC是滿足以上約束的所有GPC集。比如對(duì)于M=6,n=3,一共有12個(gè)GPC。Covering GPC是指可以不被其它GPC實(shí)現(xiàn)的,即其實(shí)現(xiàn)是唯一的。比如(2, 2; 3)就不是一個(gè)covering GPC,因?yàn)槠淅茫?, 3; 3)GPC同樣可以實(shí)現(xiàn),只要將bit0對(duì)應(yīng)的一個(gè)數(shù)置為0就行了。比如對(duì)于6-3GPC的covering GPC有{(0, 6; 3), (1, 5; 3), (2, 3; 3)}。而(3, 1; 3)是一個(gè)不夠高效的GPC,因?yàn)槠鋌it0只有一個(gè)bit有數(shù),其可以繞過GPC直接輸出。compressor ratio是輸入對(duì)輸出的比率,比如(2, 3; 3)的比率是5/3=1.66。

算法步驟如下:

1) 首先依據(jù)M和n生成covering GPC;

2) 產(chǎn)生一些列primitive GPC,compressor樹將會(huì)由這些GPC來構(gòu)建,但是最后將由對(duì)應(yīng)的covering GPC來替代;

3) 計(jì)算每個(gè)primitive GPC的compressor ratio并分類;

接下來的4-6步是一個(gè)不斷迭代過程,每一次迭代生成一級(jí)GPC,直到達(dá)到k行和kbit每列的限制條件。

4) 首先從所有求和列中選擇一個(gè)bit數(shù)最多的列作為基準(zhǔn),然后再同時(shí)向前和向后進(jìn)行搜索,比較前后兩個(gè)列的compressor ratio,選擇最大的作為將要用于GPC映射的列。不斷重復(fù)這個(gè)過程直到所有列都完成搜索。

比如圖3.1展示的是一個(gè)6-3GPC建立過程。

第一個(gè)GPC是有6個(gè)bit的列,可以用(0, 6; 3)GPC來表示;

第二個(gè)最高列是有5bit,可以用(1, 5; 3)表示,附帶上旁邊的一個(gè)bit;

第三個(gè)高列有4bit,可以用(1, 4; 3)GPC實(shí)現(xiàn);

…。

這樣共實(shí)現(xiàn)了4個(gè)GPC,余下的沒有實(shí)現(xiàn)的bit使用GPC實(shí)現(xiàn)不能有效提高LUT利用率,直接傳遞到下一級(jí)。

4b4f43dc-7dd2-11ee-939d-92fbcf53809c.png

圖3.1 GPC生成過程

5) 對(duì)步驟4生成的新bit重復(fù)步驟4,進(jìn)行提取新的GPC;

6) 當(dāng)最終生成的bit行數(shù)小于k或者列數(shù)bit數(shù)小于k,迭代過程結(jié)束,這時(shí)上一級(jí)沒有被分配GPC的bit傳遞到本級(jí),通過一個(gè)進(jìn)位鏈加法器將所有結(jié)果相加;

04

結(jié)果

論文比較了GPC和另外兩種加法器實(shí)現(xiàn)方式的邏輯面積和資源對(duì)比,這另種加法器分別為:

1 ADD:由一個(gè)三輸入加法器作為基本結(jié)構(gòu)構(gòu)建的加法樹;

2 3GD:采用carry-save 加法器來實(shí)現(xiàn),這種結(jié)構(gòu)沒有利用ALM中的進(jìn)位鏈;

延時(shí)、邏輯面積、資源利用對(duì)比如下圖所示:

4b6b1012-7dd2-11ee-939d-92fbcf53809c.jpg4b8edbc8-7dd2-11ee-939d-92fbcf53809c.jpg4bb17e58-7dd2-11ee-939d-92fbcf53809c.jpg

圖4.1 不同加法器實(shí)現(xiàn)方式的對(duì)比結(jié)果

總結(jié)

論文探索了利用FPGA的LUT和進(jìn)位鏈結(jié)構(gòu)來實(shí)現(xiàn)GPC,相比于ADD和3GD有更低的延時(shí),而資源使用和ADD相差不大,比3GD小很多。這主要是源于ADD和GPC都使用了進(jìn)位鏈。







審核編輯:劉清

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

    關(guān)注

    1630

    文章

    21766

    瀏覽量

    604577
  • 全加器
    +關(guān)注

    關(guān)注

    10

    文章

    62

    瀏覽量

    28531
  • LUT
    LUT
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    12533
  • 半加器
    +關(guān)注

    關(guān)注

    1

    文章

    29

    瀏覽量

    8806
  • gpc
    gpc
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1346

原文標(biāo)題:在FPGA中實(shí)現(xiàn)高效的compressor加法樹

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA工程師:如何在FPGA實(shí)現(xiàn)狀態(tài)機(jī)?

    安全高效的狀態(tài)機(jī)設(shè)計(jì)對(duì)于任何使用FPGA的工程師而言都是一項(xiàng)重要技能。選擇Moore狀態(tài)機(jī)、Mealy狀態(tài)機(jī)還是混合機(jī)取決于整個(gè)系統(tǒng)的需求。無論選擇哪種類型的狀態(tài)機(jī),充分掌握實(shí)現(xiàn)方案所需的工具和技巧,將確保您
    發(fā)表于 03-29 15:02 ?1.3w次閱讀
    <b class='flag-5'>FPGA</b>工程師:如<b class='flag-5'>何在</b><b class='flag-5'>FPGA</b><b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b>狀態(tài)機(jī)?

    為什么研究浮點(diǎn)加法運(yùn)算,對(duì)FPGA實(shí)現(xiàn)方法很有必要?

    處理等方面受到了限制,由于FPGA關(guān)于浮點(diǎn)數(shù)的運(yùn)算只能自行設(shè)計(jì),因此,研究浮點(diǎn)加法運(yùn)算的FPGA實(shí)現(xiàn)方法很有必要。
    發(fā)表于 07-05 06:21

    如何利用FPGA實(shí)現(xiàn)高速流水線浮點(diǎn)加法器研究?

    處理等方面受到了限制,為什么研究浮點(diǎn)加法運(yùn)算的FPGA實(shí)現(xiàn)方法很有必要? 因?yàn)?b class='flag-5'>FPGA關(guān)于浮點(diǎn)數(shù)的運(yùn)算只能自行設(shè)計(jì) 。
    發(fā)表于 08-15 08:00

    何在低端FPGA實(shí)現(xiàn)DPA的功能?

    FPGA,動(dòng)態(tài)相位調(diào)整(DPA)主要是實(shí)現(xiàn)LVDS接口接收時(shí)對(duì)時(shí)鐘和數(shù)據(jù)通道的相位補(bǔ)償,以達(dá)到正確接收的目的。那么該如何在低端FPGA
    發(fā)表于 04-08 06:47

    何在FPGA利用低頻源同步時(shí)鐘實(shí)現(xiàn)LVDS接收字對(duì)齊

    在串行數(shù)據(jù)傳輸?shù)倪^程,如何在FPGA利用低頻源同步時(shí)鐘實(shí)現(xiàn)LVDS接收字對(duì)齊
    發(fā)表于 04-08 06:39

    請(qǐng)問一下如何在A40i開發(fā)板添加設(shè)備信息

    請(qǐng)問一下如何在A40i開發(fā)板添加設(shè)備信息
    發(fā)表于 01-14 09:00

    何在設(shè)備文件里面添加心跳燈節(jié)點(diǎn)

    何在設(shè)備文件里面添加心跳燈節(jié)點(diǎn)?有哪些步驟?
    發(fā)表于 03-04 06:44

    何在EasyEDA創(chuàng)建圣誕

    描述Gerber_PCB_test_2_2022-02-08這是用于教育目的的假日 PCB。如何在 EasyEDA 創(chuàng)建它的教程在 Youtube 上的“初學(xué)者圣誕 PCB 設(shè)計(jì)教程”下。
    發(fā)表于 06-29 08:00

    用Verilog/SystemVerilog快速實(shí)現(xiàn)一個(gè)加法

    )=>s,即對(duì)層級(jí)間不做任何的操作。上面的加法我們?cè)?b class='flag-5'>加法的每個(gè)層級(jí)添加寄存器:僅在
    發(fā)表于 08-01 14:29

    采用StratixⅡ FPGA器件提高加法性能并實(shí)現(xiàn)設(shè)計(jì)

    圖2列出了和傳統(tǒng)的4輸入LUT結(jié)構(gòu)的FPGA相比較,采用ALM的StratixⅡFPGA器件例化3輸入加法器的優(yōu)勢(shì)。從圖2可以清楚地看出,對(duì)于同樣3個(gè)2 b數(shù)據(jù)相加的邏輯結(jié)構(gòu),傳統(tǒng)4
    發(fā)表于 03-03 10:45 ?1290次閱讀
    采用StratixⅡ <b class='flag-5'>FPGA</b>器件提高<b class='flag-5'>加法</b><b class='flag-5'>樹</b>性能并<b class='flag-5'>實(shí)現(xiàn)</b>設(shè)計(jì)

    FPGA_ASIC-MAC在FPGA高效實(shí)現(xiàn)

    FPGA_ASIC-MAC在FPGA高效實(shí)現(xiàn)(理士電源技術(shù)有限公司)-該文檔為FPGA_AS
    發(fā)表于 08-04 19:03 ?8次下載
    <b class='flag-5'>FPGA</b>_ASIC-MAC在<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>高效</b><b class='flag-5'>實(shí)現(xiàn)</b>

    fpga實(shí)現(xiàn)加法和減法運(yùn)算的方法是什么

    FPGA實(shí)現(xiàn)加法和減法運(yùn)算非常簡單,實(shí)現(xiàn)乘法和除法可以用IP,那實(shí)現(xiàn)對(duì)數(shù)和指數(shù)運(yùn)算該用什么
    發(fā)表于 08-05 09:37 ?1491次閱讀
    <b class='flag-5'>fpga</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>加法</b>和減法運(yùn)算的方法是什么

    基于FPGA實(shí)現(xiàn)Mem加法

    前段時(shí)間和幾個(gè)人閑談,看看在FPGA里面實(shí)現(xiàn)一個(gè)Mem加法器怎么玩兒
    的頭像 發(fā)表于 10-17 10:22 ?645次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>Mem<b class='flag-5'>加法</b>器

    何在FPGA實(shí)現(xiàn)狀態(tài)機(jī)

    FPGA(現(xiàn)場可編程門陣列)實(shí)現(xiàn)狀態(tài)機(jī)是一種常見的做法,用于控制復(fù)雜的數(shù)字系統(tǒng)行為。狀態(tài)機(jī)能夠根據(jù)當(dāng)前的輸入和系統(tǒng)狀態(tài),決定下一步的動(dòng)作和新的狀態(tài)。這里,我們將詳細(xì)探討如何在
    的頭像 發(fā)表于 07-18 15:57 ?663次閱讀

    何在FPGA實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

    分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7實(shí)現(xiàn)4位偽隨機(jī)數(shù)發(fā)生器(PRNGs)。
    的頭像 發(fā)表于 08-06 11:20 ?728次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>FPGA</b><b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b>隨機(jī)數(shù)發(fā)生器
    主站蜘蛛池模板: 日本人的色道www免费一区| 美女网站色视频| 伊人精品视频在线| 国产精品免费一级在线观看| 老师您的兔子好软水好多动漫视频| 美女扒开腿让男生桶爽网站| 国产亚洲精品久久久久久午夜| 在线五月婷婷| 四虎最新影院| 欧美1区| 黄色短视频免费看| avtt国产| 看片午夜| 国产在线h| 伊人小婷婷色香综合缴缴情| 天堂种子| 美女免费视频是黄的| 成年人视频黄色| 男人资源站| 国产午夜视频在永久在线观看| 欧美另类亚洲一区二区| 亚洲高清毛片| 嫩草影院网站入口| 综合激情网站| 国产伦精一区二区三区| 中文字幕二区| 亚洲成人网在线| 美女涩涩网站| 一本到中文字幕高清不卡在线| 黄字幕网| 免费看黄视频的网站| 色综合久久久久综合99| 九月丁香婷婷| 天天夜天天干| 91网址在线播放| 亚洲天堂手机在线| 免费视频久久看| 天天在线看片| 国产黄色在线看| 午夜色婷婷| 国模吧在线视频|