chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

如何在C代碼中插入寄存器?

FPGA技術(shù)驛站 ? 來源:Lauren的FPGA ? 作者:Lauren的FPGA ? 2021-02-02 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對(duì)于邏輯級(jí)數(shù)較高的路徑,常用的方法之一是在其中插入流水寄存器,將路徑打斷,從而降低邏輯延遲,這在HDL代碼中實(shí)現(xiàn)起來比較容易。此外,從RTL代碼風(fēng)格角度講,對(duì)于關(guān)鍵模塊,設(shè)計(jì)時(shí)常將其輸入/輸出端口寄存。這起到了隔離關(guān)鍵路徑的作用。

但是,如果使用的RTL代碼是HLS轉(zhuǎn)換生成的,例如使用Vitis HLS綜合的,其可讀性較差,想要在其生成的HDL代碼中插入寄存器就變得比較困難。為此,我們想到了能否在C代碼中插入寄存器,并保證Vitis HLS綜合后的結(jié)果是寄存器。

這要解決四個(gè)問題:一是這樣的C代碼要具備一定的可復(fù)用性,比如,以模板函數(shù)的形式呈現(xiàn)。二是這樣的C代碼是參數(shù)化的,尤其是數(shù)據(jù)類型,因?yàn)樾枰拇娴臄?shù)據(jù)其數(shù)據(jù)類型不盡相同。這仍然可以借助模板函數(shù)實(shí)現(xiàn)。三是保證這個(gè)函數(shù)不被優(yōu)化合并掉。因?yàn)檫@個(gè)函數(shù)功能比較單一,輸出等于輸入,這就要用到INLINE的功能。四是C語言是不具備時(shí)序特征的,要實(shí)現(xiàn)輸出與輸入的延遲,就要借助相應(yīng)的pragma,我們想到了Latency。

在此基礎(chǔ)上,我們構(gòu)造了下面的C++代碼。不難看出,這是一個(gè)模板函數(shù),數(shù)據(jù)類型是參數(shù)化的,使用了三個(gè)pragma。其中PIPELINE用于限定II為1,LATENCY用于限定延遲為1,INLINE用于防止該函數(shù)被合并。

66d4998e-5fc8-11eb-8b86-12bb97331649.png

看一個(gè)具體的使用案例,如下圖所示代碼。功能很簡(jiǎn)單,就是實(shí)現(xiàn)兩個(gè)數(shù)的相加。這里對(duì)兩個(gè)輸入數(shù)據(jù)a和b分別做了寄存,同時(shí)對(duì)結(jié)果c也做了寄存。最終的綜合報(bào)告顯示Latency為2,和我們預(yù)期的一致。對(duì)于生成的HDL代碼,將其添加到Vivado中進(jìn)行綜合,綜合后的結(jié)果也是符合預(yù)期的。

6a37c740-5fc8-11eb-8b86-12bb97331649.png

6dcf1afc-5fc8-11eb-8b86-12bb97331649.png

這里,我們對(duì)比一下三種情形。情形1:不添加流水寄存器;情形2:僅對(duì)輸出添加流水寄存器;情形3:輸入輸出均添加流水寄存器。Vitis HLS綜合結(jié)果以及其生成的HDL代碼在Vivado下的綜合結(jié)果對(duì)比如下圖所示。首先,可以看到Latency符合預(yù)期,同時(shí)II始終為1;其次,Vivado下綜合后的資源利用率與Vitis HLS的結(jié)果是不一致的。這一點(diǎn)也很容易理解,因?yàn)閂ivado綜合時(shí)會(huì)有很多優(yōu)化。

6e165a70-5fc8-11eb-8b86-12bb97331649.png

進(jìn)一步,我們看到這里的延遲為1,如果需要兩級(jí)延遲,就要兩次調(diào)用模板函數(shù)。能否將延遲的時(shí)鐘周期也設(shè)置成參數(shù)呢?答案是肯定的,如下圖代碼所示。這里定義了L,用來管理延遲的時(shí)鐘周期個(gè)數(shù),對(duì)應(yīng)pragma Latency的min和max值。

6e600c38-5fc8-11eb-8b86-12bb97331649.png

6f7ac52c-5fc8-11eb-8b86-12bb97331649.png

原文標(biāo)題:在C代碼中插入寄存器

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

