吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何優化FPGA HLS設計呢?

冬至子 ? 來源:OpenFPGA ? 作者:碎碎思 ? 2023-10-30 14:34 ? 次閱讀

優化 FPGA HLS 設計

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

image.png

介紹

高級設計能夠以簡潔的方式捕獲設計,從而減少錯誤并更容易調試。然而,經常出現的問題是性能權衡。在高度復雜的 FPGA 設計中實現高性能需要手動優化 RTL 代碼,而這對于HLS開發環境生成的 RTL 代碼來說是不可能的。

然而,存在一些解決方案,可以通過使用 FPGA 工具設置優化設計本身來最大限度地減少性能損失。

高效找到正確的 FPGA 工具設置

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

上面的核心問題在于選擇正確的工具設置,因為不同的 FPGA 工具提供 30 到 70 種用于綜合和布局布線的設置。可能的組合太多了。可以編寫腳本來創建不同的運行并嘗試推薦的標準指令/策略。

最后一個挑戰問題是計算能力不足。典型的嵌入式應用程序是在單臺計算機上設計的。運行多個編譯需要更多的計算能力。這是與時間的權衡。如果可以同時運行更多(使用云)綜合策略,周轉時間將會更短。

如何優化高級設計 - Sobel 濾波器

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

我們使用 Xilinx HLS 工具來打開此設計。

image.png

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

image.png

導出到 RTL 項目

在不更改 C++ 代碼的情況下,將設計導出到 RTL 中的 Vivado 項目中。在“解決方案”下,選擇“導出 RTL”。

image.png

它將在后臺執行 Vivado 并生成項目文件 (XPR)。它還應該編譯設計,并且應該在控制臺中看到實際的時序詳細信息。完成后,在/solution/impl/verilog/文件夾中找到項目文件。

image.png

找到一個 XPR 文件。可以通過Vivado打開它來驗證它,可以看到生成的RTL源碼。

image.png

優化時序

下一步是使用名為InTime 的設計探索工具。(同樣,可以自己編寫腳本來嘗試 Vivado 工具中提供的標準指令或策略)可以使用免費評估許可證在本地運行 InTime 。或者,使用一些免費積分和預裝 FPGA 工具注冊 Plunify云帳戶。

啟動InTime后,打開項目文件。當提示要使用的 Vivado 版本時,請使用“相同”的 Vivado 版本。例如,如果使用2017.3 HLS,請使用2017.3 Vivado。

選擇“熱啟動”。“熱啟動”是基于之前其他設計經驗的推薦策略列表。

image.png

單擊“Start Recipe”開始優化。如果在云上運行,則應同時運行多個編譯以減少時間。

優化過程和結果

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

我們對“HotStart_1”的結果應用了名為“Extra Opt Exploration”的第二個秘訣。這側重于優化關鍵路徑。這是一種迭代優化,只要每次迭代都顯示出改進,就會不斷重復。如果達到時間目標或未能顯示出改進,它最終將自動停止。

image.png

經過兩輪優化,共15次編譯,該設計能夠滿足200Mhz的性能目標。這是無需對 RTL 源代碼進行任何更改即可實現的。

更高水平的性能

要達到更高的性能水平,需要在所有方面進行優化——架構設計、代碼和工具。工具設置探索可以克服更高級別設計的性能權衡,而不會失去它首先帶來的生產力優勢。這對于高級設計師來說是雙贏。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9165

    瀏覽量

    369189
  • 濾波器
    +關注

    關注

    161

    文章

    7860

    瀏覽量

    178928
  • FPGA設計
    +關注

    關注

    9

    文章

    428

    瀏覽量

    26628
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59950
  • HLS
    HLS
    +關注

    關注

    1

    文章

    130

    瀏覽量

    24208
