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

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

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

FPGA有符號(hào)數(shù)乘法操作指南

汽車(chē)玩家 ? 來(lái)源:科學(xué)計(jì)算technomania ? 作者:貓叔 ? 2020-03-08 17:14 ? 次閱讀

FPGA中乘法器是很稀缺的資源,但也是我們做算法必不可少的資源。7系列及之前的FPGA都是25x18的DSP,UltraScale中是27x18,我們可以通過(guò)調(diào)IP Core的方式或者原語(yǔ)的方式來(lái)進(jìn)行乘法操作。在里面可以設(shè)置有符號(hào)還是無(wú)符號(hào)數(shù)乘法。

FPGA有符號(hào)數(shù)乘法操作指南

FPGA有符號(hào)數(shù)乘法操作指南

當(dāng)然,我們也可以直接使用*符合來(lái)進(jìn)行乘法,對(duì)于無(wú)符號(hào)的乘法

reg [7:0] ubyte_a;
reg [7:0] ubyte_b;
(* use_dsp48="yes" *)
output reg[15:0] u_res;

always @ ( posedge clk ) begin 
    if(rst)
        u_res <= 'b0;
    else
        u_res <= ubyte_a * ubyte_b;
end

有符號(hào)乘法可以在Verilog中使用signed來(lái)標(biāo)注。

reg signed [7:0] byte_a;
reg signed [7:0] byte_b;
(* use_dsp48="yes" *)
reg signed [15:0] res;

always @ ( posedge clk ) begin 
    if(rst)
        res <= 'b0;
    else
        res <= byte_a * byte_b;
end

當(dāng)然我們也要理解有符號(hào)數(shù)乘法的原理,其實(shí)就是擴(kuò)位乘法,把高位都補(bǔ)充為符號(hào)位。

有符號(hào)數(shù)乘法:

reg [7:0] ubyte_a;
reg [7:0] ubyte_b;
(* use_dsp48="yes" *)
reg [15:0] res_manul;

always @ ( posedge clk ) begin
    if(rst)
        res_manul <= 'b0;
    else
        res_manul <= {{8{byte_a[7]}},ubyte_a} * {{8{ubyte_b[7]}},ubyte_b};
end

