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

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

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

采用RTL代碼描述位寬相同的兩個(gè)數(shù)相加或相減

FPGA技術(shù)驛站 ? 來(lái)源:Lauren的FPGA ? 2020-09-27 15:17 ? 次閱讀

本文用的芯片型號(hào)為xcku115-flvd1924-1L-i,時(shí)鐘頻率為400MHz。

兩個(gè)有符號(hào)數(shù)相加

采用RTL代碼描述位寬相同的兩個(gè)數(shù)相加或相減,無(wú)論是有符號(hào)數(shù)還是無(wú)符號(hào)數(shù),Vivado綜合后的結(jié)果是一致的。以32bit數(shù)據(jù)為例,相應(yīng)的代碼如下圖所示。這里考慮到兩個(gè)32bit數(shù)據(jù)相加其結(jié)果可能為33bit,同時(shí)對(duì)于高速設(shè)計(jì)(時(shí)鐘頻率至少400MHz)為了滿(mǎn)足性能,對(duì)輸入和輸出分別添加了流水寄存器

最終的資源利用率如下圖所示。

從邏輯級(jí)數(shù)的角度看,邏輯級(jí)數(shù)最大為5(有一條),大多數(shù)路徑為3,如下圖所示。

從綜合屬性角度看,可以通過(guò)use_dsp屬性使得該加法操作映射到DSP48中,該屬性的使用方法如下圖所示。

采用DSP48實(shí)現(xiàn)時(shí),上述代碼可達(dá)到完全映射,不會(huì)消耗SLICE中的任何資源。假定時(shí)鐘頻率為400MHz,對(duì)比使用LUT+FF和DSP48兩種實(shí)現(xiàn)方式,不難看出后者在時(shí)序(邏輯級(jí)數(shù)降低至1)和功耗方面均有優(yōu)勢(shì)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guā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)注

    31

    文章

    5254

    瀏覽量

    119283
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

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

    關(guān)注

    30

    文章

    4674

    瀏覽量

    67815

