在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2463|回复: 2

[求助] systemC初学问题

[复制链接]
发表于 2013-12-18 05:43:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
要求用两个full adder做一个2位adder
full adder 代码如下
//-------------------------------
#include "systemc.h"

SC_MODULE (full_adder){
  sc_in<bool> a,b,carry_in;
  sc_out<bool> sum,carry;
  void prc_full_adder()
  {  sum= a^b^carry;
    carry= ((a & b)|(a & carry_in)|(b & carry_in));
  }
  SC_CTOR(full_adder)
    {
      SC_METHOD (prc_full_adder);
      sensitive<<a<<b<<carry_in;
    }
};


//-------------------------------------------
two_bit_adder 的代码模板如下
//------------------------------------------
#include "systemc.h"
#include "full_adder.cpp"
SC_MODULE(two_bit_adder){
    sc_in < sc_bit>   carry_in0;
    sc_in < sc_bv<2> > num1 , num2;
    sc_out < sc_bit > carry_in2;
    sc_out < sc_bv<2> > sum2;
    full_adder *f1, *f2;

    void prc_2_bit_adder()
    {   
    }

    SC_CTOR(two_bit_adder)
      {  
         SC_METHOD(prc_2_bit_adder);
         sensitive<<carry_in0<<num1<<num2;
         f1= new full_adder ("f1");
         f2= new full_adder ("f2");


  f1->a(  );


  f1->b(  );


  f1->carry_in (  );


  f1->sum ( );


  f1->carry ( );




   f2->a( );


   f2->b( );


   f2->carry_in( );


   f2->sum( );


   f2->carry ( );

      }

    ~ two_bit_adder()
      { delete f1;
        delete f2;
      }
};

//-----------------------
现在的问题是红色部分,如何链接。因为systemC只能用sc_signal链接,但full adder 的所有接口是一位的,但是2 bit adder的sum num1, num2是两位的sc_uint, 而sc_signal与 IO Port都不可以位选择,只能通过variable.
现在的问题是转换的代码写在哪里?无论写在prc_2_bit_adder()里或是
SC_CTOR里都报错或是结果不对。应该如何做呢?
发表于 2013-12-19 20:36:37 | 显示全部楼层
端口上就把num2等拆分成2个1位信号。内部使用时再合到一个2位的变量里。
 楼主| 发表于 2013-12-20 09:43:13 | 显示全部楼层
回复 2# zw84611


  这我也知道,但如何分解,缺是问题,sc_signal ,与port 不能位分 。只能通过sc_uint分,但分解代码写在那里?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 16:45 , Processed in 0.020053 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表