スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

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
イベントカレンダー

カレンダー
09 | 2017/10 | 11
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 31 - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。