system Verilogで、配列を使ってみる。
入力側
パラメータの定義として、配列を用意する。8bitのデータを8個分用意する。
module array (
.....
input [7:0] data[8],
alwaysで、forループすることには何か違和感を感じるが。。。。内部で配列を処理する。
logic [7:0] i;
logic a_out_data;
logic [7:0] tmp =0;
......
for (i=0;i<8;i++) begin
tmp += data[i];
end
a_out_data = tmp;
テストする側
テストするデータを準備する。
int i;
for (i=0;i<8;i++) begin
DATA[i] <= i;
end
次に、モジュールを定義する部分
logic [7:0] DATA[8];
array array_inst(
.....
.data(DATA),
.....
とりあえず、動いた。
動作に使用したVivadoの環境は、ここにおいてあります。