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

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

揭示高層次綜合技術(shù)工作的基本概念

YCqV_FPGA_EETre ? 來源:賽靈思中文社區(qū)論壇 ? 作者:Wen Chen ? 2021-01-14 09:27 ? 次閱讀

說起高層次綜合技術(shù)(High-level synthesis)的概念,現(xiàn)在有很多初學(xué)者簡單地把它理解為可以自動把c/c++之類地高級語言直接轉(zhuǎn)換成底層硬件描述語言(RTL)的技術(shù)。其實更準(zhǔn)確的表述是:由更高抽象度的行為描述生產(chǎn)電路的技術(shù)。高層次的概念代表的是硬件描述語言里面較高的抽象層次,只是隨著軟件硬件語言的共同發(fā)展,這樣的高抽象度的行為描述語言來到了C/C++/System C 這樣的層次。

以下是南加州大學(xué)的DANIEL D.GAJSKI教授在1994年出版的期刊時對高層次綜合技術(shù)的描述[1]:High-level synthesis systems start with an abstract behavioral specification of a digital system and find a register-transfer level structure that realizes the given behavior. 下圖揭示了高層次綜合工作的基本流程,以及它于傳統(tǒng)的RTL綜合流程的對比。接下來將對行為描述,行為綜合,分析與優(yōu)化三個主要子流程詳細(xì)描述。

99faa5b2-51a7-11eb-8b86-12bb97331649.png

9a549784-51a7-11eb-8b86-12bb97331649.png

01 行為描述

當(dāng)我們把HLS技術(shù)的起點立為一種行為描述語言的時候,就需要軟件語言遵循特定的行為描述規(guī)范,并且剔除一些源自于軟件系統(tǒng)的的思維理念。雖然各個HLS工具的行為綜合都有自己的規(guī)范,但是關(guān)于動態(tài)內(nèi)存分配的約束是共通的:禁止遞歸和動態(tài)指針。

函數(shù)遞歸意味著需要能夠動態(tài)生成電路模塊,動態(tài)指針是指運行時指針值可以任意變化的指針變量。硬件不像軟件具有大塊的主內(nèi)存,只有分布在局部的內(nèi)存,所以比較適合并行實現(xiàn)。動態(tài)指針要求作為對象的訪問實體在運行時變化,超出了數(shù)字電路概念的一種功能。同樣,超出了數(shù)字電路概念的還有管理系統(tǒng)內(nèi)存分配的系統(tǒng)調(diào)用函數(shù)等,在此不一一列舉了。

行為描述的概念,讓我們明確了針對數(shù)字電路特性使用高層次語言去編寫行為代碼的這一設(shè)計基本準(zhǔn)則。而后探討代碼風(fēng)格(coding style),系統(tǒng)優(yōu)化都由這一基本準(zhǔn)則延申。這就是為什么我們寫的C語言代碼會有一種介于硬件與軟件設(shè)計風(fēng)格之間的根本原因。

行為描述的基本對象有輸入輸出接口,數(shù)據(jù)位寬,并行化描述等等,在 Vitis HLS 中有行為描述的規(guī)范和推薦的寫法等等,在展開介紹之前,我們先明確行為綜合的流程。

02 行為綜合

