亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種fpga元構(gòu)件布局區(qū)域分配方法

文檔序號:6337048閱讀:307來源:國知局
專利名稱:一種fpga元構(gòu)件布局區(qū)域分配方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,更具體地說,涉及一種FPGA元構(gòu)件布局區(qū)域分 配方法。
背景技術(shù)
隨著IP (Internet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議)網(wǎng)絡(luò)的蓬勃發(fā)展、新的應(yīng)用 不斷涌現(xiàn),用戶對網(wǎng)絡(luò)帶寬的要求也越來越高。運營商采用OC — 192 (IO(^bps)接口的光纖 傳輸大大提高了光傳輸網(wǎng)絡(luò)的容量,而路由器作為網(wǎng)絡(luò)的主要節(jié)點設(shè)備,其處理速度就成 為網(wǎng)絡(luò)通信的主要瓶頸之一。
在核心路由器設(shè)計中,轉(zhuǎn)發(fā)引擎往往成為限制路由器性能提高的瓶頸,這不僅 是因為其功能的復(fù)雜性,更重要的是因為數(shù)據(jù)包的可用時間單元(ATU,available time unit)不斷地減少。例如網(wǎng)絡(luò)接口速率為10(ibp時,對40字節(jié)IP包而言,IP包的ATU僅 為32ns,而當(dāng)速率為40(ibpS時,ATU僅為8ns。ATU指的是路由器處理單個任務(wù)的最大允許 時間,在進行各種任務(wù)的處理時,要求每一任務(wù)必須在ATU時間內(nèi)完成,否則將導(dǎo)致數(shù)據(jù)包 阻塞和丟棄。要在這么短的時間里完成復(fù)雜的IP報文處理,必須采用流水線設(shè)計??紤]到 FPGA (Field Programmable Gate Array,現(xiàn)場可編程陣列)不僅有可編程能力,而且具有較 高的靈活性,便于實現(xiàn)多業(yè)務(wù)支持。同時,由于其可編程性是通過硬件實現(xiàn)的,因此可以提 供較高的處理速度,所以核心路由器一般選擇了 FPGA作為轉(zhuǎn)發(fā)引擎的核心器件。
傳統(tǒng)的FPGA電路設(shè)計需要經(jīng)過如圖1所示的處理流程。其中,邏輯綜合把描述 FPGA功能的硬件描述語言翻譯成最基本的與或非門的連接關(guān)系(網(wǎng)表),并根據(jù)要求(約束 條件)優(yōu)化生成門級網(wǎng)表。
映射的主要作用是將門級網(wǎng)表映射到具體型號FPGA內(nèi)部的器件上(例如查找表 (LUT)、觸發(fā)器(FF)等),生成基本元件級網(wǎng)表。
裝箱的目標(biāo)就是把LUT和FF等電路功能元件進行組合,盡可能地放到具體型號 FPGA內(nèi)部的邏輯塊中(邏輯塊由若干LUT、FF組成),生成邏輯塊網(wǎng)表。
布局布線根據(jù)用戶約束和物理約束,對邏輯塊進行實際的布局,并根據(jù)設(shè)計連接, 對布局后的模塊進行布線。最后生成可直接下載到FPGA中的配置信息文件。
傳統(tǒng)對FPGA上的硬件構(gòu)件開發(fā)時,將用戶編寫的針對整個硬件構(gòu)件的硬件描述 語言統(tǒng)一進行邏輯綜合、映射、裝箱和布局布線處理。用戶開發(fā)每個構(gòu)件時都要將針對每個 構(gòu)件的硬件描述語言統(tǒng)一進行FPGA電路設(shè)計流程處理。
由于專業(yè)領(lǐng)域的差異,目前市場上各設(shè)備制造商針對不同的網(wǎng)絡(luò)環(huán)境(如電信網(wǎng)、 互聯(lián)網(wǎng)或廣電網(wǎng))設(shè)計不同的網(wǎng)絡(luò)設(shè)備。而基于技術(shù)壟斷和商業(yè)利益的考慮,即使對于同 一網(wǎng)絡(luò)環(huán)境的設(shè)備制造商來說,其設(shè)備的內(nèi)部接口一般也是不公開的。各廠家生產(chǎn)的網(wǎng)絡(luò) 設(shè)備對于用戶和其他廠商來說是封閉的,沒有開放的操作接口。除了生產(chǎn)廠家外,用戶和其 他廠家均無法了解該網(wǎng)絡(luò)設(shè)備的底層構(gòu)成如硬件構(gòu)件的具體情況。用戶無法對設(shè)備進行修 改、擴展或升級,這種工作只能由原廠家才能完成。
上述現(xiàn)象使得用戶無法根據(jù)設(shè)備工作的具體網(wǎng)絡(luò)環(huán)境和功能需求對設(shè)備底層的 硬件構(gòu)件進行修改,從而導(dǎo)致在不同的網(wǎng)絡(luò)環(huán)境下需要配備不同的設(shè)備。對于設(shè)備中的可 重構(gòu)硬件體來說,其無法通過下載不同的硬件構(gòu)件來適應(yīng)不同的網(wǎng)絡(luò)環(huán)境或同一網(wǎng)絡(luò)環(huán)境 下的不同業(yè)務(wù)應(yīng)用,帶來資源的浪費,限制了硬件體的可重構(gòu)應(yīng)用范圍。
為了避免上述情形的出現(xiàn),現(xiàn)有技術(shù)中提出一種基于硬件元構(gòu)件的硬件構(gòu)件開發(fā) 裝置(專利申請?zhí)?00810149346. 2),通過該裝置用戶可以有效開發(fā)出適應(yīng)不同網(wǎng)絡(luò)環(huán)境、 不同業(yè)務(wù)應(yīng)用的硬件構(gòu)件,充分利用網(wǎng)絡(luò)設(shè)備底層可重構(gòu)硬件體資源,降低網(wǎng)絡(luò)設(shè)備的成 本,增強其靈活性和擴展性。該硬件構(gòu)件生成裝置向外提供規(guī)范開放的統(tǒng)一操作接口,屏 蔽了設(shè)備底層不同可重構(gòu)硬件體操作接口的差異性。用戶通過該裝置開發(fā)構(gòu)件時,不必考 慮設(shè)備底層可重構(gòu)硬件體的不同操作接口,只需向該裝置開放的統(tǒng)一操作接口發(fā)送標(biāo)準(zhǔn)指 令,從而大幅度減輕了開發(fā)硬件構(gòu)件的難度。
然而,描述硬件構(gòu)件的硬件描述語言映射到硬件電路要經(jīng)過邏輯綜合、映射、裝箱 和布局布線階段的處理,傳統(tǒng)方案不考慮元構(gòu)件的組成而將整個硬件構(gòu)件設(shè)計進行統(tǒng)一處 理。而可重構(gòu)設(shè)備要經(jīng)常以元構(gòu)件為基本單位進行硬件構(gòu)件開發(fā),不考慮元構(gòu)件的組成而 將整個硬件構(gòu)件設(shè)計進行統(tǒng)一處理效率低下。
為了提高構(gòu)件的開發(fā)效率,現(xiàn)有技術(shù)中提出一種FPGA硬件構(gòu)件的生成方法及裝 置(專利申請?zhí)?01010002017. 2)。該方法流程如圖2所示。該方法首先對元構(gòu)件單獨進 行邏輯綜合、映射、裝箱后再直接調(diào)用,這樣硬件構(gòu)件開發(fā)時直接調(diào)用的是元構(gòu)件的邏輯塊 網(wǎng)表,根據(jù)元構(gòu)件的邏輯塊級網(wǎng)表來生成針對整個硬件構(gòu)件的邏輯塊網(wǎng)表,然后對該邏輯 塊網(wǎng)表進行布局布線階段的處理最終生成可下載到FPGA的硬件構(gòu)件配置信息文件。該方 法可省略FPGA邏輯綜合、映射、裝箱階段處理,從而加快整個硬件構(gòu)件的開發(fā)進程。
該技術(shù)同時為了提高整個布局算法的運算速度,提出了二次布局方法。初始布局 時改變原有算法的任意邏輯塊的初始布局,以元構(gòu)件之間的流水線特性為出發(fā)點,結(jié)合輸 入輸出元構(gòu)件與可編程器件輸入、輸出接口的互聯(lián)關(guān)系以及中間元構(gòu)件與外部存儲單元的 互聯(lián)關(guān)系,將邏輯塊初始布局到各自的元構(gòu)件初始位置。接著采用模擬退火算法對布局到 相應(yīng)元構(gòu)件的初始位置的邏輯塊進行二次布局。
上述元構(gòu)件之間以及元構(gòu)件和外部端口之間的連接關(guān)系比較簡單,初始布局可采 用人工手段進行,而當(dāng)元構(gòu)件之間以及和外部端口之間的連接關(guān)系比較復(fù)雜時就難以根據(jù) 經(jīng)驗判斷元構(gòu)件的合理布局位置。并且各個元構(gòu)件所占布局區(qū)域的大小是由其所占的邏輯 塊資源決定的,給各個元構(gòu)件手工分配布局區(qū)域存在較大的難度。發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)不足,提出一種FPGA元構(gòu)件布局區(qū)域分配方法,以便加快整 個FPGA硬件構(gòu)件的布局進程,克服了原有技術(shù)利用經(jīng)驗采用手工分配布局區(qū)域的局限性。
本發(fā)明所采用的技術(shù)方案一種FPGA元構(gòu)件布局區(qū)域分配方法,首先獲取對應(yīng)FPGA硬件構(gòu)件的元構(gòu)件(301);并 對所述FPGA元構(gòu)件進行預(yù)處理,計算其所占邏輯塊資源(302);所述FPGA元構(gòu)件布局區(qū)域 分配方法,還包括下述步驟根據(jù)FPGA元構(gòu)件之間以及和外部端口之間的連接關(guān)系利用二次解析法求得FPGA元構(gòu)件的最佳理論位置(303);根據(jù)目標(biāo)布局區(qū)域內(nèi)各個FPGA元構(gòu)件的理論位置坐標(biāo)和其占用資源對布局區(qū)域進行 理論分割(304);根據(jù)理論分割資源比值與各物理分割點物理分割資源比值,確定分割線(305); 根據(jù)分割線對FPGA元構(gòu)件集合分配布局區(qū)域(306); 選擇任一分配給多元構(gòu)件集合的布局區(qū)域為新的目標(biāo)布局區(qū)域(307); 繼續(xù)對新的目標(biāo)布局區(qū)域進行分割,直到所有FPGA元構(gòu)件都被分配到相應(yīng)的布局區(qū) 域(308)。
所述的FPGA元構(gòu)件布局區(qū)域分配方法,根據(jù)FPGA元構(gòu)件之間以及FPGA元構(gòu)件 和外部端口之間的連接關(guān)系,利用二次解析法求得FPGA元構(gòu)件的最佳理論位置,其步驟包 括構(gòu)造有向圖,將元構(gòu)件和外部端口看作是圖中的節(jié)點,它們之間的連線看作是圖中的邊;使用二次解析法將所有連線的歐氏距離平方和作為目標(biāo)函數(shù); 求得使目標(biāo)函數(shù)最小的元構(gòu)件節(jié)點理論坐標(biāo)。
所述的FPGA元構(gòu)件布局區(qū)域分配方法,根據(jù)目標(biāo)布局區(qū)域內(nèi)各個FPGA元構(gòu)件的 理論位置坐標(biāo)和其占用資源,對布局區(qū)域進行理論分割,其采用的步驟包括根據(jù)目標(biāo)布局區(qū)域內(nèi)各個元構(gòu)件的理論位置坐標(biāo)和其占用資源,分別從橫豎方向兩端 建立兩個元構(gòu)件集合;計算擬分割后長寬比最不平衡區(qū)域的長寬比值; 選擇長寬比較平衡的方向?qū)δ繕?biāo)布局區(qū)域進行分割。
所述的FPGA元構(gòu)件布局區(qū)域分配方法,根據(jù)理論分割資源比值與各物理分割點 物理分割資源比值,確定分割線比較實際元構(gòu)件集合分割資源比值與各物理分割點物理分割資源比值,選擇物理分割 點,在該分割點上建立分割線;計算各個集合所占資源是否大于有效分割點分配給其布局區(qū)域的資源,判斷分割點是 否有效;對于有效分割點,直接采用該分割點上的分割線; 對于無效分割點,借用相鄰空余資源,對該分割點上分割線進行修正。
所述的FPGA元構(gòu)件布局區(qū)域分配方法,對于無效分割點,借用相鄰空余資源,對 該分割點上分割線進行修正計算無效分割點兩邊集合節(jié)點理論平均坐標(biāo); 根據(jù)集合節(jié)點平均坐標(biāo)比值決定預(yù)借區(qū)域; 根據(jù)預(yù)借區(qū)域?qū)υ摲指铧c上分割線進行修正。
所述的FPGA元構(gòu)件布局區(qū)域分配方法,對FPGA元構(gòu)件進行預(yù)處理,包括對所述元構(gòu)件的硬件描述語言進行邏輯綜合、映射、裝箱處理,生成對應(yīng)所述元構(gòu)件的 邏輯塊網(wǎng)表;計算所述元構(gòu)件的邏輯塊網(wǎng)表所占邏輯塊資源。
本發(fā)明的有益積極效果1、本發(fā)明FPGA元構(gòu)件布局區(qū)域分配方法,能夠根據(jù)元構(gòu)件之間以及和外部端口之間 的連接關(guān)系結(jié)合其占用資源對布局區(qū)域自動進行合理分配,克服原有技術(shù)利用經(jīng)驗采用手 工分配布局區(qū)域的局限性。
2、通過本發(fā)明FPGA元構(gòu)件布局區(qū)域分配方法,可以最大程度的保障元構(gòu)件布局 區(qū)域的長寬比平衡,提高后續(xù)布局布線的布通率,并且能保障元構(gòu)件與其外部端口連接緊 密,有效降低路徑時延,從而提高在FPGA上運行電路的整體性能。


