在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

基于Mentor Graphics Catapult工具的HLS硬件設計

路科驗證 ? 來源:路科驗證 ? 作者:路科驗證 ? 2022-08-26 13:59 ? 次閱讀

本文介紹基于Mentor Graphics Catapult工具的HLS(High LevelSynthesis,高層次綜合)硬件設計。

e9bb4c44-2501-11ed-ba43-dac502259ad0.png

首先將簡單介紹高層次綜合在數字芯片流程中所處的層次、其獨特優勢等等;接著將介紹如何基于Catapult工具進行HLS設計,例如Catapult支持的數據類型、接口類型;最后將以RMD(RoughMode Decision,粗略模式估計)為例介紹如何實現寄存器、狀態機和RAM等硬件電路基本組件。

e9dcbb90-2501-11ed-ba43-dac502259ad0.png

如圖表所示,數字芯片的硬件描述層級可以被粗略分為四個,從底向上依次是物理級(晶體管級)、門級、RTL(RegisterTransfer Level,寄存器傳輸級)級和系統級/算法級。隨著芯片復雜度(晶體管數量)的不斷提升,在較低層次上描述整個硬件設計變得難以實現。目前的數字芯片集中于在RTL級以Verilog/ System Verilog語言描述硬件電路,特殊情況下為了追求極致的性能可能會在門級/物理級進行電路設計。總體來說,主要依靠DC(DesignCompiler), ICC(ICCompiler)這樣的EDA(ElectronicsDesign Automation,電子設計自動化)工具來實現硬件描述層次的降低。隨著EDA工具的不斷發展,在系統級/算法級使用C/C++/SystemC等高級語言描述硬件電路逐漸被廠商采納以提升硬件開發效率。即在DC和ICC前,再使用HLS的綜合器來實現硬件描述層次的降低。

ea02e446-2501-11ed-ba43-dac502259ad0.png

HLS的出現,讓硬件描述層級再次提升,有利于降低硬件設計難度,減少硬件開發時間,讓開發人員可以更多關注系統級/算法級的設計。越高層次的優化往往能帶來更多的系統收益。但需注意,使用C等高級語言描述硬件電路本質仍是設計硬件,在寫相關代碼時仍需做到能估計出相關的硬件電路。在FPGA開發流程中,Vivado HLS是最常使用的HLS工具。而在ASIC開發流程中,Catapult是最常使用的。

ea144bdc-2501-11ed-ba43-dac502259ad0.png

HLS在設計和驗證方面都存在諸多優勢:

在設計方面,直接在算法級進行電路設計,有利于進行算法/架構探索。C/C++代碼開發后通過HLS+DC/FPGA快速得到硬件代價(面積/性能)的估計值。相同的設計源碼,通過更改循環展開/循環流水的參數能快速調整設計的吞吐率,進而在性能和面積之間輕松調整;通過調整HLS的時鐘周期約束,能快速調整設計所能達到的最高頻率。同一份代碼,能在多個平臺/場景間最大化復用。

在驗證方面,仿真C模型后能將其作為golden,和后續HLS生成的RTL代碼進行形式驗證,以及同步仿真,即RTL仿真時復用C仿真的測試用例。此外,在C模型層次仿真所需時間更少。

ea250742-2501-11ed-ba43-dac502259ad0.png

高層次綜合和DC綜合過程較為相似:用戶輸入設計源文件,設計約束和目標工藝庫等信息,HLS工具將自動分配硬件資源,根據延時信息和目標頻率將各個運算分配到各個時鐘周期里。HLS工具將自動插入時鐘和復位(同步復位/異步復位)。產生的RTL文件可以被用于后續的FPGA設計和ASIC設計。

ea48a170-2501-11ed-ba43-dac502259ad0.png

Catapult有一系列EDA工具來輔助HLS設計:

在C模型(CMODEL)層次,可以使用C Design Checker來進行語法檢查和形式驗證分析;使用inFactStimulus來仿真C++/RTL,也可指定其他外部仿真工具如VCS;使用CCOVHLS-Aware Coverage來進行覆蓋率收集。

在CMODEL到RTL模型(VMODEL)轉換中,使用Catapult High-Level Synthesis生成高質量、功耗優化的RTL。

