我需要在Verilog中创建一个CORDIC模拟器,但是我使用的代码包含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 任何帮助将非常感谢。