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

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

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

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

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

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

以下是南加州大學(xué)的DANIEL D.GAJSKI教授在1994年出版的期刊時(shí)對(duì)高層次綜合技術(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綜合流程的對(duì)比。接下來(lái)將對(duì)行為描述,行為綜合,分析與優(yōu)化三個(gè)主要子流程詳細(xì)描述。

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

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

01 行為描述

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

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

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

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

02 行為綜合

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

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

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

將變量和運(yùn)算映射到寄存器或運(yùn)算器的過(guò)程稱為綁定。

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

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

這里我們使用一個(gè)非常簡(jiǎn)單的例子描述一下行為綜合的過(guò)程

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

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

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

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

(2) Scheduling 調(diào)度

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

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

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

(3) Binding

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

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

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

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

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

03 分析和優(yōu)化

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

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

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

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

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

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

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

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

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

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

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

04 接口連接

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

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

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

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

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

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

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

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

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

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

寫在最后:

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

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

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

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

Wen Chen

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

    關(guān)注

    88

    文章

    3521

    瀏覽量

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

    關(guān)注

    30

    文章

    4671

    瀏覽量

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

    關(guān)注

    1

    文章

    128

    瀏覽量

    23916

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    工作原理,在處理圖像數(shù)據(jù)時(shí)展現(xiàn)出了卓越的性能。本文將從卷積神經(jīng)網(wǎng)絡(luò)的基本概念、結(jié)構(gòu)組成、工作原理以及實(shí)際應(yīng)用等多個(gè)方面進(jìn)行深入解讀。
    的頭像 發(fā)表于 07-02 18:17 ?1312次閱讀

    串口通信的基本概念

    串口通信(Serial Communications)的基本概念可以歸納為以下幾個(gè)方面:
    的頭像 發(fā)表于 06-12 09:28 ?384次閱讀
    串口通信的<b class='flag-5'>基本概念</b>

    RTC實(shí)時(shí)時(shí)鐘的基本概念工作原理

    精確的實(shí)時(shí)時(shí)間,并為電子系統(tǒng)提供精確的時(shí)間基準(zhǔn)。本文將詳細(xì)闡述RTC實(shí)時(shí)時(shí)鐘的基本概念、工作原理以及其在現(xiàn)代電子設(shè)備中的應(yīng)用。
    的頭像 發(fā)表于 05-27 15:43 ?2723次閱讀

    斬波器的基本概念工作原理

    各種電子設(shè)備對(duì)電源的需求。本文將詳細(xì)介紹斬波器的基本概念工作原理及其應(yīng)用,以期為讀者提供全面的了解和認(rèn)識(shí)。
    的頭像 發(fā)表于 05-24 16:08 ?1692次閱讀

    耗盡型MOSFET的基本概念、特點(diǎn)及工作原理

    型MOSFET作為MOSFET的一種重要類型,在電子設(shè)計(jì)和工程領(lǐng)域中有著其獨(dú)特的地位。本文將對(duì)耗盡型MOSFET的基本概念、特點(diǎn)以及工作原理進(jìn)行詳細(xì)的探討。
    的頭像 發(fā)表于 05-12 17:19 ?1577次閱讀

    贛江新區(qū)黨工委專職副書記羅進(jìn)走訪慰問(wèn)我司高層次人才駱建輝!

    1月31日,贛江新區(qū)黨工委專職副書記羅進(jìn)走訪慰問(wèn)江西薩瑞微電子技術(shù)有限公司高層次人才駱建輝。與駱建輝進(jìn)行了深入的交流,體現(xiàn)了新區(qū)對(duì)高層次人才的重視以及對(duì)科技創(chuàng)新的執(zhí)著追求。在對(duì)薩瑞微電子的發(fā)展
    的頭像 發(fā)表于 04-13 08:38 ?379次閱讀
    贛江新區(qū)黨工委專職副書記羅進(jìn)走訪慰問(wèn)我司<b class='flag-5'>高層次</b>人才駱建輝!

    宙訊科技董事長(zhǎng)周沖入選“紫金山英才計(jì)劃高層次創(chuàng)新創(chuàng)業(yè)人才”

    近日,中共南京市委人才工作領(lǐng)導(dǎo)小組發(fā)布了南京市“紫金山英才計(jì)劃高層次創(chuàng)新創(chuàng)業(yè)人才項(xiàng)目”評(píng)審結(jié)果,宙訊科技董事長(zhǎng)周沖成為該項(xiàng)目入選人才。
    的頭像 發(fā)表于 02-26 09:23 ?692次閱讀

    數(shù)字視音頻技術(shù)基本概念

    技術(shù)的應(yīng)用范圍廣泛,涵蓋了廣播電視、影視制作、多媒體通信、遠(yuǎn)程教育等多個(gè)領(lǐng)域。本文將詳細(xì)介紹數(shù)字視音頻技術(shù)基本概念、技術(shù)原理和應(yīng)用現(xiàn)狀等方面。 數(shù)字視音頻
    的頭像 發(fā)表于 12-14 15:00 ?1239次閱讀

    接地裝置的基本概念

    接地裝置的基本概念
    的頭像 發(fā)表于 12-05 15:49 ?452次閱讀
    接地裝置的<b class='flag-5'>基本概念</b>

    C語(yǔ)言的基本概念和編程技術(shù)

    電子發(fā)燒友網(wǎng)站提供《C語(yǔ)言的基本概念和編程技術(shù).pdf》資料免費(fèi)下載
    發(fā)表于 11-20 10:18 ?0次下載
    C語(yǔ)言的<b class='flag-5'>基本概念</b>和編程<b class='flag-5'>技術(shù)</b>

    使用Vivado高層次綜合(HLS)進(jìn)行FPGA設(shè)計(jì)的簡(jiǎn)介

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

    OFDM的基本原理和PAPR的基本概念

    電子發(fā)燒友網(wǎng)站提供《OFDM的基本原理和PAPR的基本概念.pdf》資料免費(fèi)下載
    發(fā)表于 10-25 09:57 ?0次下載
    OFDM的基本原理和PAPR的<b class='flag-5'>基本概念</b>

    天線的幾個(gè)基本概念

    電子發(fā)燒友網(wǎng)站提供《天線的幾個(gè)基本概念.ppt》資料免費(fèi)下載
    發(fā)表于 10-07 16:17 ?1次下載
    天線的幾個(gè)<b class='flag-5'>基本概念</b>

    SPI接口的基本概念工作原理

    串行外設(shè)接口(Serial Peripheral Interface,SPI)是一種同步串行通信協(xié)議,用于在微控制器和其外設(shè)之間進(jìn)行雙向數(shù)據(jù)傳輸。SPI接口廣泛應(yīng)用于各種嵌入式系統(tǒng),如傳感器、顯示器、音頻設(shè)備等。本文將介紹SPI接口的基本概念工作原理以及在實(shí)際應(yīng)用中的一
    發(fā)表于 09-26 18:23 ?3905次閱讀

    GPIO的基本概念、工作原理及關(guān)鍵技術(shù)

    等的數(shù)據(jù)采集和控制。本文將介紹GPIO的基本概念、工作原理以及一些關(guān)鍵技術(shù),幫助讀者更好地理解GPIO的性能和應(yīng)用。
    的頭像 發(fā)表于 09-26 17:21 ?8807次閱讀