Verilog中使用 addr = x + y*640; 为什么得到的 addr不正确?
各位大侠:在 Quartus II 9.1 Verilog 中使用 addr = x + y*640; 为什么得到的 addr不正确?
发现Quartus 调用了lpm_mult 模块,有什么需要注意的地方吗? 你真打算最终获得一个乘法器吗? 是的 好像发现了问题不是在这,而是在给 x, y赋值时,出错了。
if( r_cmd_xyhl==XYHL_STA )
begin
r_cmd_x = EB_D;
r_cmd_xyhl = XYHL_END;
end
else
begin
r_cmd_x = EB_D;
r_cmd_xyhl = XYHL_STA;
r_xy_calc = CMD_ADDR_CALC;
end
如果改成
r_cmd_x = EB_D;
r_xy_calc = CMD_ADDR_CALC;
就正常了 常数×变量不需要用乘法器也可以哈。。 assign addr = x + y<<9 + y<<7; p.nicholas 发表于 2010-8-5 13:58 static/image/common/back.gif
assign addr = x + y
乘法变加法{:victory:}
页:
[1]