SystemC分析(1)-基本数据类型的实现

Sytemc 数据类型的实现

 

1. 在SystemC中新增数据类型的声明sc_bv<8>

sc_bv的在源码中的原型,其中位宽为W

template <int W>
class sc_bv  : public sc_bv_base
{
public:
    // constructors
sc_bv():sc_bv_base( W ) {}
}

1.1 template的应用

知道位宽是怎么传递进入的了吧? 这里采用了C++的模板函数。通常所见的template的用法都是传递一个数据类型或者class type。这里传递了一个Int类型的width(W)。在进行数据类型声明的时候 sc_bv<8>就传递到了其基类sc_bv_base中。

在systemC的源代码中,多数地方都采用了template的通常用法。 例子:带template的构造函数,但是类的声明并没有template。

class sc_bv_base
    : publicsc_proxy<sc_bv_base>
{
friend class sc_lv_base;
    sc_bv_base( constchar* a, int length_ );
    template <classX> sc_bv_base( const sc_proxy<X>& a )
           : m_len( 0), m_size( 0 ), m_data( 0 )
           { init(a.back_cast().length() ); base_type::assign_( a ); }

2. 变量的赋值

2.1 赋值过程追踪

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值