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

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

3天內(nèi)不再提示

FPGA——HLS簡介

FPGA設計論壇 ? 來源:未知 ? 2023-01-15 12:10 ? 次閱讀

HLS(high-level synthesis)稱為高級綜合, 它的主要功能是用 C/C++FPGA開發(fā)算法。這將提升FPGA 算法開發(fā)的生產(chǎn)力。

Xilinx最新的HLS是Vitis HLS。在Vivado 2020版本中替代原先的Vivado HLS, 功能略有差異。

HLS 的機理

簡單地講,HLS采樣類似C語言來設計FPGA 邏輯。但是要實現(xiàn)這個目標,還是不容易的。畢竟軟件和硬件的功能實現(xiàn)存在非常大的差別。軟件主要針對順序程序執(zhí)行。即便是平行程序執(zhí)行,也是通過OS 的任務調(diào)度CPU 的資源。宏觀上是并發(fā)執(zhí)行,而微觀上仍然是順序占用CPU 執(zhí)行的。另一方面,基于FPGA 硬件邏輯,如果沒有上下文關聯(lián),完全可以并行運行。在沒有特別語法規(guī)則下,講C語言程序轉(zhuǎn)換成為硬件邏輯,并且盡量實現(xiàn)硬件的并行執(zhí)行是有難度的。人們?yōu)榇搜芯苛藢⒔?0年。

在這個領域的主要貢獻者是康奈爾大學的張志如博士,他是康奈爾大學ECE學院助理教授,計算機系統(tǒng)實驗室成員。他目前的研究重點是異構計算的高級設計自動化。他的作品獲得了 TODAES 的最佳論文獎和 ICCAD 的最佳論文提名。2006 年,他與人共同創(chuàng)立了 AutoESL Design Technologies, Inc.,將他關于高層次綜合的博士論文研究商業(yè)化。AutoESL 于 2011 年被 Xilinx 收購,收購后 AutoESL 工具更名為 Vivado HLS。

了解了HLS 的實現(xiàn)機理,有助于編寫出高效率的HLS 邏輯。

軟件編譯器講高級語言翻譯成為機器語言。主要關注的語言的語法轉(zhuǎn)換規(guī)則,相比之下,HLS 的翻譯難度更大一些,模塊中的語句形式上是前后順序排列。但是HLS盡力轉(zhuǎn)換成為并行執(zhí)執(zhí)行的硬件邏輯。并且通過數(shù)據(jù)流,管道等技術實現(xiàn)硬件優(yōu)化。筆者看來,HLS 的編譯技術是非常了不起的。

HLS的目標是根據(jù)用戶提供的輸入和限制自動替用戶做出很多決定,HLS自動完成以下曾經(jīng)需要手動完成的工作。

  • HLS自動分析并利用一個算法中潛在的并發(fā)性

  • HLS自動在需要的路徑上插入寄存器,并自動選擇最理想的時鐘

  • HLS自動產(chǎn)生控制數(shù)據(jù)在一個路徑上出入方向的邏輯

  • HLS自動完成設計的部分與系統(tǒng)中其他部分的接口

  • HLS自動映射數(shù)據(jù)到儲存單位以平衡資源使用與帶寬

  • HLS自動將程序中計算的部分對應到邏輯單位,在實現(xiàn)等效計算的前提下自動選取最有效的實施方式。

二、HLS技術難點

所謂的高層次綜合(HLS)就是將C/C++/System C描述的設計意圖, “翻譯“成用Verilog/System Verilog描述的RTL,多應用于運算邏輯主導的設計。

這就產(chǎn)生了幾個問題:

  • HLS輸入并不是軟件語言。相反,它是對硬件的更抽象的描述。大多數(shù)HLS工具可以使用C語言、SystemC或者C++作為輸入語言。

  • 從技術上來說,C++是一種“語言”,但從C/C++語言生成硬件電路模型來看,它也意味著算法的抽象級別。

  • 原始的C代碼經(jīng)常會被修改

使用HLS將軟件代碼綜合成實際的硬件電路時,存在幾個基本挑戰(zhàn)

  • 代碼必須由HLS引擎合成,也就是說,必須將代碼編寫或重構為硬件可綜合的格式,其對習慣于使用標準C/C++編寫的軟件工程師而言非常重要。

  • HLS編碼的可綜合性準則很重要,工程師必須熟悉這些涵蓋數(shù)百頁文檔的準則。

  • 一旦代碼可綜合,還需要一定程度的底層硬件意識。





掃描二維碼獲取

更多精彩

FPGA設計論壇





歡迎關注至芯科技

至芯官網(wǎng):www.zxopen.com

至芯科技技術論壇:www.fpgaw.com

至芯科技淘寶網(wǎng)址:

https://zxopen.taobao.com

至芯科技FPGA初級課程(B站):

https://space.bilibili.com/521850676

至芯科技FPGA在線課程(騰訊課堂):

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839

更多資料下載歡迎注冊http://www.fpgaw.com

掃碼加微信回復加群

邀請您加入FPGA學習交流群




歡迎加入至芯科技FPGA微信學習交流群,這里有一群優(yōu)秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!

點個在看你最好看





原文標題:FPGA——HLS簡介

文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

    關注

    1620

    文章

    21510

    瀏覽量

    598940

