24小时热门版块排行榜    

查看: 380  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 本子写完了,给DS兄弟看了,得了92分 +3 Doma 2026-03-01 7/350 2026-03-02 00:00 by jnzsy
[考研] 求调剂 +5 yunziaaaaa 2026-03-01 6/300 2026-03-01 23:57 by ccp273206157
[考研] 0856材料与化工,270求调剂 +6 YXCT 2026-03-01 6/300 2026-03-01 23:21 by 向上的胖东
[考研] 0854复试调剂 276 +3 wmm9 2026-03-01 3/150 2026-03-01 23:13 by 热情沙漠
[基金申请] 成果系统访问量大,请一小时后再尝试。---NSFC啥时候好哦,已经两天这样了 +4 NSFC2026我来了 2026-02-28 4/200 2026-03-01 22:37 by 铁门栓
[硕博家园] 博士自荐 +7 科研狗111 2026-02-26 11/550 2026-03-01 22:24 by 哲平L
[考研] 26考研报考西工大材料308分求调剂 +3 weizhong123 2026-03-01 3/150 2026-03-01 21:42 by 公瑾逍遥
[考研] 0856求调剂285 +10 吕仔龙 2026-02-28 10/500 2026-03-01 21:37 by 公瑾逍遥
[考研] 0805总分292,求调剂 +7 幻想之殇 2026-03-01 7/350 2026-03-01 21:22 by 公瑾逍遥
[考研] 299求调剂 +3 Y墨明棋妙Y 2026-02-28 5/250 2026-03-01 21:01 by tangxiaotian
[考研] 高分子化学与物理调剂 +6 好好好1233 2026-02-28 12/600 2026-03-01 19:48 by 好好好1233
[考研] 272求调剂 +6 材紫有化 2026-02-28 6/300 2026-03-01 18:58 by 18137688336
[考研] 0856材料求调剂 +11 hyf hyf hyf 2026-02-28 12/600 2026-03-01 18:57 by 18137688336
[考博] 26申博 +4 想申博! 2026-02-26 6/300 2026-03-01 17:32 by 想申博!
[考研] 0856材料求调剂 +4 麻辣鱿鱼 2026-02-28 4/200 2026-03-01 16:51 by caszguilin
[考研] 化工专硕342,一志愿大连理工大学,求调剂 +3 kyf化工 2026-02-28 4/200 2026-03-01 16:49 by yywzz
[考研] 课题组接收材料类调剂研究生 +3 gaoxiaoniuma 2026-02-28 4/200 2026-03-01 14:30 by jjj三跨
[考研] 材料284求调剂,一志愿郑州大学英一数二专硕 +10 想上岸的土拨鼠 2026-02-28 10/500 2026-03-01 14:12 by yc258
[硕博家园] 2025届双非化工硕士毕业,申博 +3 更多的是 2026-02-27 4/200 2026-03-01 10:04 by ztg729
[考研] 264求调剂 +3 巴拉巴拉根556 2026-02-28 3/150 2026-02-28 21:31 by gaoxiaoniuma
信息提示
请填处理意见