verilog 为什么乘法器写的那么复杂?不是这样写也可以吗 assign c = a * b;

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/29 01:59:08
verilog为什么乘法器写的那么复杂?不是这样写也可以吗assignc=a*b;verilog为什么乘法器写的那么复杂?不是这样写也可以吗assignc=a*b;verilog为什么乘法器写的那么复

verilog 为什么乘法器写的那么复杂?不是这样写也可以吗 assign c = a * b;
verilog 为什么乘法器写的那么复杂?不是这样写也可以吗 assign c = a * b;

verilog 为什么乘法器写的那么复杂?不是这样写也可以吗 assign c = a * b;
现在很多的数据存储在ram里是以补码形式存储的,现在a和b都是补码表示,乘法之后还需要是补码,如果你用*号,那乘法之前需要求补码,乘法之后需要再求补码,岂不是很麻烦,还会占用额外的面积和延时.用verilog写一个wallance-booth乘法器,直接是补码乘法器,便可以直接乘法了.
综合工具里面一般都有乘法器,当然那是最优化的,面积和延时还有功耗都是最优的,但是不知道这些乘法器是不是补码乘法器,如果不是,还是需要代码里面做补码运算的.

直接用*其实就是调用了硬件内部的乘法器,可是有些不带乘法器的就只能用语言实现,也就会看到你所说的复杂代码了

以前综合工具不支持乘法器。