0

我想在 Verilog 中分配一个二维实数数组。

下面的类似 C 的方法不起作用。

`timescale 1ns/10ps

module twodim ();
  
real xy[0:2][0:1] = {{1, 1}, {2, 4}, {3, 9}};
  
initial begin
  int n = 1;
  $display ("x[n] = %f y[n] = %f", xy[n][0], xy[n][1]);
  #1  $finish;
end
  
endmodule

正确的方法是什么?

4

1 回答 1

0

EDAplayground 是 SystemVerilog,您需要使用的语法是分配模式。'{}. 这是因为 Verilog 已经使用{}了积分连接。您只能{}用于数组的单个维度。

module twodim ();
  
real xy[0:2][0:1] = '{'{1, 1}, '{2, 4}, '{3, 9}};
  
initial begin
  int n; // static variable 
  n = 1;
  $display ("x[n] = %f y[n] = %f", xy[n][0], xy[n][1]);
  #1  $finish;
end
  
endmodule
于 2021-09-12T16:17:44.063 回答