2012-10-02 44 views

回答

3

我在doulos搜索,但我只看到了插座的例子。 有人幫我,我離開這裏TLM FIFO的代碼示例

#include "systemc" 
#include "tlm.h" 


// PRODUCER 1 

SC_MODULE(producer) 
{ 
sc_core::sc_port< tlm::tlm_fifo_put_if<int> > out; //FIFO OUT 

SC_CTOR(producer) 
    : out("out") 
{ 
    SC_THREAD(run); //função 
} 

void run() 
{ 
    int i = 42; 
    std::cout << name() << ": " << i << std::endl; 
    out->put(i); 
} 
}; // producer 

// CONSUMER 

SC_MODULE(consumer) 
{ 
    sc_core::sc_port< tlm::tlm_fifo_get_if<int> > in; 

    SC_CTOR(consumer) 
    : in("in") 
    { 
     SC_THREAD(run); //função 
    } 

    void run() 
    { 
     int i = in->get(); 
     std::cout << name() << ": " << i << std::endl; 
    } 
}; // consumer 


// MAIN 
int sc_main(int, char*[]) 
{ 
    tlm::tlm_fifo<int> fifo("fifo"); 

    producer prod("producer"); 
    prod.out(fifo); 
    consumer cons("consumer"); 
    cons.in(fifo); 

    sc_core::sc_start(); 
    char myLine[100]; 
    cin.getline(myLine, 100); 
    return 0; 
} 

謝謝