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

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

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

一篇文章看懂HLS中的數(shù)據(jù)類型

電子工程師 ? 來源:lq ? 2018-12-12 14:18 ? 次閱讀

Vivado HLS的輸入可以是C、C++或者System C,從而繼承了這些語言本身就具有的數(shù)據(jù)類型,例如char、short int、int等整型或float、double等浮點數(shù)據(jù)類型。不難發(fā)現(xiàn),對于整型,其表示的字長是以8為邊界的,這實際上和真實的硬件模型不完全匹配。這一點也不難理解,例如HDL中會根據(jù)設(shè)計需求設(shè)定位寬,而這些位寬很多情形下并不是8-bit、16-bit或者32-bit。因此,HLS引入了任意精度(ArbitraryPrecision)的數(shù)據(jù)類型(對于SystemC,可查看Table 1-7, ug902)。以C++為例說明。

整數(shù)

1

對于任意精度整型數(shù)據(jù)類型,可通過ap_int聲明位寬為W的有符號整數(shù),或通過ap_uint聲明位寬為W的無符號整數(shù)。需要添加頭文件ap_int.h。

定點數(shù)

2

對于任意精度的定點小數(shù),可通過ap_fixed聲明位寬為W,其中整數(shù)部分字長為I的有符號定點小數(shù);或通過ap_ufixed聲明位寬為W,其中整數(shù)部分字長為I的無符號定點小數(shù)。需要添加頭文件ap_fixed.h。

浮點數(shù)

3

對于浮點數(shù)據(jù)類型,除了float和double之外,Vivado HLS還引入了半精度浮點數(shù)half,需要添加頭文件hls_half.h。該浮點數(shù)據(jù)類型為16-bit。

技巧

多種數(shù)據(jù)類型給用戶提供了更多的選擇,用戶可根據(jù)實際需求選擇可最佳匹配于硬件的數(shù)據(jù)類型。一個小的技巧是,把數(shù)據(jù)類型通過typedef定義在用戶的頭文件中。此外,在仿真時可采用float或double類型,以防止數(shù)據(jù)溢出,盡快完成算法功能的驗證;之后再將設(shè)定為整型,觀察是否有溢出,完成C綜合。

結(jié)論

任意精度的數(shù)據(jù)類型可以完美地匹配硬件需求,同時還繼承了原有數(shù)據(jù)類型所允許的操作。例如,對于兩個13-bit的有符號整數(shù)相乘,不必把其定義為int類型,而是直接定義為ap_int<13>,且可直接使用乘法運算符。這樣做的最大好處就是更準(zhǔn)確地獲取資源利用率信息。注意在使用任意精度數(shù)據(jù)類型時要添加相應(yīng)的頭文件。

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

    關(guān)注

    22

    文章

    2116

    瀏覽量

    74369
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    236

    瀏覽量

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

    關(guān)注

    1

    文章

    130

    瀏覽量

    24435

原文標(biāo)題:一篇文章看懂HLS中的數(shù)據(jù)類型

文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏
  • 未来星wewewe1

評論

相關(guān)推薦

GaussDB 數(shù)據(jù)類型介紹

進行數(shù)據(jù)類型轉(zhuǎn)換,以滿足不同的需求。本文將以示例的形式羅列并介紹些常見的數(shù)據(jù)類型轉(zhuǎn)換方法等。? 數(shù)據(jù)類型概念及特點 數(shù)據(jù)類型
的頭像 發(fā)表于 06-05 16:40 ?1853次閱讀
GaussDB <b class='flag-5'>數(shù)據(jù)類型</b>介紹

如何利用Vivado HLS處理許多位準(zhǔn)確或任意精度數(shù)據(jù)類型

我們在設(shè)計硬件時,它往往是要求更精確的位寬。例如,個filter的輸入是12位和個累加器的結(jié)果只需要個最大范圍為27位。然而對于硬件設(shè)計來說,使用標(biāo)準(zhǔn)的C數(shù)據(jù)類型會造成硬件成本的
發(fā)表于 11-10 14:49 ?2938次閱讀
如何利用Vivado <b class='flag-5'>HLS</b>處理許多位準(zhǔn)確或任意精度<b class='flag-5'>數(shù)據(jù)類型</b>

HLS系列– HLS數(shù)據(jù)類型1

供的數(shù)據(jù)類型,直接用HLS翻譯成硬件的話,可能會造成硬件效率的下降。 舉個常見的例子。在xilinx FPGA普遍含有DSP48,它可以提供18x18bit的乘法器,假如你的設(shè)計只
發(fā)表于 02-08 02:50 ?1074次閱讀
<b class='flag-5'>HLS</b>系列– <b class='flag-5'>HLS</b><b class='flag-5'>中</b>的<b class='flag-5'>數(shù)據(jù)類型</b>1

51單片機數(shù)據(jù)類型解析

