SystemVerilog:配列/bit幅に「-」値指定
bit幅に「-(マイナス)」値を使った書き方ができるとは。。。
私自身書いたことがなかったので、試しに書いてみました。
- サンプルコード
module testbench; int tmp[-2:5]; int data; initial begin for(int i=-2; i<5; i++) begin tmp[i] = data + 1; data++; end for(int i=-2; i<5; i++) begin $display("tmp[%2d] = %0d", i, tmp[i]); end end endmodule
- 実行結果
# tmp[-2] = 1 # tmp[-1] = 2 # tmp[ 0] = 3 # tmp[ 1] = 4 # tmp[ 2] = 5 # tmp[ 3] = 6 # tmp[ 4] = 7
ちなみに、こちらの記述は Verilog-HDL(2001)から出来るようです。