verilog学习心得之八--乘法器

乘法器是数字信号处理运算中最基本的设计单元之一,比如常用的滤波、FFT都要用到乘法器。乘法器的实现方法也是

多种多样的,下面介绍几种在数字信号处理中常用的乘法器实现方法。

(1)移位相加乘法器

移位相加是根据乘数的每一位是否为1对被乘数进行移位相加,这种方法资源消耗比较少,需要一个加法器和移位寄存器,缺点是速度满,需要多个节拍才能完成一次乘法运算。

例子:计算mul_a[3:0]与mul_b[3:0]的乘积mul_out[7:0],可以考虑采用状态机的方式,定义状态state的三种状态。s0状态:初始化寄存器值。s1状态:进行移位相加。s2状态:对输出赋值。

s1状态移位相加的RTL代码如下,其中mul_areg为乘数,t为移位寄存器,存储4位被乘数。

begin
	        if(mul_areg[0]==1'b1)
			     p <= p+t;
			     mul_areg <= mul_areg>>1;
		         t <= t<<1;
				 count <= count+1'b1;
				 state <= s1;
  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值