在VMODL層次,使用SLEC-HLS Formal進行C++和RTL的形式驗證檢查;使用SCVerify進行C-RTL同步仿真,復用相同的C測試用例。

ea54317a-2501-11ed-ba43-dac502259ad0.png

在RTL設計中,以模塊(Module)為最小單元進行硬件設計。在CatapultHLS設計中,支持以函數(function)和類(Class)作為最小單元進行設計,HLS綜合工具將為其自動插入時鐘和復位。

ea70b6ba-2501-11ed-ba43-dac502259ad0.png

Catapult HLS支持比特精度的數據類型ac_int, 通過設計位寬W 和符號標志位 S來定義信號。此外,其還支持定點數類型ac_fixed,在ac_int的基礎上新增整數位寬I。

ea8840a0-2501-11ed-ba43-dac502259ad0.png

Catapult HLS使用 ac_channel 來定義輸入端口和輸出端口的數據類型。若某端口只被讀取,則將其推導為輸入端口;若某端口只被寫入,則將其推導為輸出端口;若某端口既有讀取又有寫入,則會被推導為雙向端口。如需進行累加,建議使用中間變量來進行累加,累加結束后再將結果寫入,從而避免輸出端口被推導為雙向端口。

ac_channel 支持多種接口協議,輸入輸出默認類型為ccs_in_wait和ccs_out_wait,會自動維護ready和 valid,也可將其修改為最簡潔的ccs_in/ccs_out類型。

eab33332-2501-11ed-ba43-dac502259ad0.png

Catapult HLS支持循環展開,用面積換性能,如果迭代塊無數據依賴可以被完全展開。

eac2b05a-2501-11ed-ba43-dac502259ad0.png

Catapult HLS支持循環流水,也是用面積換性能,提升整體的吞吐率,并降低從輸入到輸出的延時。當存在數據依賴導致循環展開無法使用時,可以采用循環流水的方式優化。

eadee78e-2501-11ed-ba43-dac502259ad0.png

對每個循環都可以指定其流水與否,II(InitInterval)確定了流水線的初始化間隔,即每隔幾個周期開啟一次新的數據迭代。

eaebad84-2501-11ed-ba43-dac502259ad0.png

可以通過在源碼中加入諸如 #pragaunroll yes的指令來設置約束;也可以通過tcl指令在腳本中設置約束,諸如設置RMD的預測模塊(enc_rmd_pre)采用流水實現。

eafefcc2-2501-11ed-ba43-dac502259ad0.png

此外,還可以通過軟件的圖形界面來進行設置約束,即在各個綜合步驟(SynthesisTasks)中設置相關的約束。在圖形界面進行設置后,transcripthistory里會顯示對應的tcl 指令,可將其搜集起來匯總到腳本中,后續復用。修改源碼/配置后可以產生新的Solution,工具會顯示各個Solution的延時、吞吐、綜合面積和時序裕量。

eb2d98de-2501-11ed-ba43-dac502259ad0.png

以RMD模塊為例介紹HLS設計,其包含了控制、參考像素管理、幀內模式預測、殘差計算、SATD代價計算和模式排序與輸出等等子模塊。使用HLS實現各個子模塊,使用verilog進行頂層設計。RMD將流水處理4個PU,對每個PU會進行7種模式預測。流水線啟動延時為12個周期,后續4*7=28個周期逐漸出結果。

eb4b9834-2501-11ed-ba43-dac502259ad0.png

采用基于類的方式來實現模塊設計。定義__ENC_RMD_CTL_H__這個宏以避免多重編譯。define.h中定義了諸如塊尺寸和位寬的一些參數,以及封裝了一些常用的數據類型,比如AC_UINT(x)即 ac_int。使用#pragmahls_design top 指定頂層函數。使用const修飾一些常量參數,使用static來描述寄存器(registers),或者也可使用類的成員變量來描述registers,使用AC_UINT(x)來描述網線(wire)。

將狀態跳轉條件和輸出置于狀態變量(計數器 cnt_mod/pu,狀態機state)更新之前,即當前輸出與之前的輸入和狀態變量相關,摩爾型。

eb57f6ec-2501-11ed-ba43-dac502259ad0.png

