FPGA乘法器原理(二进制数/浮点数)

本文探讨了FPGA中如何实现二进制数相乘的原理,通过移位相加的方式详细解释了计算过程。此外,还介绍了如何利用加法器实现一个数与浮点数(如0.0556)的乘法,讨论了不同量化精度对精度的影响,并给出了逻辑代码实现。参考了基于FPGA的硬件乘法器设计相关文献。
摘要由CSDN通过智能技术生成

两个二进制数相乘的计算见下图1:

                                                                                     图1:二进制数相乘

    实质是根据被乘数(1011_1011)根据乘数(1101)进行移位相加,具体来说,data_out[11:0] = 1011_1011<<3 + 1011_1011<<2 + 1011_1011。

相关:

1.用加法实现a*5/16功能(要求四舍五入),输入为a,10bit位宽,输出结果为result。请写出下面add_temp、result信号的位宽,完成下面的填空 [注:实质为下边所提及的浮点数乘法]。

wire[10:0] add_temp; //位宽判断时取a=10'b11_1111_1111带入时得到add_temp=11'b111_1111_1011
wire[6:0] result;
assign add_temp = a<<2 + a<<0; //左移n位=*2^n
assign result = add_temp>>4;

2.进行一个运算单元的设计,实现A[7:0]*1111_1011,请尽量用最少的资源实现。

reg [7:0] A
  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值