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

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

3天内不再提示

FPGA中的有符号数乘法说明

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-16 16:21 次阅读

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

poYBAGIMpoCAHqnrAAKVaCL3Jso537.png

pYYBAGIMpoGAKTaeAAJ6-aNWnxU862.png

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

reg [7:0] ubyte_a;
reg [7:0] ubyte_b;
(* *)
output reg[15:0] u_res;

always @ ( posedge clk ) begin
if(rst)
u_res else
u_res end

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

reg signed [7:0] byte_a;
reg signed [7:0] byte_b;
(* *)
reg signed [15:0] res;

always @ ( posedge clk ) begin
if(rst)
res else
res end

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

有符号数乘法:

reg [7:0] ubyte_a;
reg [7:0] ubyte_b;
(* *)
reg [15:0] res_manul;

always @ ( posedge clk ) begin
if(rst)
res_manul else
res_manul end

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

审核编辑:符乾江

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

    关注

    1603

    文章

    21331

    浏览量

    593680
  • 乘法器
    +关注

    关注

    8

    文章

    192

    浏览量

    36593
收藏 人收藏

    评论

    相关推荐

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

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

    IIC总线的FPGA实现说明

    DE2_TV中,有关于寄存器的配置的部分,采用的方法是通过IIC的功能,这里对IIC总线的FPGA实现做个说明
    的头像 发表于 01-05 10:16 333次阅读
    IIC总线的<b class='flag-5'>FPGA</b>实现<b class='flag-5'>说明</b>

    verilog中数据的符号属性(有符号数和无符号数)探究根源

    为了省流,还是先甩结论。有符号数和无符号数的最本质区别就是:符号位的识别和高位拓展。除此之外,另一个区别就是从人的角度如何如何读这个数,或者说$display(%d)打印时打印的值是什么(而从机器的角度它压根就不区分signed
    的头像 发表于 12-10 10:50 532次阅读
    verilog中数据的<b class='flag-5'>符号</b>属性(有<b class='flag-5'>符号数</b>和无<b class='flag-5'>符号数</b>)探究根源

    verilog中有符号数和无符号数的本质探究

    不知道有没有人像我一样,长久以来将verilog中的有符号数视为不敢触碰的禁区。
    的头像 发表于 12-04 16:13 327次阅读
    verilog中有<b class='flag-5'>符号数</b>和无<b class='flag-5'>符号数</b>的本质探究

    32位符号的tiff图片数据提取

    labview如何读取32位符号的tiff图片数据,非8位数据?
    发表于 11-30 11:36

    C语言编程的@符号是什么意思?

    我看有一些代码中含有@符号,是什么意思,在单片机的工程
    发表于 11-08 07:46

    Altera FPGA内置的乘法器为何是18位的?

    Altera的FPGA内置的乘法器为何是18位的?
    发表于 10-18 07:01

    为什么MCU的除法运算要比乘法运算的效率低?

    为什么MCU的除法运算要比乘法运算的效率低
    发表于 10-09 07:45

    基于FPGA计算的理论与实践

    说明了现场可编程门阵列的内部工作原理,其由嵌入在通用路由结构的逻辑块组成。这逻辑门阵列是FPGA的G和A。逻辑块包含用于执行简单组合逻辑的处理元件以及触发器用于实现时序逻辑。因为逻
    发表于 09-21 06:04

    FPGA加速神经网络的矩阵乘法

    电子发烧友网站提供《FPGA加速神经网络的矩阵乘法.pdf》资料免费下载
    发表于 09-15 14:50 0次下载
    <b class='flag-5'>FPGA</b>加速神经网络的矩阵<b class='flag-5'>乘法</b>

    基于FPGA的扩频系统设计(附代码)

    信号,对原始数据信号进行编码,对编码后的信号进行扩频,扩频后的数据添加同步头,通过并串转换成为单比特数据,量化器将单比特数据变成8bit符号数据,然后对信号引入噪声,加入噪声的信号利用同步模块进行
    发表于 08-23 16:32

    KiCad不同GND符号的含义及应用

    不是连接到这个终端的东西。 KiCad的地 我们看一下在KiCad符号编辑器的“地”符号。 这里几点需要注意。首先,所有浅蓝色文本在
    发表于 08-18 16:55

    常用电气图形符号说明大全

    时,了解清楚了这些常用的图形符号,从此看图识图无压力。下面本文就给大家分享常用的电气图形符号说明大全,新手小白人手一份保存起来。
    的头像 发表于 07-20 11:27 8928次阅读
    常用电气图形<b class='flag-5'>符号</b>及<b class='flag-5'>说明</b>大全

    FPGA常用运算模块-复数乘法

    本文是本系列的第五篇,本文主要介绍FPGA常用运算模块-复数乘法器,xilinx提供了相关的IP以便于用户进行开发使用。
    的头像 发表于 05-22 16:23 1435次阅读
    <b class='flag-5'>FPGA</b>常用运算模块-复数<b class='flag-5'>乘法</b>器

    FPGA常用运算模块-加减法器和乘法

    本文是本系列的第二篇,本文主要介绍FPGA常用运算模块-加减法器和乘法器,xilinx提供了相关的IP以便于用户进行开发使用。
    的头像 发表于 05-22 16:13 2836次阅读
    <b class='flag-5'>FPGA</b>常用运算模块-加减法器和<b class='flag-5'>乘法</b>器