責(zé)任編輯:haq

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

    關(guān)注

    31

    文章

    5617

    瀏覽量

    130374
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7646

    瀏覽量

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

    關(guān)注

    30

    文章

    4975

    瀏覽量

    74332

原文標(biāo)題:在C代碼中插入寄存器

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    解析ICSSSTV16859C:DDR 13位到26位寄存器緩沖

    解析ICSSSTV16859C:DDR 13位到26位寄存器緩沖 在DDR內(nèi)存模塊的設(shè)計(jì),選擇合適的寄存器緩沖
    的頭像 發(fā)表于 04-14 10:05 ?57次閱讀

    IDT74SSTVN16859C:13位至26位寄存器緩沖的技術(shù)解析

    的是IDT74SSTVN16859C這款13位至26位的寄存器緩沖,看看它在實(shí)際應(yīng)用能為我們帶來哪些便利。 文件下載: IDT74SSTVN16859CNLG.pdf 產(chǎn)品特性亮點(diǎn)
    的頭像 發(fā)表于 04-12 12:55 ?377次閱讀

    74HC595 8位移位寄存器:設(shè)計(jì)與應(yīng)用全解析

    74HC595 8位移位寄存器:設(shè)計(jì)與應(yīng)用全解析 在電子工程師的工具箱,移位寄存器是一個(gè)非常實(shí)用的組件。今天,我們就來深入了解一下SG Micro Corp的74HC595 8位串行輸入/串行輸出
    的頭像 發(fā)表于 03-16 10:35 ?320次閱讀

    STPIC6C595:8位移位寄存器的性能剖析與應(yīng)用解讀

    STPIC6C595:8位移位寄存器的性能剖析與應(yīng)用解讀 在電子設(shè)計(jì)領(lǐng)域,對(duì)于需要控制相對(duì)中等負(fù)載功率的系統(tǒng)而言,合適的移位寄存器至關(guān)重要。STPIC6C595作為一款單片、
    的頭像 發(fā)表于 01-26 17:40 ?832次閱讀

    請(qǐng)問如何實(shí)現(xiàn)C語言訪問MCU寄存器?

    系列KeilC擴(kuò)充sfr關(guān)鍵字,舉例如下:   sfr P0 = 0x80;   這樣操作0x80單元直接寫P0即可。   下面對(duì)AVR的歌C編譯對(duì)訪問MCU寄存器的方法進(jìn)行簡(jiǎn)介。
    發(fā)表于 12-26 07:00

    嵌入式系統(tǒng)必懂的 20 個(gè)寄存器

    了嵌入式系統(tǒng)開發(fā)者必懂的20個(gè)寄存器,讓你快速掌握MCU的核心操作方法。01寄存器基礎(chǔ)寄存器是CPU內(nèi)部用于高速存取數(shù)據(jù)的小容量存儲(chǔ)單元,是計(jì)算機(jī)執(zhí)行指令、處理
    的頭像 發(fā)表于 11-14 10:28 ?1324次閱讀
    嵌入式系統(tǒng)必懂的 20 個(gè)<b class='flag-5'>寄存器</b>

    ?SN74HCT595 8位移位寄存器技術(shù)解析與應(yīng)用指南

    Texas Instruments SN74HCT595/SN74HCT595-Q1 8位移位寄存器包含8位串進(jìn)并出移位寄存器,向8位D類存儲(chǔ)寄存器饋送信號(hào)。存儲(chǔ)寄存器具有并行 3 狀
    的頭像 發(fā)表于 09-19 14:31 ?1186次閱讀
    ?SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技術(shù)解析與應(yīng)用指南

    TPIC6595 8位功率移位寄存器技術(shù)文檔摘要

    該TPIC6595是一款單片、高壓、大電流功率的8位移位寄存器,設(shè)計(jì)用于需要相對(duì)較高負(fù)載功率的系統(tǒng)。該器件在輸出端包含一個(gè)內(nèi)置電壓鉗位,用于電感瞬態(tài)保護(hù)。功率驅(qū)動(dòng)應(yīng)用包括繼電器、螺線管和其他電流
    的頭像 發(fā)表于 09-09 11:10 ?1034次閱讀
    TPIC6595 8位功率移位<b class='flag-5'>寄存器</b>技術(shù)文檔摘要

    ?TPIC6B595 8位功率移位寄存器技術(shù)文檔總結(jié)

    TPIC6B595器件是一款單片、高壓、電流功率8位移位寄存器,設(shè)計(jì)用于需要相對(duì)高負(fù)載功率的系統(tǒng)。該器件在輸出端包含一個(gè)內(nèi)置電壓鉗位,用于電感瞬態(tài)保護(hù)。功率驅(qū)動(dòng)應(yīng)用包括繼電器、螺線管和其他
    的頭像 發(fā)表于 09-09 10:16 ?1140次閱讀
    ?TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技術(shù)文檔總結(jié)

    ?TPIC6C595 8位移位寄存器數(shù)據(jù)手冊(cè)總結(jié)

    該TPIC6C595是單片、壓、低電流 功率 8 位移位寄存器設(shè)計(jì)用于需要相對(duì)中等負(fù)載功率的系統(tǒng) 例如 LED。該器件在輸出端包含一個(gè)內(nèi)置電壓鉗位,用于電感瞬態(tài) 保護(hù)。功率驅(qū)動(dòng)應(yīng)用
    的頭像 發(fā)表于 09-09 09:56 ?992次閱讀
    ?TPIC6<b class='flag-5'>C</b>595 8位移位<b class='flag-5'>寄存器</b>數(shù)據(jù)手冊(cè)總結(jié)

    TLC6C598 8位移位寄存器LED驅(qū)動(dòng)技術(shù)手冊(cè)

    TLC6C598器件是單片、壓、低電流功率 8 位移位 寄存器設(shè)計(jì)用于需要相對(duì)中等負(fù)載功率的系統(tǒng),例如 LED。 該器件包含一個(gè) 8 位串行輸入并行輸出移位寄存器,可為 8 位
    的頭像 發(fā)表于 08-26 14:31 ?1242次閱讀
    TLC6<b class='flag-5'>C</b>598 8位移位<b class='flag-5'>寄存器</b>LED驅(qū)動(dòng)<b class='flag-5'>器</b>技術(shù)手冊(cè)

    ?TLC6C5912 12通道移位寄存器LED驅(qū)動(dòng)技術(shù)文檔總結(jié)

    該TLC6C5912是一款單片、壓、低電流功率 12 位移位寄存器 設(shè)計(jì)用于需要相對(duì)中等負(fù)載功率的系統(tǒng),例如 LED。 該器件包含一個(gè) 12 位串行輸入并行輸出移位寄存器,可為
    的頭像 發(fā)表于 08-26 14:16 ?1130次閱讀
    ?TLC6<b class='flag-5'>C</b>5912 12通道移位<b class='flag-5'>寄存器</b>LED驅(qū)動(dòng)<b class='flag-5'>器</b>技術(shù)文檔總結(jié)

    SN74LV595B-EP低噪聲8位移位寄存器技術(shù)解析與應(yīng)用指南

    Texas Instruments SN74LV595B-EP低噪聲8位移位寄存器包含一個(gè)8位串行輸入、并行輸出移位寄存器,可為8位D類存儲(chǔ)寄存器饋送信號(hào)。存儲(chǔ)寄存器具有并行 3 狀態(tài)
    的頭像 發(fā)表于 08-15 09:28 ?1404次閱讀
    SN74LV595B-EP低噪聲8位移位<b class='flag-5'>寄存器</b>技術(shù)解析與應(yīng)用指南

    使用寄存器點(diǎn)亮LED燈

    學(xué)習(xí)本章時(shí),配合以上芯片手冊(cè)的“19. I/O Ports”章節(jié)一起閱讀,效果會(huì)更佳,特別是涉及到寄存器說明的部分。本章內(nèi)容涉及到較多寄存器方面的深入內(nèi)容,對(duì)于初學(xué)者而言這些內(nèi)容豐富也較難理解,但非常有必要細(xì)讀研究、夯實(shí)基礎(chǔ)。
    的頭像 發(fā)表于 05-28 17:37 ?1445次閱讀
    使用<b class='flag-5'>寄存器</b>點(diǎn)亮LED燈

    如何用C語言操作寄存器——瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南(10)

    由于寄存器的數(shù)量是非常之多的,如果每個(gè)寄存器都用像*((uint32_t*)(0x40080000+0x0020*1))這樣的方式去訪問的話,會(huì)顯得很繁瑣、很麻煩。為了更方便地訪問寄存器,我們會(huì)借助
    的頭像 發(fā)表于 04-22 15:30 ?2145次閱讀
    如何用<b class='flag-5'>C</b>語言操作<b class='flag-5'>寄存器</b>——瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南(10)