Bit slicing in systemVerilog

タイトルはSystemVerilogなんですが、Verilog-HDLの話です。
Mentorが開いているForumサイトにて、こんな投稿がありました。
Bit slicing in systemVerilog
中を見てみるとツッコミどころ満載です。(irun toolってCadence...)

せっかくなので、書いてみました。
 1|module tb;
 2|
 3|  integer i;
 4|  reg[127:0] temp;
 5| 
 6|  initial begin
 7|    for(i=0; i<16; i++) 
 8|      temp[(8*i)+7-:8] = i;
 9|    
10|    for(i=0; i<16; i++) 
11|      $display("temp[%3d:%3d] = %h;",(8*i+7),(8*i),temp[8*i+7 -:8]);
12|    
13|    $finish(2);
14|  end
15|
16|endmodule

実行結果はこちら。
verilog_bit_slice.png

確かに、出来てますね。
で、最初の投稿にあった
      temp[(8*i)+7:8*i] = i;
って書くと、エラーはこんな感じです。
verilog_bit_slice_err.png

なるほど。こういう記述もあるんですね。
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
05 | 2018/06 | 07
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数