关于syetemC的数据类型
发布时间:2020-12-14 03:23:02 所属栏目:大数据 来源:网络整理
导读:一 值保持器----------端口: 从端口上来看,端口分为三类: (1) sc_in type (2) sc_outtype (3) sc_inout type ps: 内部连线的类型 sc_signal 二 基本的数据类型: (1) systemC 自我扩展的类型: 位类型 sc_bit : 此种类型数据的值只能是1或者0,
一 值保持器----------端口:
从端口上来看,端口分为三类: (1) sc_in< type> (2) sc_out<type> (3) sc_inout <type> ps: 内部连线的类型 sc_signal 二 基本的数据类型: 位类型 sc_bit : 此种类型数据的值只能是1或者0,支持c语言中的位操作 位向量 sc _bv<n>: 定义为任意宽度的位向量,在生成相应类型的变量时若需要赋值,则有两种方式: (1)使用括号初始化 sc_bv<8> vector(‘1‘) ; 即使得结果为全‘1’的位向量 (2)使用字面量初始化 : sc_bv<8> vector = ‘22222111‘; 处理sc_bv类型的数据可由c语言中的位操作,也可以使用特殊的方法 1. 使用拼接操作符 ( var1 , var2 )将多个变量链接在一起 2. 使用函数方法: range() and_reduced() ..._reduced() 由此来的得到拼接的操作,此处的...表示的是一般的逻辑操作, 即and,or,xor,nor,nand,xnor 逻辑类型 sc_logic: 逻辑类型共有四种值 0 , 1 , x , z SC_LOGIC_0 0 SC_LOGIC_1 1 SC_LOGIC_X x SC_LOGIC_Z z 除了使用上面的预定义值进行赋值外,也可以使用类型转换进行赋值 static_cast<sc_logic>‘z‘ sc_logic(‘z‘) 使用函数to_bool可转化此为bool型逻辑值 逻辑向量类型 sc_lv<n> : 值的赋值也可以使用上述的相同方式进行赋值 但要注意一点,若字面量的第二位为x,那么需要在最高位加上0 以免使得字面量被解释为16进制的数。 使用函数to_int可使此类型转化为int类型值 内建的整型数据: sc_int<n> sc_uint<n>: 固定精度的类型,实现为64位执行 所得的结果根据目标进行截断,且同c++的int类型是完全兼容的 sc_bigint<n> sc_biguint<n>: 精度无限制的整型数据类型,可指定任意的位宽。 (2) 由c++继承过来的支持的数据类型: 所有的整型类型,布尔类型,enum类型,struct类型,class类型 三 数据的显示输出方式-------使用to_string函数的形式 输出方式选择的函数参数: SC_BIN: 打印二进制的编码 SC_BIN_US: 打印无符号数的二进制码 SC_BIN_SM: 打印数字的符号与幅值 SC_CSD: 规范有符号数字码 SC_OCT: 打印为8进制 SC_HEX: 打印为16进制 SC_DEC: 默认的打印十进制的代码 四 判断类型 sc_in_resolved sc_in_rv sc_out_resolved sc_out_rv sc_signal_resolved sc_signal_rv sc_signal<sc_lv<4> >mem_word ; // 不允许多驱动的操作 sc_signal_rv<4> cycle_counter ; // 允许多个驱动的存在 五 关于用户自定义的类型: 需要通过class(struct)进行定义,但需要重载这个类中的四个部分: 赋值构造函数 ==操作符 <<操作符 sc_trace函数 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |