C# 클래스 BitField.BitField

ビットフィールドクラス。 Verilog っぽい操作が可能。 64ビットが限界(仕様です)。
파일 보기 프로젝트 열기: ufcpp/UfcppSample 1 사용 예제들

공개 메소드들

메소드 설명
Assign ( BitField a ) : void

値を割り当てる。

Assign ( int m, int l, BitField a ) : void

m〜l ビット目に値を割り当てる。

Assign ( ulong val ) : void

値を割り当てる。

Concat ( ) : BitField

2つのビットフィールドを結合する。 verilog の {x, y, z} に相当。 いくつでもつなげられる。

Create ( bool b ) : BitField

1 びっとのビットフィールドを作成。

Create ( int m, int l ) : BitField

MSB が m、LSB が l のビットフィールドを作成。 verilog の wire [m:l] z; に相当。

Create ( int m, int l, ulong val ) : BitField

MSB が m、LSB が l のビットフィールドを作成。 verilog の wire [m:l] z; に相当。 val で値を初期化する。

ToString ( ) : string

文字列化。 0 と 1 の羅列。

operator ( ) : BitField

各ビットに対して AND 演算。

operator ( ) : bool
this ( int i ) : BitField

i ビット目の値を読み書き。

this ( int m, int l ) : BitField

m〜l ビット目の値を読み書き。

비공개 메소드들

메소드 설명
GetValue ( ) : ulong

格納されている値を ulong 化して返す。

GetValue ( int m, int l ) : ulong

m〜l ビット目に格納されている値を ulong 化して返す。 verilog の z[m:l] に相当。

Sub ( int i ) : BitField

i ビット目のみを切り出す。 verilog の z[i] に相当。 z.Sub(i) を書き換えると z そのものも書き換えられる。

Sub ( int m, int l ) : BitField

m〜l ビット目のみを切り出す。 verilog の z[m:l] に相当。 z.Sub(m, l) を書き換えると z そのものも書き換えられる。

메소드 상세

Assign() 공개 추상적인 메소드

値を割り当てる。
/// this.Width != a.Width のとき発生。 ///
public abstract Assign ( BitField a ) : void
a BitField 割り当てたい値の入ったビットフィールド。
리턴 void

Assign() 공개 추상적인 메소드

m〜l ビット目に値を割り当てる。
/// this.Sub(m, l).Width != a.Width のとき発生。 ///
public abstract Assign ( int m, int l, BitField a ) : void
m int MSB
l int LSB
a BitField 割り当てたい値の入ったビットフィールド
리턴 void

Assign() 공개 메소드

値を割り当てる。
public Assign ( ulong val ) : void
val ulong 割り当てたい値(ulong)
리턴 void

Concat() 정적인 공개 메소드

2つのビットフィールドを結合する。 verilog の {x, y, z} に相当。 いくつでもつなげられる。
static public Concat ( ) : BitField
리턴 BitField

Create() 공개 정적인 메소드

1 びっとのビットフィールドを作成。
public static Create ( bool b ) : BitField
b bool ビットの真理値
리턴 BitField

Create() 공개 정적인 메소드

MSB が m、LSB が l のビットフィールドを作成。 verilog の wire [m:l] z; に相当。
/// m < l のとき発生。 ///
public static Create ( int m, int l ) : BitField
m int MSB
l int LSB
리턴 BitField

Create() 공개 정적인 메소드

MSB が m、LSB が l のビットフィールドを作成。 verilog の wire [m:l] z; に相当。 val で値を初期化する。
/// m < l のとき発生。 ///
public static Create ( int m, int l, ulong val ) : BitField
m int MSB
l int LSB
val ulong 初期値
리턴 BitField

ToString() 공개 메소드

文字列化。 0 と 1 の羅列。
public ToString ( ) : string
리턴 string

operator() 정적인 공개 메소드

各ビットに対して AND 演算。
/// a.Width != b.Width のとき発生。 ///
static public operator ( ) : BitField
리턴 BitField

operator() 정적인 공개 메소드

static public operator ( ) : bool
리턴 bool

this() 공개 메소드

i ビット目の値を読み書き。
/// i が範囲外のとき発生。 ///
public this ( int i ) : BitField
i int
리턴 BitField

this() 공개 메소드

m〜l ビット目の値を読み書き。
/// m, l が範囲外のときと m < l のとき発生。 ///
public this ( int m, int l ) : BitField
m int MSB
l int LSB
리턴 BitField