![]() |
![]() |
TOP > SystemC > SystemCのデータ型 |
![]() |
![]() |
SystemCのデータ型
SystemCのデータ型には主に以下の種類がある。
これらのデータ型はポートの定義、信号の定義にも使用できる。また、C++のデータ型もSystemCでは使用できる。(当然の事だが...)
データ型の例
bool val; ///1bit幅の変数 sc_int<3> val; ///<3bit幅の符合有りの変数 sc_uint<64> val; ///<64bit幅の符合無しの変数 sc_bigint<80> val; ///<80bit幅の符合有りの変数 sc_biguint<80> val; ///<80bit幅の符合無しの変数 sc_in<sc_uint<3> > ///<3ビット幅の入力ポート sc_out<sc_int<10> > ///<10ビット幅の出力ポート sc_signal<bool> val; ///<1ビット幅の信号 ビット幅のある変数の演算
ビット幅の指定をした変数は、以下の例のようにC++の演算子・特殊な演算子やメソッドを使用して演算ができる。
SystemCの演算の例
sc_int<32> val1 = 10; sc_int<32> val2 = 20; sc_int<32> val; bool val3 = val4 = true; //ANDをとる val = val1 & val2; //シフト演算する val = val1 << 1; //四則演算を行う val = val1 + val2; //条件演算子で判定 if(val1 < val2) { printf("hahaha\n"); } //インクリメント・デクリメントする val1++; val2--; //ある変数のnビットを取り出す val = val1[1]; //連接で複数変数を連結する val = (val3, val4); //あるビット範囲を取り出す val = val1.range(1, 0); |
![]() |
![]() |
Copyright 2007 ためになるホームページ All Rights Reserved. |