QartusII编译一段verilog代码:
module divisor(inA,inB,out);
input [6:0] inA, inB;
output [6:0] out;
reg [6:0] A,B,out;
always @(*)
begin:U1
A = inA;
B = inB;
while(A!=B)
begin
if(A>B)
begin
A=A-B;
end
else
begin
B=B-A;
end
end
out=A;
end
endmodule
显示错误:
Error (10119): Verilog VHDL Loop Statement error at divisor.v(12): loop with non-constant loop condition must terminate within 250 iterations
求高人指点是怎么回事?没有死循环呀?正确的代码应该是什么样?
追加悬赏~谢谢啦!
在while行显示的错误
不是。。其实我是想用更相减损输出最大公因子。。
是刚开始学,不是很清楚……应该怎么办呀?谢谢啦!
什么叫更相减损输出最大公因子?
QartusII编译verilog代码显示Error (10119)
你程序里有死循环,你不要把硬件里的死循环想象成软件里的 比如A=A-B;这句话,你的程序是组合逻辑,也就是没有触发器,在这句话里A既做输入又做输出,假设A原来是5,B原来是3,执行一次后A变成2,又执行2-3=-1,A又变了,又要在执行,无限循环。你的这种赋值只有在时序逻辑中才可以,就...