原文標(biāo)題:兩個(gè)數(shù)相加,三個(gè)數(shù)相加有什么不同

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    相同代碼,不同的工程出現(xiàn)定時(shí)器搶占的現(xiàn)象怎么解決?

    。 ? ?工程1:使用開(kāi)發(fā)板自帶的EMWIN例子修改,加入界面和定時(shí)器代碼運(yùn)行正常 ?工程2:使用CUBEMX新建工程,加入以上代碼后出現(xiàn),電機(jī)轉(zhuǎn)動(dòng)的時(shí)候卡頓嚴(yán)重,目測(cè)是被搶占了優(yōu)先級(jí)其他原因 ? ?目前嘗試的方法有:修改
    發(fā)表于 05-15 08:27

    用STM32F1xxx來(lái)同時(shí)對(duì)TIMR4的兩個(gè)輸入脈沖進(jìn)行脈測(cè)量,脈沖要如何計(jì)算?

    我用STM32F1xxx來(lái)同時(shí)對(duì)TIMR4的兩個(gè)輸入脈沖進(jìn)行脈測(cè)量,我的脈測(cè)量思路為次上升沿的捕捉值相減,但現(xiàn)如下問(wèn)題不解,假如前一個(gè)
    發(fā)表于 05-15 06:13

    原電池中的兩個(gè)電極能是相同的嗎?

    在原電池的設(shè)計(jì)和運(yùn)作中,兩個(gè)電極是否可以相同,這取決于電池的類(lèi)型和所需的電化學(xué)反應(yīng)。
    的頭像 發(fā)表于 04-26 17:32 ?1053次閱讀

    labview怎么查數(shù)組中相同元素的個(gè)數(shù)

    的每個(gè)元素。 在每次循環(huán)迭代中,使用“Case Structure”結(jié)構(gòu)將當(dāng)前元素與數(shù)組中的其他元素進(jìn)行比較。為此,可以使用另一個(gè)嵌套的“For Loop”來(lái)遍歷數(shù)組并計(jì)算相同元素的個(gè)數(shù)。 在嵌套的“For Loop”中,使用“Equal?”函數(shù)來(lái)比較
    的頭像 發(fā)表于 12-28 16:42 ?2567次閱讀

    AD9269在AD兩個(gè)通道的入口輸入峰值相同的差分信號(hào),為什么AD兩個(gè)通道的輸出不同?

    在AD兩個(gè)通道的入口輸入峰值相同的差分信號(hào),為什么AD兩個(gè)通道的輸出不同,最高位的符號(hào)為什么不同
    發(fā)表于 12-12 06:55

    數(shù)字前端生存指南—RTL

    在數(shù)字前端領(lǐng)域,RTL幾乎與“設(shè)計(jì)代碼”概念相同。
    的頭像 發(fā)表于 12-04 10:14 ?7885次閱讀
    數(shù)字前端生存指南—<b class='flag-5'>RTL</b>

    關(guān)于AD6688輸出的問(wèn)題

    論壇的大牛們好,我最近在使用AD6688,是一款14的ADC,但是如果配置N=16,CS=0的話(huà),輸出的數(shù)據(jù)會(huì)是16的。我本以為是高兩位兩位
    發(fā)表于 12-01 07:31

    vlookup兩個(gè)表怎么匹配相同數(shù)據(jù)

    VLOOKUP是一種非常有用的Excel函數(shù),它可以幫助我們?cè)?b class='flag-5'>兩個(gè)表中匹配相同的數(shù)據(jù)。在本文中,我們將詳細(xì)介紹VLOOKUP函數(shù)的工作原理,并通過(guò)示例方式演示如何將兩個(gè)表匹配起來(lái)。 首先,我們需要
    的頭像 發(fā)表于 11-30 17:18 ?2398次閱讀

    python中如何交換兩個(gè)數(shù)的值相加

    Python是一種簡(jiǎn)單易學(xué)的高級(jí)語(yǔ)言,其交換兩個(gè)數(shù)的值相加是一種常見(jiàn)的操作。交換變量的值可以在許多情況下發(fā)揮作用,如算法、排序、邏輯控制等。本文將詳細(xì)介紹Python中實(shí)現(xiàn)交換兩個(gè)數(shù)的值,并對(duì)其
    的頭像 發(fā)表于 11-29 17:29 ?543次閱讀

    IC設(shè)計(jì):ram的應(yīng)用-異步時(shí)鐘域轉(zhuǎn)換

    在進(jìn)行模塊設(shè)計(jì)時(shí),我們經(jīng)常需要進(jìn)行數(shù)據(jù)的轉(zhuǎn)換,常見(jiàn)的種轉(zhuǎn)換場(chǎng)景有同步時(shí)鐘域轉(zhuǎn)換和異步時(shí)鐘域
    的頭像 發(fā)表于 11-23 16:41 ?661次閱讀
    IC設(shè)計(jì):ram的應(yīng)用-異步時(shí)鐘域<b class='flag-5'>位</b><b class='flag-5'>寬</b>轉(zhuǎn)換

    python中如何交換兩個(gè)數(shù)的位置

    在Python中,我們可以使用多種方法來(lái)交換兩個(gè)數(shù)的位置。下面將詳細(xì)介紹這些方法,并提供示例代碼和解釋。 方法一:使用臨時(shí)變量進(jìn)行交換 這是最簡(jiǎn)單的方法之一,我們可以使用一個(gè)臨時(shí)變量來(lái)交換兩個(gè)數(shù)的值
    的頭像 發(fā)表于 11-22 10:56 ?2287次閱讀

    python怎樣讓列表里的數(shù)相加

    ,可以使用方括號(hào)來(lái)定義一個(gè)列表,例如: numbers = [ 1 , 2 , 3 , 4 , 5 ] 我們可以使用for循環(huán)遍歷這個(gè)列表,并將每個(gè)數(shù)相加到一個(gè)累加變量中。以下是一個(gè)簡(jiǎn)單的代碼示例
    的頭像 發(fā)表于 11-22 09:53 ?1646次閱讀

    兩個(gè)串口,停止不同互相通訊會(huì)怎樣?

    兩個(gè)串口,波特率相同,停止不同。比如A串口停止為1,B串口停止2,互相通訊會(huì)出現(xiàn)什么后果?
    發(fā)表于 11-02 07:19

    怎么保證兩個(gè)設(shè)備的SPI通信相位相同?

    怎么保證兩個(gè)設(shè)備的SPI通信相位相同?
    發(fā)表于 10-15 12:28

    從可綜合的RTL代碼的角度聊聊interface

    SystemVerilog引入了interface,這里我們從可綜合的RTL代碼的角度聊聊interface。
    的頭像 發(fā)表于 10-12 09:06 ?1518次閱讀
    從可綜合的<b class='flag-5'>RTL</b><b class='flag-5'>代碼</b>的角度聊聊interface