两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種高層次綜合工具中的多操作數(shù)加法優(yōu)化方法及系統(tǒng)與流程

文檔序號:11919414閱讀:635來源:國知局
一種高層次綜合工具中的多操作數(shù)加法優(yōu)化方法及系統(tǒng)與流程

本發(fā)明涉及計算機(jī)與電路設(shè)計領(lǐng)域,尤其涉及一種高層次綜合工具中的多操作數(shù)加法優(yōu)化方法及系統(tǒng)。



背景技術(shù):

在數(shù)字電路設(shè)計中,多操作數(shù)加法在數(shù)字信號處理、圖片視頻處理、高性能計算等多個方面具有廣泛應(yīng)用,其運(yùn)算速度與資源開銷往往會對電路設(shè)計質(zhì)量產(chǎn)生重要影響。

高層次綜合技術(shù)通過編譯、調(diào)度、資源分配等過程,將高級語言直接轉(zhuǎn)換為硬件描述語言,能夠有效提高設(shè)計效率節(jié)省設(shè)計時間。高效的算法和硬件電路設(shè)計方法均有利于提升高層次綜合工具的性能。對于多操作數(shù)加法,其硬件電路實現(xiàn)可以具有多種結(jié)構(gòu)。然而在常規(guī)高層次綜合系統(tǒng)中,通常采用全加器、半加器、或傳統(tǒng)的加法器樹來實現(xiàn)多操作數(shù)加法,而并未深入考慮多操作加法的設(shè)計空間探索和相關(guān)優(yōu)化。這樣一方面會造成較大的進(jìn)位傳播時延;另一方面往往不能很好地適應(yīng)目標(biāo)平臺的邏輯結(jié)構(gòu),特別是對于目標(biāo)平臺為現(xiàn)場可編程門陣列(FPGA)的情況。因此,通過常規(guī)高層次綜合系統(tǒng),自動生成的硬件電路設(shè)計中,若具有較大規(guī)模的多操作數(shù)加法操作,則這部分設(shè)計往往會具有較大的時延并占用較多的硬件資源,從而影響硬件設(shè)計的整體質(zhì)量。



技術(shù)實現(xiàn)要素:

為了解決上述技術(shù)問題,本發(fā)明的目的是:提供一種高層次綜合工具中基于廣義并行計數(shù)器實現(xiàn)的高性能多操作數(shù)加法優(yōu)化方法。

為了解決上述技術(shù)問題,本發(fā)明的另一目的是:提供一種高層次綜合工具中基于廣義并行計數(shù)器實現(xiàn)的高性能多操作數(shù)加法優(yōu)化系統(tǒng)。

本發(fā)明所采用的技術(shù)方案是:一種高層次綜合工具中的多操作數(shù)加法優(yōu)化方法,包括有以下步驟:

A、獲取電路設(shè)計的高層次功能描述,進(jìn)而得到該電路設(shè)計所包含的運(yùn)算操作以及操作數(shù);

B、判斷步驟A中得到的運(yùn)算操作是否出現(xiàn)3個或3個以上的操作數(shù)連續(xù)相加,若是,則載入加法優(yōu)化處理單元,并進(jìn)入步驟C執(zhí)行此處理單元,反之則結(jié)束;

C、讀取用戶配置文件中的優(yōu)化目標(biāo)數(shù)據(jù),根據(jù)優(yōu)化目標(biāo)數(shù)據(jù)建立壓縮樹,并保存壓縮樹信息;

D、根據(jù)步驟C中保存的壓縮樹信息生成可綜合壓縮樹HDL代碼。

進(jìn)一步,所述步驟C具體包括:

C1、讀取用戶配置文件并得到優(yōu)化目標(biāo)數(shù)據(jù),并根據(jù)優(yōu)化目標(biāo)對廣義并行計數(shù)器進(jìn)行優(yōu)先級排序;

C2、使用經(jīng)過優(yōu)先級排序的廣義并行計數(shù)器對多個操作數(shù)進(jìn)行處理,生成壓縮樹并保存壓縮樹信息。

進(jìn)一步,所述步驟B中,將操作數(shù)用二維點陣圖表示。

進(jìn)一步,所述步驟C2中,所述壓縮樹用于將多個數(shù)進(jìn)行求和并以其和作為輸出,保存的壓縮樹信息包括壓縮樹的級數(shù)、每一級使用的廣義并行計數(shù)器類型和使用數(shù)目、以及最后加法器的輸入輸出信息。

