Любые альтернативы для цикла в Verilog
Мне нужно сделать CORDIC-симулятор в Verilog, однако код, который я использую, содержит цикл for, и использование "for" не разрешено для этого проекта. Кто-нибудь знает какие-либо альтернативные утверждения, которые могут быть использованы вместо этого для заявления?
genvar i;
generate
for (i=0; i < (STG-1); i=i+1)
begin: XYZ
wire Z_sign;
wire signed [XY_SZ:0] X_shr, Y_shr;
assign X_shr = X[i] >>> i; // signed shift right
assign Y_shr = Y[i] >>> i;
//the sign of the current rotation angle
assign Z_sign = Z[i][31]; // Z_sign = 1 if Z[i] < 0
always @(posedge clock)
begin
// add/subtract shifted data
X[i+1] <= Z_sign ? X[i] + Y_shr : X[i] - Y_shr;
Y[i+1] <= Z_sign ? Y[i] - X_shr : Y[i] + X_shr;
Z[i+1] <= Z_sign ? Z[i] + atan_table[i] : Z[i] - atan_table[i];
end
end
endgenerate
Оригинальный код был получен здесь http://www.hdlexpress.com/Verilog/VT.html Любая помощь будет очень ценится.