基于fpga解析型布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及FPGA布局算法,尤其涉及一種基于FPGA解析型布局求解器的多選擇 區(qū)域動(dòng)態(tài)劃分方法。
【背景技術(shù)】
[0002] 目前,在FPGA (Field Programmable Gate Array,現(xiàn)場可編程邏輯門陣列)應(yīng)用 中,要求集成電路具有可編程或可配置的互連網(wǎng)絡(luò),邏輯門通過可配置的互連網(wǎng)絡(luò)而彼此 連接,作為獨(dú)立芯片或系統(tǒng)中核心部分起作用的FPGA已經(jīng)廣泛被應(yīng)用于大量微電子設(shè)備 中。廣義的FPGA邏輯門的定義,不單指簡單的與非門,也指具有可配置功能的組合邏輯與 時(shí)序邏輯的邏輯單元或由多個(gè)邏輯單元互連而組成的邏輯塊。
[0003] 隨著FPGA芯片規(guī)模的擴(kuò)大,布局算法愈發(fā)顯得關(guān)鍵和重要,主要面臨兩方面的挑 戰(zhàn):如何應(yīng)對大規(guī)模的布局電路和提高芯片性能;隨著芯片規(guī)模的增大,在提高FPGA性能 前提下提高算法運(yùn)行速度成為一個(gè)迫切的要求。
[0004] 當(dāng)前工業(yè)界FPGA布局算法普遍采用解析型布局算法和其他算法相結(jié)合的方法。 解析型布局算法在處理大規(guī)模的布局電路時(shí),一般可以以較短的時(shí)間和較小的存儲空間處 理大規(guī)模電路設(shè)計(jì)。因此,該解析型布局算法在處理大規(guī)模的布局電路時(shí)的速度優(yōu)勢,使得 該算法在國際工業(yè)軟件上得到了廣泛的使用。
[0005] 但是目前工業(yè)界還沒有提出很好的能夠保證解決解析型算法的重疊問題,一般情 況下第一次迭代,求解出來的LE坐標(biāo)大量重疊,最后一次迭代LE間的重疊度最小,即使是 最后一次迭代也不能完全消除LE間的重疊,一般是在解析型算法之后再加一個(gè)局部合法 化的過程,由于布局電路體積龐大,因此處理時(shí)間過長,往往達(dá)不到對程序運(yùn)行時(shí)間的要 求。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是在大規(guī)模電路中,提供一種采用并行的遞歸二劃分優(yōu)化FPGA芯 片布局,加速算法的運(yùn)行速度,保證解析型算法的結(jié)果是一個(gè)合法的布局解的方法。
[0007] 為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于FPGA解析型的布局求解器的多選擇區(qū) 域動(dòng)態(tài)劃分方法,該方法包括:
[0008] 將用戶電路轉(zhuǎn)化成門級電路,將所述門級電路映射到查找表和/或寄存器中,將 所述查找表和/或寄存器組合成LE,產(chǎn)生網(wǎng)表;根據(jù)網(wǎng)表中組成邏輯單元LE的各基本單元 之間的連接關(guān)系,構(gòu)建第一代價(jià)函數(shù),計(jì)算各LE在芯片布局中的第一坐標(biāo)值;
[0009] 根據(jù)所述的各LE在芯片布局中的第一坐標(biāo)值集合,確定LE在芯片中的多個(gè)重疊 區(qū)域,為所述多個(gè)重疊區(qū)域分別找出合法的區(qū)域范圍;
[0010] 在各合法區(qū)域范圍內(nèi),對所述多個(gè)重疊區(qū)域并行的進(jìn)行遞歸的二劃分;
[0011] 對二劃分后多個(gè)重疊區(qū)域中的LE分別加拉力,將各個(gè)重疊區(qū)域中的LE拉開;
[0012] 根據(jù)所述拉開后的各LE的基本單元之間的連接關(guān)系,構(gòu)建第二代價(jià)函數(shù),產(chǎn)生所 述各LE的第二坐標(biāo)值;
[0013] 繼續(xù)進(jìn)行重疊區(qū)域的確定,找出重疊區(qū)域的合法區(qū)域范圍,迭代產(chǎn)生各LE的第N 坐標(biāo)值,直至第N坐標(biāo)值為所述各LE的合法布局解。
[0014] 在上述方法中,根據(jù)網(wǎng)表中組成LE的各基本單元之間的線長和時(shí)序,建立第一代 價(jià)函數(shù),根據(jù)所述第一代價(jià)函數(shù),構(gòu)建矩陣,計(jì)算各LE在芯片布局中的坐標(biāo)值。
[0015] 在上述方法中,根據(jù)芯片上各重疊區(qū)域中LE的面積確定該重疊區(qū)域的合法區(qū)域 范圍。
[0016] 在上述方法中,根據(jù)各重疊區(qū)域的面積進(jìn)行遞歸二劃分。
[0017] 在上述方法中,在進(jìn)行重疊區(qū)域的并行二次劃分時(shí),根據(jù)寬度優(yōu)先搜索進(jìn)行劃分。
[0018] 本發(fā)明提供的FPGA解析型布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方法,實(shí)現(xiàn)劃分方 式更加靈活,而且在多區(qū)域并行劃分時(shí),運(yùn)行速度快,保證解析型算法的結(jié)果是一個(gè)合法的 布局。
【附圖說明】
[0019] 圖1為本發(fā)明實(shí)施例的基于FPGA解析型的布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方 法流程圖;
[0020] 圖2為本發(fā)明實(shí)施例布局算法流程圖;
[0021] 圖3為本發(fā)明實(shí)施例基本邏輯單元的基本組成結(jié)構(gòu)圖;
[0022] 圖4為本發(fā)明實(shí)施例多重疊區(qū)域選擇劃分方法;
[0023] 圖5A-5D為本發(fā)明實(shí)施例遞歸的二劃分和模塊移動(dòng)示意圖;
[0024] 圖6為本發(fā)明實(shí)施例中LE加拉力示意圖。
【具體實(shí)施方式】
[0025] 下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
[0026] 圖1為本發(fā)明實(shí)施例的基于FPGA解析型的布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方 法流程圖,圖中,該多選擇區(qū)域動(dòng)態(tài)劃分方法包括:
[0027] 步驟101,將用戶電路轉(zhuǎn)化成門級電路,將所述門級電路映射到查找表和/或寄存 器中,將所述查找表和/或寄存器組合成LE,產(chǎn)生網(wǎng)表。
[0028] 圖2為本發(fā)明實(shí)施例布局算法流程圖。在實(shí)施布局算法之前,如圖2中本發(fā)明布 局算法流程圖,在綜合與庫映射階段,需將用戶電路轉(zhuǎn)化為門級電路,用戶電路為使用硬件 描述語言(verilog)編譯而成的,將使用高層次的硬件描述語言編譯而成的用戶電路綜合 成為低層次的門級電路,將門級電路映射到查找表(LUT)和寄存器(FF)中。
[0029] 將步驟101中的查找表和寄存器組成為三種形式的基本單元,即四輸入的查找表 和寄存器、單獨(dú)四輸入的查找表、單獨(dú)的寄存器三種形式的基本單元,并將多個(gè)基本單元打 包形成LE (Logic Element,邏輯單元),如圖2中的打包算法。
[0030] 圖3為本發(fā)明實(shí)施例基本邏輯單元的基本組成結(jié)構(gòu)圖。一個(gè)LE由4個(gè)LP(Logic Parcel,邏輯包)、快速跳躍進(jìn)位鏈輸入(Carry skip in)、快速跳躍進(jìn)位鏈輸出(Carry skip out)及LBUF組成。每個(gè)LP中包括兩個(gè)LUT4 (Look-Up Table,查找表)、1個(gè)LUT4C (帶進(jìn)位鏈的LUT4)和兩個(gè)寄存器。1個(gè)LE中共計(jì)有12個(gè)LUT4和8個(gè)寄存器,LUT4和寄 存器的比例為3:2,快速跳躍進(jìn)位鏈輸入和快速跳躍進(jìn)位鏈輸出用于實(shí)現(xiàn)快速跳躍進(jìn)位鏈 功能,LBUF用于產(chǎn)生邏輯單元中寄存器的控制信號時(shí)鐘。
[0031] 步驟102,根據(jù)網(wǎng)表中組成邏輯單元LE的各基本單元之間的連接關(guān)系(時(shí)序和線 長的乘積),構(gòu)建第一代價(jià)函數(shù),計(jì)算各LE在芯片布局中的第一坐標(biāo)值。
[0032] 二次規(guī)劃布局算法基本上所有的二次規(guī)劃布局算法把線長的代價(jià)函數(shù)定為:
[0033]
【主權(quán)項(xiàng)】
1. 一種基于FPGA解析型布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方法,其特征在于,所述方 法包括: 將用戶電路轉(zhuǎn)化成口級電路,將所述口級電路映射到查找表和/或寄存器中,將所述 查找表和/或寄存器組合成LE,產(chǎn)生網(wǎng)表; 根據(jù)網(wǎng)表中組成邏輯單元LE的各基本單元之間的連接關(guān)系,構(gòu)建第一代價(jià)函數(shù),計(jì)算 各LE在芯片布局中的第一坐標(biāo)值; 根據(jù)所述的各LE在芯片布局中的第一坐標(biāo)值集合,確定LE在芯片中的多個(gè)重疊區(qū)域, 為所述多個(gè)重疊區(qū)域分別找出合法的區(qū)域范圍; 在各合法區(qū)域范圍內(nèi),對所述多個(gè)重疊區(qū)域并行的進(jìn)行遞歸的二劃分; 對二劃分后多個(gè)重疊區(qū)域中的LE分別加拉力,將各個(gè)重疊區(qū)域中的LE拉開; 根據(jù)所述拉開后的各LE的基本單元之間的連接關(guān)系,構(gòu)建第二代價(jià)函數(shù),產(chǎn)生所述各 LE的第二坐標(biāo)值; 繼續(xù)進(jìn)行重疊區(qū)域的確定,找出重疊區(qū)域的合法區(qū)域范圍,迭代產(chǎn)生各LE的第N坐標(biāo) 值,直至第N坐標(biāo)值為所述各LE的合法布局解。
2. 如權(quán)利要求1所述的基于FPGA解析型布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方法,其特 征在于,所述根據(jù)網(wǎng)表中組成邏輯單元LE的各基本單元之間的連接關(guān)系,構(gòu)建第一代價(jià)函 數(shù),計(jì)算各LE在芯片布局中的第一坐標(biāo)值包括: 根據(jù)網(wǎng)表中組成LE的各基本單元之間的線長和時(shí)序,建立第一代價(jià)函數(shù),根據(jù)所述第 一代價(jià)函數(shù),構(gòu)建矩陣,計(jì)算各LE在芯片布局中的坐標(biāo)值。
3. 如權(quán)利要求1所述的基于FPGA解析型布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方法,其特 征在于,根據(jù)芯片上各重疊區(qū)域中LE的面積確定該重疊區(qū)域的合法區(qū)域范圍。
4. 如權(quán)利要求1所述的基于FPGA解析型布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方法,其特 征在于,根據(jù)各個(gè)重疊區(qū)域的面積進(jìn)行遞歸二劃分。
5. 如權(quán)利要求1所述的基于FPGA解析型布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方法,其特 征在于,在進(jìn)行重疊區(qū)域的并行二次劃分時(shí),根據(jù)寬度優(yōu)先搜索進(jìn)行劃分。
【專利摘要】本發(fā)明涉及一種基于FPGA解析型布局求解器的多選擇區(qū)域動(dòng)態(tài)劃分方法,該方法包括:根據(jù)網(wǎng)表中組成邏輯單元LE的各基本單元之間的連接關(guān)系,構(gòu)建第一代價(jià)函數(shù),計(jì)算各LE在芯片布局中的第一坐標(biāo)值;確定LE在芯片中的多個(gè)重疊區(qū)域,為多個(gè)重疊區(qū)域分別找出合法的區(qū)域范圍;對多個(gè)重疊區(qū)域并行的進(jìn)行遞歸的二劃分;對二劃分后多個(gè)重疊區(qū)域中的LE分別加拉力,將各個(gè)重疊區(qū)域中的LE拉開;根據(jù)拉開后的各LE的各基本單元之間的連接關(guān)系,構(gòu)建第二代價(jià)函數(shù),產(chǎn)生各LE的第二坐標(biāo)值;繼續(xù)進(jìn)行重疊區(qū)域的確定,找出重疊區(qū)域的合法區(qū)域范圍,迭代產(chǎn)生各LE的第N坐標(biāo)值,直至第N坐標(biāo)值為所述各LE的合法布局解。本發(fā)明中并行二劃分速度快,大大提升運(yùn)算速度。
【IPC分類】G06F17-15
【公開號】CN104572579
【申請?zhí)枴緾N201310471151
【發(fā)明人】蔣中華, 虞建, 劉桂林, 劉明
【申請人】京微雅格(北京)科技有限公司
【公開日】2015年4月29日
【申請日】2013年10月10日