²é¿´: 383  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ¡¾¿¼Ñе÷¼Á¡¿»¯Ñ§×¨Òµ 281·Ö£¬Ò»Ö¾Ô¸ËÄ´¨´óѧ£¬³ÏÐÄÇóµ÷¼Á +15 ³Ô³Ô³Ô²ÅÓÐÒâÒå 2026-03-19 16/800 2026-03-24 19:51 by ÁËÁËÁËÁË¡£¡£
[¿¼ÑÐ] 0854È˹¤ÖÇÄÜ·½ÏòÕÐÊÕµ÷¼Á +3 ÕÂСÓã567 2026-03-24 3/150 2026-03-24 19:46 by zhouxuan..
[¿¼ÑÐ] ÊÕ08µ÷¼ÁÉú +6 komorebi69 2026-03-18 6/300 2026-03-24 19:09 by Íô£¡£¿£¡
[¿¼ÑÐ] 307Çóµ÷¼Á +5 ³¬¼¶ÒÁ°º´óÍõ 2026-03-24 5/250 2026-03-24 15:46 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 293Çóµ÷¼Á +6 ¼ÓÒ»Ò»¾Å 2026-03-24 6/300 2026-03-24 14:29 by JourneyLucky
[¿¼ÑÐ] һ־Ըɽ¶«´óѧҩѧѧ˶Çóµ÷¼Á +3 ¿ª¿ªÐÄÐÄû·³ÄÕ 2026-03-23 4/200 2026-03-24 00:06 by ¿ª¿ªÐÄÐÄû·³ÄÕ
[¿¼ÑÐ] 335Çóµ÷¼Á +4 yuyuÓî 2026-03-23 5/250 2026-03-23 23:49 by Txy@872106
[¿¼ÑÐ] Çóµ÷¼Á +7 Ê®Èý¼ÓÓÍ 2026-03-21 7/350 2026-03-23 23:48 by ÈÈÇéɳĮ
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©»¯¹¤´óѧ 070300 ѧ˶ 336·Ö Çóµ÷¼Á +7 vvÃÔ 2026-03-22 7/350 2026-03-23 23:44 by Txy@872106
[¿¼ÑÐ] ²ÄÁÏרҵÇóµ÷¼Á +11 hanamiko 2026-03-18 11/550 2026-03-23 23:12 by peike
[¿¼ÑÐ] 384Çóµ÷¼Á +3 ×Óϵ²© 2026-03-22 6/300 2026-03-23 21:45 by ×Óϵ²©
[¿¼ÑÐ] 336»¯¹¤µ÷¼Á +4 Íõ´ó̹1 2026-03-23 5/250 2026-03-23 18:32 by allen-yin
[¿¼ÑÐ] 291 Çóµ÷¼Á +4 »¯¹¤2026½ì±ÏÒµÉ 2026-03-21 5/250 2026-03-23 16:46 by »¯¹¤2026½ì±ÏÒµÉ
[¿¼ÑÐ] ¿¼Ñе÷¼Á +4 À´ºÃÔËÀ´À´À´ 2026-03-21 4/200 2026-03-22 12:15 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] Çóµ÷¼Á +4 ÒªºÃºÃÎÞÁÄ 2026-03-21 4/200 2026-03-21 18:57 by ѧԱ8dgXkO
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á +4 ÄÝÄÝninicgb 2026-03-21 4/200 2026-03-21 18:39 by ѧԱ8dgXkO
[¿¼ÑÐ] ²ÄÁÏ 271Çóµ÷¼Á +5 Õ¹ÐÅÔÃ_ 2026-03-21 5/250 2026-03-21 17:29 by ѧԱ8dgXkO
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤£¨0856£©304Çó BÇø µ÷¼Á +3 Çñgl 2026-03-21 3/150 2026-03-21 13:47 by lature00
[¿¼ÑÐ] Ò»Ö¾Ô¸¼ªÁÖ´óѧ²ÄÁÏѧ˶321Çóµ÷¼Á +11 Ymlll 2026-03-18 15/750 2026-03-20 19:40 by ¶¡¶¡*
[¿¼ÑÐ] 320Çóµ÷¼Á0856 +3 ²»ÏëÆðÃû×Ö112 2026-03-19 3/150 2026-03-19 22:53 by ѧԱ8dgXkO
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û