數(shù)據(jù)類型數(shù)據(jù)結(jié)構(gòu)的定義是個值的集合以及定義在這個值集上的組操作。數(shù)據(jù)類型包括原始
發(fā)表于 11-16 08:45 ?2.5w次閱讀
51單片機<b class='flag-5'>中</b>的<b class='flag-5'>數(shù)據(jù)類型</b>解析

vhdl數(shù)據(jù)類型

VHDL的標(biāo)識符可以是常數(shù)、變量、信號、端口、子程序或參數(shù)的名字。VHDL數(shù)據(jù)類型可以分成四大類: 標(biāo)量型(SCALAR TYPE):屬單元素的最基本的數(shù)據(jù)類型,通常用于描述
發(fā)表于 03-30 15:59 ?11次下載

KEIL-MDK和STM32的數(shù)據(jù)類型-之入門pdf資料下載

數(shù)據(jù)類型-之入門
發(fā)表于 04-14 10:50 ?7次下載
KEIL-MDK和STM32的<b class='flag-5'>數(shù)據(jù)類型</b>-之入門<b class='flag-5'>篇</b>pdf資料下載

重視變量的數(shù)據(jù)類型

不管在什么語言中,定義個變量時必然要在內(nèi)存開辟個相應(yīng)大小的空間來存儲該變量。不同的數(shù)據(jù)類型在內(nèi)存所占的空間大小不同,其所能表示的數(shù)據(jù)
發(fā)表于 01-13 15:05 ?1次下載
重視變量的<b class='flag-5'>數(shù)據(jù)類型</b>

Struct結(jié)構(gòu)數(shù)據(jù)類型

Struct類型種由多個不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類型,也可以是Struct、數(shù)組等復(fù)雜
的頭像 發(fā)表于 07-25 17:02 ?3205次閱讀

結(jié)構(gòu)數(shù)據(jù)類型(Struct)及應(yīng)用案例

Struct數(shù)據(jù)類型使用非常靈活,隨時可以使用,但是相對于PLC數(shù)據(jù)類型 (UDT) 有以下缺點,所以建議需要使用Struct類型時,可以使用PLC數(shù)據(jù)類型(UDT)代替。
的頭像 發(fā)表于 07-27 16:10 ?2040次閱讀

什么是數(shù)據(jù)類型轉(zhuǎn)換

常用的3種數(shù)據(jù)類型:1、Python數(shù)據(jù)類型種:字符串(str)。 2、Python數(shù)據(jù)類型第二種:整數(shù)(int)。 3、Python數(shù)據(jù)類
的頭像 發(fā)表于 02-23 15:21 ?1873次閱讀

定義數(shù)據(jù)類型

在運算之前我們必須首先定義出數(shù)據(jù)類型,定義出腳本支持的數(shù)據(jù)類型,這是運算的基礎(chǔ)。 這小節(jié)我們將定義出數(shù)據(jù)類型,在這里我們暫時定義四個數(shù)據(jù)類型
的頭像 發(fā)表于 03-03 10:10 ?1116次閱讀

ARRAY 數(shù)據(jù)類型的變量

要求 全局數(shù)據(jù)塊已打開。 操作步驟 要聲明個 ARRAY 數(shù)據(jù)類型的變量,請按以下步驟操作: 在“名稱”(Name) 列,輸入變量的名稱。 在“
的頭像 發(fā)表于 07-06 11:08 ?1434次閱讀

F型PLC數(shù)據(jù)類型與標(biāo)準(zhǔn)PLC數(shù)據(jù)類型(UDT)之間的差別在哪?

可以像使用標(biāo)準(zhǔn) PLC 數(shù)據(jù)類型 (UDT) 那樣,聲明和使用 F 型 PLC 數(shù)據(jù)類型 (UDT) ??梢栽诎踩绦?b class='flag-5'>中以及標(biāo)準(zhǔn)用戶程序中使用 F 型 PLC 數(shù)據(jù)類型 (U
的頭像 發(fā)表于 08-27 09:54 ?1352次閱讀
F型PLC<b class='flag-5'>數(shù)據(jù)類型</b>與標(biāo)準(zhǔn)PLC<b class='flag-5'>數(shù)據(jù)類型</b>(UDT)之間的差別在哪?

Redis的數(shù)據(jù)類型有哪些

用的一種數(shù)據(jù)類型,普通的key- value 存儲都可以歸為此類。其中Value既可以是數(shù)字也可以是字符串。使用場景:常規(guī)key-value緩存應(yīng)用。常規(guī)計數(shù): 微博數(shù), 粉絲數(shù)。 2、Hash:Hash 是個鍵值(
的頭像 發(fā)表于 10-09 10:51 ?913次閱讀

plc數(shù)據(jù)類型怎么理解和應(yīng)用

PLC(可編程邏輯控制器)是種工業(yè)自動化設(shè)備,用于控制機械和工業(yè)過程。在PLC編程,數(shù)據(jù)類型是非常重要的概念,因為它決定了程序數(shù)據(jù)的存
的頭像 發(fā)表于 12-19 11:39 ?4961次閱讀

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

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