www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號(hào)精選 > FPGA技術(shù)江湖

優(yōu)化 FPGA HLS 設(shè)計(jì)

用工具用 C 生成 RTL 的代碼基本不可讀。以下是如何在不更改任何 RTL 的情況下提高設(shè)計(jì)性能。

介紹

高級(jí)設(shè)計(jì)能夠以簡潔的方式捕獲設(shè)計(jì),從而減少錯(cuò)誤并更容易調(diào)試。然而,經(jīng)常出現(xiàn)的問題是性能權(quán)衡。在高度復(fù)雜的 FPGA 設(shè)計(jì)中實(shí)現(xiàn)高性能需要手動(dòng)優(yōu)化 RTL 代碼,而這對于HLS開發(fā)環(huán)境生成的 RTL 代碼來說是不可能的。然而,存在一些解決方案,可以通過使用 FPGA 工具設(shè)置優(yōu)化設(shè)計(jì)本身來最大限度地減少性能損失。

高效找到正確的 FPGA 工具設(shè)置

盡管設(shè)計(jì)人員知道 FPGA 工具設(shè)置的存在,但這些設(shè)置往往沒有得到充分利用。通常,只有在出現(xiàn)設(shè)計(jì)問題時(shí)才使用工具設(shè)置。然而,對于已達(dá)到性能目標(biāo)的設(shè)計(jì),還有額外10% 至 50% 性能改進(jìn)的巨大潛力。

上面的核心問題在于選擇正確的工具設(shè)置,因?yàn)椴煌?FPGA 工具提供 30 到 70 種用于綜合和布局布線的設(shè)置。可能的組合太多了。可以編寫腳本來創(chuàng)建不同的運(yùn)行并嘗試推薦的標(biāo)準(zhǔn)指令/策略。

最后一個(gè)挑戰(zhàn)問題是計(jì)算能力不足。典型的嵌入式應(yīng)用程序是在單臺(tái)計(jì)算機(jī)上設(shè)計(jì)的。運(yùn)行多個(gè)編譯需要更多的計(jì)算能力。這是與時(shí)間的權(quán)衡。如果可以同時(shí)運(yùn)行更多(使用云)綜合策略,周轉(zhuǎn)時(shí)間將會(huì)更短。

如何優(yōu)化高級(jí)設(shè)計(jì) - Sobel 濾波器

Sobel 濾波器是視頻處理中常用的參考設(shè)計(jì)。該參考設(shè)計(jì)針對具有 Dual ARM® Cortex®-A9 MPCore? 的 FPGA。

我們使用 Xilinx HLS 工具來打開此設(shè)計(jì)。

它的時(shí)鐘周期為 5.00 ns,即 200 MHz。從時(shí)序估計(jì)(見下文)來看,它仍然缺少 506 ps 的時(shí)序,這相當(dāng)于 181 MHz,比目標(biāo)速度低 10%。

導(dǎo)出到 RTL 項(xiàng)目

在不更改 C++ 代碼的情況下,將設(shè)計(jì)導(dǎo)出到 RTL 中的 Vivado 項(xiàng)目中。在“解決方案”下,選擇“導(dǎo)出 RTL”。

它將在后臺(tái)執(zhí)行 Vivado 并生成項(xiàng)目文件 (XPR)。它還應(yīng)該編譯設(shè)計(jì),并且應(yīng)該在控制臺(tái)中看到實(shí)際的時(shí)序詳細(xì)信息。完成后,在/solution/impl/verilog/文件夾中找到項(xiàng)目文件。

找到一個(gè) XPR 文件。可以通過Vivado打開它來驗(yàn)證它,可以看到生成的RTL源碼。

優(yōu)化時(shí)序

下一步是使用名為InTime 的設(shè)計(jì)探索工具(https://www.plunify.com/en/free-evaluation/)。(同樣,可以自己編寫腳本來嘗試 Vivado 工具中提供的標(biāo)準(zhǔn)指令或策略)可以使用免費(fèi)評估許可證在本地運(yùn)行 InTime ?;蛘?,使用一些免費(fèi)積分和預(yù)裝 FPGA 工具注冊 Plunify云帳戶。

啟動(dòng)InTime后,打開項(xiàng)目文件。當(dāng)提示要使用的 Vivado 版本時(shí),請使用“相同”的 Vivado 版本。例如,如果使用2017.3 HLS,請使用2017.3 Vivado。

選擇“熱啟動(dòng)”。“熱啟動(dòng)”是基于之前其他設(shè)計(jì)經(jīng)驗(yàn)的推薦策略列表。

單擊“Start Recipe”開始優(yōu)化。如果在云上運(yùn)行,則應(yīng)同時(shí)運(yùn)行多個(gè)編譯以減少時(shí)間。

優(yōu)化過程和結(jié)果

在第一輪(“熱啟動(dòng)”)之后,最好的結(jié)果是“hotstart_1”策略。然而,它仍然缺少-90ps 的時(shí)序。

我們對“HotStart_1”的結(jié)果應(yīng)用了名為“Extra Opt Exploration”的第二個(gè)秘訣。這側(cè)重于優(yōu)化關(guān)鍵路徑。這是一種迭代優(yōu)化,只要每次迭代都顯示出改進(jìn),就會(huì)不斷重復(fù)。如果達(dá)到時(shí)間目標(biāo)或未能顯示出改進(jìn),它最終將自動(dòng)停止。

經(jīng)過兩輪優(yōu)化,共15次編譯,該設(shè)計(jì)能夠滿足200Mhz的性能目標(biāo)。這是無需對 RTL 源代碼進(jìn)行任何更改即可實(shí)現(xiàn)的。

更高水平的性能

要達(dá)到更高的性能水平,需要在所有方面進(jìn)行優(yōu)化——架構(gòu)設(shè)計(jì)、代碼和工具。工具設(shè)置探索可以克服更高級(jí)別設(shè)計(jì)的性能權(quán)衡,而不會(huì)失去它首先帶來的生產(chǎn)力優(yōu)勢。這對于高級(jí)設(shè)計(jì)師來說是雙贏。



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