在Verilog中for循环的任何替代方案

时间:2016-04-14 18:45:52

标签: for-loop switch-statement verilog modelsim cordic

我需要在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 任何帮助将非常感谢。

0 个答案:

没有答案