0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA有符号数乘法操作指南

汽车玩家 来源:科学计算technomania 作者:猫叔 2020-03-08 17:14 次阅读

FPGA中乘法器是很稀缺的资源,但也是我们做算法必不可少的资源。7系列及之前的FPGA都是25x18的DSP,UltraScale中是27x18,我们可以通过调IP Core的方式或者原语的方式来进行乘法操作。在里面可以设置有符号还是无符号数乘法。

FPGA有符号数乘法操作指南

FPGA有符号数乘法操作指南

当然,我们也可以直接使用*符合来进行乘法,对于无符号的乘法

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

有符号乘法可以在Verilog中使用signed来标注。

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

当然我们也要理解有符号数乘法的原理,其实就是扩位乘法,把高位都补充为符号位。

有符号数乘法:

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

关于乘法输出的位宽,我们知道,两个8bits的无符号数乘法,结果的位宽是16bits,但对于两个8bits有符号数的乘法,只要两个数不同时为-128,即二进制0b1000_0000,那么输出结果的高两位都是符号位,我们只需要取低15bits即可。因此,如果我们可以保证两个输入的乘数不会同时为有符号数所能表示的负数最小值,那么乘法结果的高两位都是符号位,只取其中一位即可。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    553

    文章

    7998

    浏览量

    348873
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603247
收藏 人收藏

    评论

    相关推荐

    TMS320DM642 EVM OSD FPGA用户指南

    电子发烧友网站提供《TMS320DM642 EVM OSD FPGA用户指南.pdf》资料免费下载
    发表于 12-24 16:42 0次下载
    TMS320DM642 EVM OSD <b class='flag-5'>FPGA</b>用户<b class='flag-5'>指南</b>

    ADS8688分别设置0 to 1.25 × VREF和±1.25 × VREF采样范围时,得到的16位数据是按照符号数还是无符号数进行转换?

    请问ADS8688 在分别设置 0 to 1.25 × VREF 和±1.25 × VREF采样范围时,得到的16位数据是按照符号数还是无符号数进行转换?两者一样吗?
    发表于 12-20 08:03

    采用Xilinx FPGA的AFE79xx SPI启动指南

    电子发烧友网站提供《采用Xilinx FPGA的AFE79xx SPI启动指南.pdf》资料免费下载
    发表于 11-15 15:28 0次下载
    采用Xilinx <b class='flag-5'>FPGA</b>的AFE79xx SPI启动<b class='flag-5'>指南</b>

    DLP® DLPC910 Apps FPGA指南

    电子发烧友网站提供《DLP® DLPC910 Apps FPGA指南.pdf》资料免费下载
    发表于 11-05 09:26 0次下载
    DLP® DLPC910 Apps <b class='flag-5'>FPGA</b><b class='flag-5'>指南</b>

    FPGA Verilog HDL什么奇技巧?

    今天给大侠带来在FPAG威廉希尔官方网站 交流群里平时讨论的问题答疑合集(九),以后还会多推出本系列,话不多说,上货。 交流问题(一) Q:Verilog 什么奇技淫巧? A:在 Verilog 中,以下这些
    发表于 09-12 19:10

    EasyGo 实时仿真 NetBox 操作指南

    ▍基于FPGA自定义模型的控制与仿真 02 操作指南     首先,找到NetBox的电源接口,接入电源。 短按「开关」
    的头像 发表于 09-04 18:30 528次阅读

    LM70 SPI/MICROWIRE 10位带符号数字温度传感器数据表

    电子发烧友网站提供《LM70 SPI/MICROWIRE 10位带符号数字温度传感器数据表.pdf》资料免费下载
    发表于 08-14 09:28 0次下载
    LM70 SPI/MICROWIRE 10位带<b class='flag-5'>符号数</b>字温度传感器数据表

    LM12454/LM12458/LM12H458 12位符号数据采集系统数据表

    电子发烧友网站提供《LM12454/LM12458/LM12H458 12位符号数据采集系统数据表.pdf》资料免费下载
    发表于 07-22 09:25 0次下载
    LM12454/LM12458/LM12H458 12位<b class='flag-5'>符号数</b>据采集系统数据表

    matlab与FPGA数字信号处理系列 Verilog 实现并行 FIR 滤波器

    能涉及到对符号数的处理问题 https://zhuanlan.zhihu.com/p/342108822 作者:FPGA探索者,
    发表于 05-24 07:48

    易灵思FPGA flash操作原理

    易灵思FPGA flash操作原理分享
    的头像 发表于 04-09 15:03 1002次阅读

    常用的电气元件符号哪些?

    以上是一些常见的电气元件符号,它们在电路图和设计中起着至关重要的作用。通过使用标准化的电气元件符号,可以确保电路图的准确性和可靠性,从而提高工程设计的效率和质量。
    的头像 发表于 04-01 13:24 2048次阅读

    char是符号类型还是无符号类型?

    看一个C语言的笔试题,题目很简单,问char是符号类型还是无符号类型?
    的头像 发表于 03-17 10:15 1264次阅读

    国产高端fpga芯片哪些

    国产高端FPGA芯片多种,以下是一些知名的国产FPGA芯片,
    的头像 发表于 03-15 14:01 2589次阅读

    基于FPGA的高效乘法

    乘数为1时需要左移的位数与数据位的权重其实有关,但是FPGA实现这样的运算并不算特别简单,还能不能简化?
    发表于 03-08 14:11 982次阅读
    基于<b class='flag-5'>FPGA</b>的高效<b class='flag-5'>乘法</b>器

    Versal FPGA中的浮点计算单元DSPFP32介绍

    Versal FPGA中最新的DSP原语DSP58,它在最新的DSP48版本上已经了许多改进,主要是从27x18符号乘法器和48位后加法
    的头像 发表于 02-22 09:22 1432次阅读
    Versal <b class='flag-5'>FPGA</b>中的浮点计算单元DSPFP32介绍