張倩莉,于 芳,劉忠立,李 艷,陳 亮,李 明,郭旭峰
(1.中國(guó)科學(xué)院半導(dǎo)體研究所,100083 北京;2.中國(guó)科學(xué)院微電子研究所,100029 北京)
結(jié)合用戶(hù)約束文件的高效多FPGA系統(tǒng)分割方法
張倩莉1,2,于 芳2,劉忠立1,李 艷2,陳 亮2,李 明2,郭旭峰2
(1.中國(guó)科學(xué)院半導(dǎo)體研究所,100083 北京;2.中國(guó)科學(xué)院微電子研究所,100029 北京)
針對(duì)單個(gè)現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array,F(xiàn)PGA)可配置邏輯模塊(Configurable Logic Block,CLB)和輸入/輸出(I/O)數(shù)目受限難以滿(mǎn)足大規(guī)模復(fù)雜電路系統(tǒng)設(shè)計(jì)需要的問(wèn)題,提出了一種結(jié)合用戶(hù)約束文件(User Constraint File,UCF)和單個(gè)FPGA的EDA(Electronic Design Automation)設(shè)計(jì)流程,通過(guò)部分人為干涉,對(duì)多FPGA(multi-FPGA)系統(tǒng)進(jìn)行分割的方法.應(yīng)用這種分割方法,可以提高multi-FPGA系統(tǒng)的劃分效率,簡(jiǎn)化設(shè)計(jì)的復(fù)雜度.結(jié)果表明:基于這種分割方法的分割工具,結(jié)合multi-FPGA系統(tǒng)的硬件結(jié)構(gòu),可實(shí)現(xiàn)一個(gè)最多為9芯片multi-FPGA系統(tǒng)的設(shè)計(jì)和配置.
現(xiàn)場(chǎng)可編程門(mén)陣列;電子設(shè)計(jì)自動(dòng)化;用戶(hù)約束文件;多FPGA系統(tǒng);分割
隨著專(zhuān)用集成電路(Application Specific Integrated Circuit,ASIC)制造成本的日益增加以及FPGA在性能方面和ASIC差距逐漸縮小,加上FPGA具有市場(chǎng)周期短,成本低等明顯優(yōu)點(diǎn),因而FPGA正在成為各種實(shí)時(shí)設(shè)計(jì)平臺(tái)的重要選擇.但是,利用FPGA完成大規(guī)模復(fù)雜電路系統(tǒng)設(shè)計(jì),仍存在一定的困難.其難點(diǎn)在于:與ASIC相比,F(xiàn)PGA的資源是有限的.由于FPGA在輸入/輸出(I/O)和CLB的數(shù)量上都是固定的,因此設(shè)計(jì)者在用FPGA作為平臺(tái)時(shí),其電路規(guī)模受到限制.然而如果使用多個(gè)FPGA去實(shí)現(xiàn)大規(guī)模復(fù)雜電路系統(tǒng),上述問(wèn)題就迎刃而解了[1].
用戶(hù)在利用multi-FPGA系統(tǒng)實(shí)現(xiàn)大規(guī)模復(fù)雜電路系統(tǒng)時(shí),電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation,EDA)成為了設(shè)計(jì)multi-FPGA系統(tǒng)的重要工具.利用EDA工具設(shè)計(jì)multi-FPGA系統(tǒng)時(shí)需要參照系統(tǒng)的硬件結(jié)構(gòu),因此在設(shè)計(jì)過(guò)程中不能按照傳統(tǒng)設(shè)計(jì)方法那樣在系統(tǒng)設(shè)計(jì)結(jié)束之后再設(shè)計(jì)PCB板,而是要對(duì)multi-FPGA系統(tǒng)和PCB板進(jìn)行同步設(shè)計(jì)和修正.
通常情況下,利用multi-FPGA系統(tǒng)實(shí)現(xiàn)一個(gè)大規(guī)模復(fù)雜電路系統(tǒng),設(shè)計(jì)流程包含:綜合、分割、全局布局、全局布線、單個(gè)FPGA布局、單個(gè)FPGA布線[2-3].其中,分割步驟中必須考慮如何將分割后的電路分配到multi-FPGA系統(tǒng)的各個(gè)FPGA中.分割步驟完成后,按照所使用的FPGA規(guī)模和結(jié)構(gòu),電路被劃分為若干部分.然后將分割后的若干電路在multi-FPGA系統(tǒng)平臺(tái)上進(jìn)行全局布局,之后再通過(guò)全局布線進(jìn)行線路調(diào)整和連接,最后進(jìn)行單個(gè)FPGA布局和布線,從而完成multi-FPGA系統(tǒng)的設(shè)計(jì)工作.
multi-FPGA系統(tǒng)分割算法的基本原則是:使劃分后的邏輯規(guī)模小于單個(gè)FPGA的容量上限,同時(shí)保證劃分后各邏輯模塊之間信號(hào)線數(shù)量小于FPGA間的物理連線數(shù)量[4].目前,國(guó)內(nèi)外采用的傳統(tǒng)分割方法是在綜合后的基本邏輯單元層面上進(jìn)行的,分割過(guò)程在物理層面上考慮了是否滿(mǎn)足單個(gè)FPGA容量及FPGA之間信號(hào)連線數(shù)量等基本原則.通常的分割步驟主要采用以下算法[5]:
1)共享資源分割.將寄存器陣列的邏輯模塊拆分,然后將這些邏輯模塊和其所控制的邏輯模塊集成在一起.這樣,不需要在不同F(xiàn)PGA邊界之間設(shè)置寬的總線,并且減少了FPGA在I/O總數(shù)上的限制.2)重新分組邏輯以減少FPGA之間的連接.3)復(fù)制邏輯以減少FPGA之間的連接.4)對(duì)FPGA邊界的I/O采用時(shí)分復(fù)用.
上述分割算法存在著一些不足:沒(méi)有從電路設(shè)計(jì)者的設(shè)計(jì)意圖出發(fā),不能在行為級(jí)分析整個(gè)電路的功能,容易在分割過(guò)程中將一個(gè)具有獨(dú)立功能的模塊拆分開(kāi),導(dǎo)致該模塊內(nèi)部延遲增大.并且,采用這種分割方法的后續(xù)工作較多,對(duì)全局布局以及全局布線算法的要求很高,由于以整個(gè)multi-FPGA系統(tǒng)為單位進(jìn)行布局布線,復(fù)雜度高,延遲也不容易控制.
針對(duì)上述傳統(tǒng)分割算法的不足,本文提出了一種結(jié)合UCF的高效multi-FPGA系統(tǒng)分割方法.經(jīng)過(guò)本分割方法的劃分以后,可將multi-FPGA系統(tǒng)的設(shè)計(jì)轉(zhuǎn)化為多個(gè)單FPGA的設(shè)計(jì),提高multi-FPGA系統(tǒng)的劃分效率,大大簡(jiǎn)化了系統(tǒng)設(shè)計(jì)的復(fù)雜度.
利用FPGA實(shí)現(xiàn)電路的設(shè)計(jì)需要依托于EDA工具,本文自主開(kāi)發(fā)的EDA軟件流程如圖1所示.電路描述文件經(jīng)綜合、映射、布局布線及碼流生成等步驟,最后將生成的碼流文件下載到FPGA中,實(shí)現(xiàn)用戶(hù)所描述的電路功能.
在每個(gè)步驟之間通過(guò)文件的形式來(lái)傳遞電路信息,即利用綜合工具讀取電路描述文件,經(jīng)綜合生成edif格式的文件作為映射工具的輸入;映射工具分析edif網(wǎng)表文件,結(jié)合FPGA的硬件結(jié)構(gòu),將基本邏輯單元(Basic Logic Element,BLE)進(jìn)行打包(packing)、裝箱(clustering),完成符合可編程邏輯模塊(CLB)結(jié)構(gòu)的映射工作,輸出一個(gè).net格式文件;布局布線工具讀取映射的輸出文件,從而獲得可編程邏輯模塊和輸入輸出模塊(IOB)的網(wǎng)表信息,根據(jù)FPGA的硬件結(jié)構(gòu)進(jìn)行布局布線,生成.p和.r格式的輸出文件;根據(jù)布局布線的輸出,結(jié)合FPGA的可配置結(jié)構(gòu),利用碼流生成工具生成最終控制FPGA配置的碼流文件,經(jīng)下載接口下載到FPGA內(nèi)完成對(duì)FPGA的配置,這樣便完成了應(yīng)用FPGA實(shí)現(xiàn)電路設(shè)計(jì)的工作.
圖1 EDA工具設(shè)計(jì)流程
基于結(jié)合UCF的multi-FPGA系統(tǒng)分割方法,開(kāi)發(fā)出用于multi-FPGA系統(tǒng)的分割工具,此工具可以集成在自行開(kāi)發(fā)的EDA流程內(nèi),也可以與其他FPGA軟件工具配合使用.
在分割工具中,UCF文件的約束和指導(dǎo)內(nèi)容由用戶(hù)根據(jù)自己的設(shè)計(jì)特點(diǎn)和需求進(jìn)行編寫(xiě),在電路的綜合階段對(duì)網(wǎng)表進(jìn)行模塊標(biāo)注,分割過(guò)程是通過(guò)部分人為干涉實(shí)現(xiàn)的.分割后生成多個(gè)針對(duì)各個(gè)FPGA的子網(wǎng)表文件,每個(gè)FPGA完全按照單個(gè)FPGA的EDA設(shè)計(jì)流程完成后續(xù)工作.這種分割工具可以提高multi-FPGA系統(tǒng)的劃分效率,并簡(jiǎn)化系統(tǒng)設(shè)計(jì)的復(fù)雜度.
用戶(hù)約束文件是由用戶(hù)即電路設(shè)計(jì)者,按照自己的設(shè)計(jì)特點(diǎn)和需求,參照FPGA的硬件結(jié)構(gòu),對(duì)EDA設(shè)計(jì)流程中的部分步驟和內(nèi)容做出約束和指導(dǎo)的文件.
現(xiàn)階段也有部分FPGA軟件采用UCF文件,例如Xilinx的ISE,但是在它的UCF文件中只是對(duì)芯片I/O引腳和一些時(shí)序進(jìn)行約束[6].本文提出的多FPGA分割工具中使用的UCF不但可以對(duì)系統(tǒng)的結(jié)構(gòu)信息進(jìn)行描述,還可以針對(duì)邏輯和連線進(jìn)行約束.
用戶(hù)約束文件是ucf格式的文件,一部分內(nèi)容由用戶(hù)利用本文提供的EDA工具進(jìn)行編寫(xiě),其余部分內(nèi)容由本文的工具按照一定規(guī)則自動(dòng)生成.在用戶(hù)編寫(xiě)過(guò)程中,EDA工具能提供固定的格式以及內(nèi)容限定.約束multi-FPGA系統(tǒng)分割的UCF文件包括下列信息:劃分子模塊的個(gè)數(shù)、劃分后每個(gè)子模塊的名稱(chēng)及對(duì)應(yīng)multi-FPGA系統(tǒng)中FPGA的序號(hào)、整個(gè)電路中的控制信號(hào)、電路中指定要分割的連線、模塊之間根據(jù)系統(tǒng)結(jié)構(gòu)需要增加的貫穿連線.
針對(duì)其中指定要分割的連線以及貫穿連線部分,用戶(hù)只需要把強(qiáng)調(diào)需求的內(nèi)容編寫(xiě)在UCF內(nèi),分割工具會(huì)在初始化遍歷網(wǎng)表的過(guò)程中分析所有連線,并把需要進(jìn)行處理的連線自動(dòng)補(bǔ)充打印在UCF中.
在UCF約束下,multi-FPGA系統(tǒng)設(shè)計(jì)的流程如圖2所示.UCF文件可以在設(shè)計(jì)初期編寫(xiě),也可以在EDA工具各步驟中,根據(jù)生成的中間結(jié)果結(jié)合用戶(hù)需求進(jìn)行修改并重新載入運(yùn)行.
圖2 在UCF約束下multi-FPGA系統(tǒng)設(shè)計(jì)流程
在本設(shè)計(jì)流程中,綜合器讀取UCF的信息,結(jié)合算法對(duì)電路進(jìn)行綜合,同時(shí)完成模塊劃分和標(biāo)注;UCF內(nèi)信息指導(dǎo)分割工具,結(jié)合綜合結(jié)果對(duì)電路進(jìn)行分割,分割生成N(N為multi-FPGA系統(tǒng)中FPGA的個(gè)數(shù))個(gè)子網(wǎng)表文件;映射、布局布線以及碼流生成工具分別針對(duì)每個(gè)子網(wǎng)表文件繼續(xù)EDA流程,最終生成N個(gè)配置文件并分別下載到multi-FPGA系統(tǒng)中的N個(gè)FPGA中,完成multi-FPGA系統(tǒng)的設(shè)計(jì)工作.
multi-FPGA 系統(tǒng)設(shè)計(jì)的核心問(wèn)題是將電路模塊化,使每個(gè)模塊對(duì)應(yīng)multi-FPGA系統(tǒng)中每一個(gè)FPGA,而這種模塊化通常在分割步驟中實(shí)現(xiàn)[7-8].
本文提出的分割方法除借鑒傳統(tǒng)分割原則外,還結(jié)合用戶(hù)約束文件進(jìn)行了部分人為干涉,不僅從物理層面考慮,還考慮了模塊功能的完整性.
綜合工具和分割工具都會(huì)讀取UCF文件中關(guān)于multi-FPGA系統(tǒng)結(jié)構(gòu)的信息,包括multi-FPGA系統(tǒng)由幾個(gè)FPGA組成、每個(gè)FPGA在系統(tǒng)中對(duì)應(yīng)的編號(hào)及名稱(chēng)、電路的時(shí)鐘信號(hào)名稱(chēng)等信息,以指導(dǎo)后續(xù)工作的進(jìn)行.
2.2.1 模塊的劃分與標(biāo)注
綜合過(guò)程對(duì)模塊的劃分和標(biāo)注是分割工具的主要參照標(biāo)準(zhǔn),為了更好地還原用戶(hù)的設(shè)計(jì)意圖,在用戶(hù)設(shè)計(jì)電路時(shí),需要在電路描述中對(duì)不同模塊進(jìn)行標(biāo)注命名,同時(shí)把這些作為標(biāo)注的名稱(chēng)記錄在UCF文件中.在綜合過(guò)程中,綜合工具將RTL級(jí)或行為級(jí)電路連接轉(zhuǎn)換為門(mén)級(jí)電路連接,同時(shí)按照電路的功能,參照UCF文件中的約束條件,根據(jù)電路的自然邊界將電路劃分為若干子模塊,并且對(duì)子模塊中每個(gè)基本邏輯單元進(jìn)行標(biāo)注命名,這樣綜合產(chǎn)生的每一個(gè)基本邏輯單元的名稱(chēng)都包括它所屬子模塊的名稱(chēng).
根據(jù)用戶(hù)約束文件的內(nèi)容及功能所述,用戶(hù)可以在得到綜合結(jié)果后結(jié)合自己的需求和目標(biāo)修改UCF文件和電路描述文件,重新載入綜合器,以得到更適合設(shè)計(jì)預(yù)期的結(jié)果,同時(shí)可以參照綜合結(jié)果在UCF文件中添加約束條件.
2.2.2 分割工具的具體算法
分割過(guò)程完成了將一個(gè)完整電路信息的網(wǎng)表,分割成若干彼此相對(duì)獨(dú)立的電路網(wǎng)表的工作.
分割工具以綜合輸出的EDIF網(wǎng)表和UCF文件作為輸入文件,首先遍歷綜合輸出網(wǎng)表中的每一個(gè)基本邏輯單元,辨識(shí)基本邏輯單元的名稱(chēng),結(jié)合multi-FPGA系統(tǒng)中FPGA的個(gè)數(shù)和UCF文件中用戶(hù)添加的模塊標(biāo)注名稱(chēng)以及FPGA的名稱(chēng)和編號(hào)信息,給每一個(gè)基本邏輯單元增加一個(gè)分割屬性,屬性值為該基本邏輯單元應(yīng)屬multi-FPGA系統(tǒng)中FPGA的編號(hào);接下來(lái)遍歷綜合輸出網(wǎng)表中的每一個(gè)連線,首先對(duì)UCF文件中指定的需要分割的連線進(jìn)行分割.分割工具將其他UCF文件沒(méi)有明確約束但不屬于同一個(gè)FPGA的兩個(gè)邏輯單元之間的連線切斷,在斷開(kāi)處分別加上I/O;最后,將屬于同一FPGA的所有邏輯單元和連線進(jìn)行整合分類(lèi),生成若干個(gè)新的,并對(duì)應(yīng)于multi-FPGA系統(tǒng)中各個(gè)FPGA的子網(wǎng)表文件.
在綜合結(jié)果的網(wǎng)表中會(huì)有一部分衍生邏輯單元由于所屬模塊不明確而沒(méi)有標(biāo)注命名.分割工具將通過(guò)分析該邏輯單元與相鄰有標(biāo)注邏輯單元的連接緊密程度來(lái)進(jìn)行分割分配.具有控制功能或與其他模塊均緊密關(guān)聯(lián)的模塊將被分配到主芯片(main-chip)中.
2.2.3 控制信號(hào)的分割與分配
分割過(guò)程中對(duì)時(shí)鐘信號(hào)采用了在單個(gè)芯片內(nèi)復(fù)制并在系統(tǒng)中全局控制的方法:時(shí)鐘信號(hào)是FPGA器件內(nèi)部邏輯模塊工作所必須的,分割工具將時(shí)鐘信號(hào)在各個(gè)FPGA內(nèi)部重新生成.所有FPGA的時(shí)鐘信號(hào)由系統(tǒng)時(shí)鐘控制.這樣,就解決了信號(hào)在FPGA之間傳遞可能引起偏差的問(wèn)題,保證了整個(gè)multi-FPGA系統(tǒng)的時(shí)序同步性.
2.2.4 multi-FPGA系統(tǒng)的配置
multi-FPGA系統(tǒng)中各個(gè)FPGA的連接通過(guò)FPGA的I/O管腳和PCB板上預(yù)置的線路完成.分割結(jié)束后生成N個(gè)子網(wǎng)表文件,N為multi-FPGA系統(tǒng)中FPGA的個(gè)數(shù).
在每個(gè)FPGA中,將分割后的子網(wǎng)表作為輸入,結(jié)合單個(gè)FPGA的EDA設(shè)計(jì)流程,完成對(duì)此芯片的映射、布局、布線、碼流生成及下載.
上述結(jié)合UCF的multi-FPGA系統(tǒng)分割方法優(yōu)點(diǎn)在于:緊密地結(jié)合了用戶(hù)的設(shè)計(jì)理念和需求,從電路描述階段開(kāi)始進(jìn)行人為的模塊標(biāo)注命名,實(shí)現(xiàn)了人為干涉和設(shè)計(jì)自動(dòng)化的結(jié)合;分割思路簡(jiǎn)單清晰,避免了在具有獨(dú)立功能模塊內(nèi)部由于分割產(chǎn)生的不必要的延遲,并大大提高了系統(tǒng)劃分的效率;分割結(jié)束后就把問(wèn)題從multi-FPGA系統(tǒng)的設(shè)計(jì)簡(jiǎn)化成了幾個(gè)對(duì)單FPGA設(shè)計(jì)的問(wèn)題,避免了算法復(fù)雜的全局布局和全局布線,降低了系統(tǒng)設(shè)計(jì)的復(fù)雜度和難度.
利用multi-FPGA系統(tǒng)的EDA工具設(shè)計(jì)需要參照multi-FPGA系統(tǒng)的硬件結(jié)構(gòu),即PCB板的設(shè)計(jì)結(jié)構(gòu).圖3為一個(gè)9芯片的multi-FPGA系統(tǒng)簡(jiǎn)圖.圖中main-chip為主芯片,圍繞在主芯片周?chē)?個(gè)芯片以順時(shí)針?lè)较蚍謩e為chip0~chip7.各芯片與相鄰芯片之間的信號(hào)傳輸,通過(guò)芯片的I/O和PCB板上的線路連接直接實(shí)現(xiàn);非相鄰芯片之間的信號(hào)傳輸,通過(guò)在介于這兩個(gè)芯片之間的芯片中加貫穿連線來(lái)實(shí)現(xiàn).每個(gè)芯片的時(shí)鐘控制端都引出并匯集在系統(tǒng)的時(shí)鐘控制端,電路的時(shí)鐘信號(hào)通過(guò)系統(tǒng)的時(shí)鐘控制電路輸入,從而保證系統(tǒng)的時(shí)序同步.
在利用EDA工具進(jìn)行multi-FPGA系統(tǒng)設(shè)計(jì)之前,用戶(hù)需要按照EDA工具規(guī)定的格式及電路設(shè)計(jì)的內(nèi)容,設(shè)置用戶(hù)約束文件的內(nèi)容.UCF的內(nèi)容及形式包括:系統(tǒng)被劃分的模塊數(shù)量,即例如FPGA的個(gè)數(shù)9,每個(gè)模塊的名稱(chēng)及其在multi-FPGA系統(tǒng)中對(duì)應(yīng)的FPGA的編號(hào),例如chip0~chip7以及main-chip,分割過(guò)程中必須分割的連線名稱(chēng)及分割后對(duì)應(yīng)的I/O,需要添加的貫穿連線的名稱(chēng)及對(duì)應(yīng)的I/O.
圖3 一個(gè)9芯片multi-FPGA系統(tǒng)簡(jiǎn)圖
利用文中介紹的分割工具,將一個(gè)規(guī)模較大的電路分割成了9個(gè)相對(duì)獨(dú)立、分別對(duì)應(yīng)于系統(tǒng)中9個(gè)芯片的子網(wǎng)表文件.分割結(jié)果如表1所示,其中multi-FPGA系統(tǒng)中9個(gè)FPGA全部使用本文自主研發(fā)的基于SOI工藝輻射加固的FPGA VS1000系列,每個(gè)FPGA有208個(gè)I/O引腳以及576個(gè)邏輯資源.所用實(shí)例名為pingpongd8.v,內(nèi)容包括描述8個(gè)獨(dú)立的乒乓球運(yùn)動(dòng)軌跡的電路以及系統(tǒng)控制端.在電路描述中,對(duì)8個(gè)乒乓球的模塊分別命名為 pingpong0~pingpong7,并在 UCF文件中做相應(yīng)的標(biāo)注.分割結(jié)果顯示,分割工具將具有3 347個(gè)基本邏輯單元的原始文件按8個(gè)乒乓球及控制端的劃分方式分成了9個(gè)子網(wǎng)表,每個(gè)子網(wǎng)表所占用的邏輯資源及I/O數(shù)量滿(mǎn)足單個(gè)FPGA的容量.
然后將9個(gè)網(wǎng)表文件按照單個(gè)FPGA設(shè)計(jì)流程逐個(gè)進(jìn)行映射、布局布線、碼流生成等操作,生成9個(gè)對(duì)應(yīng)于各個(gè)FPGA的碼流文件并下載到相應(yīng)的芯片中,最終完成了本例9FPGA的multi-FPGA系統(tǒng)設(shè)計(jì).
通過(guò)上述方式,就把設(shè)計(jì)任務(wù)由用一個(gè)系統(tǒng)實(shí)現(xiàn)一個(gè)大規(guī)模集成電路轉(zhuǎn)換成為用9個(gè)芯片實(shí)現(xiàn)9個(gè)確定連接關(guān)系的電路,從而從基本思路上大大簡(jiǎn)化了multi-FPGA系統(tǒng)設(shè)計(jì)的復(fù)雜性,提高了劃分效率.結(jié)合UCF文件的約束和指導(dǎo),從用戶(hù)的設(shè)計(jì)意圖出發(fā),保證電路各模塊功能和結(jié)構(gòu)上的完整性.
表1 對(duì)實(shí)例pingpongd8的分割結(jié)果
1)分割過(guò)程以功能模塊為單位進(jìn)行劃分,使各個(gè)FPGA的功能清晰獨(dú)立,并且彌補(bǔ)了在寄存器級(jí)劃分導(dǎo)致子系統(tǒng)間連線數(shù)目過(guò)多并容易產(chǎn)生延遲的不足;分割之后的流程完全簡(jiǎn)化為針對(duì)單個(gè)FPGA進(jìn)行的設(shè)計(jì),相對(duì)于以整個(gè)系統(tǒng)為對(duì)象進(jìn)行全局布局布線,提高了系統(tǒng)劃分的效率,大大降低了布局布線的難度和復(fù)雜性;加入用戶(hù)約束文件的約束和指導(dǎo),在整個(gè)EDA設(shè)計(jì)過(guò)程中參照UCF文件并實(shí)時(shí)反饋,可以做到由用戶(hù)指導(dǎo)自動(dòng)化設(shè)計(jì)工具,用戶(hù)可以在一定程度上根據(jù)自己設(shè)計(jì)思路和需求,對(duì)整個(gè)系統(tǒng)設(shè)計(jì)做出指導(dǎo).本分割方法適用于在電路描述中模塊劃分清晰、各模塊功能定義較明確的大規(guī)模電路設(shè)計(jì).
2)當(dāng)用戶(hù)的大規(guī)模集成電路設(shè)計(jì)模塊化不夠清晰或者模塊之間的聯(lián)系過(guò)于緊密時(shí),利用本算法分割出的各個(gè)子模塊之間的連線會(huì)比較多,單個(gè)FPGA的I/O數(shù)目可能成為限制;貫穿連線的添加也會(huì)造成FPGA的I/O負(fù)擔(dān).針對(duì)這兩個(gè)問(wèn)題的對(duì)策是:分割過(guò)程中加強(qiáng)全局布局的考慮,對(duì)子模塊的位置信息進(jìn)行分析和調(diào)整,以減少貫穿連線的添加;以模塊自然邊界劃分為基礎(chǔ),對(duì)于多連線邊界進(jìn)行拆分重組,適當(dāng)調(diào)整模塊歸屬,以減少I(mǎi)/O的使用.
[1]LADDHA S,De KUMAR B.EDA tools and design methodology for multi-fpga designing/prototyping[EB/OL].[2009-11 -16].http://http://www.design-reuse.com/articles/22074/for-multi-fpga-designing-prototyping.html.
[2]HIDALGO J I,LANCHARES J,HERMIDA R.Partitioning and placement for multi-fpga systems using genetic algorithms[C]//Proceedings of the 26th Euromicro Conference.Washington,DC:IEEE Xplore,2000:204 -211.
[3]HAUCK S,BORRIELLO G.Pin assignment for multi-FPGA systems[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,1997,16(9):956-964.
[4]ARCE-NAZARIO R A,JIMENEZ M,RODRIGUEZ D.High-level paritioning of discrete signal transforms for multi-FPGA architectures[C]//Proceedings of the 2006 International Conference on Field-Programmable Logic and Applications.Washington,DC:IEEE Xplore,2006:1 -4.
[5]胡文彬,吳劍旗,洪一.多FPGA驗(yàn)證平臺(tái)引腳限制的解決方案[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,33(10):1519-1522.
[6]薛小剛,葛毅敏.Xinlinx ISE 9.X FPGA/CPLD設(shè)計(jì)指南[M].北京:人民郵電出版社.2007:173-207.
[7]宋威,方穗明,姚丹,等.多FPGA設(shè)計(jì)的時(shí)鐘同步[J].計(jì)算機(jī)工程,2008,34(7):245-247.
[8]HAUCK S,BORRIELLO G.Logic partition orderings for multi-FPGA systems[C]//Proceedings of the 1995 ACM Third International Symposium on Field-Programmable Gate Arrays.New York,NY:ACM,1995:32-38.
[9]SUH Jinwoo,KANG Dong-In,CRAGO S P.A communication scheduling algorithm for multi-FPGA system[C]//Proceedings of the 2000 IEEE Symposium on Field-Programmable Custom Computing Machines.Washington,DC:IEEE Computer Society,2000:299 -300.
[10]VOOTUKURU M,VEMURI R,KUMAR N.Resource constrained RTL partitiong for synthesis of multi-FPGA design[C]//Proceedings of the Tenth International Conference on VLSI Design:VLSI in Multimedia Applications.Washington,DC:IEEE Computer Society,1997:140-144.
An efficient partitioning method with UCF for a multi-FPGA system
ZHANG Qian-li1,2,YU Fang2,LIU Zhong-li1,LI Yan2,CHEN Liang2,LI Ming2,GUO Xu-fen2
(1.Institute of Semiconductor,Chinese Academy of Sciences,100083 Beijing,China;2.Institute of Microelectronics,Chinese Academy of Sciences 100029 Beijing,China)
FPGA has fixed number of I/O or CLB,which resulting in a limitation to the implementation of a very large complex system in a single FPGA.This paper addresses a partitioning method used for a multi-FPGA system implementation with partly guidance of User Constraint File and FPGA EDA flow.The partitioning method can improve the partitioning efficiency,and reduce the complexity of a multi-FPGA system design.Based on the proposed method and the multi-FPGA system architecture,a partitioning tool was implemented,which has the capability of designing a nine-chip multi-FPGA system.
FPGA;EDA;UCF;multi-FPGA system;partitioning
TP47
A
0367-6234(2012)07-0144-05
2011-07-15.
張倩莉,(1986-),女,博士研究生;
于 芳,(1960-),女,研究員,博士生導(dǎo)師;
劉忠立,(1940-),男,研究員,博士生導(dǎo)師.
張倩莉,zhangqianli@ime.ac.cn.
(編輯 張 紅)