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

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

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

HLS中的位操作可以這么做

電子工程師 ? 來源:lq ? 2019-01-23 15:36 ? 次閱讀

標(biāo)準(zhǔn)C++中已經(jīng)提供了位運算符,包括位求反、左移、右移、位與、位異或以及位或。在此基礎(chǔ)上,HLS考慮到硬件的一個特性,那就是獲取數(shù)據(jù)中的某一位或者某幾位,同時,可能對數(shù)據(jù)本身進行位縮減運算,因此,HLS在這方面做了擴展,提供了一些特有的操作和方法(Method)。當(dāng)然,這些操作只針對定點數(shù)。

初始化與賦值

對于任意進度整型數(shù)據(jù)的初始化可以采用如下三種方式,如圖1所示。三種方式輸出的結(jié)果均為11,如圖2所示。

圖1

圖2

位選取與位賦值

HLS允許選取數(shù)據(jù)中的某一位,同時還可對指定位重新復(fù)制,這些操作均可通過[]完成,如圖3所示代碼片段。相應(yīng)的輸出結(jié)果如圖4所示。

圖3

圖4

此外,通過()或range()還可選取指定范圍的某幾位。代碼片段如圖5所示,相應(yīng)的輸出結(jié)果圖6所示。相比較,直接使用()操作會更快捷。同時,該操作還可實現(xiàn)位反轉(zhuǎn)。當(dāng)()中的數(shù)據(jù)一致時,則獲取指定位的內(nèi)容。

圖5

圖6

位縮減

就位縮減運算而言,HLS提供了6種位縮減方法:and_reduce()、or_reduce()、xor_reduce()、nand_reduce()、nor_reduce()和xnor_reduce()。如圖7所示,相應(yīng)的輸出結(jié)果如圖8所示。

圖7

圖8

二進制顯示

有時在調(diào)試時,需要把數(shù)據(jù)以二進制形式打印出來,這時需要用到to_string和c_str(),如圖9所示,相應(yīng)的輸出結(jié)果如圖10所示。

圖9

圖10

結(jié)論

HLS對C++的位操作進行了擴展,可快捷地執(zhí)行獲取某一位或某幾位的操作,還可方便地完成位縮減運算。對于C語言,HLS也有相應(yīng)的擴展,具體可參考ug902。

