24小时热门版块排行榜    

查看: 405  |  回复: 0
当前主题已经存档。

sdlj8051

金虫 (著名写手)

[交流] systemc系统级描述的例子

systemc系统级描述的例子
// signal 级信号的接口,只定义接口信号
 #i nclude
 class adder_sig_if : public sc_module
 {
 public :
 sc_inout sig_a,sig_b,sig_c;
 sc_inout sig_ctrl;

 };

 // 任务级的接口
 class adder_task_if : public sc_interface
 {
 public :
 virtual int task_do_sum(int a,int b) = 0; // 纯虚函数
 };
 // Transactor,它同时继承自信号级和任务级的接口
 #i nclude

 class adder_transactor: public adder_sig_if,public adder_task_if
 {
 public:
 virtual int task_do_sum(int a, int b)
 {
 sig_a = a;
 sig_b = b;
 sig_ctrl = false; wait(10,SC_NS);
 sig_ctrl = true; wait(10,SC_NS);

 cout << "a = " << sig_a << "; b = " << sig_b ;
 //cout << "; sig_ctrl = " << sig_ctrl;
 cout << "; c = a + b = " << sig_c << endl;

 return 0;
 }

 SC_CTOR(adder_transactor)
 {
 }

 };
 // signal级的设计
 #i nclude

 class adder_design : public adder_sig_if
 {
 public :
 void get_sum()
 {
 sig_c = sig_a + sig_b;
 }

 SC_CTOR(adder_design)
 {
 SC_METHOD(get_sum);
 sensitive_pos << sig_ctrl;
 }

 };

 // Transaction级的TestBench
 #i nclude

 class adder_test : public sc_module
 {
 public:
 sc_port transactor;

 void run_test()
 {
 while(true)
 {
 /*
 TestBench不涉及signal级设计的细节,而直接通过Transactor进行验证
 */
 transactor->task_do_sum(1,2);
 transactor->task_do_sum(3,4);
 transactor->task_do_sum(5,6);
 }
 }

 SC_CTOR(adder_test)
 {
 SC_THREAD(run_test);
 }

 };

 #i nclude "adder_interface.h"
 #i nclude "adder_transactor.h"
 #i nclude "adder_design.h"
 #i nclude "adder_test.h"

 int sc_main(int argc,char * argv[])
 {
 sc_signal  a,b,c;
 sc_signal ctrl;

 adder_design design("design";
 design(a,b,c,ctrl);

 adder_transactor transactor("transactor";
 transactor(a,b,c,ctrl);

 adder_test test("test";
 test.transactor(transactor);

 sc_start(1000);

 return 0;
 }

[ Last edited by sdlj8051 on 2006-11-1 at 10:26 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sdlj8051 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 jCd0dEvKHShX 2026-08-29 6/300 2026-08-30 13:54 by GkCVyODlx4mR
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 gy1nBQXYQJqL 2026-08-29 8/400 2026-08-30 12:14 by l0VvVHGBGRLv
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +6 ASdOkHsho7FD 2026-08-28 8/400 2026-08-30 11:32 by l0VvVHGBGRLv
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +6 ASdOkHsho7FD 2026-08-28 9/450 2026-08-30 11:19 by l0VvVHGBGRLv
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 G6APbkg8SA6w 2026-08-29 4/200 2026-08-30 07:28 by ZPa0EcMwuECS
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 G6APbkg8SA6w 2026-08-29 5/250 2026-08-30 02:40 by ZPa0EcMwuECS
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-30 01:58 by ZPa0EcMwuECS
[公派出国] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 01:45 by ZPa0EcMwuECS
[基金申请] 为什么到现在没收到通知? +4 tannykie 2026-08-29 4/200 2026-08-29 17:14 by lmz0216
[基金申请] 基金不中,共勉 +11 eulota 2026-08-26 11/550 2026-08-28 14:22 by 火星超人xi
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
信息提示
请填处理意见