关于FPGA被乘数为定点数的乘法的3种写法:乘法、移位和位拼接FPGA中大位宽数的乘法比较耗费资源,且不利于时序收敛。这里仅仅讨论:变量×常数.
FPGA中大位宽数的乘法比较耗费资源,且不利于时序收敛。这里仅仅讨论:变量×常数.利用分配律,乘法可以被写为加法,如 b=a×6 = a×4 + a×2 .在二进制中,4和2都是可以通过移位来进行的,在verilog中还可以通过位拼接符号来进行操作。所以,总能写成:b = a× (c0 ×1 +C1× 2 + c2× 4 + c3 × 8+…)这样,常数乘法就写成加法了,而加的每一项只需要通过移位就能实现。实际上,除数为常数的除法也能这么表示,如b=a÷6 =a×(1/6),而,1/6