FPGA設計的五個主要任務:邏輯綜合、門級映射、整體功能邏輯布局、邏輯資源互連布線,最后生成FPGA的bit流,根據常用的FPGA工具流程,這些任務將可以由不同的工具執行,每個步驟的運行時間比例將有所不同,如下圖所示。例如,傳統的布局布線流任務都由FPGA供應商提供的軟件執行,相對應的布局布線工具,因此運行時間主要在布局布線階段。
? ? ?
隨著SoC設計變得更大,需要的FPGA資源也越來越多,時間也會變得更長。例如,大型FPGA芯片如果達到90%利用率,可能需要24小時或更長時間才能完成整個流程;
四分之三的時間都花在布局布線階段。在進行原型設計時,這種長運行時間可能是一個巨大的代價,EDA工具永遠在Shift Left的道路上狂飆就是這個原理,可以幫助客戶節省時間是EDA的宗旨。
言歸正狀,從長遠來看,使用四個FPGA50%利用率的FPGA原型比使用兩個75%利用率的FPGA平臺要劃算,因為節省的迭代時間是非常寶貴的。雖然不是很等價,但由于跨FPGA的資源浪費,所以4片50%利用率也僅僅是估算,讀者不必認真推算。
期望FPGA設計迭代一輪的時間,也就是整個編譯加運行時間為數小時而不是數天,這樣我們就可以更加多次進行重大的bug的修復,并在一天內看到修復的結果在FPGA原型平臺上呈現。事實上,筆者經歷過的團隊,都習慣于在白天進行bug的修復和RTL的更改,然后在下班后的夜間運行,并在第二天早上上班第一時間看到新的結果,人可以休息,機器絕對不可休息。因此,在這個過程中自動化腳本顯得尤為重要。
項目執行過程中,只要我們認真執行,并在最后得到正常運行的FPGA狀態,并且取得了進展,那么長運行時間是可以接受的。最不能忍受的是一些工程師由于粗心的錯誤,使我們的結果變得無用時,運行時間又特別長,這就非常惱火。
如果整個系統運行時間很長,不允許這樣的迭代周期,那么建議采取一些步驟來取得更好的效果:
1. 添加更多高性能的工作站和FPGA相關軟件License:這允許更大的并行處理和運行時任務的平衡。
2. 更低的FPGA資源利用率:將設計重新劃分為更多的FPGA。分割可能需要一些時間,多的FPGA可能需要一些投資,但這是一項值得投資的投資。總運行時間可以根據設備的使用水平而變化很大,節省大量運行時間,從而更快的shift left。
3. 放松約束:在設計的不太關鍵的部分,可以降低時序目標,以減少工具運行時間。布局布線運行時間不僅取決于利用率,其他因素可能會產生更大的影響,包括時序約束、全局時鐘數量以及驅動BRAM的時鐘數量。基本上,布局布線任務越復雜,運行時間越長。
4. 使用增量編譯:一般而言,FPGA綜合布局布線都有內置的增量編譯選項,執行過程中一定選上這個option,通過不重新處理設計中未更改的部分來減少運行時間。
5. 使用快速流程:一些工具可以選擇關閉某些優化步驟,但代價是降低結果質量。
審核編輯:劉清
-
FPGA設計
+關注
關注
9文章
428瀏覽量
26632 -
EDA工具
+關注
關注
4文章
268瀏覽量
31939 -
SoC芯片
+關注
關注
1文章
617瀏覽量
35044 -
RTL
+關注
關注
1文章
385瀏覽量
59952
原文標題:處理FPGA原型設計需要多長時間?
文章出處:【微信號:于博士Jacky,微信公眾號:于博士Jacky】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論