以下文章來源于OpenFPGA,作者碎碎思
在 FPGA 的設(shè)計流程里,有一個名字幾乎無人不知:PathFinder。
自 1990 年代末以來,PathFinder 一直是 FPGA 布線(routing)階段的主力算法,為設(shè)計工具提供“能連通又不重疊”的路徑規(guī)劃方案。
但最近 EPFL + AMD 的團隊在一篇新研究中指出:當(dāng)電路越來越復(fù)雜、連線越來越密,「PathFinder 有時會失敗」——它的局限性終于被“撕開了”。
今天我們就來聊聊:
PathFinder 為什么關(guān)鍵?
它的經(jīng)典缺點是什么?
在 FPGA 世界里,我們該如何看待和應(yīng)對這個算法的瓶頸?
一、什么是 PathFinder?它為什么重要
在 FPGA 的后端流程里,布線是最關(guān)鍵的一步:你已經(jīng)確定了模塊擺放(placement),下一步是把各個信號連通起來。這個過程中要滿足以下要求:
不重疊(線路不能沖突)
延遲受限(路徑不要過長)
布線資源有限
PathFinder 算法正是為了解決這類布線圖形化問題的經(jīng)典工具:它會把信號當(dāng)做“樹”(tree)來連通多個目標點(多點網(wǎng)絡(luò)),在布線資源有限的情況下生成通道。
因為 FPGA 的互連資源(routing wires、開關(guān)節(jié)點)是稀缺的,布線越好、沖突越少,設(shè)計的性能和可路由性就越高。PathFinder 的好壞,直接影響設(shè)計能不能“布”通、時序能不能達標。
正因為它穩(wěn)定、可靠、行之多年,它就成了幾乎所有 FPGA 工具鏈里默認的布線模塊。
二、PathFinder 的經(jīng)典缺陷:在大規(guī)模電路里“偶爾翻車”
雖說 PathFinder 長期以來表現(xiàn)“異常穩(wěn)定”,但隨著設(shè)計變大,它的盲點也慢慢顯現(xiàn)。EPFL / AMD 團隊的研究就揭示了幾個關(guān)鍵弱點:
1. 構(gòu)造出的 routing 樹往往“比必要的更大”
研究指出,PathFinder 在連接節(jié)點時,有時會“過度擴展”樹枝,使得樹形結(jié)構(gòu)本可以更簡潔的情況下被拉得龐大。這樣一來,布線資源被占得更滿,沖突可能性更高。
換句話說,它有時不“精打細算”,而是把可能用得上的路徑都鋪開一點,以保安全,結(jié)果反而減低整體效率。
2. 分支順序敏感性強
在給信號添加不同分支(branch)的時候,PathFinder 的行為很受“添加順序”的影響。不同的順序可能產(chǎn)生完全不同的結(jié)果——有些版本能成功、有些就失敗。團隊發(fā)現(xiàn)在一些“本應(yīng)可布線”的小例子里,PathFinder 表現(xiàn)反常。
也就是說,在復(fù)雜電路里,“順序”這個幾乎看不見的決策,可能決定能不能布線成功。
3. 對極端邊界 /密集連線 /擁塞場景脆弱
在信號非常密集、資源極度緊張的區(qū)域,PathFinder 有時被標簽為 “unroutable”(無法路由),即使理論上是有解的設(shè)計。很多設(shè)計師遇到這類問題時,只能換更大 FPGA、重排模塊、或者放棄部分連接。
這些缺陷在過去不太被注意,是因為設(shè)計規(guī)模沒那么大、資源余量足。但隨著 FPGA 越做越復(fù)雜,可能被壓到極限時,這些弱點就暴露出來了。
三、面對 PathFinder 的局限,設(shè)計師怎樣“保命”?
發(fā)現(xiàn)問題容易,能改進才難。下面是幾個在實際工程里常用/建議的對策:
對策 | 說明 |
---|---|
多次嘗試不同參數(shù) / 不同分支順序 | 因為分支順序敏感,給算法多個“重跑機會”,看哪次能成功 |
局部手工布線 / 模塊隔離 | 對于極其擁擠區(qū)域可手工介入,繞開算法盲區(qū) |
分階段布線 / 分層布線 | 先布通關(guān)鍵 /大信號,再布其他線路,降低沖突可能 |
使用替代或增強算法 | 有研究團隊提出改進版本,或在 PathFinder 上做 heuristics 增強 |
優(yōu)化布局(placement) | 布局階段就盡量減少后續(xù)布線難度,為 PathFinder 打基礎(chǔ) |
限制設(shè)計規(guī)模、合理拆分模塊 | 如果設(shè)計太大,分成多個子模塊 / 子系統(tǒng)分別布線 |
這些方法各有利弊,有時得組合使用才穩(wěn)定。
四、小結(jié)
PathFinder 是 FPGA 工具鏈里不可或缺的“布線路徑規(guī)劃器”,但它不是萬能的。
在大規(guī)模、資源緊張的設(shè)計場景中,它的弱點可能導(dǎo)致設(shè)計“明明可做,卻被標簽為不可路由”。
對普通 FPGA 開發(fā)者而言,了解這些局限有助于在設(shè)計早期就規(guī)避坑、在布線階段提升穩(wěn)定性。
下次當(dāng)工具提示“unroutable”時,別急著換板、別急著重寫邏輯,先想想是不是 PathFinder 那棵“樹”一著不好。
-
FPGA
+關(guān)注
關(guān)注
1650文章
22214瀏覽量
627643 -
amd
+關(guān)注
關(guān)注
25文章
5626瀏覽量
138606 -
算法
+關(guān)注
關(guān)注
23文章
4743瀏覽量
96830 -
布線
+關(guān)注
關(guān)注
9文章
808瀏覽量
85789
原文標題:隱形布線之王:深入 PathFinder 在 FPGA 中的角色與缺陷
文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何在FPGA中實現(xiàn)系統(tǒng)設(shè)計
FPGA在人工智能中的應(yīng)用有哪些?
轉(zhuǎn):開源Pathfinder觸覺導(dǎo)航-盲人導(dǎo)航器設(shè)計
請問兩臺藍牙手機在匹配過程中,主從角色的轉(zhuǎn)換過程是怎樣的?
NI在工業(yè)物聯(lián)網(wǎng)中的角色
DLL在FPGA時鐘設(shè)計中的應(yīng)用
基于FPGA玻璃缺陷圖像采集處理系統(tǒng)

DLL在_FPGA時鐘設(shè)計中的應(yīng)用
基于FPGA的玻璃缺陷圖像采集預(yù)處理系統(tǒng)設(shè)計
如何使用FPGA實現(xiàn)CCD掃描缺陷的檢測實時數(shù)據(jù)處理技術(shù)的論文說明

FPGA_ASIC-MAC在FPGA中的高效實現(xiàn)

Codasip加入Intel Pathfinder for RISC-V設(shè)計支持計劃

評論