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

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/01 09:16:53
verilog 为什么乘法器写的那么复杂?不是这样写也可以吗 assign c = a * b;
xSn@?G.|@)Ei$ ՘@\b$@(`>;^YkPʟĖɪJV%tutiWnƪWKu;%jMhP89;AD*Mx.xua32ͽ4]uPt|KuDo4"87irE/z/9LAEݕqMKSEɦ*So0";-pۋ”YfL/R:-eޤOEz6&y9"txZUXN@xV۱sNO*L63q,oOn9ASa T:s<$x]5}@pQ.rR&^k"3Z^9S4KP)%vC?:f Sc-iTE$@+9.#9^ 6S7kAěrkg

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

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

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

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