以Planar預測模式為例,其將根據上方、左方和左上方的參考像素來得到當前塊的預測值,pxl_t是封裝了ac_int<8,false>。對兩重循環使用#pragmahls_unroll yes進行循環展開。定義相應位寬的中間變量來記錄中間結果,避免被截斷。對于這類純計算函數,無需手動切流水級,工具將根據目標工藝和時鐘約束來自動調度,使得各個周期內的運算延時較為均勻。

eb755692-2501-11ed-ba43-dac502259ad0.png

在非頂層函數的接口中可以使用數組來簡化后續索引。為此,在頂層函數的輸入和輸出處需增加平面格式與多維數組格式的數據格式轉換,可使用slc和set_slc進行切片操作。

eb8f435e-2501-11ed-ba43-dac502259ad0.png

對于參考像素管理中需要使用到的行緩存,register實現時代價過大,傾向于使用ram實現。為此,1. 使用 static修飾該數組;2. 如果不需要將數組/ram初始化為0,則設置該數組的初始化類型為AC_VAL_DC,即 Don’tCare,以避免工具默認對ram進行初始化為0的操作,節省若干啟動周期。3. 在設置目標庫時增加相應的ram庫,如ccs_sample_mem。此外,可以通過tcl指令來指定某些數組的默認類型,例如將buf_hor_lin_rd 強制設置為Register類型。

審核編輯 :李倩

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

    關注

    18

    文章

    403

    瀏覽量

    44920
  • 數據類型
    +關注

    關注

    0

    文章

    236

    瀏覽量

    13734
  • HLS
    HLS
    +關注

    關注

    1

    文章

    130

    瀏覽量

    24473

原文標題:基于Catapult的HLS硬件設計

