眾所周知,,目前的FPGA EDA設(shè)計(jì)軟件大都運(yùn)行在x86的CPU上,而在很多領(lǐng)域,,F(xiàn)PGA加速器又可以作為CPU的協(xié)處理器進(jìn)行計(jì)算加速,。那么,F(xiàn)PGA本身是否可以用來(lái)對(duì)FPGA EDA,,比如綜合,、布局、布線的過(guò)程進(jìn)行加速呢,?
前陣子在Reddit上看到了這個(gè)問(wèn)題,,引發(fā)了很多思考,后來(lái)查了些資料,,還真有這么一本書(shū)在一定程度上系統(tǒng)解答了這個(gè)問(wèn)題:
這本書(shū)研究了加速EDA算法的硬件平臺(tái),,如ASIC,F(xiàn)PGA和GPU,。覆蓋范圍包括討論在何種條件下使用一個(gè)平臺(tái)優(yōu)于另一個(gè)平臺(tái),,例如,當(dāng)EDA問(wèn)題具有高度的數(shù)據(jù)并行性時(shí),,GPU通常是首選平臺(tái),,而當(dāng)問(wèn)題具有更多的控制因素時(shí),F(xiàn)PGA可能是首選的,。書(shū)里還給出了幾種EDA算法(故障仿真,、故障表生成,、SPICE模型卡評(píng)估、基于蒙特卡洛的統(tǒng)計(jì)靜態(tài)時(shí)序分析,、布爾可滿足性)的加速結(jié)果,,與這些算法的單核實(shí)現(xiàn)相比,可將運(yùn)行速度提高800倍以上,。
該書(shū)作在如何最好地利用并行性來(lái)加速EDA算法方面給出了很有價(jià)值的參考,。書(shū)中還提出了一種在一組約束條件下,從常規(guī)單處理器代碼中自動(dòng)提取SIMD(單指令多數(shù)據(jù)流)并行性的方法,。使用這種方法,,這種單處理器代碼可以自動(dòng)轉(zhuǎn)換為GPU代碼,,實(shí)現(xiàn)顯著加速,。這種方法特別有用,,因?yàn)椴煌腉PU通常有不同的規(guī)格,在這種情況下手工生成GPU代碼變得不太現(xiàn)實(shí),。
該書(shū)提供了在加速特定EDA算法時(shí)使用ASIC、GPU還是FPGA的指導(dǎo)方針,,并用在這些平臺(tái)上實(shí)現(xiàn)的一個(gè)具體示例(布爾可滿足性)驗(yàn)證了這些建議,;通過(guò)介紹可供讀者使用的示例算法來(lái)幫助讀者確定如何最好地加速其EDA算法;討論一種自動(dòng)生成GPU代碼的方法(給出一定約束下的常規(guī)單處理器代碼的條件下),。
其中在該書(shū)的第五章唯一提到了FPGA平臺(tái)加速,,也就是Accelerating Boolean Satisfiability on an FPGA章節(jié),提出了一種基于FPGA的SAT方法,,在該方法中,,Implication Graph的遍歷和Conflict Clause的生成是在硬件中并行執(zhí)行的,并且Clause Literal存儲(chǔ)在FPGA Slice單元里,,為了解決復(fù)雜的SAT問(wèn)題,,啟發(fā)式地將clause劃分為許多“bin”,每個(gè)bin都可以fit進(jìn)FPGA中,,最后得到結(jié)論,,在使用了Virtex-4 (XC4VFX140) FPGA 之后,可以比MiniSAT(純軟件最好的算法)快90倍,。但以上這些也僅僅涉及到綜合中的一部分,,對(duì)于布局布線等其他EDA流程沒(méi)有深入研究,而且全書(shū)也沒(méi)有特別針對(duì)FPGA EDA算法,,而是對(duì)幾個(gè)一般性EDA問(wèn)題做了探討,。
也許未來(lái)會(huì)有有人出一本專門講FPGA EDA加速平臺(tái)的書(shū),再或許,,有人會(huì)做一款專門用于FPGA EDA加速的SoC出來(lái)呢,?:)
更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<