Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Stiahnuť balíček SystemC . SystemC možné voľne stiahnuť z internetu . Pred stiahnutím , budete vyzvaní k registrácii s SystemC komunity . Akonáhle je registračný proces je kompletný , balíček možno stiahnuť po prihlásení na webové stránky so zadaným užívateľským menom a heslom .
2
Rozbaľte komprimovaný balíček . Komprimovaný súbor bude mať príponu súboru s názvom " tgz " . Predpokladajme , že názov súboru je " gunzip tar - XVF použite nasledujúci kód ako napríklad modelovať hardvérové systémy . Príkladom je , že z návrhu systému s dvoma procesmi . Prvý proces vyplní jeden hlboký vyrovnávacej pamäti vždy , keď je prázdna . Druhý proces sa vymaže a zobrazí hodnotu vyrovnávacej pamäti . Obidva procesy pracujú na rôznych frekvenciách hodiny . Kód je vysvetlené ďalej : Zahrnúť potrebné hlavičkové súbory # include " systemc.h " # include # . patrí triedy " mybuf " je má dva vstupné hodiny , CLK1 a clk2 . Dve metódy a to , vložiť a odstrániť je definovaná , kde " vložiť " je vyvolaná pri pozitívnom okraji CLK1 , a " odstrániť " je vyvolaná pri pozitívnom okraji " CLK2 " trieda mybuf : . Verejné sc_module { verejnosť : sc_in_clk clk1 ; sc_in_clk clk2 , Spojené std :: deque SC_HAS_PROCESS ( mybuf ) ; mybuf ( meno sc_module_name ) : sc_module ( meno ) { inicializácia ( ) ; SC_METHOD ( vložka ) ; citlivá < < clk1.pos ( ) ; SC_METHOD ( odstrániť ) , Spojené citlivé << clk2.pos ( ) ; } void insert ( ) ; void remove ( ) ; void initialize ( ) ; } ; Nasledujúce riadky kódu implementovať vkladanie a vyberanie metódy , spolu s metódou inicializačný void mybuf :: inicializácia ( ) { values.clear ( ) ; } neplatné mybuf . : : odstráňte ( ) { if ( values.size ( ) > 0 ) { std :: cout << sc_time_stamp ( ) << " " << values.front ( ) << endl ; values.pop_front ( ) ; } } void mybuf :: insert ( ) { if ( values.size ( ) == 0 ) { int r = rand ( ) % 100 ; values.push_back ( r) ; } } Nasledujúci úsek kódu implementuje skúšobnej lavice pre príklad . Hodiny clk1 a clk2 sú poháňané z tejto skúšobni klipart triedy mybuf_tb : public sc_module { verejnosti : . Sc_out sc_out SC_HAS_PROCESS ( mybuf_tb ) ; mybuf_tb ( meno sc_module_name ) : sc_module ( meno ) { SC_THREAD ( CLOCK1 ) ; SC_THREAD ( clock2 ) ; } void CLOCK1 ( ) ; void clock2 ( ) ; } ; void mybuf_tb :: CLOCK1 ( ) { while ( true ) { clk1 = 0 ; čakať ( 10 , SC_NS ) ; clk1 = 1 ; čakať ( 10 , SC_NS ) ; } } void mybuf_tb :: clock2 ( ) { while ( true ) { clk2 = 0 ; čakať ( 20 , SC_NS ) ; clk2 = 1 ; čakať ( 20 , SC_NS ) ; } } Nasledujúci úsek kódu inštanciu návrhu modulu a jeho skúšobnej lavice . Potom sa viaže na hodiny tak , aby skúšobné lavica poskytuje hodnoty , hodiny na navrhovanie module . Int sc_main ( int argc , char * argv [ ] ) { sc_signal sc_signal mybuf newbuf ( " mybuffer " ) ; newbuf.clk1 ( clk1 ) ; newbuf . clk2 ( clk2 ) ; mybuf_tb 1 ; }
decht
3 < .. p > Prejdite do rozbaleného adresára pomocou " cd
4