進(jìn)一步,所述步驟C中,所述壓縮樹的輸入為多操作數(shù)加法的操作數(shù),所述壓縮樹的輸出為多操作數(shù)加法的操作數(shù)的和,所述壓縮樹的功能與多操作數(shù)加法的加法功能相同。

本發(fā)明所采用的另一技術(shù)方案是:一種高層次綜合工具中的多操作數(shù)加法優(yōu)化系統(tǒng),該系統(tǒng)包括:

獲取單元,用于獲取電路設(shè)計的高層次功能描述,進(jìn)而得到該電路設(shè)計所包含的運(yùn)算操作以及操作數(shù);

判斷單元,用于判斷獲取單元中得到的運(yùn)算操作是否出現(xiàn)3個或3個以上的操作數(shù)連續(xù)相加,若是,則載入加法優(yōu)化處理單元,并進(jìn)入執(zhí)行此處理單元,反之則結(jié)束;

加法優(yōu)化處理單元,用于讀取用戶配置文件中的優(yōu)化目標(biāo)數(shù)據(jù),根據(jù)優(yōu)化目標(biāo)數(shù)據(jù)建立壓縮樹,并保存壓縮樹信息;

代碼生成單元,用于根據(jù)加法優(yōu)化處理單元保存的壓縮樹信息生成可綜合的壓縮樹HDL代碼。

進(jìn)一步,所述加法優(yōu)化處理單元包括:

排序模塊,用于讀取用戶配置文件并得到設(shè)計優(yōu)化目標(biāo)數(shù)據(jù),根據(jù)優(yōu)化目標(biāo)數(shù)據(jù)對廣義并行計數(shù)器進(jìn)行優(yōu)先級排序;

生成模塊,用于使用排序模塊中進(jìn)行過優(yōu)先級排序的廣義并行計數(shù)器對多個操作數(shù)進(jìn)行處理,生成壓縮樹并保存壓縮樹信息。

進(jìn)一步,所述判斷單元中,將操作數(shù)用二維點陣圖表示。

進(jìn)一步,所述生成模塊中,所述壓縮樹用于將多個數(shù)進(jìn)行求和并以其和作為輸出,保存的壓縮樹信息包括壓縮樹的級數(shù)、每一級使用的廣義并行計數(shù)器類型和使用數(shù)目、以及最后加法器的輸入輸出信息。

進(jìn)一步,所述加法優(yōu)化處理單元中,所述壓縮樹的輸入為多操作數(shù)加法的操作數(shù),所述壓縮樹的輸出為多操作數(shù)加法的操作數(shù)的和,所述壓縮樹的功能與多操作數(shù)加法的加法功能相同。

本發(fā)明的有益效果是:通過使用本發(fā)明方法,可以在高層次綜合階段,根據(jù)用戶配置文件中的優(yōu)化目標(biāo)進(jìn)行多操數(shù)加法的設(shè)計空間優(yōu)化,有助于生成性能更優(yōu)的多操作數(shù)加法電路,同時有利于提升高層次綜合工具的性能。

本發(fā)明另一有益效果是:通過使用本發(fā)明系統(tǒng),可以在高層次綜合中,根據(jù)用戶配置文件中的優(yōu)化目標(biāo)進(jìn)行多操數(shù)加法的設(shè)計空間優(yōu)化,有助于生成性能更優(yōu)的多操作數(shù)加法電路,同時有利于提升高層次綜合工具的性能。

附圖說明

下面結(jié)合附圖對本發(fā)明的具體實施方式作進(jìn)一步說明:

圖1是本發(fā)明方法的步驟流程圖;

圖2是本發(fā)明方法具體實施例的步驟流程圖;

圖3是本發(fā)明方法具體實施例中的加法示意圖;

圖4是本發(fā)明方法具體實施例中的二維點陣圖;

圖5是本發(fā)明方法的部分GPC點陣圖示意圖;

圖6是本發(fā)明方法具體實施例中壓縮樹生成流程圖;

圖7是本發(fā)明系統(tǒng)的結(jié)構(gòu)框圖;

圖8是本發(fā)明系統(tǒng)具體實施例中的結(jié)構(gòu)框圖。

具體實施方式

下面結(jié)合附圖對本發(fā)明的具體實施方式作進(jìn)一步說明:

