| ²é¿´: 297 | »Ø¸´: 0 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
sdlj8051½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
SystemC¡ª¡ªÒ»Ì×½«C++À©Õ¹ÎªÓ²¼þÃèÊöÓïÑÔµÄClass Library
|
||
|
1. SystemC ÊÇÒ»Ì×C++ Class Library£¬½«C++À©Õ¹³ÉÁËÒ»ÃÅÓ²¼þÃèÊöÓïÑÔ(HDL)¡£ÎҸоõ£¬Ñ§Ï°SystemCÖÁÉÙÒª¶®Á½Ñù¶«Î÷£ºC++¡¢Ò»ÃÅÓ²¼þÃèÊöÓïÑÔ¡£ÎÒÊìϤC++£¬²¢ÇÒÊìϤVerilog£¬Òò´ËѧSystemCÄܾÙÒ»·´Èý¡¢´¥ÀàÅÔͨ¡£ 2. SystemC ʹÓÃÁËC++µÄºÜ¶àÌØÐÔ£º¶àÖØ¼Ì³Ð¡¢ÐéÄâ¼Ì³Ð¡¢Ä£°å¡¢RTTI (at least for dynamic_cast)¡¢Òì³£´¦Àí¡¢²Ù×÷·ûÖØÔØ¡£ËƺõûÓÐʹÓÃSTL¡£ 3. SystemC ÊÇÒ»Ì×Application Framework£¬¸öÈ˸оõ£¬ÉõÖÁºÍMFCÆÄÓÐÏàËÆÖ®´¦£º һЩsomewhat¹Å¹ÖµÄºê£ºSC_METHOD¡¢SC_THREAD¡¢SC_CTOR µÈµÈ Ò»¸öÈ«¾ÖµÄmanager sc_simcontext (ÀàËÆMFCÖеÄCWinAPP)£¬ÓÃsc_get_curr_simcontext()Äܵõ½¸ÃÈ«¾Ö¶ÔÏóµÄµØÖ·(ÀàËÆMFCÖеÄAfxGetApp() ) main() ²ØÉíÓÚSystemCÖУ¬ÄãÒª×öµÄÊÇдһ¸ösc_main()º¯Êý×÷Ϊ³ÌÐòµÄÈë¿Ú£¬SystemC»áµ÷ÓÃÄãµÄsc_main() ʹÓñíÇý¶¯¼¼Êõ£¬¾ÍÏñMFCÖеÄMessage´«µÝ¡£SystemCÓÃÉÏÃæÄÇЩºê½«class£¨SystemC³ÆÎªmodule£©µÄmember function£¨SystemC³ÆÎªprocess£©×¢²áµ½È«¾ÖµÄ±íÖС£È»ºóSystemCÕâÌ×Application Framework»á¸ù¾Ý·¢ÉúµÄʼþÀ´µ÷ÓÃÄãµÄ´úÂë¡£ 4. ´ÓʵÏÖ¼¼ÊõÉÏ¿´£¬SystemCÓÐ×Ô¼ºµÄgarbage collector¡¢×Ô¼ºµÄ memory pool¡¢×Ô¼ºµÄÈÝÆ÷(Ìæ´úSTL)¡£ ¸öÈËÌå»á£ºSystemC ÔÚWinXP + VS.NET 2003ϵÄʹÓò½Öè 1. SystemC ÒÔÔ´Â뷽ʽ·¢²¼£¬ÏÈʹÓÃVC7.1±àÒëµÃµ½Ò»¸ö¿âÎļþ£ºsystemc.lib 2. ÎÒÃÇдµÄ SystemC ³ÌÐòʵ¼ÊÉÏÊÇC++³ÌÐò£¬Ð´ºÃÒ»¸öSystemC³ÌÐò£¨»òÕß½ÐÉè¼Æ£©£¬ÓÃC++±àÒëÆ÷±àÒëΪobjectÎļþ£¬ÔÙÓësystemc.libÁ´½ÓµÃµ½¿ÉÖ´ÐÐÎļþ¡£ 3. Ö´ÐдËexeÎļþ£¬½øÐзÂÕæ¡£´ÓÊä³ö£¨Îļþ»òstdout£©µÃÖª·ÂÕæ½á¹û¡£ ¸½£ºÒ»¸ö×î¼òµ¥µÄSystemC module ££i nclude "systemc.h" // °ë¼ÓÆ÷ struct half_adder : sc_module { sc_in a, b; sc_out sum, carry; void prc_half_adder() { sum = a ^ b; carry = a & b; } SC_CTOR(half_adder) { SC_METHOD(prc_half_adder); sensitive << a << b; // a, b ÔÚÃô¸ÐÁбíÖÐ } }; µÈЧµÄVerilogÉè¼Æ£º module half_adder(a, b, sum, carry); input a, b; output sum, carry; reg sum, carry; always @(a or b) // a, b ÔÚÃô¸ÐÁбíÖÐ begin sum = a ^ b; carry = a & b; end /* ÒÔÉÏÎåÐпÉÌæ»»Îª£º assign sum = a ^ b; assign carry = a & b; */ endmodule [ Last edited by sdlj8051 on 2006-11-1 at 10:25 ] |
» ²ÂÄãϲ»¶
×ÊÔ´Óë»·¾³ µ÷¼ÁÉêÇë(333·Ö)
ÒѾÓÐ7È˻ظ´
306Çó0703µ÷¼ÁÒ»Ö¾Ô¸»ªÖÐʦ·¶
ÒѾÓÐ11È˻ظ´
¡¾¿¼Ñе÷¼Á¡¿»¯Ñ§×¨Òµ 281·Ö£¬Ò»Ö¾Ô¸ËÄ´¨´óѧ£¬³ÏÐÄÇóµ÷¼Á
ÒѾÓÐ14È˻ظ´
0703»¯Ñ§µ÷¼Á£¬Çóµ¼Ê¦ÊÕ
ÒѾÓÐ6È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
070300»¯Ñ§Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
300·Ö£¬²ÄÁÏ£¬Çóµ÷¼Á£¬Ó¢Ò»Êý¶þ
ÒѾÓÐ3È˻ظ´
²ÄÁÏѧ˶£¬Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´
289Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´













»Ø¸´´ËÂ¥