2、SystemC数据类型

1、sc_int<x>和sc_uint<x>的位宽不固定,位宽范围是1~64。例如:sc_int<35>/sc_uint<35>表示35bit数据类型。

2、sc_bigint<x>/sc_biguint<x>可以表示超过64bit的大位宽数据,可以表示从1~任意值位宽的数据。使用sc_bigint<x>/sc_biguint<x>会影响仿真速度。

3、sc_bit表示单bit数据,可以赋值为0或1。单bit signal推荐使用sc_signal<bool>。

4、sc_logic是一个枚举,里面封装了不同的逻辑状态,表示信号逻辑状态。0:逻辑0;1:逻辑1;Z:高阻态,断开连接;X:未知状态,不确定。W:弱驱动态,冲突连接;L:逻辑低电平;H:逻辑高电平;U:未定义状态,未初始化。

5、sc_bv<n> 中的每一位表示0或1,通过双引号赋值,如sc_bv<10> = “0101010011”,可以通过to_string()将sc_bv转化为字符串。sc_lv<n>每一位表示0/1/z/x,也是通过双引号赋值,如sc_lv<10> = “010x01z011”,也可以通过to_string()将sc_lv转化为字符串。

6、sc_fixed有符号小数、sc_ufixed无符号小数、sc_fix有符号可变位数小数、sc_ufix无符号可变位数小数。例子:sc_fixed<w1(总bit位数),iw1(整数部分字长),q_mode(去掉尾数),o_mode(溢出处理),n_bits(饱和bit位数)> fixed_x;其中iw1可以超过w1。

去掉尾数模式:

SC_RND四舍六入五成双、SC_RND_CONV四舍五入、SC_TRN:截断

对称饱和就是最小值正好是最大值的负数,循环饱和就是y随着x的增大进行循环饱和。

8、is_neg()查询定点对象是否是一个负数;is_zero查询定点对象是否为0;overflow_flag()查询定点对象是否发生过溢出;quantization_flag()查询定点对象是否发生过量化。

9、(a,b)把a和b串联起来,构成更大的数。a.and_reduce() 数a所有位与之后的结果;a.nand_reduce()数a所有位与之后取反的结果;a.or_reduce()数a所有位或之后的结果;a.nor_reduce()数a所有位或之后取反的结果;a.xor_reduce()数a所有位异或之后的结果;a.nxor_reduce()数a所有位异或后取反的结果。

10、to_string(NumberRepresentation,Format)方法将定点数据转化为字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值