我想在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
正确的方法是什么?
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