2011-04-05 48 views
1

我是SystemC編程的初學者,我注意到了一件事(查看SystemC官方文檔):我在vhdl仿真中用來處理的所有類型都沒有「移植」到SystemC。瞭解SystemC中的類型

我的意思是:

  1. 考慮在VHDL標準庫std_logic,沒有用SystemC等同,然而,SYSC文檔中,我看到使用bool例子很多。
  2. 考慮std_logic_vector,我在sysc中看不到等價物。相反,在許多示例中,我可以看到使用sc_int

所以我在想,SystemC不提供類型來管理單個位或電信號,但它提供了更高的抽象,就像每個常見的C/C++應用程序一樣。

是這樣還是我錯過了什麼?

回答

1
  1. 考慮在VHDL標準庫std_logic,沒有用SystemC等同,然而,SYSC文檔中,我看到很多使用bool的例子。
  2. 考慮std_logic_vector,我在sysc中看不到等價物。相反,在許多示例中,我可以看到使用sc_int

這並不完全正確。

在SystemC中,您可以分別使用sc_logicsc_lv< T >作爲std_logicstd_logic_vector。您可以將SC_LOGIC_0SC_LOGIC_1指定爲sc_logic

雖然您可以使用整數,十六進制或甚至'位特定'文字來指定sc_lv< T >的值。

例如:

class some_device : sc_module 
{ 
    sc_out< sc_lv<32> > address; 
    sc_out<sc_logic> write_enable; 

    SC_CTOR (some_device) 
    { 
     write_enable.initialize(SC_LOGIC_0); 

     /* The following three lines do the same thing. 
     * Obviously you won't use all three at the same time... */ 
     address.initialize(0b00001111000011110000111100001111); 
     address.initialize(0x0F0F0F0F); 
     address.iniziatize(252645135); 
    } 
} 

希望有所幫助。

2

它確實有一些類型:sc_intsc_bv(位向量)等

+0

提供了它們,但應該補充一點,通常您確實使用SystemC進行更高級別的建模(protocolls/busses ...)。你可以嘗試一下,但是當我看到它時,它幾乎用於在稍高一點的層次上模擬/模擬(直到系統級)。 – flolo 2011-04-05 12:58:37

+0

夠公平 - 剛學習systemc我自己! – Marty 2011-04-05 13:38:47