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

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

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

verilog整數(shù)四則運(yùn)算的位寬考量簡(jiǎn)介

Hack電子 ? 來源:Hack電子 ? 2023-06-06 17:07 ? 次閱讀

加、減 使用補(bǔ)碼時(shí),加減法可以統(tǒng)一,因而對(duì)加減不加區(qū)分,對(duì)有無符號(hào)也不加以區(qū)分。

為了不丟失進(jìn)位,M位+N位時(shí),設(shè)M>=N,則結(jié)果需要M+1位儲(chǔ)存結(jié)果

5f8838c6-0448-11ee-90ce-dac502259ad0.png

圖源:Xilinx FPGA數(shù)字信號(hào)處理設(shè)計(jì):基礎(chǔ)版 (杜勇),下同

當(dāng)多個(gè)數(shù)據(jù)累加時(shí),顯然多一位存儲(chǔ)結(jié)果,結(jié)果能夠表示2倍(無符號(hào)數(shù));當(dāng)擁有3-4個(gè)操作數(shù)時(shí),結(jié)果的最大值為4倍的單個(gè)操作數(shù)表示的最大值,因而增加2bit即可;類似的5-8個(gè)操作數(shù),最大為8倍,因而增加3bit即可

5fb74c9c-0448-11ee-90ce-dac502259ad0.png

另一方面,當(dāng)計(jì)算結(jié)果能夠被約束時(shí),不加證明地,存在一個(gè)結(jié)論:多個(gè)數(shù)相加,若結(jié)果需要Nbit即可,計(jì)算的中間值也只需Nbit

5fdf1146-0448-11ee-90ce-dac502259ad0.png

上面的計(jì)算過程若按照6bit運(yùn)算過程如下,結(jié)果是一致的

601ae130-0448-11ee-90ce-dac502259ad0.jpg

2、乘法

對(duì)于無符號(hào)數(shù),N位*M位將得到N+M位的結(jié)果。可以直觀的證明,如下圖移位相加,N*M將移位(M-1)次,從而至少有(N+M-1)位,若加法出現(xiàn)進(jìn)位,還需要額外1bit,共(N+M)位

6045c184-0448-11ee-90ce-dac502259ad0.png

有符號(hào)數(shù),最高位需要表征符號(hào),同樣進(jìn)行無符號(hào)乘法,再確定符號(hào)。因而N*M的有符號(hào)數(shù),可以看成(N-1)*(M-1)的無符號(hào)數(shù)相乘,結(jié)果需要N+M-2位,還需要增加符號(hào)位,因而總共需要N+M-1位。

3、除法

除法更為簡(jiǎn)單,M/N,對(duì)于整數(shù)而言,N的絕對(duì)值大于等于1,因而商最大和M一樣,只需要M位就行。

4、more

當(dāng)結(jié)果位寬不夠,會(huì)進(jìn)行截?cái)?,帶來丟失精度的計(jì)算結(jié)果。





審核編輯:劉清

聲明:本文內(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)投訴
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26562
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110211

