女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

簡述HLS中的數(shù)組初始化遇到的那些個(gè)問題

OpenFPGA ? 來源:TeacherGaoFPGAHub ? 作者:TeacherGaoFPGAHub ? 2021-07-21 09:36 ? 次閱讀

在HLS中使用數(shù)組時(shí),尤其是對(duì)數(shù)組初始化時(shí),盡可能加上關(guān)鍵字static,這樣C++中數(shù)組的行為才能與RTL中存儲(chǔ)單元的行為保持一致。例如:將FIR濾波器系數(shù)存儲(chǔ)在數(shù)組coeff中,由于系數(shù)固定不變,可以斷定該數(shù)組最終映射為RTL中的ROM

添加static之后,每次函數(shù)在被執(zhí)行時(shí),數(shù)組coeff都會(huì)記住其前一次被調(diào)用時(shí)的值。這就要理解static在C++中的含義,即static規(guī)定其指定的變量存儲(chǔ)方式為靜態(tài)存儲(chǔ)方式,每次調(diào)用的初始值為上一次調(diào)用的值,調(diào)用結(jié)束后存儲(chǔ)空間不釋放。對(duì)于指定static關(guān)鍵字的變量,VitisHLS在生成RTL代碼時(shí)會(huì)對(duì)其先進(jìn)行初始化。

7bb53a22-e428-11eb-a97a-12bb97331649.png

如果數(shù)組在整個(gè)函數(shù)執(zhí)行過程中只發(fā)生讀操作而沒有寫操作,那么建議添加關(guān)鍵字const,以保證VitisHLS能正確推斷出ROM。

如果在ROM的初始化過程中出現(xiàn)復(fù)雜的運(yùn)算,例如使用了math.h中的函數(shù)等,建議將初始化過程單獨(dú)封裝為一個(gè)函數(shù)。我們來看一個(gè)案例。在下面的代碼中,函數(shù)init_sin_table用于初始化數(shù)組sin_table。在其初始化過程中會(huì)調(diào)用math.h中的函數(shù)sin。

sin要求其形參為float或double。函數(shù)lookup_math中聲明了數(shù)組sin_table,并添加關(guān)鍵字static。在代碼第17行調(diào)用了函數(shù)init_sin_table完成數(shù)組初始化。第18行則是從sin_table中獲取相應(yīng)地址上的數(shù)據(jù)完成最終的乘法運(yùn)算。

7be282b6-e428-11eb-a97a-12bb97331649.png

從HLS綜合后的報(bào)告來看,最終sin_table的存儲(chǔ)形式(報(bào)告中的Storage列)為rom_1p,實(shí)現(xiàn)方式為auto,Latency為1。在資源評(píng)估報(bào)告中可以看到消耗了1個(gè)BRAM。

7c1a0862-e428-11eb-a97a-12bb97331649.png

7c46f2dc-e428-11eb-a97a-12bb97331649.png

編輯:jq

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

    關(guān)注

    1

    文章

    131

    瀏覽量

    24649

