一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

用HDL代碼描述加法運(yùn)算要用操作符“+” 看似很簡單實則不然

FPGA技術(shù)驛站 ? 來源:Lauren的FPGA ? 作者:Lauren的FPGA ? 2020-09-24 14:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

采用HDL代碼描述加法運(yùn)算只需要用操作符“+”即可,這看似很簡單,這里我們以兩個4-bit數(shù)相加為例,對輸入/輸出數(shù)據(jù)均寄存,從而形成如下圖所示電路。

此電路對應(yīng)的HDL代碼如下圖所示。這里采用了SystemVerilog語言。有兩點(diǎn)值得注意:一是兩個N位數(shù)相加,無論是有符號數(shù)還是無符號數(shù),其結(jié)果都有可能是N+1位,故輸出比輸入位寬多1位,這樣才能保證不會發(fā)生溢出(Overflow)。二是默認(rèn)情況下,代碼中的logic表示的都是無符號數(shù),但是對于下面這段代碼,無符號數(shù)和有符號數(shù)均適用,這是因為有符號數(shù)是以二進(jìn)制補(bǔ)碼表示的。

為了進(jìn)一步說明,我們看如下例子。數(shù)據(jù)a二進(jìn)制形式位1001,既可以看作無符號數(shù)9(十進(jìn)制),也可以看作有符號數(shù)-7(十進(jìn)制);數(shù)據(jù)b二進(jìn)制形式為1010,既可以看作無符號數(shù)10(十進(jìn)制),也可以看作有符號數(shù)-6(十進(jìn)制)。最終結(jié)果的二進(jìn)制形式為10011,既可以看作無符號數(shù)19(十進(jìn)制),也可以看作有符號數(shù)-13(十進(jìn)制)。

這里兩個4-bit數(shù)相加和設(shè)置為5-bit,如果和設(shè)置為6-bit,有符號數(shù)和無符號數(shù)的結(jié)果是否一致呢?對于無符號數(shù),sum[5]補(bǔ)0,如圖中紅色方框所示。

對于有符號數(shù),sum[5]則是sum[4]的復(fù)制版本,實質(zhì)上是符號位擴(kuò)展。

本質(zhì)上,在賦值時,如果把一個N位數(shù)據(jù)a賦值給一個位寬M的數(shù)據(jù)b(這里M>N),且兩個數(shù)據(jù)均為同一類型(都是有符號或無符號),此時是將N位數(shù)據(jù)做符號位擴(kuò)展為M位再賦值給b。因此,對于兩個N位數(shù)據(jù)相加,如果輸出位寬選擇大于N+1,那么上述代碼只適合于無符號數(shù),對于有符號數(shù)需要在logic后加關(guān)鍵字signed,如下圖所示。

如果兩個位寬不等的數(shù)相加,同樣需要指明是有符號數(shù)還是無符號數(shù)。例如,一個4-bit數(shù)和一個3-bit數(shù)相加,如下圖所示。如果a二進(jìn)制為1001,對應(yīng)無符號數(shù)9(十進(jìn)制),b二進(jìn)制形式為101,對應(yīng)無符號數(shù)5(十進(jìn)制),兩個無符號數(shù)相加,先將b高位補(bǔ)0,最終和為01110;如果將a和b看作有符號數(shù),則要將b符號位擴(kuò)展為1101,最終和為10110。符號位擴(kuò)展是工具完成的,無需人工干預(yù)。

總體而言,在描述加法運(yùn)算時,如果兩個數(shù)據(jù)均為N位,那么和要設(shè)置為N+1位,此時無符號數(shù)的描述方式也適合于有符號數(shù)。如果兩個數(shù)一個是N位,一個是M位,且M>N,那么和要設(shè)置為M+1位,此時要明確指出是有符號數(shù)還是無符號數(shù)。

原文標(biāo)題:加法運(yùn)算很簡單?

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

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

    關(guān)注

    10414

    文章

    10738

    瀏覽量

    543229
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    330

    瀏覽量

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

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70741

