用Synplify Premier加快FPGA設計時(shí)序收斂
從 2002 年到 2003 年期間開(kāi)始,很多的 EDA 供應商開(kāi)始考慮將從 ASIC 中得到的具有物理意識的綜合技術(shù)應用到 FPGA 設計中,但是他們并沒(méi)有進(jìn)一步將這種思路深入下去,而 Synplicity 公司新的基于圖形的綜合方法是一個(gè)例外,現在沒(méi)有供應商能提供具有布局意識的 RTL 綜合工具用于 FPGA 設計。問(wèn)題是,與 ASIC 中的連線(xiàn) “ 按序構建 ” 不同的是, FPGA 具有固定數量的預先確定的布線(xiàn)資源,并不是所有的布線(xiàn)都設置成一樣 ( 某些連線(xiàn)短且快,某些長(cháng)而快,某些短而慢,某些長(cháng)而慢 ) 。
對于實(shí)際的情況而言,基于 ASIC 的具有物理意識的綜合可以根據形成設計的已布局單元的附近來(lái)進(jìn)行布線(xiàn)和時(shí)序估計。而對于 FPGA 來(lái)說(shuō),將兩個(gè)邏輯功能放在相鄰的區域并不一定能實(shí)現它們之間的快速連接。 - 取決于可用的布線(xiàn)資源,將相連接的邏輯功能布局位置更遠可能反而能獲得更好的布線(xiàn)和時(shí)序結果,盡管這有一點(diǎn)違背常理。這就是為什么從 ASIC 設計中得來(lái)的具有物理意識的綜合技術(shù)用于 FPGA 架構時(shí)并不能得到最佳結果的原因。同樣,使用這些技術(shù)的設計流程需要大量耗時(shí)的前端 ( 綜合 ) 與后端 ( 布局與布線(xiàn) ) 引擎之間的設計反復,以獲得相關(guān)性和時(shí)序收斂。
與 FPGA 架構相關(guān)的一些考量
在詳細介紹基于圖形的物理綜合概念之前,先了解設計任務(wù)的復雜性很重要。正如前面談到的, FPGA 具有固定的連接資源,所有連線(xiàn)已經(jīng)構建好,但并不是所有的路徑都是一樣的 ( 有短的、中等的和長(cháng)的連線(xiàn),而每個(gè)連線(xiàn)都可能具有快、中等或者慢的特性 ) 。