原文標題:FPGA——HLS簡介

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    優(yōu)化 FPGA HLS 設計

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

    如何在服務器上調(diào)試本地FPGA板卡

    ?》。 簡介 Vivado 可以在功能更強大的服務器上遠程運行,同時可以在本地PC上連接的 FPGA 板卡上進行開發(fā)調(diào)試。在此配置中,服務器和工作站必須安裝相同版本的 Vivado
    發(fā)表于 07-31 17:36

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

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

    如何優(yōu)化HLS仿真腳本運行時間

    需求:由于自己目前一個 HLS 仿真腳本需要運行 1個多小時,先打算通過打印時間戳的方式找出最耗時的部分,然后想辦法優(yōu)化。
    的頭像 發(fā)表于 02-23 09:29 ?518次閱讀

    高云FPGA簡介

    高云是一家專業(yè)從事現(xiàn)場可編程邏輯器件(FPGA)研發(fā)與設計的國產(chǎn)FPGA高科技公司,致力于向客戶提供從芯片、EDA開發(fā)軟件、IP、開發(fā)板到整體系統(tǒng)解決方案的一站式服務。高云半導體在FPGA芯片架構
    發(fā)表于 01-28 17:35

    AMD-Xilinx的Vitis-HLS編譯指示小結(jié)

    。流水線設計的具體內(nèi)容在我看到的這篇博客【FPGA中流水線的原因和方法】中講的很明白,這里不再贅述。 在HLS中,pipeline指令單指函數(shù)內(nèi)部的流水,舉一個簡單的例子: void func(int m
    發(fā)表于 12-31 21:20

    研討會:利用編譯器指令提升AMD Vitis? HLS 設計性能

    AMD Vitis 高層次綜合 ( HLS ) 已成為自適應 SoC 及 FPGA 產(chǎn)品設計領域的一項顛覆性技術,可在創(chuàng)建定制硬件設計時實現(xiàn)更高層次的抽象并提高生產(chǎn)力。Vitis HLS 通過將 C
    的頭像 發(fā)表于 12-05 09:10 ?411次閱讀
    研討會:利用編譯器指令提升AMD Vitis? <b class='flag-5'>HLS</b> 設計性能

    國產(chǎn)FPGA簡介

    高云半導體 核心技術:GoAI機器學習平臺、藍牙FPGA系統(tǒng)級芯片 主要產(chǎn)品:晨熙家族GW2A系列 FPGA、小蜜蜂家族GW1N系列SoC 應用市場:通訊、工業(yè)控制、LED顯示、汽車電子、消費
    發(fā)表于 11-20 16:20

    如何用HLS實現(xiàn)UART呢?

    UART 是一種舊的串行通信機制,但仍在很多平臺中使用。它在 HDL 語言中的實現(xiàn)并不棘手,可以被視為本科生的作業(yè)。在這里,我將通過這個例子來展示在 HLS 中實現(xiàn)它是多么容易和有趣。
    的頭像 發(fā)表于 11-20 09:50 ?540次閱讀
    如何用<b class='flag-5'>HLS</b>實現(xiàn)UART呢?

    如何用HLS實現(xiàn)UART

    UART 是一種舊的串行通信機制,但仍在很多平臺中使用。它在 HDL 語言中的實現(xiàn)并不棘手,可以被視為本科生的作業(yè)。在這里,我將通過這個例子來展示在 HLS 中實現(xiàn)它是多么容易和有趣。
    的頭像 發(fā)表于 11-20 09:48 ?447次閱讀
    如何用<b class='flag-5'>HLS</b>實現(xiàn)UART

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

    電子發(fā)燒友網(wǎng)站提供《使用Vivado高層次綜合(HLS)進行FPGA設計的簡介.pdf》資料免費下載
    發(fā)表于 11-16 09:33 ?0次下載
    使用Vivado高層次綜合(<b class='flag-5'>HLS</b>)進行<b class='flag-5'>FPGA</b>設計的<b class='flag-5'>簡介</b>

    HLS中組合電路對設計的影響

    該項目通過一個示例演示了 HLS 中組合電路對設計的影響。
    的頭像 發(fā)表于 11-03 09:04 ?630次閱讀
    <b class='flag-5'>HLS</b>中組合電路對設計的影響

    【KV260視覺入門套件試用體驗】硬件加速之—使用PL加速矩陣乘法運算(Vitis HLS

    Virtual Cable)調(diào)試FPGA邏輯 三、硬件加速之—使用PL加速FFT運算(Vivado) 四、硬件加速之—使用PL加速矩陣乘法運算(Vitis HLS) 后四期測評計劃: 五、Vitis AI
    發(fā)表于 10-13 20:11

    什么是DASH和HLS流?

    -自適應流- HTTP) HLS(HTTP- Live-流) 兩種協(xié)議的工作方式相似——數(shù)據(jù)被編碼(分割)成塊并發(fā)送到客戶端進行查看。 一、HLS(HTTP直播) HLS(即HTTP Live
    的頭像 發(fā)表于 10-09 17:16 ?1029次閱讀
    什么是DASH和<b class='flag-5'>HLS</b>流?

    HLS中RTL無法導出IP核是為什么?

    請教一下,我在HLS里面要將以下程序生成IP核,C Synthesis已經(jīng)做好了,但是在export RTL的時候一直在運行 int sum_single(int A int B
    發(fā)表于 09-28 06:03