如何在verilog中将二进制数乘以10? 它就像
一样简单reg [7:0] a,b;
reg[31:0] p;
b= 8'b00001001;
p=a*b;
升级到Windows 8,我的xilinx工作正常。需要尽快了解规划阶段。
答案 0 :(得分:2)
差不多 - 二进制10是1010
!为了将两个8位数相乘,结果只需要16位,因此reg [15:0] p
可以。怎么样:
always @( a )
p = a * 8'd10;
或
wire [13:0] p;
assign p = a * 4'd10;
答案 1 :(得分:0)
我不确定HDL综合工具在将乘法转换为位移时有多好。我不希望偶然为这段代码合成一个乘法器(即使你的CPU也不太可能使用乘法)。
wire [7:0] a;
wire [11:0] shift2;
wire [11:0] shift1;
wire [11:0] result;
assign shift2 = a << 3; // a * 8
assign shift1 = a << 1; // a * 2
assign result = shift2 + shift1;