原文標(biāo)題:加法運(yùn)算很簡單?

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    為什么光刻要用黃光?

    進(jìn)入過無塵間光刻區(qū)的朋友,應(yīng)該都知道光刻區(qū)里的都是黃燈,這個看似很簡單的問題的背后卻蘊(yùn)含了很多鮮為人知的道理,那為什么實驗室光刻要用黃光呢? 光刻是微流控芯片制造中的重要工藝之一。
    的頭像 發(fā)表于 06-16 14:36 ?245次閱讀

    USB組合設(shè)備的配置描述符里一定要用IAD描述符嗎?

    USB組合設(shè)備的配置描述符里一定要用IAD描述符
    發(fā)表于 03-11 06:41

    邏輯異或運(yùn)算符在Python中的用法

    在Python編程語言中,邏輯異或運(yùn)算符并不直接作為一個內(nèi)置的操作符存在,因為Python更側(cè)重于高級編程和可讀性,并沒有直接提供異或運(yùn)算符的簡寫形式用于邏輯運(yùn)算(真/假值的異或)。然
    的頭像 發(fā)表于 11-19 09:46 ?857次閱讀

    FPGA中的浮點(diǎn)四則運(yùn)算是什么

    由于定點(diǎn)的四則運(yùn)算比較簡單,如加減法只要注意符號擴(kuò)展,小數(shù)點(diǎn)對齊等問題即可。在本文中,運(yùn)用在前一節(jié)中描述的自定義浮點(diǎn)格式FPGA中數(shù)的表示方法(下),完成浮點(diǎn)四則運(yùn)算的實現(xiàn)過程 1.自
    的頭像 發(fā)表于 11-16 12:51 ?937次閱讀
    FPGA中的浮點(diǎn)四則<b class='flag-5'>運(yùn)算</b>是什么

    FPGA中浮點(diǎn)四則運(yùn)算的實現(xiàn)過程

    由于定點(diǎn)的四則運(yùn)算比較簡單,如加減法只要注意符號擴(kuò)展,小數(shù)點(diǎn)對齊等問題即可。在本文中,運(yùn)用在前一節(jié)中描述的自定義浮點(diǎn)格式FPGA中數(shù)的表示方法(下),完成浮點(diǎn)四則運(yùn)算的實現(xiàn)過程 1.自
    的頭像 發(fā)表于 11-16 11:19 ?1432次閱讀
    FPGA中浮點(diǎn)四則<b class='flag-5'>運(yùn)算</b>的實現(xiàn)過程

    C語言指針運(yùn)算符詳解

    在C語言中,當(dāng)你有一個指向數(shù)組中某個元素的指針時,你可以對該指針執(zhí)行某些算術(shù)運(yùn)算,例如加法或減法。這些運(yùn)算可以用來遍歷數(shù)組中的元素,如ptr[i]等價于*(ptr + i)。然而,如果你的操作
    的頭像 發(fā)表于 10-30 11:16 ?797次閱讀

    Verilog語法中運(yùn)算符的用法

    verilog語法中使用以下兩個運(yùn)算符可以簡化我們的位選擇代碼。
    的頭像 發(fā)表于 10-25 15:17 ?2567次閱讀
    Verilog語法中<b class='flag-5'>運(yùn)算符</b>的用法

    技術(shù)干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運(yùn)算符與優(yōu)先級

    在C語言的學(xué)習(xí)過程中,運(yùn)算符的使用是不可忽視的重要環(huán)節(jié)。本文將繼續(xù)深入探討C語言中的運(yùn)算符,重點(diǎn)介紹位運(yùn)算符、賦值運(yùn)算符及其優(yōu)先級。掌握這些運(yùn)算符
    的頭像 發(fā)表于 10-13 08:09 ?638次閱讀
    技術(shù)干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析<b class='flag-5'>運(yùn)算符</b>與優(yōu)先級

    【「數(shù)字IC設(shè)計入門」閱讀體驗】+目錄和前2章

    4.1.8函數(shù)調(diào)用30 4.2操作符30 4.2.1算術(shù)操作符31 4.2.2關(guān)系操作符33 4.2.3相等關(guān)系操作符33 4.2.4邏輯操作符
    發(fā)表于 10-10 17:12

    技術(shù)干貨驛站 ▏深入理解C語言:編程高手必備,全方位解析運(yùn)算符的核心技能!

    在C語言的編程領(lǐng)域中,運(yùn)算符是實現(xiàn)數(shù)據(jù)處理與邏輯操作的關(guān)鍵工具。無論是在處理簡單的數(shù)值計算,還是在構(gòu)建復(fù)雜的邏輯結(jié)構(gòu)時,運(yùn)算符的使用貫穿始終。作為編程語言的基礎(chǔ)組成部分之一,
    的頭像 發(fā)表于 09-18 15:56 ?770次閱讀
    技術(shù)干貨驛站 ▏深入理解C語言:編程高手必備,全方位解析<b class='flag-5'>運(yùn)算符</b>的核心技能!

    鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡基礎(chǔ)數(shù)據(jù)類型整數(shù)類型

    :一元負(fù)號(-)、加法(+)、減法(-)、乘法(*)、除法(/)、取模(%)、冪運(yùn)算( )。 除了一元負(fù)號(-)和冪運(yùn)算( ),其他操作符要求左右
    發(fā)表于 09-13 14:55

    鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡基礎(chǔ)數(shù)據(jù)類型布爾類型

    let b: Bool = false 布爾類型支持的操作 布爾類型支持的操作符包括:邏輯操作符(邏輯非!,邏輯與 &&,邏輯或 ||)、部分關(guān)系操作符
    發(fā)表于 09-09 09:57

    c語言中從左到右結(jié)合怎么看

    在C語言中,操作符的結(jié)合性(Associativity)是指當(dāng)操作符在表達(dá)式中連續(xù)出現(xiàn)時,它們?nèi)绾闻c操作數(shù)結(jié)合的順序。對于大多數(shù)二元操作符(即需要兩個
    的頭像 發(fā)表于 08-20 11:42 ?1671次閱讀

    c語言從右到左的運(yùn)算符有哪些

    用在變量之后時,它們會先返回變量的原始值,然后再進(jìn)行遞增或遞減。 三元條件運(yùn)算符 ( ?: ):這個運(yùn)算符的求值順序是從右到左。首先計算第三個表達(dá)式,然后根據(jù)第一個表達(dá)式的結(jié)果選擇第二個或第三個表達(dá)式。 賦值運(yùn)算符 ( = ):
    的頭像 發(fā)表于 08-20 11:39 ?1844次閱讀

    請問全差分運(yùn)算放大器能像一般運(yùn)算放大器一樣設(shè)計加法器嗎?

    全差分運(yùn)算放大器能像一般運(yùn)算放大器一樣設(shè)計加法器嗎?
    發(fā)表于 08-09 06:26