24小时热门版块排行榜    

查看: 381  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 欢迎采矿、地质、岩土、计算机、人工智能等专业的同学报考 +3 pin8023 2026-02-28 5/250 2026-03-02 00:24 by 花YOU重开日
[考研] 求调剂 +5 yunziaaaaa 2026-03-01 6/300 2026-03-01 23:57 by ccp273206157
[考研] 材料学硕318求调剂 +11 February_Feb 2026-03-01 13/650 2026-03-01 23:53 by ccp273206157
[考研] 材料化工调剂 +12 今夏不夏 2026-03-01 13/650 2026-03-01 23:32 by L135790
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-01 5/250 2026-03-01 23:31 by L135790
[考研] 0856材料与化工,270求调剂 +6 YXCT 2026-03-01 6/300 2026-03-01 23:21 by 向上的胖东
[考研] 275求调剂 +3 明远求学 2026-03-01 3/150 2026-03-01 22:29 by 刘兵
[考研] 299求调剂 +3 Y墨明棋妙Y 2026-02-28 5/250 2026-03-01 21:01 by tangxiaotian
[考研] 298求调剂 +6 axyz3 2026-02-28 6/300 2026-03-01 19:00 by 18137688336
[考研] 295求调剂 +7 19171856320 2026-02-28 7/350 2026-03-01 18:54 by 18137688336
[考研] 化工专硕348,一志愿985求调剂 +5 弗格个 2026-02-28 8/400 2026-03-01 17:25 by sunny81
[考研] 281求调剂 +4 2026计算机_诚心 2026-03-01 7/350 2026-03-01 17:20 by 2026计算机_诚心
[考研] 321求调剂一志愿东北林业大学材料与化工英二数二 +4 虫虫虫虫虫7 2026-03-01 7/350 2026-03-01 16:52 by caszguilin
[考研] 285求调剂 +8 满头大汗的学生 2026-02-28 8/400 2026-03-01 16:47 by caszguilin
[考研] 311求调剂 +6 亭亭亭01 2026-03-01 6/300 2026-03-01 15:41 by 324616
[考研] 课题组接收材料类调剂研究生 +3 gaoxiaoniuma 2026-02-28 4/200 2026-03-01 14:30 by jjj三跨
[考研] 调剂 +3 简木ChuFront 2026-02-28 3/150 2026-03-01 11:46 by 王伟要上岸啊
[考研] 寻找调剂 +4 LYidhsjabdj 2026-02-28 4/200 2026-03-01 10:56 by sunny81
[硕博家园] 2025届双非化工硕士毕业,申博 +3 更多的是 2026-02-27 4/200 2026-03-01 10:04 by ztg729
[考研] 材料调剂 +4 爱擦汗的可乐冰 2026-02-28 4/200 2026-03-01 00:38 by 猫猫球alter
信息提示
请填处理意见