文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    VNF9D1M5QTR芯片用什么硬件讀寫工具?讀寫軟件怎么實現?

    VNF9D1M5QTR芯片用什么硬件讀寫工具?讀寫軟件怎么實現?有沒Labview的讀寫例程?謝謝
    發表于 03-13 08:06

    使用HLS流程設計和驗證圖像信號處理設備

    STMicroelectronics成像部門負責向消費者、工業、安全和汽車市場提供創新的成像技術和產品。該團隊精心制定了一套通過模板實現的High-Level Synthesis(HLS)高層次綜合流程,使得上述產品能夠迅速上市。對于汽車市場,該流程符合ISO 26262標準,因此能確保可靠性。
    的頭像 發表于 01-08 14:39 ?403次閱讀
    使用<b class='flag-5'>HLS</b>流程設計和驗證圖像信號處理設備

    為什么用TVP7002采集到的PC graphics會閃爍呀?

    我們正在利用TVP7002芯片接收分辨率為1600*1200的VGA輸入信號;當PC graphics 是純白色(R[9:2]=0xff,G[9:2]=0xff,B[9:2]=0xff)的畫面
    發表于 12-12 08:46

    MSP430?硬件工具

    電子發燒友網站提供《MSP430?硬件工具.pdf》資料免費下載
    發表于 11-07 09:10 ?0次下載
    MSP430?<b class='flag-5'>硬件</b><b class='flag-5'>工具</b>

    Altera推出一系列FPGA軟、硬件和開發工具

    近期,英特爾子公司Altera推出了一系列FPGA軟、硬件和開發工具,使其可編程解決方案更易應用于廣泛的用例和市場。Altera在年度開發者大會上公布了下一代能效與成本優化的Agilex 3 FPGA情況,并宣布針對Agilex 5 FPGA提供新的開發套件和軟件支持。
    的頭像 發表于 10-12 10:47 ?789次閱讀

    NFC IC配置工具NFC Cockpit的主要特性

    開發NFC應用,除了NFC IC硬件平臺,得心應手、簡便易用的軟件工具也少不了!今天我們就向大家介紹一款超級好用的NFC IC配置工具——NFC Cockpit!
    的頭像 發表于 08-27 10:14 ?1529次閱讀
    NFC IC配置<b class='flag-5'>工具</b>NFC Cockpit的主要特性

    優化 FPGA HLS 設計

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

    FPGA的開發工具

    學習開發FPGA,需要預先準備好的工具嗎?比如示波器‘邏輯分析儀之類的。畢竟側重于硬件方面的處理。不知道和單片機開發有多少不同,和需要注意的地方。
    發表于 07-29 22:04

    一種在HLS中插入HDL代碼的方式

    很多人都比較反感用C/C++開發(HLS)FPGA,大家第一拒絕的理由就是耗費資源太多。但是HLS也有自己的優點,除了快速構建算法外,還有一個就是接口的生成,尤其對于AXI類接口,按照標準語法就可以很方便地生成相關接口。
    的頭像 發表于 07-16 18:01 ?1192次閱讀
    一種在<b class='flag-5'>HLS</b>中插入HDL代碼的方式

    西門子推出Catapult AI NN:重塑神經網絡加速器設計的未來

    的需求,西門子數字化工業軟件日前推出了一款名為Catapult AI NN的創新軟件,旨在幫助神經網絡加速器在專用集成電路(ASIC)和芯片級系統(SoC)上實現更高效的高層次綜合(HLS)。
    的頭像 發表于 06-19 16:40 ?884次閱讀

    西門子推出Catapult AI NN軟件,賦能神經網絡加速器設計

    西門子數字化工業軟件近日發布了Catapult AI NN軟件,這款軟件在神經網絡加速器設計領域邁出了重要一步。Catapult AI NN軟件專注于在專用集成電路(ASIC)和芯片級系統(SoC)上實現神經網絡的高層次綜合(HLS
    的頭像 發表于 06-19 11:27 ?1064次閱讀

    西門子推出Catapult AI NN軟件

    西門子數字化工業軟件日前推出Catapult AI NN軟件,可幫助神經網絡加速器在專用集成電路(ASIC)和芯片級系統(So)上進行高層次綜合(HLS)。
    的頭像 發表于 06-19 10:48 ?1017次閱讀

    西門子推出Catapult AI NN軟件,加速神經網絡在ASIC和SoC上綜合

    綜合(HLS)提供強有力的支持。Catapult AI NN的推出,標志著西門子在人工智能(AI)與硬件設計融合領域邁出了堅實的一步。
    的頭像 發表于 06-18 17:29 ?1460次閱讀

    DA1453x-DA1469x 生產線工具軟件和硬件用戶手冊

    電子發燒友網站提供《DA1453x-DA1469x 生產線工具軟件和硬件用戶手冊.rar》資料免費下載
    發表于 05-21 17:19 ?0次下載
    DA1453x-DA1469x 生產線<b class='flag-5'>工具</b>軟件和<b class='flag-5'>硬件</b>用戶手冊

    存內計算技術工具鏈——量化篇

    本篇文章將重點講述存內計算技術工具鏈之“量化”,我們將從面向存內計算芯片的深度學習編譯工具鏈、神經網絡中的量化(包括訓練后量化與量化感知訓練)、基于存內計算芯片硬件特性的量化工具這三個
    的頭像 發表于 05-16 12:35 ?1595次閱讀
    存內計算技術<b class='flag-5'>工具</b>鏈——量化篇
    主站蜘蛛池模板: 夜色福利久久久久久777777 | 被啪漫画羞羞漫画 | 在线视频观看你懂的 | 久热精品在线视频 | h视频欧美| 在线成人免费观看国产精品 | 免费的色视频 | 欧美一区二区视频在线观看 | 亚洲欧美精品一区二区 | 噜噜噜噜噜久久久久久91 | 中文字幕日本一区波多野不卡 | 三级黄色短视频 | aa在线观看 | 校园春色亚洲欧美 | 一区二区手机视频 | 日韩亚射 | 日本视频一区二区 | 日本在线黄色网址 | 亚洲视频一区在线观看 | 天天干夜夜玩 | 在线看黄的网站 | 农村妇女野外一级毛片 | 国产美女亚洲精品久久久久久 | 色视频在线网站 | 国产成人精品1024在线 | 午夜免费视频网站 | 欧美精品久久久久久久小说 | 婷婷六月在线 | 色多多视频网站 | 天天襙| 在线免费色 | 欧美三级中文字幕hd | 免费三级pq | 亚洲国产成+人+综合 | 亚洲男人天堂岛 | 97综合网| 日本不卡视频免费的 | 国产一级特黄全黄毛片 | 欧美色视频网 | 久久青草精品一区二区三区 | 久草视频一区 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品