聲明:本文內(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

    文章

    2114

    瀏覽量

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

    關(guān)注

    30

    文章

    4823

    瀏覽量

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

    關(guān)注

    1

    文章

    130

    瀏覽量

    24186

原文標(biāo)題:HLS中的位操作可以這么做

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

收藏 0人收藏

    評論

    相關(guān)推薦

    蘋果逆勢而動 雙核64A7處理器性能亦暴走

    四核處理器是智能手機的未來嗎?可能沒有這么快。蘋果最新的64A7處理器,其實還是雙核心!蘋果這么做,是在逆趨勢而動嗎?
    發(fā)表于 09-20 09:52 ?2071次閱讀

    HLS組合電路對設(shè)計的影響

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

    通過設(shè)置外部電容Cout和外部電阻Rout的方法來設(shè)置ADXRS646的帶寬,請問這么做有帶寬上限嗎?

    fout = 1/(2 ×× Rout × Cout); Rout = (180 k× Rext)/(180 k+ Rext)通過設(shè)置外部電容Cout和外部電阻Rout的方法來設(shè)置ADXRS646的帶寬,請問這么做有帶寬上限嗎?最佳帶寬是多少?多謝各位大神!
    發(fā)表于 12-29 08:32

    AGM32VF407的大部分IO可以隨意配置,這是這么做到的?

    AGM32VF407的大部分IO可以隨意配置,除了少數(shù)的專用引腳外,這是這么做到的?這里包括異構(gòu)的RISC-V內(nèi)核的外設(shè)哦。非常感興趣呢。
    發(fā)表于 10-31 19:07

    為什么我關(guān)閉工程管理器 老是提醒我這么做可能會丟棄正在運行的VI

    為什么我關(guān)閉工程管理器 老是提醒我這么做可能會丟棄正在運行的VI可是我查看了下 可能存在VI線程都關(guān)閉了能又別的方法查看嗎 不用點開 VI也能查
    發(fā)表于 05-25 10:29

    如何在HLS 14.3編寫pow功能?

    嗨? 如何在HLS 14.3編寫pow功能? HLS 14.3不支持exp和pow功能。我在我的代碼寫了“#include math.h”。但是,它不起作用。 另外,我想知道C代碼
    發(fā)表于 03-05 13:40

    如何使用Vivado HLS生成了一個IP

    你好,我使用Vivado HLS生成了一個IP。從HLS測量的執(zhí)行和測量的執(zhí)行時間實際上顯著不同。由HLS計算的執(zhí)行非常小(0.14 ms),但是當(dāng)我使用AXI計時器在真實場景測量它
    發(fā)表于 05-05 08:01

    【正點原子FPGA連載】第一章HLS簡介-領(lǐng)航者ZYNQ之HLS 開發(fā)指南

    上,比如讓設(shè)計者可以指定 HLS 引擎如何處理 C 代碼識別出來的循環(huán)或數(shù)組,或是某個特定運算的延遲。這能導(dǎo)致RTL 輸出的巨大改變。因此,具有了指令的知識,設(shè)計者就可以根據(jù)應(yīng)用的需
    發(fā)表于 10-10 16:44

    HLS系列 – High LevelSynthesis(HLS) 的端口綜合1

    在之前HLS的基本概念1里有提及,HLS會把c的參數(shù)映射成rtl的端口實現(xiàn)。本章開始總結(jié)下HLS端口綜合的一些知識。 1.HLS綜合后的rtl端口大體
    發(fā)表于 02-08 03:29 ?889次閱讀
    <b class='flag-5'>HLS</b>系列 – High LevelSynthesis(<b class='flag-5'>HLS</b>) 的端口綜合1

    FPGA設(shè)計HLS 工具應(yīng)用

    HLS,高層綜合)。這個工具直接使用C、C++或SystemC 開發(fā)的高層描述來綜合數(shù)字硬件,這樣就不再需要人工做出用于硬件的設(shè)計,像是VHDL 或Verilog 這樣的文件,而是由HLS 工具來這個事情。
    發(fā)表于 06-04 01:43 ?7444次閱讀
    FPGA設(shè)計<b class='flag-5'>中</b>的<b class='flag-5'>HLS</b> 工具應(yīng)用

    魅族華海良評論iPhone 12直角邊框:技術(shù)限制 必須這么做

    iPhone 12系列在外觀設(shè)計上和上一代最大的不同之處在于回歸了iPhone 4時代的直角邊框設(shè)計。 業(yè)界猜測蘋果這么做是為了致敬一代經(jīng)典iPhone 4,而魅族科技副總裁華海良則給出
    的頭像 發(fā)表于 11-05 13:10 ?1281次閱讀

    要想成為ARM嵌入式硬件高手,你得這么做!資料下載

    電子發(fā)燒友網(wǎng)為你提供要想成為ARM嵌入式硬件高手,你得這么做!資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-18 08:41 ?15次下載
    要想成為ARM嵌入式硬件高手,你得<b class='flag-5'>這么做</b>!資料下載

    8單片機多位乘除操作

    8單片機多位乘除操作今日在8單片機乘除運算,簡化代碼如下 unsigned char
    發(fā)表于 11-18 19:51 ?12次下載
    8<b class='flag-5'>位</b>單片機<b class='flag-5'>做</b>多位乘除<b class='flag-5'>操作</b>

    FPGA基礎(chǔ)之HLS

    1、HLS簡介 HLS(High-Level Synthesis)高層綜合,就是將 C/C++的功能用 RTL 來實現(xiàn),將 FPGA 的組件在一個軟件環(huán)境來開發(fā),這個模塊的功能驗證在軟件環(huán)境
    的頭像 發(fā)表于 12-02 12:30 ?5537次閱讀

    Redis的數(shù)據(jù)被刪除,內(nèi)存占用還這么大?

    這么做的目的是減少內(nèi)存分配次數(shù),比如申請 22 字節(jié)的空間保存數(shù)據(jù),jemalloc 就會分配 32 字節(jié),如果后邊還要寫入 10 字節(jié),就不需要再向操作系統(tǒng)申請空間了,可以使用之前申請的 32 字節(jié)。
    的頭像 發(fā)表于 12-14 10:56 ?698次閱讀

    電子發(fā)燒友

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

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