在行為綜合的過程中,行為描述中使用的變量,數(shù)組,運算分別用寄存器(FF,LUT),局部內(nèi)存(URAM,BRAM,DRAM),運算器(DSP,ALU)等數(shù)字電路單元來實現(xiàn)。行為描述中的處理流程(順序執(zhí)行, 分支,循環(huán)則以有限狀態(tài)機(FSM)的形式來呈現(xiàn)。通過分析行為描述,可以將運算的依賴關(guān)系表示為數(shù)據(jù)流圖(DFG),將控制流程表示為控制流圖(CFG)。

分析到這里兩個非常重要的行為綜合概念出現(xiàn)了,就是調(diào)度(scheduling)和綁定(Binding)。

根據(jù)數(shù)據(jù)流圖和控制流圖來決定運行順序和運行速度的過程稱為調(diào)度。

將變量和運算映射到寄存器或運算器的過程稱為綁定。

下圖簡潔明了地介紹了從C語言設(shè)計到導(dǎo)出RTL設(shè)計過程中,依據(jù)HLS庫和用戶指令進(jìn)行調(diào)度和綁定的過程。

9a8d3508-51a7-11eb-8b86-12bb97331649.png

這里我們使用一個非常簡單的例子描述一下行為綜合的過程

(1) Compilation and Transformation 將一個行為描述代碼的轉(zhuǎn)化為數(shù)據(jù)流圖DFG

數(shù)據(jù)流圖由很多數(shù)據(jù)節(jié)點組成,最重要的是表達(dá)出了各個節(jié)點上數(shù)據(jù)的依賴關(guān)系,這是后面調(diào)度和綁定的基礎(chǔ)。

在這個步驟中,代碼風(fēng)格是一個比較關(guān)鍵的因素。HLS在轉(zhuǎn)化過于繁復(fù)高層次語言表達(dá)的時候,極個別情況會無法識別一些嵌套非常深的軟件算法,也會增加編譯時間. 所以盡量簡潔,邏輯明晰的硬件友好代碼會提升開發(fā)效率。

9aba2f54-51a7-11eb-8b86-12bb97331649.png

(2) Scheduling 調(diào)度

在數(shù)據(jù)流圖中,我們看到XY和EF數(shù)據(jù)之間沒有依賴,他們可以選擇在同一個Control Step里面并行執(zhí)行,或者在兩個ST里面順序執(zhí)行。

這個過程中調(diào)度的并行性由HLS編譯器,用戶指令共同作用影響著,比如編譯器會主動發(fā)現(xiàn)可以并行的優(yōu)化點自動優(yōu)化,也會誤以為某些表達(dá)式存在數(shù)據(jù)依賴無法并行優(yōu)化等,所以仍需要用戶加入指令說明情況。當(dāng)然追求更高的并行性對資源也有更大的需求,所以并不是一切調(diào)度都以最大并行性為目標(biāo)。

9ad9d020-51a7-11eb-8b86-12bb97331649.png

(3) Binding

在早期的HLS研究中,Allocation 和 Binding 是分開的兩個步驟。其中Allocation 鎖定了資源的數(shù)量和類型,Binding完成了運算到資源的映射。現(xiàn)在我們就統(tǒng)稱這些操作在Binding步驟完成。早期FPGA中的含有一種集成的算法單元ALU,如今DSP這樣的硬件模塊已經(jīng)包含了ALU和乘法器模塊等等。

下圖基于早期的ALU單元揭示了Binding 的可能性, 將加減法操作映射到寄存器還是ALU模塊,呈現(xiàn)了兩種不同的方案.

9b0b411e-51a7-11eb-8b86-12bb97331649.png

以下是選擇了使用一個ALU、兩個寄存器、一個乘法器的綜合結(jié)果。對于既定的調(diào)度方案,可以通過行為綜合來生成相應(yīng)的狀態(tài)機。HLS在行為綜合的過程中,除了達(dá)到算法的基本功能,更重要的是選擇不同的綁定和調(diào)度方案在資源、性能、吞吐量等各個指標(biāo)中做權(quán)衡和取舍。

9b2bc394-51a7-11eb-8b86-12bb97331649.png

03 分析和優(yōu)化

電路的規(guī)模和運行時間存在權(quán)衡關(guān)系,所以產(chǎn)生最優(yōu)化的RTL描述需要開發(fā)者提供大致的優(yōu)化方針,甚至是明確的優(yōu)化仿真

因此Xilinx的高層綜合工具提供了一系列性能評估的功能和向編譯器指向優(yōu)化方式的途徑。針對行為描述進(jìn)行行為綜合,可以獲取如下多種性能指標(biāo):

?面積(電路規(guī)模):根據(jù)資源實施設(shè)計所需的硬件資源量

在FPGA中可用,包括查找表(LUT),寄存器,Block RAM和DSP48。

?延遲:函數(shù)計算所有輸出值所需的時鐘周期數(shù)。

?初始化間隔(II):函數(shù)可以接受新輸入數(shù)據(jù)之前的時鐘周期數(shù)。

?循環(huán)迭代延遲:完成循環(huán)的一次迭代所需的時鐘周期數(shù)。

?循環(huán)啟動間隔:下一次循環(huán)迭代開始處理數(shù)據(jù)之前的時鐘周期數(shù)。

?循環(huán)延遲:執(zhí)行循環(huán)所有迭代的循環(huán)數(shù)。

這些性能指標(biāo)的行為綜合結(jié)果都會在HLS工具的報告中指出,開發(fā)者需要找出性能瓶頸或者性能過剩的部分。針對循環(huán)的優(yōu)化方式由流水線(pipeline)或展開(unroll). 此外還有指示運算器的并行或共享,指示數(shù)組的拆分(partition)和訪問調(diào)度,指示功能函數(shù)的內(nèi)聯(lián)(inline)等等。這些優(yōu)化指令相互作用,需要從全局出發(fā)確定優(yōu)化指令。

當(dāng)進(jìn)行詳細(xì)的優(yōu)化指令也無法達(dá)到預(yù)期的指標(biāo)時,就需要考慮代碼本身的優(yōu)化。這就需要開發(fā)者在設(shè)計模塊(函數(shù)、循環(huán)等)時靈活運用并行、流水線等架構(gòu),并在充分理解行為綜合機制的基礎(chǔ)上編寫更容易生成高效硬件行為描述的代碼。

04 接口連接

行為描述后的模塊需再和其他模塊群整合,所以就過渡到考慮如何設(shè)計端口類型與其他IP進(jìn)行實例化連接了。

在RTL設(shè)計中,數(shù)據(jù)通過端口進(jìn)出IP,這些端口可以使用固特定的IP接口協(xié)議(AXI-Master/ AXI-lite)來進(jìn)行操作. 進(jìn)出IP的每一條數(shù)據(jù),都應(yīng)該將其指定為主源文件中的一個獨立函數(shù)實參。該函數(shù)實參將會被綜合為硬件RTL中的一個端口。

數(shù)據(jù)端口的類型大概分為以下三個大類:

1、直接讀寫數(shù)據(jù)值的寄存器式

2、按照隊列收發(fā)數(shù)據(jù)的數(shù)據(jù)流式

3、指定地址進(jìn)行讀寫的內(nèi)存總線模式

不同接口能夠為不同設(shè)計提供最優(yōu)性能,比如數(shù)據(jù)流接口更適合于數(shù)據(jù)驅(qū)動型應(yīng)用,為了更高效地傳輸數(shù)據(jù)經(jīng)常在發(fā)送和接收雙方之間插入FIFO緩沖器。這樣的使用規(guī)則為FPGA硬件開發(fā)者所熟知,軟件開發(fā)者仍需要深入理解。

下表為Vivado Design Flow 下的接口類型已經(jīng)變量類型的關(guān)系。其中標(biāo)量,數(shù)組,指針和hls數(shù)據(jù)流格式對應(yīng)的默認(rèn)接口模式標(biāo)注為D,支持的接口標(biāo)注為1,不支持的接口標(biāo)注為3, ,是一個重要的設(shè)計參考表格。

9b4dc0d4-51a7-11eb-8b86-12bb97331649.png

本章節(jié)通過揭示HLS工作的基本概念讓大家對技術(shù)有了宏觀上的理解。這一份宏觀上的理解雖然淺顯易懂,但是它將基于CPU的架構(gòu)的軟件程序與在高層次綜合這項技術(shù)上行為描述語言做出了明顯的區(qū)分。賽靈思的HLS官方手冊中,對文中提到了端口協(xié)議,優(yōu)化指令,數(shù)據(jù)類型等都有非常詳細(xì)的解釋。本系列以后的文章將適合HLS加速的應(yīng)用場景出發(fā),重點講解數(shù)據(jù)傳輸?shù)募軜?gòu)優(yōu)化以及如何編寫高效的硬件描述C代碼。

