verilog中可以直接用*运算符吗?有什么弊端吗

答案:可以用,但是,,,

硬件乘法器的意义何在?乘法直接乘不就可以了吗。我verilog里编写a*b即可,为什么要移位相加去乘?

你要知道,数字电路中的逻辑是由最基本的与、或、非等基本逻辑组合而成的,并不能直接生成乘除等复杂运算。
乘法运算是由与、或、非等基本逻辑组合而成的,如下图所示是乘法器内部结构图:

 


那为什么直接在verilog里编写a*b即可实现乘法呢?这是因为EDA工具对你的Verilog代码进行编译,编译后将a*b变成了如上图所示的电路图。

那另外一个问题,为什么大家不直接用EDA工具默认生成的乘法器电路,而要自己配置特定的乘法器呢?这是因为乘法器有多种实现方式,每种都有自己的优缺点,所以在设计时可以根据自己的需要配置最适合的乘法器,让系统性能最优。
另外,乘法器这种组合逻辑可以加流水线(pipeline),自己设计时就可以根据系统需要设置最优的流水线级数,让吞吐量,延时与cost平衡。添加流水线后的乘法器如下图所示:

 

.写Verilog硬件代码时不能以纯软件的方式思考,而要知道Verilog最终是要生成硬件电路的,要带着硬件思维方式去写Verilog。要多思考

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值