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

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

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

FPGA中乘法器的原理分析

454398 ? 來源:科學(xué)計(jì)算technomania ? 作者:貓叔 ? 2020-09-27 15:12 ? 次閱讀

作者:貓叔

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

FPGA中乘法器的原理分析



當(dāng)然,我們也可以直接使用*符合來進(jìn)行乘法,對(duì)于無符號(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來標(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的無符號(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)位,只取其中一位即可。

編輯:hfy


聲明:本文內(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)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    552

    文章

    7959

    瀏覽量

    347926
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601238
  • 乘法器
    +關(guān)注

    關(guān)注

    8

    文章

    204

    瀏覽量

    36941
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求助,LMX2572LP參考時(shí)鐘路徑乘法器MULT的輸入頻率范圍問題求解

    在lmx2572LP的參考時(shí)鐘輸入路徑,有一個(gè)乘法器MULT,其輸入頻率范圍在手冊(cè)描述為10Mhz~40MHz。當(dāng)我在TICS Pro軟件中進(jìn)行配置時(shí),這個(gè)乘法器提示我“Maxi
    發(fā)表于 11-08 11:36

    MPY634做基本乘法器遇到的疑問求解

    我是按圖所接.X2,Y2直接接地.但是乘法器輸出波形會(huì)跳.示波器是用直流偶合.DC一時(shí)是正的一時(shí)是負(fù)的.怎么回事?
    發(fā)表于 09-25 06:06

    請(qǐng)問如何用VCA810實(shí)現(xiàn)模擬乘法器?

    我在《德州儀器高性能單片機(jī)和模擬器件在高校的應(yīng)用和選型指南》中看見,書中說VCA810可以做為模擬乘法器使用,但是應(yīng)用手冊(cè)里的公式卻不是V0=VC*Vin,而是一個(gè)帶指數(shù)向的公式,所以我很好
    發(fā)表于 09-23 07:11

    請(qǐng)問VCA822做成四象限乘法器的帶寬是多少?

    如題,根據(jù)VCA822數(shù)據(jù)手冊(cè)的四象限乘法器的原理圖,該電路的帶寬能達(dá)到多少?
    發(fā)表于 09-11 06:12

    CDCS504-Q1時(shí)鐘緩沖器和時(shí)鐘乘法器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDCS504-Q1時(shí)鐘緩沖器和時(shí)鐘乘法器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 10:35 ?0次下載
    CDCS504-Q1時(shí)鐘緩沖器和時(shí)鐘<b class='flag-5'>乘法器</b>數(shù)據(jù)表

    CDCVF25084時(shí)鐘乘法器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDCVF25084時(shí)鐘乘法器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-22 11:33 ?0次下載
    CDCVF25084時(shí)鐘<b class='flag-5'>乘法器</b>數(shù)據(jù)表

    CDCF5801A具有延遲控制和相位對(duì)準(zhǔn)的時(shí)鐘乘法器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDCF5801A具有延遲控制和相位對(duì)準(zhǔn)的時(shí)鐘乘法器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-22 10:56 ?0次下載
    CDCF5801A具有延遲控制和相位對(duì)準(zhǔn)的時(shí)鐘<b class='flag-5'>乘法器</b>數(shù)據(jù)表

    CDCF5801時(shí)鐘乘法器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDCF5801時(shí)鐘乘法器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-22 10:37 ?0次下載
    CDCF5801時(shí)鐘<b class='flag-5'>乘法器</b>數(shù)據(jù)表

    CDCE906 PLL頻率合成器/乘法器/分頻器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDCE906 PLL頻率合成器/乘法器/分頻器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-22 09:30 ?0次下載
    CDCE906 PLL頻率合成器/<b class='flag-5'>乘法器</b>/分頻器數(shù)據(jù)表

    CDCS503帶可選SSC的時(shí)鐘緩沖器/時(shí)鐘乘法器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CDCS503帶可選SSC的時(shí)鐘緩沖器/時(shí)鐘乘法器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-22 09:18 ?0次下載
    CDCS503帶可選SSC的時(shí)鐘緩沖器/時(shí)鐘<b class='flag-5'>乘法器</b>數(shù)據(jù)表

    SN5497、SN7497同步6位二進(jìn)制速率乘法器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《SN5497、SN7497同步6位二進(jìn)制速率乘法器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-03 09:24 ?2次下載
    SN5497、SN7497同步6位二進(jìn)制速率<b class='flag-5'>乘法器</b>數(shù)據(jù)表

    CMOSBCD速率乘法器CD4527B TYPES 數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CMOSBCD速率乘法器CD4527B TYPES 數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-21 09:19 ?0次下載
    CMOSBCD速率<b class='flag-5'>乘法器</b>CD4527B TYPES 數(shù)據(jù)表

    CMOS二進(jìn)制速率乘法器CD4089B TYPES 數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CMOS二進(jìn)制速率乘法器CD4089B TYPES 數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-21 09:17 ?0次下載
    CMOS二進(jìn)制速率<b class='flag-5'>乘法器</b>CD4089B TYPES 數(shù)據(jù)表

    乘法器AD734上電后發(fā)熱嚴(yán)重,數(shù)據(jù)漂移的原因?怎么解決?

    乘法器AD734上電后發(fā)熱比較嚴(yán)重,輸入與地短接的情況下,輸出數(shù)據(jù)不穩(wěn)定,用數(shù)據(jù)卡采集可以看到明顯的漂移,[size=13.3333px]采用的是芯片手冊(cè)上的最基本的乘法電路,這種現(xiàn)象的原因是什么,是PCB設(shè)計(jì)的問題嗎。
    發(fā)表于 12-15 06:44

    求助,關(guān)于二象限乘法器AD539的一些疑問

    各位,請(qǐng)教乘法器的一些問題: 1.二象限乘法器AD539控制通道Vx只能輸入正信號(hào),但是否只能為直流電平(用做電壓控制放大器)? 2.如果控制通道Vx輸入交流信號(hào),理論上是否應(yīng)該做偏置,使之在
    發(fā)表于 11-22 07:48