原文標(biāo)題:verilog 整數(shù)四則運(yùn)算的位寬考量

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    霧盈FPGA筆記之(二十五)六數(shù)四則運(yùn)算計(jì)算器(1)整體結(jié)構(gòu)及設(shè)計(jì)思路

    本帖最后由 霧_盈 于 2016-8-30 09:30 編輯 六十進(jìn)制數(shù)四則運(yùn)算計(jì)算器(1)整體結(jié)構(gòu)及其設(shè)計(jì)思路 霧盈2016-8-26 一、 寫在之前上周做的是一個(gè)小項(xiàng)目—計(jì)算器。從這
    發(fā)表于 08-29 11:37

    霧盈FPGA筆記之(二十九)六四則運(yùn)算計(jì)算器(5)數(shù)碼管顯示

    本帖最后由 霧_盈 于 2016-8-30 09:36 編輯 六數(shù)四則運(yùn)算計(jì)算器(5) 數(shù)碼管顯示霧盈 2016-8-28一、寫在前面之前發(fā)過一篇關(guān)于數(shù)碼管顯示原理的文章,文章鏈接在上。不了解
    發(fā)表于 08-29 11:50

    霧盈FPGA筆記之(三十)六四則運(yùn)算計(jì)算器(6)小算法實(shí)現(xiàn)BCD轉(zhuǎn)二進(jìn)制

    本帖最后由 霧_盈 于 2016-8-30 09:37 編輯 六四則運(yùn)算計(jì)算器(6)小算法實(shí)現(xiàn)BCD轉(zhuǎn)二進(jìn)制霧盈2016-8-27 一、寫在前面這一篇文章講BCD碼轉(zhuǎn)二進(jìn)制,這個(gè)模塊是為了將
    發(fā)表于 08-29 12:01

    霧盈FPGA筆記之(三十二)六四則運(yùn)算計(jì)算器(8)算法實(shí)現(xiàn)加減乘除

    四則運(yùn)算計(jì)算器(8)算法實(shí)現(xiàn)加減乘除霧盈 2016-8-31 一、寫在前面今天來講計(jì)算模塊,這個(gè)模塊在我的計(jì)算器設(shè)計(jì)里不是核心項(xiàng)目,只是個(gè)計(jì)算功能。一般情況下,童鞋寫加減乘除運(yùn)算都使
    發(fā)表于 09-01 09:03

    西門子S7200四則運(yùn)算指令表分享

    以下是關(guān)于西門子S7200四則運(yùn)算指令表詳解:名稱指令格式(語句表)功能操作數(shù)尋址范圍加法指令+I IN1,OUT兩個(gè)16帶符號(hào)整數(shù)相加,得到一個(gè)16帶符號(hào)
    發(fā)表于 12-04 17:10

    利用simulink設(shè)計(jì)四則運(yùn)算仿真模型

    整體思路利用simulink設(shè)計(jì)四則運(yùn)算仿真模型,借助simulink的代碼生成工具生成c語言代碼。同時(shí)介紹STM32擴(kuò)展工具的安裝,使用。所需工具M(jìn)ATLAB 2018bSTM32硬件支持工具下載連接:(用于配置STM32資源)
    發(fā)表于 08-17 09:33

    如何利用simulink去設(shè)計(jì)一種四則運(yùn)算仿真模型

    STM32擴(kuò)展工具怎樣去安裝并使用呢?如何利用simulink去設(shè)計(jì)一種四則運(yùn)算仿真模型?
    發(fā)表于 11-19 06:28

    如何去實(shí)現(xiàn)基于單片機(jī)的四則運(yùn)算計(jì)算器設(shè)計(jì)

    基于單片機(jī)四則運(yùn)算計(jì)算器設(shè)計(jì)設(shè)計(jì)要求硬件設(shè)計(jì)設(shè)計(jì)要求使用keil c軟件基于單片機(jī)系統(tǒng)設(shè)計(jì)一個(gè)“簡(jiǎn)單的計(jì)算器”。要求設(shè)計(jì)的模擬計(jì)算器必須從按鈕輸入0~9組成一個(gè)數(shù),再?gòu)陌粹o輸入加、減、乘和除運(yùn)算
    發(fā)表于 11-19 08:04

    四則運(yùn)算_實(shí)驗(yàn)10

    利用單片機(jī)AT89C51芯片實(shí)現(xiàn)4*4矩陣鍵盤掃描輸入的四則運(yùn)算。
    發(fā)表于 01-12 16:50 ?4次下載

    Labview之四則運(yùn)算

    Labview之四則運(yùn)算,很好的Labview資料,快來下載學(xué)習(xí)吧。
    發(fā)表于 04-19 10:56 ?0次下載

    使用51單片機(jī)設(shè)計(jì)一個(gè)四則運(yùn)算帶括號(hào)的計(jì)算器設(shè)計(jì)報(bào)告免費(fèi)下載

    在51單片機(jī)上編寫燒錄十進(jìn)制四則運(yùn)算計(jì)算機(jī)程序,使之具有計(jì)算、糾錯(cuò)、顯示、括號(hào)運(yùn)算(甚至浮點(diǎn)數(shù)運(yùn)算)的功能。根據(jù)實(shí)習(xí)設(shè)計(jì)要求,經(jīng)過分析可得整個(gè)實(shí)驗(yàn)可以分為兩個(gè)部分,軟件和硬件,要明白硬件結(jié)合軟件
    發(fā)表于 08-13 17:32 ?6次下載
    使用51單片機(jī)設(shè)計(jì)一個(gè)<b class='flag-5'>四則運(yùn)算</b>帶括號(hào)的計(jì)算器設(shè)計(jì)報(bào)告免費(fèi)下載

    使用51單片機(jī)實(shí)現(xiàn)簡(jiǎn)易四則運(yùn)算計(jì)算器的資料和程序免費(fèi)下載

    這是嵌入式課程的一個(gè)小作業(yè),用C51單片機(jī),實(shí)現(xiàn)了0-255內(nèi)的簡(jiǎn)易四則運(yùn)算,暫不支持負(fù)數(shù)、溢出等特殊情況的處理。 【關(guān)鍵點(diǎn)】 1、計(jì)算器用R5、R6、R7三顯示,段碼為0,全暗,段碼為
    發(fā)表于 07-12 17:39 ?11次下載
    使用51單片機(jī)實(shí)現(xiàn)簡(jiǎn)易<b class='flag-5'>四則運(yùn)算</b>計(jì)算器的資料和程序免費(fèi)下載

    基于單片機(jī)四則運(yùn)算計(jì)算器設(shè)計(jì)+proteus仿真

    基于單片機(jī)四則運(yùn)算計(jì)算器設(shè)計(jì)設(shè)計(jì)要求硬件設(shè)計(jì)設(shè)計(jì)要求使用keil c軟件基于單片機(jī)系統(tǒng)設(shè)計(jì)一個(gè)“簡(jiǎn)單的計(jì)算器”。要求設(shè)計(jì)的模擬計(jì)算器必須從按鈕輸入0~9組成一個(gè)數(shù),再?gòu)陌粹o輸入加、減、乘和除運(yùn)算
    發(fā)表于 11-12 17:06 ?8次下載
    基于單片機(jī)<b class='flag-5'>四則運(yùn)算</b>計(jì)算器設(shè)計(jì)+proteus仿真

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

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

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

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