国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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

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



      背景技術(shù):

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

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



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

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

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

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

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

      B、判斷步驟A中得到的運(yùn)算操作是否出現(xiàn)3個(gè)或3個(gè)以上的操作數(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)對(duì)廣義并行計(jì)數(shù)器進(jìn)行優(yōu)先級(jí)排序;

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

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

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

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

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

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

      判斷單元,用于判斷獲取單元中得到的運(yùn)算操作是否出現(xiàn)3個(gè)或3個(gè)以上的操作數(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è)計(jì)優(yōu)化目標(biāo)數(shù)據(jù),根據(jù)優(yōu)化目標(biāo)數(shù)據(jù)對(duì)廣義并行計(jì)數(shù)器進(jìn)行優(yōu)先級(jí)排序;

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

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

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

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

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

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

      附圖說(shuō)明

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

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

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

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

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

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

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

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

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

      具體實(shí)施方式

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

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

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

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

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

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

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

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

      參照?qǐng)D2,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟C具體包括:

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

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

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

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

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

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

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

      若優(yōu)化目標(biāo)為時(shí)序優(yōu)化,那么以GPC輸入與輸出的差和GPC輸入到輸出的最大延時(shí)的比值(記為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)先級(jí)比GPC(6;3)高。

      若優(yōu)化目標(biāo)為面積優(yōu)化,那么以GPC輸入與輸出的差和GPC使用資源(通常為L(zhǎng)UT)的比值(記為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)先級(jí)比GPC(2,6;4)高。

      若優(yōu)化目標(biāo)為時(shí)序面積積優(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)先級(jí)比GPC(6;3)高。

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

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

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

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

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

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

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

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

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

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

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

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

      判斷單元,用于判斷獲取單元中得到的運(yùn)算操作是否出現(xiàn)3個(gè)或3個(gè)以上的操作數(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代碼。

      參照?qǐng)D8,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述加法優(yōu)化處理單元包括:

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

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

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

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

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

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

      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1