原文標(biāo)題:HLS中的數(shù)組初始化問題

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

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

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發(fā)燒友網(wǎng)站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費(fèi)下載
    發(fā)表于 02-26 17:32 ?658次下載

    初始化AFE4400的時(shí)候,哪些控制字是必須最先寫的?

    想使用AFE 4400,但是遇到了一些問題: 在初始化AFE4400的時(shí)候,哪些控制字是必須最先寫的?初始化AFE4400之前,建立SPI通訊時(shí),CPU出送出的信號(hào)是正確的,但是AFE4400沒有返回的信號(hào),是怎么回事? 歡迎
    發(fā)表于 02-08 07:49

    AFE031初始化的過程應(yīng)該是什么?

    我現(xiàn)在工程需要使用AFE031,在工作遇到以下問題,請(qǐng)高手可以指點(diǎn)一二: 1:如果在不燒入任何軟件的時(shí)候,參考電壓RFE1和REF2 是否就已經(jīng)存在?還是需要軟件對(duì)其進(jìn)行正確的初始化
    發(fā)表于 01-15 06:54

    EE-359:ADSP-CM40x啟動(dòng)時(shí)間優(yōu)化和器件初始化

    電子發(fā)燒友網(wǎng)站提供《EE-359:ADSP-CM40x啟動(dòng)時(shí)間優(yōu)化和器件初始化.pdf》資料免費(fèi)下載
    發(fā)表于 01-13 16:33 ?0次下載
    EE-359:ADSP-CM40x啟動(dòng)時(shí)間優(yōu)化和器件<b class='flag-5'>初始化</b>

    EE-88:使用21xx編譯器在C初始化變量

    電子發(fā)燒友網(wǎng)站提供《EE-88:使用21xx編譯器在C初始化變量.pdf》資料免費(fèi)下載
    發(fā)表于 01-13 15:54 ?0次下載
    EE-88:使用21xx編譯器在C<b class='flag-5'>中</b><b class='flag-5'>初始化</b>變量

    OMAP5912多媒體處理器初始化參考指南

    電子發(fā)燒友網(wǎng)站提供《OMAP5912多媒體處理器初始化參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-17 16:20 ?0次下載
    OMAP5912多媒體處理器<b class='flag-5'>初始化</b>參考指南

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結(jié)合提供了強(qiáng)大的存儲(chǔ)解決方案。然而,不斷電初始化失效問題可能會(huì)導(dǎo)致系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性受損。我們將STM32F407與SD NAND集成時(shí)可能遇到初始化問題,并提供專
    的頭像 發(fā)表于 12-11 10:51 ?826次閱讀
    STM32F407 MCU使用SD NAND?不斷電<b class='flag-5'>初始化</b>失效解決方案

    segger編譯器初始化問題

    的圖; 2.第二張圖是該變量在文件的所有操作,第一行是初始化,該行代碼在初始化部分最后一個(gè),執(zhí)行完就是主循環(huán)了; 3.第2,3行也是對(duì)變量的賦值,在主循環(huán)中; 4.第4行已注釋; 5.第6行是對(duì)變量
    發(fā)表于 12-09 18:06

    請(qǐng)問LMX2595配置時(shí)如何進(jìn)行初始化

    您好,查閱手冊(cè)說初始化按照1.r0的rest置為1;2.r0的reset置為1;3.按照寄存器表格配置寄存器;4.fcal_en置為1的順序來初始化。請(qǐng)問在第三步,按照寄存器表配置寄存器,這些
    發(fā)表于 11-12 06:51

    TLV320AIC3254初始化的時(shí)間大概是多長?

    TLV320AIC3254初始化的時(shí)間大概是多長,為什么我按標(biāo)準(zhǔn)的程序流程需要3秒左右,初始化的時(shí)間跟那些參數(shù)有關(guān)系!
    發(fā)表于 11-06 07:07

    基于旋轉(zhuǎn)平移解耦框架的視覺慣性初始化方法

    精確和魯棒的初始化對(duì)于視覺慣性里程計(jì)(VIO)至關(guān)重要,因?yàn)椴涣嫉?b class='flag-5'>初始化會(huì)嚴(yán)重降低姿態(tài)精度。
    的頭像 發(fā)表于 11-01 10:16 ?851次閱讀
    基于旋轉(zhuǎn)平移解耦框架的視覺慣性<b class='flag-5'>初始化</b>方法

    TMS320C6000 McBSP初始化

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000 McBSP初始化.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 10:10 ?0次下載
    TMS320C6000 McBSP<b class='flag-5'>初始化</b>

    如何避免自動(dòng)初始化組件被截?cái)嗟那闆r?

    大小const數(shù)組用來占用這個(gè)區(qū)域,避免鏈接時(shí)將執(zhí)行代碼鏈接到此區(qū)域。 但編譯的時(shí)候,鏈接腳本會(huì)把合適大小的執(zhí)行代碼填補(bǔ)0x08000000 ~ 0x08003FFF 區(qū)域,導(dǎo)致鏈接時(shí)把自動(dòng)初始化組件給截?cái)嗔恕?請(qǐng)教各位大神,有沒有解決方法。避免自動(dòng)
    發(fā)表于 09-13 08:06

    Keil變量不被初始化方法

    有些時(shí)候在我們的應(yīng)用過程要求變量有連續(xù)性,或者現(xiàn)場保留,例如Bootloader跳轉(zhuǎn),某種原因的復(fù)位過程我們有些關(guān)鍵變量不能被初始化,在不同的編譯環(huán)境下有不同的設(shè)置,本文就這個(gè)操作做總結(jié),分別
    的頭像 發(fā)表于 08-30 11:47 ?1303次閱讀
    Keil<b class='flag-5'>中</b>變量不被<b class='flag-5'>初始化</b>方法

    瀚海微SD NAND應(yīng)用之SD協(xié)議存儲(chǔ)功能描述2 初始化命令

    初始化和識(shí)別過程: 總線激活后,主機(jī)啟動(dòng)卡初始化和識(shí)別過程。 初始化過程從SD SEND OP COND (ACMD41)開始,通過設(shè)置其操作條件和OCR的HCS位。HCS (Ho
    的頭像 發(fā)表于 07-22 10:54 ?662次閱讀
    瀚海微SD NAND應(yīng)用之SD協(xié)議存儲(chǔ)功能描述2 <b class='flag-5'>初始化</b>命令