參照圖1,一種高層次綜合工具中的多操作數(shù)加法優(yōu)化方法,包括有以下步驟:

A、獲取電路設(shè)計的高層次功能描述,進(jìn)而得到該電路設(shè)計所包含的運(yùn)算操作以及操作數(shù);

本實施例為5個4比特的無符號數(shù)加法,獲取結(jié)果為4個加法及5個操作數(shù)。

B、判斷步驟A中得到的運(yùn)算操作是否出現(xiàn)3個或3個以上的操作數(shù)連續(xù)相加,若是,則載入加法優(yōu)化處理單元,并進(jìn)入步驟C執(zhí)行此處理單元,反之則結(jié)束;

本實施例將檢測到5個操作數(shù)連續(xù)相加,判斷結(jié)果為是,執(zhí)行步驟C。本實施例中5個4比特?zé)o符號數(shù)相加過程如圖3所示,其中aij表示第i個操作數(shù)的第j位,sk表示加法結(jié)果的第k位。

C、讀取用戶配置文件中的優(yōu)化目標(biāo)數(shù)據(jù),根據(jù)優(yōu)化目標(biāo)數(shù)據(jù)建立壓縮樹,并保存壓縮樹信息;

D、根據(jù)步驟C中保存的壓縮樹信息生成可綜合壓縮樹HDL代碼。

參照圖2,進(jìn)一步作為優(yōu)選的實施方式,所述步驟C具體包括:

C1、讀取用戶配置文件并得到優(yōu)化目標(biāo)數(shù)據(jù),并根據(jù)優(yōu)化目標(biāo)對廣義并行計數(shù)器(Generalized Parallel Counter,簡稱GPC)進(jìn)行優(yōu)先級排序;

其中一個具體的GPC輸入輸出關(guān)系用GPC(1,4,1,5;5)舉例,此GPC具有5個權(quán)重為0的輸入,1個權(quán)重為1的輸入,4個權(quán)重為2的輸入,1個權(quán)重為3的輸入,它的輸出為5比特的無符號數(shù)R,當(dāng)所有輸入都為1時:

R=5×20+1×21+4×22+1×23=(11111)2=(31)10

C2、使用經(jīng)過優(yōu)先級排序的廣義并行計數(shù)器對多個操作數(shù)進(jìn)行處理,生成壓縮樹并保存壓縮樹信息。

進(jìn)一步作為優(yōu)選的實施方式,所述設(shè)計優(yōu)化目標(biāo)包括面積優(yōu)化、時序優(yōu)化或時序面積積優(yōu)化。

FPGA中不同GPC占用的硬件資源以及其輸入到輸出的時延是不同的,根據(jù)優(yōu)化目標(biāo)的不同使用不同的比較準(zhǔn)則對其進(jìn)行優(yōu)先級排序。

例如在Xilinx的FPGA中,GPC(2,6;4)使用了3個LUT,其輸入到輸出的最大延時為0.316ns,輸入與輸出的個數(shù)差為2+6-4=4。而GPC(6;3)使用了2個LUT,其輸入到輸出的最大延時為0.293ns,輸入與輸出個數(shù)的差值為6-3=3。

若優(yōu)化目標(biāo)為時序優(yōu)化,那么以GPC輸入與輸出的差和GPC輸入到輸出的最大延時的比值(記為PD)為排序基準(zhǔn)。GPC(6;3)其PD值為3/0.293=10.239,GPC(2,6;4)其PD值為4/0.316=12.658,由于12.658>10.239,因此GPC(2,6;4)的優(yōu)先級比GPC(6;3)高。

若優(yōu)化目標(biāo)為面積優(yōu)化,那么以GPC輸入與輸出的差和GPC使用資源(通常為LUT)的比值(記為AD)為排序基準(zhǔn)。GPC(6;3)其AD值為3/2=1.5,GPC(2,6;4)其AD值為4/3=1.333,由于1.5>1.333,因此GPC(6;3)優(yōu)先級比GPC(2,6;4)高。

若優(yōu)化目標(biāo)為時序面積積優(yōu)化,PD與AD的乘積(記為APD)為排序基準(zhǔn)。如GPC(6;3)的APD為10.239*1.5=15.3585,GPC(2,6;4)的APD值為12.658*1.333=16.8731,由于18.8731>15.3585,因此GPC(2,6;4)的優(yōu)先級比GPC(6;3)高。

