国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

對于有符號數,sum[5]則是sum[4]的復制版本,實質上是符號位擴展。

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

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

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

原文標題:加法運算很簡單?

文章出處:【微信公眾號:Lauren的FPGA】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電路圖
    +關注

    關注

    10479

    文章

    10755

    瀏覽量

    555169
  • HDL
    HDL
    +關注

    關注

    8

    文章

    332

    瀏覽量

    48973
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    73960

原文標題:加法運算很簡單?

文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何在TensorFlow Lite Micro中添加自定義操作符(1)

    來支持各種神經網絡層的計算。也就是說,我們不僅可以使用內嵌的算子運算,還可以自己注冊一個新的算子,更加的靈活。本期就將用兩期的文章以 `reshape.cpp` 為例,詳細說明如何在 TensorFlow Lite Micro 中添加一個新的操作符
    的頭像 發表于 12-26 10:34 ?5323次閱讀

    布爾表達式和零值比較處理

    ==0,x!=0(或者x>0)。 C代碼中每次關系運算符的調用,編譯器都會發出一個比較指令。 如果操作符是上面提到的,編譯器便會優化掉比較指令。例如: int aFunction
    發表于 12-12 06:16

    飛凌嵌入式ElfBoard-文件I/O的了解探究之復制文件描述符

    open返回得到的文件描述符fd可以進行復制,復制成功之后可以得到一個新的文件 描述符,使用新的文件描述符和舊的文件描述符都可以對文件進行IO操作
    發表于 11-26 15:36

    C語言位操作符

    C 語言位操作符包括按位與( )、按位或(|)、按位異或(^)、按位取反(~)、左移(<<)和右移(>>)。 按位與( ) 只有當兩個二進制位
    發表于 11-21 07:52

    飛凌嵌入式ElfBoard-文件I/O的了解探究之文件描述符和FILE指針轉換

    *fdopen(int fd, const char *mode);3)參數fd:要操作的文件描述符。mode:表示打開文件操作(1-6必選其一,7和8可以省略)?\"r\":以
    發表于 11-20 09:24

    C語言宏拼接運算符典型使用

    在C語言中,##運算符(稱為[size=16.002px]標記拼接運算符)用于宏定義中將兩個標記(token)拼接成一個新的標記。它在預處理階段處理,常用于動態生成變量名、函數名或類型名,以提高代碼
    發表于 11-20 08:27

    看似簡單的自動泊車需要哪些技術支撐?

    [首發于智駕最前沿微信公眾號]要實現自動泊車,背后需要哪些技術作為支撐?自動泊車作為現在很多車主應用非常多的一項功能,看似只是簡單的入庫操作,但想要完美入庫,其實需要非常多的技術支持。 ? 感知
    的頭像 發表于 10-30 09:09 ?685次閱讀
    <b class='flag-5'>看似</b><b class='flag-5'>簡單</b>的自動泊車需要哪些技術支撐?

    復雜的軟件算法硬件IP核的實現

    中的運算符有對應關系。 結構域負責將功能域中的各個基本功能單元按特定的順序和方式連接起來,通常被實現為一個由有限狀態機控制的數據通路,該結構與C 語言的流程控制語句相對應。 以一個簡單加法組合邏輯為例
    發表于 10-30 07:02

    使用Simulink自動生成浮點運算HDL代碼(Part 1)

    引言 想要實現浮點運算功能,如果自己寫Verilog代碼,需要花費較多的時間和精力。好在Simulink HDL Coder工具箱提供了自動代碼生成技術。下圖展示了
    發表于 10-22 06:48

    如何使用 GDMA 描述符模式嗎?

    如何使用 GDMA 描述符模式嗎?
    發表于 08-29 06:00

    如何確定 M483 HSUSB 描述符

    我們使用M843SIDAE對于USB 2.0設備,時鐘和寄存器等的初始化是正確的,但是在與主機通信時,發生了錯誤: “ USB 1-6:設備描述符讀取/64,錯誤 -71 USB 1-6:設備
    發表于 08-28 06:46

    CSD 船變壓器合閘困局,華興變壓器的破解之法

    在船舶日常維護和運行中,您是否常常被CSD船變壓器合不上閘的問題所困擾呢?這看似一個簡單操作故障,實則背后牽扯著復雜的電力系統原理和諸多
    的頭像 發表于 07-05 09:32 ?581次閱讀
    CSD 船<b class='flag-5'>用</b>變壓器合閘困局,華興變壓器的破解之法

    為什么光刻要用黃光?

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

    cx3提示未知的描述符是怎么回事?

    我通過配置生成一個新的工程 運行起來總是提示 未知的描述符
    發表于 06-04 07:08

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

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