圖1為現(xiàn)有技術(shù)中FPGA電路設(shè)計流程示意圖;圖2為現(xiàn)有技術(shù)中一種FPGA硬件構(gòu)件的生成方法步驟流程示意圖; 圖3為本發(fā)明FPGA元構(gòu)件布局區(qū)域分配方法步驟流程示意圖; 圖4為本發(fā)明對所述FPGA元構(gòu)件進行預(yù)處理的流程示意圖; 圖5為本發(fā)明利用二次解析法求得元構(gòu)件的最佳理論位置流程示意圖; 圖6為本發(fā)明根據(jù)目標(biāo)布局區(qū)域內(nèi)各個元構(gòu)件的理論位置坐標(biāo)和其占用資源對布局 區(qū)域進行理論分割的流程示意圖;圖7為本發(fā)明對布局區(qū)域進行理論分割的具體實例圖中,(a)分別從水平和垂直兩個 方向選擇兩個集合,(b)擴充容量小的集合,(c)計算分割后長寬比最不平衡區(qū)域的長寬比 值,(d)選擇長寬比較平衡的方向進行分割,(e)對多模塊集合繼續(xù)分別從水平和垂直兩個 方向進行分割判斷,(f)選擇長寬比較平衡的方向進行分割;圖8為本發(fā)明根據(jù)理論分割資源比值與各物理分割點物理分割資源比值確定分割線 的流程示意圖;圖9為本發(fā)明確定分割線具體實例圖中,(a)原始物理分割比值,(b)有效物理分割, (c)非有效物理分割;圖10為本發(fā)明對于無效分割點借用相鄰空余資源,對該分割點上分割線進行修正的 流程示意圖;圖11為本發(fā)明對無效分割點上分割線進行修正具體實例圖中,(a)計算兩個集合節(jié) 點理論平均縱坐標(biāo),(b)根據(jù)集合節(jié)點平均縱坐標(biāo)比值決定預(yù)借區(qū)域,(c)根據(jù)預(yù)借區(qū)域?qū)?該分割點上分割線進行修正,(d)選擇分配給多元構(gòu)件集合的布局區(qū)域為新的目標(biāo)布局區(qū) 域,(e)對新的目標(biāo)布局區(qū)域繼續(xù)分割,(f)為各元構(gòu)件最終分配布局區(qū)域。
具體實施方式
下面結(jié)合附圖,對本發(fā)明的技術(shù)方案進行清楚、完整地描述。
首先對本文出現(xiàn)的技術(shù)名詞或術(shù)語進行解釋,以方便本領(lǐng)域技術(shù)人員對本文技術(shù) 方案的理解。
硬件元構(gòu)件指示進行一種或幾種基本功能的硬件編程程序,例如查表程序。在 FPGA中,硬件元構(gòu)件有如下幾種狀態(tài)用戶設(shè)計的描述元構(gòu)件功能的硬件描述語言、經(jīng)過 FPGA開發(fā)工具各階段(邏輯綜合、映射、裝箱)處理后的各級網(wǎng)表(門級網(wǎng)表、基本元件級網(wǎng) 表、邏輯塊網(wǎng)表)。本發(fā)明直接利用的是邏輯塊網(wǎng)表。
硬件構(gòu)件針對整個FPGA的硬件編程程序,由硬件元構(gòu)件組成。硬件構(gòu)件有如下幾種狀態(tài)用戶設(shè)計的描述整個硬件構(gòu)件功能的硬件描述語言、經(jīng)過FPGA開發(fā)工具各階段 (邏輯綜合、映射、裝箱)處理后的各級網(wǎng)表(門級網(wǎng)表、基本元件級網(wǎng)表、邏輯塊級網(wǎng)表)以及 經(jīng)過布局布線階段處理后生成的可下載到FPGA的硬件構(gòu)件配置信息文件。
實施例一參照圖3所示,本實施例FPGA元構(gòu)件布局區(qū)域分配方法,包括如下流 程步驟301、獲取對應(yīng)FPGA硬件構(gòu)件的元構(gòu)件; 步驟302、對所述元構(gòu)件進行預(yù)處理,計算其所占邏輯塊資源; 步驟303、根據(jù)元構(gòu)件之間以及和外部端口之間的連接關(guān)系利用二次解析法求得元構(gòu) 件的最佳理論位置;步驟304、根據(jù)目標(biāo)布局區(qū)域內(nèi)各個元構(gòu)件的理論位置坐標(biāo)和其占用資源對布局區(qū)域 進行理論分割;步驟305、根據(jù)理論分割資源比值與各物理分割點物理分割資源比值,確定分割線; 步驟306、根據(jù)分割線對元構(gòu)件集合分配布局區(qū)域; 步驟307、選擇任一分配給多元構(gòu)件集合的布局區(qū)域為新的目標(biāo)布局區(qū)域; 步驟308、繼續(xù)對新的目標(biāo)布局區(qū)域進行分割,直到所有元構(gòu)件都被分配到相應(yīng)的布局 區(qū)域。
實施例二 參見圖3、圖4。本實施例的技術(shù)方案相對于實施例一,進一步公開了對 所述元構(gòu)件進行預(yù)處理的過程。如圖4所示,對所述元構(gòu)件進行預(yù)處理的過程包括以下步 驟步驟401、生成針對所述元構(gòu)件的硬件描述語言; 通常,使用VHDL語言或者Verilog語言對各種元構(gòu)件的功能進行描述; 步驟402、對所述元構(gòu)件對應(yīng)的硬件描述語言進行邏輯綜合、映射、裝箱處理,生成對應(yīng) 所述元構(gòu)件的邏輯塊網(wǎng)表網(wǎng)表;該步驟中,邏輯綜合處理把描述FPGA功能的硬件描述語言翻譯成最基本的與或非門 的連接關(guān)系,即網(wǎng)表,并根據(jù)具體的要求(約束條件)優(yōu)化生成門級網(wǎng)表;映射處理將門級網(wǎng) 表映射到FPGA內(nèi)部的器件上,例如查找表、觸發(fā)器,生成基本元件級網(wǎng)表;裝箱處理對所述 基本元件級網(wǎng)表進行組合,盡可能地放到FPGA內(nèi)部的邏輯塊中,生成對應(yīng)所述元構(gòu)件的邏 輯塊網(wǎng)表。
步驟403、計算所述元構(gòu)件的邏輯塊網(wǎng)表所占邏輯塊資源。
實施例三參見圖3 圖5,本實施例的技術(shù)方案,與實施例二不同的是,采用如圖 5所示的步驟流程,根據(jù)元構(gòu)件之間以及和外部端口之間的連接關(guān)系,利用二次解析法求得 元構(gòu)件的最佳理論位置。
該開發(fā)過程可以包括步驟501、構(gòu)造有向圖,將元構(gòu)件和外部端口看作是圖中的節(jié)點,它們之間的連線看作 是圖中的邊;步驟502、使用二次解析法將所有連線的歐氏距離平方和作為目標(biāo)函數(shù); 步驟503、求得使目標(biāo)函數(shù)最小的元構(gòu)件節(jié)點理論坐標(biāo)。
該步驟流程的主要目的是使元構(gòu)件之間以及和元構(gòu)件和端口之間的連線長度盡 量短,以盡可能減少后續(xù)布線過程中連線占用的FPGA布線資源。
實施例四如圖6所示,本實施例的技術(shù)方案與前述各實施例不同的是根據(jù)目標(biāo) 布局區(qū)域內(nèi)各個元構(gòu)件的理論位置坐標(biāo)和其占用資源對布局區(qū)域進行理論分割。該分割的 步驟流程包括步驟601、根據(jù)目標(biāo)布局區(qū)域內(nèi)各個元構(gòu)件的理論位置坐標(biāo)和其占用資源,分別從橫豎 方向兩端建立兩個元構(gòu)件集合;如圖7 (a) (b)所示,根據(jù)各個元構(gòu)件的理論位置坐標(biāo),分別從橫豎方向兩端各選擇最 靠邊的節(jié)點組成兩個集合,然后依次對占用資源小的集合向逆方向選擇該方向垂直距離最 近的元構(gòu)件加入該集合,如果兩個集合占用資源相同,則選擇離剩余元構(gòu)件最近的集合,如 果兩個集合離剩余元構(gòu)件的最近距離也相等,則任意選擇其中一個集合,直到所有元構(gòu)件 加入到兩個集合。
步驟602、計算擬分割后長寬比最不平衡區(qū)域的長寬比值;如圖7 (c)所示,首先計算兩個集合占用資源的比值,然后根據(jù)目標(biāo)布局區(qū)域的長寬比 按照兩個集合占用資源的比值和方向計算對目標(biāo)區(qū)域進行分割后兩個區(qū)域中長寬比的最 大值。
步驟603、選擇長寬比較平衡的方向?qū)δ繕?biāo)布局區(qū)域進行分割。
如圖7 (d)所示,比較上述分別按橫豎方向計算的分割后長寬比最不平衡區(qū)域的 長寬比值,選擇比值小的方向進行分割。
該步驟流程主要是為了避免出現(xiàn)元構(gòu)件布局區(qū)域重合的現(xiàn)象,要根據(jù)各元構(gòu)件的 理論位置和占用資源大小對各元構(gòu)件分配合理的布局區(qū)域。因為布局區(qū)域長寬比均衡的布 局區(qū)域能比布局區(qū)域長寬比不均衡的布局區(qū)域提供更多的布線通道,因此盡量保證各個元 構(gòu)件布局區(qū)域長寬比均衡是上述步驟流程的重要目標(biāo)。
實施例五本發(fā)明的技術(shù)方案,與前述各實施例不同的是,采用如圖8所示的步驟 流程,根據(jù)理論分割資源比值與各物理分割點物理分割資源比值,確定分割線,該開發(fā)過程 可以包括步驟701,比較實際元構(gòu)件集合分割資源比值與各物理分割點物理分割資源比值,選擇 物理分割點,在該分割點上建立分割線;如圖9 (a)所示,一個6X6 CLB布局區(qū)域從水平和垂直方向都只有3個物理分割點, 其物理分割資源比值分別為0. 2,0. 5、1、2、5。根據(jù)步驟2計算的實際模塊集合分割資源比 值可能為任意值。根據(jù)以下準(zhǔn)則確定實際有效物理分割點。首先比較實際模塊集合分割資 源比值與各物理分割點物理分割資源比值,選擇最近的為該集合分割點。如圖9 (b)所示, 兩個集合分別占用15和16個CLB資源,其實際分割資源比值為0. 9375,離物理分割資源比 值為1的分割點最進,因此選擇該分割點為該集合的分割點。
步驟702,計算各個集合所占資源是否大于有效分割點分配給其布局區(qū)域的資源, 判斷分割點是否有效;計算各個集合所占資源是否大于有效分割點分配給其布局區(qū)域的資源,如果大于,則 該分割點無效;如果小于,則該分割點有效。如圖9 (b)所示,兩個集合所占資源小于分配 給其布局區(qū)域的資源,因此分割點有效;而圖9 (c)所示的右邊集合所占資源為20,大于分 配給其布局區(qū)域的資源18,因此物理分割點無效。
步驟703,對于有效分割點,直接采用該分割點上的分割線;圖9 (b)所示分割點有效,直接采用其上的分割線;步驟704,對于無效分割點,借用相鄰空余資源,對該分割點上分割線進行修正。
實施例六本實施例的技術(shù)方案,與前述各實施例不同的是,對于無效分割點,借 用相鄰空余資源,對該分割點上分割線進行修正,其步驟流程如圖10所示步驟801,計算無效分割點兩邊集合節(jié)點理論平均坐標(biāo);如圖11(a)所示,由于集合一所占邏輯塊單元為20,大于分配給其布局區(qū)域的資源18, 故物理分割點無效。無效分割點右邊集合二的平均縱坐標(biāo)高于無效分割點左邊集合一的平 均縱坐標(biāo)。
步驟802,根據(jù)集合節(jié)點平均坐標(biāo)比值決定預(yù)借區(qū)域;如圖11 (b)所示,由于集合一平均縱坐標(biāo)(為其包括的兩個元構(gòu)件平均縱坐標(biāo))位于集 合二平均縱坐標(biāo)(其包括的一個元構(gòu)件的縱坐標(biāo))下方,故從集合二所分配的無效分割點右 邊布局區(qū)域下方借兩個邏輯單元給集合一。
步驟803,根據(jù)預(yù)借區(qū)域?qū)υ摲指铧c上分割線進行修正。
如圖11 (C)所示,將物理分割點上的分割線沿著借給集合一的邏輯單元與集合二 的邊界進行修正。
本實施例技術(shù)方案的實現(xiàn)過程中,根據(jù)分割線對元構(gòu)件集合分配布局區(qū)域有如下 兩種情況如果為有效分割點,則將該分割點上的分割線兩端的布局區(qū)域分配給相應(yīng)元構(gòu) 件集合;如果為無效分割點,則將修正后的分割線兩端的布局區(qū)域分配給相應(yīng)元構(gòu)件集合。
選擇任一分配給多元構(gòu)件集合的布局區(qū)域為新的目標(biāo)布局區(qū)域,繼續(xù)對新的目標(biāo) 布局區(qū)域進行分割,直到所有元構(gòu)件都被分配到相應(yīng)的布局區(qū)域。
如圖11 (d)所示,由于集合一由兩個元構(gòu)件組成,故選擇分配給其的布局區(qū)域為 新的目標(biāo)布局區(qū)域。
對上一步驟選擇的目標(biāo)布局區(qū)域繼續(xù)重復(fù)步驟304、305、306,直到所有元構(gòu)件都 被分配到相應(yīng)的布局區(qū)域。
如圖11 (e)所示,對分配給集合一的目標(biāo)布局區(qū)域繼續(xù)進行步驟304、305、306,對 兩個元構(gòu)件接著進行布局區(qū)域的劃分。該過程結(jié)束后,所有的元構(gòu)件都被分配了相應(yīng)的布 局區(qū)域,如圖11 (f)所示。
對于與本發(fā)明方法相應(yīng)的裝置而言,實現(xiàn)其中所述各步驟的分離部件或單元可以 是物理上分開的(也可以不是),作為單元顯示的部件可以是或者也可以不是物理單元,可 以位于一個地方,或者分布到多個網(wǎng)絡(luò)單元上。
權(quán)利要求
1.一種FPGA元構(gòu)件布局區(qū)域分配方法,首先獲取對應(yīng)FPGA硬件構(gòu)件的元構(gòu)件(301); 并對所述FPGA元構(gòu)件進行預(yù)處理,計算其所占邏輯塊資源(302);其特征在于,所述FPGA元 構(gòu)件布局區(qū)域分配方法,還包括下述步驟根據(jù)FPGA元構(gòu)件之間以及和外部端口之間的連接關(guān)系利用二次解析法求得FPGA元構(gòu) 件的理論位置(303);根據(jù)目標(biāo)布局區(qū)域內(nèi)各個FPGA元構(gòu)件的理論位置坐標(biāo)和其占用資源對布局區(qū)域進行 理論分割(304);根據(jù)理論分割資源比值與各物理分割點物理分割資源比值,確定分割線(305); 根據(jù)分割線對FPGA元構(gòu)件集合分配布局區(qū)域(306); 選擇任一分配給多元構(gòu)件集合的布局區(qū)域為新的目標(biāo)布局區(qū)域(307); 繼續(xù)對新的目標(biāo)布局區(qū)域進行分割,直到所有FPGA元構(gòu)件都被分配到相應(yīng)的布局區(qū) 域(308)。
2.根據(jù)權(quán)利要求1所述的FPGA元構(gòu)件布局區(qū)域分配方法,其特征在于,根據(jù)FPGA元構(gòu) 件之間以及FPGA元構(gòu)件和外部端口之間的連接關(guān)系,利用二次解析法求得FPGA元構(gòu)件的 理論位置,其步驟包括構(gòu)造有向圖,將元構(gòu)件和外部端口看作是圖中的節(jié)點,它們之間的連線看作是圖中的邊;使用二次解析法將所有連線的歐氏距離平方和作為目標(biāo)函數(shù); 求得使目標(biāo)函數(shù)最小的元構(gòu)件節(jié)點理論坐標(biāo)。
3.根據(jù)權(quán)利要求2所述的FPGA元構(gòu)件布局區(qū)域分配方法,其特征在于,根據(jù)目標(biāo)布局 區(qū)域內(nèi)各個FPGA元構(gòu)件的理論位置坐標(biāo)和其占用資源,對布局區(qū)域進行理論分割,其采用 的步驟包括根據(jù)目標(biāo)布局區(qū)域內(nèi)各個元構(gòu)件的理論位置坐標(biāo)和其占用資源,分別從橫豎方向兩端 建立兩個元構(gòu)件集合;計算擬分割后長寬比最不平衡區(qū)域的長寬比值; 選擇長寬比較平衡的方向?qū)δ繕?biāo)布局區(qū)域進行分割。
4.根據(jù)權(quán)利要求3所述的FPGA元構(gòu)件布局區(qū)域分配方法,其特征在于,根據(jù)理論分割 資源比值與各物理分割點物理分割資源比值,確定分割線比較實際元構(gòu)件集合分割資源比值與各物理分割點物理分割資源比值,選擇物理分割 點,在該分割點上建立分割線;計算各個集合所占資源是否大于有效分割點分配給其布局區(qū)域的資源,判斷分割點是 否有效;對于有效分割點,直接采用該分割點上的分割線; 對于無效分割點,借用相鄰空余資源,對該分割點上分割線進行修正。
5.根據(jù)權(quán)利要求4所述的FPGA元構(gòu)件布局區(qū)域分配方法,其特征在于,對于無效分割 點,借用相鄰空余資源,對該分割點上分割線進行修正計算無效分割點兩邊集合節(jié)點理論平均坐標(biāo); 根據(jù)集合節(jié)點平均坐標(biāo)比值決定預(yù)借區(qū)域; 根據(jù)預(yù)借區(qū)域?qū)υ摲指铧c上分割線進行修正。
6.根據(jù)權(quán)利要求1 5任一項所述的FPGA元構(gòu)件布局區(qū)域分配方法,其特征在于,對 FPGA元構(gòu)件進行預(yù)處理,包括對所述元構(gòu)件的硬件描述語言進行邏輯綜合、映射、裝箱處理,生成對應(yīng)所述元構(gòu)件的 邏輯塊網(wǎng)表;計算所述元構(gòu)件的邏輯塊網(wǎng)表所占邏輯塊資源。
全文摘要
本發(fā)明涉及一種FPGA元構(gòu)件布局區(qū)域分配方法。所述FPGA元構(gòu)件布局區(qū)域分配方法,首先獲取對應(yīng)FPGA硬件構(gòu)件的元構(gòu)件;并對所述FPGA元構(gòu)件進行預(yù)處理,計算其所占邏輯塊資源;然后根據(jù)FPGA元構(gòu)件之間以及和外部端口之間的連接關(guān)系利用二次解析法求得FPGA元構(gòu)件的最佳理論位置;根據(jù)目標(biāo)布局區(qū)域內(nèi)各個FPGA元構(gòu)件的理論位置坐標(biāo)和其占用資源對布局區(qū)域進行理論分割;根據(jù)理論分割資源比值與各物理分割點物理分割資源比值,確定分割線;根據(jù)分割線對FPGA元構(gòu)件集合分配布局區(qū)域;選擇任一分配給多元構(gòu)件集合的布局區(qū)域為新的目標(biāo)布局區(qū)域;繼續(xù)對新的目標(biāo)布局區(qū)域進行分割,直到所有FPGA元構(gòu)件都被分配到相應(yīng)的布局區(qū)域。
文檔編號G06F17/50GK102033987SQ201010565069
公開日2011年4月27日 申請日期2010年11月30日 優(yōu)先權(quán)日2010年11月30日
發(fā)明者蘭巨龍, 李鵬, 王保進, 王婷, 王志明, 趙靚, 鄔鈞霆, 韓曉亞, 黃萬偉 申請人:中國人民解放軍信息工程大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1