在本發(fā)明具體實施例中設(shè)計優(yōu)化目標(biāo)為面積優(yōu)化,在進(jìn)行排序時使用GPC輸入輸出個數(shù)的差與使用資源的比值E作為排序標(biāo)準(zhǔn),此比值越大表明對應(yīng)GPC越能使用較少的資源壓縮較多的輸入。本實施例中使用的GPC為GPC(1,4,1,5;5)、GPC(4;3)和GPC(3;2),它們占用的硬件資源分別為4個2個和1個LUT,而它們輸入與輸出的差值分別為6、1和1,三個GPC對應(yīng)的E值分別為6/4=1.5,1/2=0.5,1/1=1,而1.5>1>0.5,因此這三個GPC按照優(yōu)先級從高到低排序依次為GPC(1,4,1,5;5)、GPC(3;2)和GPC(4;3)。

進(jìn)一步作為優(yōu)選的實施方式,所述步驟B中,將操作數(shù)用二維點陣圖表示,如圖4所示。

圖4是圖3對應(yīng)的二維點陣圖,二維點陣圖將參與運(yùn)算的操作數(shù)抽象為一個二維點陣,其中每一行代表一個操作數(shù),每一個點代表操作數(shù)的某一位(取值為0或1),最左側(cè)的點為所在行操作數(shù)的最高位,最右側(cè)的點為所在行操作數(shù)的最低位,任意一列上的所有點所代表的權(quán)重相同。

圖5列出了幾種不同GPC的點陣圖表示方法。在本實施例中,GPC網(wǎng)絡(luò)的輸出點陣圖每列最多有2個點,即GPC網(wǎng)絡(luò)的輸出可組成兩個新的操作數(shù)輸入到后續(xù)的加法器中。

進(jìn)一步作為優(yōu)選的實施方式,所述步驟C1中,GPC是一種具有M比特輸入n比特輸出的電路結(jié)構(gòu),其功能是計算所有輸入所代表的1的個數(shù)的總和,并表示為n比特的無符號數(shù)作為輸出結(jié)果。其中每一個輸入都具有一定的權(quán)重,此權(quán)重表示對應(yīng)輸入實際代表的1的個數(shù),若某一個輸入端的實際輸入為A(只能為0或1),其權(quán)重為W,則此輸入實際代表的1的個數(shù)為A*2W。GPC用符號可記為:(mk-1,mk-2,…,m1,m0;n),其中mk-1>0,mi中i代表輸入的權(quán)重,mi代表權(quán)重為i的輸入的個數(shù),k代表輸入位數(shù),n代表輸出位數(shù),并且有:

GPC可將由多個操作數(shù)抽象成的二維點陣圖不斷壓縮,最終得到所需個數(shù)的操作數(shù)。由于不同種GPC所能減少的輸入個數(shù)、使用的硬件資源、輸入到輸出的延時都各不相同,因此可根據(jù)不同設(shè)計優(yōu)化目標(biāo)對GPC進(jìn)行優(yōu)先級排序,并盡量使用最高優(yōu)先級GPC進(jìn)行壓縮。

進(jìn)一步作為優(yōu)選的實施方式,所述步驟C2中,所述壓縮樹用于將多個數(shù)進(jìn)行求和并以其和作為輸出,保存的壓縮樹信息包括壓縮樹的級數(shù)、每一級使用的廣義并行計數(shù)器類型和使用數(shù)目、以及最后加法器的輸入輸出信息。

所述步驟C2中所述壓縮樹是一種可將多個數(shù)進(jìn)行求和并以其和作為輸出的結(jié)構(gòu),包括GPC網(wǎng)絡(luò)和加法器兩部分。GPC網(wǎng)絡(luò)分為多個級(假設(shè)為N級),每一級可依據(jù)算法策略挑選不同的GPC對本級的輸入進(jìn)行壓縮。第1級的輸入是由多個操作數(shù)組成的原始輸入;對其它級來說,由當(dāng)前級之前所有級的剩余輸出和原始輸入的剩余輸入組成了當(dāng)前級的輸入。最終,N級GPC網(wǎng)絡(luò)將最初的點陣圖壓縮為每列最多不超過所需個數(shù)點的點陣圖。最后將GPC網(wǎng)絡(luò)的輸出點陣圖作為加法器的輸入進(jìn)行求和,并最終得到多個操作數(shù)的和。

