| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    Hvordan modellen Hardware Systems i SystemC
    Hardware systemer er normalt modelleret med hardware beskrivelse sprog såsom Verilog . Sådanne sprog er beregnet til at hjælpe designere skrive kode, der er meget tæt på den genererede hardware, så værktøjet kæden for chip-design kan bruge koden til at generere den endelige hardware. Ulempen ved denne fremgangsmåde er den begrænsede programmering fleksibilitet i disse sprog. SystemC er et sæt af klasse biblioteker bygget på C + + programmeringssprog, og dens intention er at modellere hardware-systemer og på samme tid , alle de sproglige funktioner i brug C + +. Ting du skal
    C + + compiler som g+ + Online Operativsystem
    Vis Flere Instruktioner
    Brug SystemC
    1

    Hent SystemC pakke. SystemC kan frit downloades fra internettet. Inden du downloader , vil du blive bedt om at registrere med det SystemC samfund. Når registreringen er færdig, kan pakken hentes efter at have logget ind på hjemmesiden med det angivne brugernavn og adgangskode .
    2

    Pak den komprimerede pakke. Den komprimerede pakke vil have en filtype kaldet " tgz " . Antag at navnet på den pakke er " . Tgz " . Pakken kan pakkes med følgende kommandoer : Hej

    gunzip tgz

    tar - xvf tar
    3 < . . p> Skift til den udpakkede mappe ved at bruge " cd " kommando . I denne mappe , kan en fil kaldet "INSTALL " findes. Denne fil indeholder trin -for-trin retningslinjer for at installere pakken. Følg trinene og installere SystemC . Når SystemC er installeret, kan hardware-systemer modelleres i sproget. Pakken har eksempler på mønstre i " eksempler " bibliotek.
    4

    Brug følgende kode som eksempel til at modellere hardware-systemer . Eksemplet er, at et design af et system med to processer . Den første proces udfylder et én - dyb buffer , når den er tom . Den anden proces reddede og viser værdien af bufferen . De to processer opererer på forskellige klokfrekvenser . Koden er forklaret nedenfor : .

    Medtag den nødvendige header filer

    # include " systemc.h "

    # include

    # omfatte

    Class " mybuf " er har to input ure, clk1 og CLK2 . To metoder nemlig indsætte og fjerne defineres , hvor " indsættes" kaldes på positive kant clk1 og "Fjern" kaldes på den positive kant " CLK2 "

    klasse mybuf : . Offentlige sc_module {

    offentlig : Hej

    sc_in_clk clk1 ,

    sc_in_clk CLK2 ,

    std :: deque værdier

    SC_HAS_PROCESS ( mybuf )

    mybuf ( sc_module_name navn) : sc_module (navn) {

    Initialiser ();

    SC_METHOD (indsæt ),

    følsomme < < clk1.pos ();

    SC_METHOD ( remove )

    følsomme << clk2.pos ();

    }

    void indsæt ();

    void fjerne ();

    void Initialize ();

    };

    følgende linjer kode implementere indsættelse og fjernelse metoder , sammen med en initialisering metode

    void mybuf :: initialisere () {

    values.clear ();

    }

    void mybuf . : : fjerne ( ) {

    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 ),

    }

    }

    følgende kode segment implementerer en prøvebænk for eksempel. Urene clk1 og CLK2 er fordrevet fra denne test - bænk

    klasse mybuf_tb : public sc_module {

    public: .

    Sc_out clk1 ;
    < p> sc_out CLK2 ,

    SC_HAS_PROCESS ( mybuf_tb )

    mybuf_tb ( sc_module_name navn) : sc_module (navn) {

    SC_THREAD ( clock1 ) < br >

    SC_THREAD ( clock2 )

    }

    void clock1 ();

    void clock2 ();

    };
    < p> void mybuf_tb :: clock1 () {

    while ( true) {

    clk1 = 0;

    vente ( 10 SC_NS )

    clk1 = 1;

    vente ( 10 SC_NS ),

    }

    }

    void mybuf_tb :: clock2 () {
    < p > while ( true) {

    CLK2 = 0;

    vente ( 20 SC_NS ),

    CLK2 = 1;

    vente ( 20 SC_NS ),

    }

    }

    følgende kode segment instantierer design modulet og dets test - bænk. Derefter binder ure så prøvebænk giver uret værdier til design modulet.

    Int sc_main ( int argc , char * argv []) {

    sc_signal clk1 ;

    sc_signal CLK2 ,

    mybuf newbuf ( " mybuffer ")

    newbuf.clk1 ( clk1 )

    newbuf . CLK2 ( CLK2 )

    mybuf_tb 1 ,

    }

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan lære at kode en Microcontroller i C 
    ·Sådan gør du: GTK Color Selection 
    ·Sådan udfyldes en DataReader Brug Statement 
    ·Hvordan laver man en stjerne Space Mønster i C + + 
    ·Beskrivelse af C System Funktion 
    ·Hvordan man kompilerer flere CPP Files 
    ·Sådan Put Integer Array i Function C Sprog 
    ·Hvordan man skriver et program , der udskrives bestilt …
    ·Debugging i Visual C 
    ·Hvordan man laver en buffer i C + + 
      Anbefalede Artikler
    ·Sådan Indsæt en ComboBox i C -Sharp 
    ·Hvordan læser man en MOV i Matlab 
    ·Hvordan man skriver en Software kravspecifikationer (SR…
    ·Hvordan man åbner en hjemmeside med VBA 
    ·HTML Vs. PHP redirects 
    ·Hvordan laver VBA Input Boxes 
    ·Sådan bruges en PHP Header 
    ·Sådan Embed RESX i CSC Compiler 
    ·Sådan Set Up en arbejdsplads med relative stier i Ecli…
    ·C + + Gentagelse Struktur 
    Copyright © Computer Viden http://www.computerdk.com