基本資料類型
可以對 sc_bit / sc_logic 類型進行賦值。
在進行代數操作時 sc_bit 可與 C++ 的 bool 型別混合使用,但建議的做法是多使用 bool 型。
sc_bit 只有 0 和 1 兩個值。
sc_logic 資料型別比 sc_bit 多兩個值 X 和 Z,它所支援的運算與 sc_bit 一樣,如下:
- 位元操作
- 與 &
- 或 |
- 異或 ^
- 取反 ~ (沒有取反賦值)
- 賦值操作
- 與賦值 &=
- 或賦值 |=
- 異或賦值 ^=
- 直接賦值 =
- 邏輯運算
- 等於 ==
- 不等於 !=
sc_int<4> x, y;
sc_int<8> z;
z = (x, y); // 串聯
x = z.range(7, 4); // z的高4位
bool temp = x.or_reduce(); // 所有位元異或
sc_biguint<128> b1;
sc_biguint<64> b2;
sc_biguint<152> b3;
b3 = b1 * b2; // 結果有192位,只有低152位被賦值給b3
當一個無符號整數 sc_uint<M> 被賦值給有符號整數 sc_int<N> 時,uint 先擴展為 64 位元(高位直接填入零),然後從低位開始取 N 位元賦值為 sc_int。
當 sc_int 被賦值給 sc_uint 時,系統首先將它依符號(負數高位填入 1,正數填 0)擴展為 64 位,然後從低位開始取 M 位賦值給 sc_uint。
沒有留言:
張貼留言