寫在最后:

"為現(xiàn)場可編程門陣列的高層次綜合建立的算法基礎(chǔ)”曾獲IEEE計算機分會年度技術(shù)成就獎的叢京生教授在ASPDAC 會議上對高層次綜合技術(shù)未來的展望:

一個性能優(yōu)于CPU的優(yōu)秀的高層次綜合設(shè)計的HLS C/C++代碼可能會很長,甚至和原始代碼相比面目全非。類似這樣對于一個軟件程序員進(jìn)行常年的HLS C/C++代碼的訓(xùn)練并不是可推廣和有效率的模式。但是在可定制計算技術(shù)的長河中,科學(xué)家和研究者們希望無論軟硬件工作人員,都只要經(jīng)過一些基本優(yōu)化理論的訓(xùn)練就可以通過寫軟件代碼得到優(yōu)于通用CPU的設(shè)計。這樣大家才能廣泛體會到可定制計算能夠帶來的好處[4]。

原文標(biāo)題:【干貨分享】高層次綜合技術(shù)原理淺析

文章出處:【微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

Wen Chen

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

    關(guān)注

    88

    文章

    3685

    瀏覽量

    94927
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4891

    瀏覽量

    70313
  • HLS
    HLS
    +關(guān)注

    關(guān)注

    1

    文章

    131

    瀏覽量

    24684