收藏 人收藏

    評論

    相關推薦

    如何在不改變RTL代碼的情況下,優化FPGA HLS設計

    InTime。 前言 高層次的設計可以讓設計以更簡潔的方法捕捉,從而讓錯誤更少,調試更輕松。然而,這種方法最受詬病的是對性能的犧牲。在復雜的 FPGA 設計上實現高性能,往往需要手動優化 RTL 代碼,這也意味著從 C 轉化得到 RTL 基本不可能。其實,使用
    的頭像 發表于 12-20 11:46 ?1852次閱讀
    如何在不改變RTL代碼的情況下,<b class='flag-5'>優化</b><b class='flag-5'>FPGA</b> <b class='flag-5'>HLS</b>設計

    優化 FPGA HLS 設計

    優化 FPGA HLS 設計 用工具用 C 生成 RTL 的代碼基本不可讀。以下是如何在不更改任何 RTL 的情況下提高設計性能。 介紹 高級設計能夠以簡潔的方式捕獲設計,從而
    發表于 08-16 19:56

    怎么利用Synphony HLS為ASIC和FPGA架構生成最優化RTL代碼?

    相比,能夠為通信和多媒體應用提供高達10倍速的更高的設計和驗證能力。Synphony HLS為ASIC 和 FPGA的應用、架構和快速原型生成最優化的RTL。Synphony HLS
    發表于 08-13 08:21

    【正點原子FPGA連載】第一章HLS簡介-領航者ZYNQ之HLS 開發指南

    )對正點原子FPGA感興趣的同學可以加群討論:8767449005)關注正點原子公眾號,獲取最新資料第一章HLS簡介為了盡快把新產品推向市場,數字系統的設計者需要考慮如何加速設計開發的周期。設計加速
    發表于 10-10 16:44

    FPGA高層次綜合HLS之Vitis HLS知識庫簡析

    重要組成部分,所以我們將重點介紹Vitis HLS。LUT 或 SICELUT 或 SICE是構成了 FPGA 的區域。它的數量有限,當它用完時,意味著您的設計太大了!BRAM 或 Block
    發表于 09-07 15:21

    使用Vivado高層次綜合 (HLS)進行FPGA設計的簡介

    Introduction to FPGA Design with Vivado High-Level Synthesis,使用 Vivado 高層次綜合 (HLS) 進行 FPGA 設計的簡介
    發表于 01-06 11:32 ?65次下載

    Achronix與Mentor攜手帶來高等級邏輯綜合(HLS)與FPGA技術之間的連接

    Achronix的Speedcore系列eFPGA可得到Catapult HLS的全面支持。 Catapult HLSFPGA流程提供集成化設計與開發環境,率先支持5G無線應用。
    的頭像 發表于 08-30 10:09 ?7783次閱讀

    FPGA并行編程:基于HLS技術優化硬件設計

    作為集成電路設計領域現場可編程門陣列 (FPGA) 技術的創造者之一,賽靈思一直積極推廣高層次綜合 (HLS) 技術,通過這種能夠解讀所需行為的自動化設計流程打造出可實現此類行為的硬件。賽靈思剛剛推出了一本專著,清晰介紹了如何使用 HL
    發表于 11-10 11:01 ?2950次閱讀

    利用FPGA工具設置優化FPGA HLS設計

    高層次的設計可以讓設計以更簡潔的方法捕捉,從而讓錯誤更少,調試更輕松。然而,這種方法最受詬病的是對性能的犧牲。在復雜的 FPGA 設計上實現高性能,往往需要手動優化 RTL 代碼,這也意味著從 C
    發表于 12-16 11:19 ?1618次閱讀
    利用<b class='flag-5'>FPGA</b>工具設置<b class='flag-5'>優化</b><b class='flag-5'>FPGA</b> <b class='flag-5'>HLS</b>設計

    使用網絡實例比較FPGA RTL與HLS C/C++的區別

    HLSFPGA開發方法是只抽象出可以在C/C++環境中輕松表達的應用部分。通過使用Vivado(Xilinx)或Intel(Quartus)工具,HLS工具流程基本上可用于任何BittWare板。
    發表于 08-02 09:18 ?1816次閱讀
    使用網絡實例比較<b class='flag-5'>FPGA</b> RTL與<b class='flag-5'>HLS</b> C/C++的區別

    ThunderGP:基于HLSFPGA圖形處理框架

    電子發燒友網站提供《ThunderGP:基于HLSFPGA圖形處理框架.zip》資料免費下載
    發表于 10-27 16:49 ?0次下載
    ThunderGP:基于<b class='flag-5'>HLS</b>的<b class='flag-5'>FPGA</b>圖形處理框架

    FPGA基礎之HLS

    1、HLS簡介 HLS(High-Level Synthesis)高層綜合,就是將 C/C++的功能用 RTL 來實現,將 FPGA 的組件在一個軟件環境中來開發,這個模塊的功能驗證在軟件環境中來
    的頭像 發表于 12-02 12:30 ?5569次閱讀

    FPGA——HLS簡介

    HLS ?(high-level synthesis)稱為高級綜合, 它的主要功能是用 C/C++為 FPGA開發 算法。這將提升FPGA 算法開發的生產力。 ?? Xilinx 最新的HLS
    的頭像 發表于 01-15 12:10 ?5131次閱讀

    如何使用HLS加速FPGA上的FIR濾波器

    電子發燒友網站提供《如何使用HLS加速FPGA上的FIR濾波器.zip》資料免費下載
    發表于 06-14 15:28 ?3次下載
    如何使用<b class='flag-5'>HLS</b>加速<b class='flag-5'>FPGA</b>上的FIR濾波器

    使用Vivado高層次綜合(HLS)進行FPGA設計的簡介

    電子發燒友網站提供《使用Vivado高層次綜合(HLS)進行FPGA設計的簡介.pdf》資料免費下載
    發表于 11-16 09:33 ?0次下載
    使用Vivado高層次綜合(<b class='flag-5'>HLS</b>)進行<b class='flag-5'>FPGA</b>設計的簡介
    香港百家乐玩法| 百家乐官网游乐园| 威尼斯人娱乐城客户端| 百家乐官网赌局| 88娱乐城开户| 百家乐麻关于博彩投注| 百家乐官网游戏全讯网2| 威尼斯人娱乐城易博| 巴厘岛百家乐官网的玩法技巧和规则 | 百家乐投注哪个信誉好| 百家乐官网网址是多少| 长赢百家乐赌徒| 362百家乐官网的玩法技巧和规则| 大地娱乐城| 成都百家乐的玩法技巧和规则 | 劳力士百家乐官网的玩法技巧和规则 | 精英娱乐城开户| 百家乐998| 新世纪百家乐官网娱乐城| 万豪国际娱乐网| 下载百家乐的玩法技巧和规则 | 黄金城娱乐城| 鸟巢百家乐的玩法技巧和规则 | 网上真钱轮盘| 威尼斯人娱乐城网络百家乐| 百家乐官网统计软件| 开心8百家乐官网现金网| 大发888娱乐城在线存款| 澳门百家乐家用保险柜| 最新百家乐官网双面数字筹码 | 百家乐双龙出海注码法| 百家乐官网的分析| 湖州市| 大发888娱乐平台| 现场百家乐电话投注| 百家乐官网游戏方法| 百家乐官网长玩必输| 大发888什么赢钱快| 百家乐的桌子| 百家乐官网制胜秘| 百家乐官网怎样投注好|