這種方法在過去需要兩個獨立的開發(fā)團隊,這會增加非重復(fù)性工程成本、開發(fā)與技術(shù)風(fēng)險。此外,該方法還將設(shè)計功能固定在處理器內(nèi)核或可編程邏輯中,使后期優(yōu)化難以進行。人們所需的開發(fā)工具應(yīng)該可實現(xiàn)整個器件的軟件定義開發(fā),并有能力根據(jù)需要將功能從處理器內(nèi)核轉(zhuǎn)移到可編程邏輯,而且非HDL專家也能完成。這正是系統(tǒng)優(yōu)化編譯器的用武之地。系統(tǒng)優(yōu)化編譯器能利用C、C++或OpenCL?等高級語言以軟件方式定義整個系統(tǒng)行為。然后,使用系統(tǒng)優(yōu)化編譯器執(zhí)行處理器系統(tǒng)與可編程邏輯之前的功能分區(qū),該編譯器能夠使功能無縫移動,以便選擇是在處理器系統(tǒng)中運行還是在可編程邏輯中實現(xiàn)。圖1-使用系統(tǒng)優(yōu)化編譯器選擇要加速的功能。通過使用處理系統(tǒng)內(nèi)部的內(nèi)置定時器來為功能執(zhí)行計時。
可找出造成瓶頸的功能,從而創(chuàng)建瓶頸功能。這些瓶頸功能便成為候選,以備通過使用系統(tǒng)優(yōu)化編譯器在可編程邏輯中實現(xiàn)加速。處理系統(tǒng)與可編程邏輯之間的移動是通過系統(tǒng)優(yōu)化編譯器的高層次綜合(可將C、C++、OpenCL程序轉(zhuǎn)換為Verilog或VHDL描述的工具)與軟件定義連接框架之間的結(jié)合來實現(xiàn)的。軟件定義連接框架能夠無縫地將HLS結(jié)果連接至軟件應(yīng)用,設(shè)計團隊使用這種方法,一鍵就能在處理器和可編程邏輯間移動功能。當然在用戶把功能移動到可編程邏輯時,他們也得到了明顯的性能提升,自然這是使用可編程邏輯的結(jié)果。與CPU/GPU解決方案相比,在PL中進行加速還能提高確定性并降低時延,這對諸如ECU和ADAS的應(yīng)用來說是至關(guān)重要的。
圖2-XC6SLX25T-3CSG324I 使用系統(tǒng)優(yōu)化編譯器對資源與性能進行估算。很多汽車應(yīng)用都是使用業(yè)界標準開源庫進行開發(fā),例如在ADAS系統(tǒng)中使用OpenCV或Caffe,或在ECU中使用標準數(shù)學(xué)庫。為加快這些應(yīng)用的開發(fā),系統(tǒng)優(yōu)化編譯器需要能夠支持多個HLS庫,以便開發(fā)人員在其應(yīng)用中使用。系統(tǒng)優(yōu)化編譯器應(yīng)支持多個關(guān)鍵庫,·數(shù)學(xué)庫–提供標準數(shù)學(xué)庫的可綜合實現(xiàn)。·IP庫–為實現(xiàn)FFT、FIR和移位寄存器LUT功能提供IP庫?!ぞ€性代數(shù)庫–提供通用線性代數(shù)功能庫。·任意精度數(shù)據(jù)類型庫–使用有符號和無符號整數(shù)支持非2次冪的任意長度數(shù)據(jù)。該庫允許開發(fā)人員更高效地使用FPGA資源。這些庫的提供為開發(fā)團隊提供相當大的支持,讓開發(fā)團隊不必開發(fā)類似的功能。
EP3SL50F484C2N, XC4003E-3PQ100C, XC6VLX195T-2FFG784C,
EP3SL50F484I3N, XC4003E-4PC84C, XC6VLX195T-3FFG1156C,
EP3SL70F484I4, XC4005-4PQ160C, XC6VLX195T-L1FFG784I,
EP4C10F17C8N, XC4005-6PG156M, XC6VLX240T-1FF1156I,
EP4CE10E22C6N, XC4005E-3PQ100I, XC6VLX240T-1FF784I,
EP4CE10E22C8N, XC4005E-3TQ144C, XC6VLX240T-1FFG1156C,
EP4CE10E22C8N , XC4005E-4PC84C, XC6VLX240T-1FFG1156I,
EP4CE10E22I7, XC4005E-4PC84I, XC6VLX240T-1FFG1759C,
EP4CE10E22I7N, XC4005E-4PG156I, XC6VLX240T-1FFG1759I,
EP4CE10E22I8LN, XC4005E-4PG156M, XC6VLX240T-1FFG784C,
EP4CE10F17C6N, XC4005E-4PQ160I, XC6VLX240T-1FFG784I,
EP4CE10F17C7N, XC4005E-7TQ144C, XC6VLX240T-2FF1156C,
EP4CE10F17C8N, XC4005XL-2PQ100C, XC6VLX240T-2FF1156I,
EP4CE10F17C8N , XC4005XL-3PQ100C, XC6VLX240T-2FF1759I,
EP4CE10F17I7, XC4005XL-3TQ144C, XC6VLX240T-2FFG1156,
EP4CE10F17I7N, XC4006E-3PQ160C, XC6VLX240T-2FFG1156C,
EP4CE10F17I7N , XC4006E-3TQ144I, XC6VLX240T-2FFG1156I,
EP4CE10F17I8LN, XC4006E-4PQ160C, XC6VLX240T-2FFG1759I,
EP4CE10U14I7N, XC4006E-4PQ208I, XC6VLX365T-1FFG1156C,
EP4CE115F23C7N, XC4006E-4TQ144C, XC6VLX365T-1FFG1156I。