ビットアクセス
ビット結合
- 4ビット幅の変数を4つ結合する場合
sc_uint<4> a, b, c, d; sc_uint<16> z; z = ( a, b, c, d );
ビット選択
- 16ビット幅のを4ビットごと分割する例
sc_uint<16> a; sc_uint<4> w, x, y, z; w = a.range( 15, 12 ); x = a.range( 11, 8 ); y = a.range( 7, 4 ); z = a.range( 3, 0 );
または、
sc_uint<16> a; sc_uint<4> w, x, y, z; ( w, x, y, z ) = a;
1ビット拡張
SystemCでビット拡張はない?みたいなので、ちょっと亜流な例
sc_uint<1> flg; sc_uint<16> z, a; z = a ^ (sc_uint<16>)( (sc_int<1>)flg );