忍者ブログ

雑記

【SystemVerilog】Bit select

雑記 > codeのメモ > 【SystemVerilog】Bit select

【SystemVerilog】Bit select

あるbit幅の信号から、変数を使い特定のbit幅を選択したい場合の記述。

例えば256bit幅の信号から32bitを選択したいとき。

  bit [255:0] b256 ;
  bit [255:0] a32  ;
  assign a32 = b256[i +:32] ; // 又は[32*(i+1)-1 -:32]

自分は知らなかっただけで、IEEE.1364-2005の5.2.1 Vector bit-select and part-select addressingに詳細があります。

よく以下の様に書いてしまい、コンパイルエラーになりますが、上記の書き方で回避できます。

  assign a32 = b256[32*(i+1)-1:32*i];

上記を知らなくて、下のシフトを使っていました。

  assign a32 = b256>>(32*n);

VCS DirectC - A Quick Look (English Edition)

コメント

カレンダー

11 2017/12 01
S M T W T F S
1
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