圖 2 :比較傳統和基于圖形的布局。
每個(gè)路徑都可能具有多個(gè) “ 抽頭點(diǎn) ”( 就像高速路的出口道 ) 。這里的問(wèn)題是,你可能具有一個(gè)能迅速地將一個(gè)信號從源點(diǎn)函數 ( 高速路的最初的入口道 ) 快速地傳遞到一個(gè)目的函數 ( 高速路的最后出口道 ) 的快速路徑。然而,如果我們對一個(gè)內部抽頭點(diǎn)增加第二個(gè)目的函數,這可能大大地減慢信號速度。
而且,當今 FPGA 的主流架構基于一個(gè)查找表 (LUT) 具有幾個(gè)輸入和單個(gè)輸出的概念。一些 FPGA 架構具有通過(guò)與查找表相關(guān)的每個(gè)輸入輸出路徑的不同延時(shí)。然而,更重要的事實(shí)是,到 LUT 的每個(gè)輸入可能只能使用一部分的不同連線(xiàn)類(lèi)型。如果來(lái)自一個(gè) LUT 的輸出驅動(dòng)另外一個(gè) LUT ,它們之間可能同時(shí)存在慢速和快速的路徑,這取決于我們在接收 LUT 上所使用的特定輸入 。
總的情形被 FPGA 架構的分層特性進(jìn)一步復雜化。例如,一個(gè)小的邏輯模塊可能有幾個(gè) LUT ;在一個(gè)較大的邏輯模塊中有幾個(gè)這樣的小模塊;在整個(gè)的 FPGA 中具有大量的這種大邏輯模塊。在這些大邏輯模塊中的某個(gè)邏輯塊中,一個(gè) LUT 的輸出與另外一個(gè) LUT 的輸入直接相連接的概率很??;為了實(shí)現額外的連接,可能必須繞道邏輯模塊的外部,然后再繞回到模塊內部來(lái)實(shí)現。這一點(diǎn)再次地說(shuō)明所處理問(wèn)題的復雜性:如果你知道將它們放置在什么地方以及使用哪個(gè)引腳,將兩個(gè)對象 / 實(shí)例放在不同的邏輯模塊將獲得比放在采用非最佳互連資源的同一模塊中會(huì )得到更短的延時(shí)。
另外,任何被提出的綜合方案必須解決圍繞固定的硬宏資源,例如 RAM 、乘法器等相關(guān)的連線(xiàn)延時(shí)。同樣的,方案必須解決增加的布線(xiàn)擁塞,這種擁塞常出現在靠近這些硬宏的地方。所有這些硬宏都屬于特定器件具有的,因此任何被提出的方案必須能用于每個(gè) FPGA 系列的每個(gè)器件。
基于圖形的獨特物理綜合方案
能真正處理 FPGA 架構相關(guān)復雜性的具有物理意識的綜合解決方案將以完全不同的觀(guān)點(diǎn)來(lái)處理上述問(wèn)題。這種方法將對 FPGA 中所有連線(xiàn)的特點(diǎn)進(jìn)行描述,包括入口點(diǎn)、端點(diǎn)和內部出口點(diǎn),然后對所有這些連線(xiàn)構建一個(gè) “ 地圖 ” 。對于軟件行業(yè)來(lái)說(shuō),這種地圖被稱(chēng)為圖形 (Graph) ;這就是為什么這種方法稱(chēng)為 “ 基于圖形的物理綜合 ” 的原因。
除了連線(xiàn)本身,這個(gè)圖形還包括這些細節:哪個(gè) LUT 引腳連接到哪類(lèi)的連線(xiàn);通過(guò)每個(gè) LUT 的輸入到輸出的延時(shí)差異;以及器件中的任何硬宏的大小和位置。打個(gè)比方,這類(lèi)似于通過(guò)查地圖來(lái)顯示你將驅車(chē)經(jīng)過(guò)的街道、高速路以及像停車(chē)場(chǎng) ( 硬宏 ) 這樣的地方。當希望穿行于城市中的兩個(gè)地方時(shí),你將使用地圖來(lái)選擇最快的路徑,這個(gè)路徑通常并不是最短的點(diǎn)到點(diǎn)路徑。
類(lèi)似地,基于圖形的物理綜合引擎不是尋找最近的路徑,而是使用一種以互連為中心的方法專(zhuān)注于速度。從最關(guān)鍵的路徑開(kāi)始處理,然后逐步到次關(guān)鍵路徑 ( 這樣確保最關(guān)健的路徑獲得最快的路線(xiàn) ) ,基于圖形的物理綜合引擎將選擇連線(xiàn)和它們相關(guān)的入口點(diǎn)和出口點(diǎn);從這些連線(xiàn)得到電路布局;從這些連線(xiàn)和布局得到準確的延時(shí);最后按照要求進(jìn)行優(yōu)化和設計反復。
關(guān)鍵點(diǎn)是,所有的優(yōu)化和反復在流程的前端部分 ( 綜合 ) 執行?;趫D形的物理綜合的輸出是一種完整布局的網(wǎng)表 ( 包括將與每個(gè)連線(xiàn)相關(guān)聯(lián)的特定 LUT 引腳 ) ,這種網(wǎng)表可以交給 FPGA 的后端布局布線(xiàn)引擎。
最終得到一種一次通過(guò)的、按鍵操作的綜合步驟,下游布局布線(xiàn)引擎不需要 ( 或者需要很少的 ) 設計反復。而且,根據對超過(guò) 200 個(gè)實(shí)際的設計進(jìn)行分析顯示,就系統的總體時(shí)鐘速度而言,基于圖形的物理綜合可以獲得 5% 到 20% 的性能提升。
本文小結
以 ASIC 為中心的具有物理意識的綜合中,連線(xiàn)從布局選擇中衍生出來(lái),與此不同的是,在 FPGA 設計中使用基于圖形的物理綜合時(shí),布局源自于連接線(xiàn)選擇。
對于時(shí)序收斂問(wèn)題,基于已有的 ( 源于 ASIC) 物理綜合引擎可能需要在流程的前端 ( 綜合 ) 與后端 ( 布局布線(xiàn) ) 之間進(jìn)行很多次耗時(shí)的設計反復。在所有這些反復之后,它們可能依然不能收斂。相比較而言,對于 200 多個(gè)采用基于圖形的物理綜合的設計進(jìn)行分析之后顯示, 90% 的設計處于最后實(shí)際時(shí)序的 10% 之內, 80% 的設計在實(shí)際時(shí)序值的 5% 以?xún)?,而采用邏輯綜合的設計只有 30% 在實(shí)際時(shí)序值的 5% 以?xún)?,很多設計的誤差很容易地達到 30% ,甚至更高 ) 。而且,基于圖形的物理綜合能提高 5% 到 20% 的總體時(shí)鐘速度性能。
此外,基于圖形的物理綜合的已布局網(wǎng)表的質(zhì)量大大地提高,這意味著(zhù)時(shí)序驅動(dòng)的布線(xiàn)工具的工作量很少,優(yōu)化了執行,這樣運行將非???。
Synplicity 公司的突破是基于以布線(xiàn)為中心方法的概念,以及以圖形來(lái)表示所有的東西,然后處理該圖形。在經(jīng)歷了大量的研究和開(kāi)發(fā)之后, Synplicity 的綜合專(zhuān)家已經(jīng)創(chuàng )建了一種真正基于圖形的物理綜合解決方案。第一個(gè)具有基于圖表物理綜合特性的產(chǎn)品是 Synplify Premier ,這是一種先進(jìn)的 FPGA 物理綜合工具,專(zhuān)門(mén)針對那些設計復雜、要求采用真正的物理綜合解決方案的高端 FPGA 設計。 Synplify Premier 工具還包括高級的功能,例如 RTL 原級調試以及支持 ASIC 原型設計工具 Synopsys DesignWare 。本文引用地址:http://dyxdggzs.com/article/190173.htm
評論