原文標(biāo)題:【干貨分享】高層次綜合技術(shù)原理淺析

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    第十三章 通訊的基本概念

    本章介紹通訊基本概念,包括串行/并行、全雙工/半雙工/單工、同步/異步通訊,還提及通訊速率中比特率與波特率的概念
    的頭像 發(fā)表于 05-22 17:29 ?1096次閱讀
    第十三章 通訊的<b class='flag-5'>基本概念</b>

    《大話芯片制造》閱讀體會分享_1

    ,本人從事著芯片設(shè)計的主職業(yè),從高層次描述電路的架構(gòu)、模塊功能、總線接線等內(nèi)容,對芯片如何制造一直充滿著好奇。 眾所周知,半導(dǎo)體是先進(jìn)技術(shù)產(chǎn)品,制造他們的半導(dǎo)體工程本身就可以說是凝聚先進(jìn)生產(chǎn)力、先進(jìn)技術(shù)
    發(fā)表于 12-25 20:59

    了解虛擬電廠的基本概念

    虛擬電廠的基本概念: 虛擬電廠是一種基于現(xiàn)代信息技術(shù)和能源互聯(lián)網(wǎng)的能源管理模式,它將分散的、可再生能源和儲能設(shè)備通過虛擬化技術(shù)進(jìn)行集成和管理,形成一個具有集中調(diào)度、統(tǒng)一運營和優(yōu)化控制的虛擬化電力系統(tǒng)
    的頭像 發(fā)表于 12-24 17:12 ?811次閱讀
    了解虛擬電廠的<b class='flag-5'>基本概念</b>

    云知聲榮獲上海市優(yōu)秀專家工作站稱號

    近日,2024年上海市院士(專家)工作站(服務(wù)中心)績效評估結(jié)果揭曉。云知聲(上海)智能科技有限公司(以下簡稱“云知聲”)憑借其在人工智能技術(shù)研發(fā)、創(chuàng)新成果應(yīng)用及高層次人才引進(jìn)與培養(yǎng)等方面的杰出表現(xiàn),榮獲“上海市優(yōu)秀專家
    的頭像 發(fā)表于 12-13 14:27 ?513次閱讀

    Linux應(yīng)用編程的基本概念

    Linux應(yīng)用編程涉及到在Linux環(huán)境下開發(fā)和運行應(yīng)用程序的一系列概念。以下是一些涵蓋Linux應(yīng)用編程的基本概念
    的頭像 發(fā)表于 10-24 17:19 ?590次閱讀

    X電容和Y電容的基本概念

    在電子電路中,電容器是一種至關(guān)重要的元件,它用于儲存電荷并在電路中釋放能量。而在眾多的電容器中,X電容和Y電容作為安規(guī)電容,因其特定的應(yīng)用場景和安全性能而受到廣泛關(guān)注。本文將對X電容和Y電容的基本概念工作原理、應(yīng)用場景以及選擇和維護等方面進(jìn)行詳細(xì)介紹。
    的頭像 發(fā)表于 10-21 16:43 ?5122次閱讀

    光電三極管的基本概念工作原理

    光電三極管,又稱為光敏三極管或光控三極管,是一種重要的光電轉(zhuǎn)換器件,能夠?qū)⒐庑盘栟D(zhuǎn)化為電流或電壓信號。這種器件在光電通信、光電測量、光電控制等領(lǐng)域有著廣泛的應(yīng)用。下面,我們將詳細(xì)探討光電三極管的基本概念工作原理以及其在不同領(lǐng)域的應(yīng)用。
    的頭像 發(fā)表于 09-24 11:08 ?4581次閱讀

    DDR4的基本概念和特性

    里程碑。自2011年面世以來,DDR4憑借其顯著的性能提升和能效優(yōu)化,迅速成為市場主流。以下將從DDR4的基本概念技術(shù)特性、性能優(yōu)勢以及市場應(yīng)用等方面進(jìn)行詳細(xì)闡述。
    的頭像 發(fā)表于 09-04 11:43 ?5359次閱讀

    伺服系統(tǒng)基本概念和與變頻的關(guān)系

    伺服系統(tǒng)的基本概念是準(zhǔn)確、精確、快速定位。這一概念貫穿于伺服系統(tǒng)的設(shè)計理念和運行機制中。為了實現(xiàn)這一目標(biāo),伺服系統(tǒng)采用了多種先進(jìn)的控制策略和技術(shù)手段。其中,變頻技術(shù)是伺服控制的一個必不
    的頭像 發(fā)表于 08-27 15:59 ?811次閱讀

    電感元件的基本概念工作原理及特性

    電感元件是一種重要的電子元件,廣泛應(yīng)用于電子電路中。它由導(dǎo)線繞制而成,具有儲存磁場能量的能力。 一、電感元件的基本概念 1.1 電感的定義 電感(Inductance)是描述電感元件在交流電路中
    的頭像 發(fā)表于 08-23 16:55 ?4332次閱讀

    無源傳感器的基本概念工作原理及分類

    、維護方便等優(yōu)點,因此在許多領(lǐng)域得到了廣泛應(yīng)用。 一、無源傳感器的基本概念 1.1 定義 無源傳感器是一種不需要外部能源的傳感器,它通過檢測被測量對象自身的物理或化學(xué)特性變化來實現(xiàn)測量。無源傳感器的工作原理是利用被測量對象的特性變化來
    的頭像 發(fā)表于 08-19 09:53 ?2914次閱讀

    功分器的基本概念工作原理及分類

    功分器,又稱為功率分配器或功率分路器,是一種用于將輸入信號功率分配到多個輸出端口的器件。它廣泛應(yīng)用于通信、廣播、雷達(dá)、電子對抗等領(lǐng)域。 一、功分器的基本概念 1.1 功分器的定義 功分器是一種將輸入
    的頭像 發(fā)表于 08-14 09:53 ?5094次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本概念、原理及特點

    基本概念、原理、特點以及在不同領(lǐng)域的應(yīng)用情況。 一、卷積神經(jīng)網(wǎng)絡(luò)的基本概念 卷積神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)算法,它由多層卷積層和池化層堆疊而成。卷積層負(fù)責(zé)提取圖像中的局部特征,而池化層則負(fù)責(zé)降低特征的空間維度,同時增加對圖像位移的不變性。通過這種方式,CNN能夠自
    的頭像 發(fā)表于 07-11 14:38 ?2306次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)的基本概念

    循環(huán)神經(jīng)網(wǎng)絡(luò)的基本概念、循環(huán)機制、長短時記憶網(wǎng)絡(luò)(LSTM)、門控循環(huán)單元(GRU)等方面進(jìn)行介紹。 循環(huán)神經(jīng)網(wǎng)絡(luò)的基本概念 循環(huán)神經(jīng)網(wǎng)絡(luò)是一種時間序列模型,其基本思想是將序列數(shù)據(jù)中的每個元素(例如,單詞、時間點等)作為輸入,通過循環(huán)結(jié)構(gòu)將前一個時間步的
    的頭像 發(fā)表于 07-04 14:31 ?1223次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本概念工作原理

    工作原理,在處理圖像數(shù)據(jù)時展現(xiàn)出了卓越的性能。本文將從卷積神經(jīng)網(wǎng)絡(luò)的基本概念、結(jié)構(gòu)組成、工作原理以及實際應(yīng)用等多個方面進(jìn)行深入解讀。
    的頭像 發(fā)表于 07-02 18:17 ?5073次閱讀
    主站蜘蛛池模板: 婷婷六月天激情 | 天天干天天插 | 在线观看一二三区 | 天天干天天干天天天天天天爽 | 精品国产麻豆免费人成网站 | 萌白酱香蕉白丝护士服喷浆 | 日本黄色影片在线观看 | 福利视频第一区 | 男人操女人免费网站 | 加勒比精品久久一区二区三区 | www.婷婷色| 亚洲区 欧美区 | а中文在线天堂 | 中文字幕一区二区三区在线不卡 | 2018天天干天天射 | 欧洲精品码一区二区三区免费看 | 男人天堂资源网 | 欧美天堂在线视频 | 午夜精品视频在线观看 | 六月天丁香婷婷 | 亚洲精品91大神在线观看 | 有码日韩| 爱情社保片鲁丝片一区 | 你懂的视频在线看 | 理论在线看 | 欧美日韩亚洲一区 | 黄色在线网站视频 | 日日摸夜夜添免费毛片小说 | 欧美在线天堂 | 四虎免费在线播放 | 拍拍拍无档又黄又爽视频 | 天天干天天在线 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 亚洲大黑香蕉在线观看75 | 在线视频一区二区 | 亚洲黄色影片 | 四虎永久免费地ww4hu57 | 在线观看一级毛片 | 人人草草 | 在线亚洲综合 | 黄到让你下面湿的视频 |