關(guān)于乘法輸出的位寬,我們知道,兩個(gè)8bits的無(wú)符號(hào)數(shù)乘法,結(jié)果的位寬是16bits,但對(duì)于兩個(gè)8bits有符號(hào)數(shù)的乘法,只要兩個(gè)數(shù)不同時(shí)為-128,即二進(jìn)制0b1000_0000,那么輸出結(jié)果的高兩位都是符號(hào)位,我們只需要取低15bits即可。因此,如果我們可以保證兩個(gè)輸入的乘數(shù)不會(huì)同時(shí)為有符號(hào)數(shù)所能表示的負(fù)數(shù)最小值,那么乘法結(jié)果的高兩位都是符號(hào)位,只取其中一位即可。

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

    關(guān)注

    552

    文章

    7959

    瀏覽量

    347929
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601239
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DLP? DLPC910 Apps FPGA指南

    電子發(fā)燒友網(wǎng)站提供《DLP? DLPC910 Apps FPGA指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-05 09:26 ?0次下載
    DLP? DLPC910 Apps <b class='flag-5'>FPGA</b><b class='flag-5'>指南</b>

    FPGA Verilog HDL什么奇技巧?

    今天給大俠帶來(lái)在FPAG技術(shù)交流群里平時(shí)討論的問(wèn)題答疑合集(九),以后還會(huì)多推出本系列,話不多說(shuō),上貨。 交流問(wèn)題(一) Q:Verilog 什么奇技淫巧? A:在 Verilog 中,以下這些
    發(fā)表于 09-12 19:10

    EasyGo 實(shí)時(shí)仿真 NetBox 操作指南

    ▍基于FPGA自定義模型的控制與仿真 02 操作指南 ? ? 首先,找到NetBox的電源接口,接入電源。 短按「開(kāi)關(guān)」
    的頭像 發(fā)表于 09-04 18:30 ?399次閱讀

    LM70 SPI/MICROWIRE 10位帶符號(hào)數(shù)字溫度傳感器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《LM70 SPI/MICROWIRE 10位帶符號(hào)數(shù)字溫度傳感器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-14 09:28 ?0次下載
    LM70 SPI/MICROWIRE 10位帶<b class='flag-5'>符號(hào)數(shù)</b>字溫度傳感器數(shù)據(jù)表

    LM12454/LM12458/LM12H458 12位符號(hào)數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《LM12454/LM12458/LM12H458 12位符號(hào)數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-22 09:25 ?0次下載
    LM12454/LM12458/LM12H458 12位<b class='flag-5'>符號(hào)數(shù)</b>據(jù)采集系統(tǒng)數(shù)據(jù)表

    matlab與FPGA數(shù)字信號(hào)處理系列 Verilog 實(shí)現(xiàn)并行 FIR 濾波器

    能涉及到對(duì)符號(hào)數(shù)的處理問(wèn)題 https://zhuanlan.zhihu.com/p/342108822 作者:FPGA探索者,
    發(fā)表于 05-24 07:48

    易靈思FPGA flash操作原理

    易靈思FPGA flash操作原理分享
    的頭像 發(fā)表于 04-09 15:03 ?926次閱讀

    常用的電氣元件符號(hào)哪些?

    以上是一些常見(jiàn)的電氣元件符號(hào),它們?cè)陔娐穲D和設(shè)計(jì)中起著至關(guān)重要的作用。通過(guò)使用標(biāo)準(zhǔn)化的電氣元件符號(hào),可以確保電路圖的準(zhǔn)確性和可靠性,從而提高工程設(shè)計(jì)的效率和質(zhì)量。
    的頭像 發(fā)表于 04-01 13:24 ?1813次閱讀

    char是符號(hào)類(lèi)型還是無(wú)符號(hào)類(lèi)型?

    看一個(gè)C語(yǔ)言的筆試題,題目很簡(jiǎn)單,問(wèn)char是符號(hào)類(lèi)型還是無(wú)符號(hào)類(lèi)型?
    的頭像 發(fā)表于 03-17 10:15 ?1150次閱讀

    國(guó)產(chǎn)高端fpga芯片哪些

    國(guó)產(chǎn)高端FPGA芯片多種,以下是一些知名的國(guó)產(chǎn)FPGA芯片,
    的頭像 發(fā)表于 03-15 14:01 ?2357次閱讀

    基于FPGA的高效乘法

    乘數(shù)為1時(shí)需要左移的位數(shù)與數(shù)據(jù)位的權(quán)重其實(shí)有關(guān),但是FPGA實(shí)現(xiàn)這樣的運(yùn)算并不算特別簡(jiǎn)單,還能不能簡(jiǎn)化?
    發(fā)表于 03-08 14:11 ?735次閱讀
    基于<b class='flag-5'>FPGA</b>的高效<b class='flag-5'>乘法</b>器

    Versal FPGA中的浮點(diǎn)計(jì)算單元DSPFP32介紹

    Versal FPGA中最新的DSP原語(yǔ)DSP58,它在最新的DSP48版本上已經(jīng)了許多改進(jìn),主要是從27x18符號(hào)乘法器和48位后加法
    的頭像 發(fā)表于 02-22 09:22 ?1348次閱讀
    Versal <b class='flag-5'>FPGA</b>中的浮點(diǎn)計(jì)算單元DSPFP32介紹

    verilog中數(shù)據(jù)的符號(hào)屬性(符號(hào)數(shù)和無(wú)符號(hào)數(shù))探究根源

    為了省流,還是先甩結(jié)論。符號(hào)數(shù)和無(wú)符號(hào)數(shù)的最本質(zhì)區(qū)別就是:符號(hào)位的識(shí)別和高位拓展。除此之外,另一個(gè)區(qū)別就是從人的角度如何如何讀這個(gè)數(shù),或者說(shuō)$display(%d)打印時(shí)打印的值是什
    的頭像 發(fā)表于 12-10 10:50 ?1406次閱讀
    verilog中數(shù)據(jù)的<b class='flag-5'>符號(hào)</b>屬性(<b class='flag-5'>有</b><b class='flag-5'>符號(hào)數(shù)</b>和無(wú)<b class='flag-5'>符號(hào)數(shù)</b>)探究根源

    verilog中有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的本質(zhì)探究

    不知道有沒(méi)有人像我一樣,長(zhǎng)久以來(lái)將verilog中的符號(hào)數(shù)視為不敢觸碰的禁區(qū)。
    的頭像 發(fā)表于 12-04 16:13 ?1043次閱讀
    verilog中有<b class='flag-5'>符號(hào)數(shù)</b>和無(wú)<b class='flag-5'>符號(hào)數(shù)</b>的本質(zhì)探究

    FPGA與ADC數(shù)字?jǐn)?shù)據(jù)輸出的接口指南

    電子發(fā)燒友網(wǎng)站提供《FPGA與ADC數(shù)字?jǐn)?shù)據(jù)輸出的接口指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-28 09:40 ?0次下載
    <b class='flag-5'>FPGA</b>與ADC數(shù)字?jǐn)?shù)據(jù)輸出的接口<b class='flag-5'>指南</b>