參照圖6,以本實施例生成的GPC網(wǎng)絡(luò)為例:圖中邊框為實線的矩形代表GPC(1,4,1,5;5),實線連接線兩端的點代表GPC(1,4,1,5;5)的輸出;邊框為虛線的矩形代表GPC(4;3),虛線連接線兩段的點代表GPC(4;3)的輸出;邊框為有中心點虛線的矩形代表GPC(3;2),有中心點虛線的連接線兩段的點代表GPC(3;2)的輸出。本實施例中GPC網(wǎng)絡(luò)共有3級,第一級使用了1個GPC(1,4,1,5;5)和2個GPC(4;3),第二級使用了2個GPC(3;2),第三級使用了1個GPC(3;2),如圖6所示。第三級的輸出作為之后加法器的輸入,經(jīng)運(yùn)算后得到多操作數(shù)加法的結(jié)果。

進(jìn)一步作為優(yōu)選的實施方式,所述步驟C中,所述壓縮樹的輸入為多操作數(shù)加法的操作數(shù),所述壓縮樹的輸出為多操作數(shù)加法的操作數(shù)的和,所述壓縮樹的功能與多操作數(shù)加法的加法功能相同。

參照圖7,一種高層次綜合工具中的多操作數(shù)加法優(yōu)化系統(tǒng),該系統(tǒng)包括:

獲取單元,用于獲取電路設(shè)計的高層次功能描述,進(jìn)而得到該電路設(shè)計所包含的運(yùn)算操作以及操作數(shù);

判斷單元,用于判斷獲取單元中得到的運(yùn)算操作是否出現(xiàn)3個或3個以上的操作數(shù)連續(xù)相加,若是,則載入加法優(yōu)化處理單元,并進(jìn)入執(zhí)行此處理單元,反之則結(jié)束;

加法優(yōu)化處理單元,用于讀取用戶配置文件中的優(yōu)化目標(biāo)數(shù)據(jù),根據(jù)優(yōu)化目標(biāo)數(shù)據(jù)建立壓縮樹,并保存壓縮樹信息;

代碼生成單元,用于根據(jù)加法優(yōu)化處理單元保存的壓縮樹信息生成可綜合的壓縮樹HDL代碼。

參照圖8,進(jìn)一步作為優(yōu)選的實施方式,所述加法優(yōu)化處理單元包括:

排序模塊,用于讀取用戶配置文件并得到設(shè)計優(yōu)化目標(biāo)數(shù)據(jù),根據(jù)優(yōu)化目標(biāo)數(shù)據(jù)對廣義并行計數(shù)器進(jìn)行優(yōu)先級排序;

生成模塊,用于使用排序模塊中進(jìn)行過優(yōu)先級排序的廣義并行計數(shù)器對多個操作數(shù)進(jìn)行處理,生成壓縮樹并保存壓縮樹信息。

進(jìn)一步作為優(yōu)選的實施方式,所述判斷單元中,將操作數(shù)用二維點陣圖表示。

進(jìn)一步作為優(yōu)選的實施方式,所述生成模塊中,所述壓縮樹用于將多個數(shù)進(jìn)行求和并以其和作為輸出,保存的壓縮樹信息包括壓縮樹的級數(shù)、每一級使用的廣義并行計數(shù)器類型和使用數(shù)目、以及最后加法器的輸入輸出信息。

進(jìn)一步作為優(yōu)選的實施方式,所述加法優(yōu)化處理單元中,所述壓縮樹的輸入為多操作數(shù)加法的操作數(shù),所述壓縮樹的輸出為多操作數(shù)加法的操作數(shù)的和,所述壓縮樹的功能與多操作數(shù)加法的加法功能相同。

以上對本發(fā)明的較佳實施進(jìn)行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權(quán)利要求所限定的范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
长宁区| 华宁县| 西昌市| 荥经县| 扎兰屯市| 岑溪市| 博客| 浙江省| 郧西县| 麻江县| 湖南省| 晴隆县| 武夷山市| 南安市| 金寨县| 巴彦淖尔市| 红河县| 墨竹工卡县| 尚义县| 阜城县| 康保县| 鄯善县| 监利县| 屏东市| 铜川市| 英山县| 景德镇市| 正蓝旗| 青海省| 资源县| 沭阳县| 石河子市| 清远市| 如皋市| 麻栗坡县| 柘城县| 石景山区| 三穗县| 丹凤县| 淮安市| 大新县|