SystemC中的事件
在SystemC中,事件提供了一個底層的處理程序間同步及重新啟動的方式,它能用來實現通道的功能,定義事件的語法如下:
sc_event event_name;
另外,要觸發或引起一個事件,要使用通知函數notify(
),語法如下:
event_name.notify(參數); 或 notify(參數,event_name);
SystemC中的數據類型
作為C++語言的擴展,SystemC支持所有C++的數據類型,包括long、int、short、char、unsigned
long、unsigned int、unsigned short、unsigned char、float、double、long double和bool。另外,也能根據需求自行定義數據類型。
此外,SystemC還新增描述硬件的數據類型,這些類型都以sc_開頭,這些數據類型包括sc_bit、sc_logic、sc_int、sc_uint、sc_bigint、sc_biuint、sc_bv、sc_lv、sc_fixed、sc_ufixed、sc_fix、sc_ufix。各個數據類型的說明如表4-4所示。
在這里插入圖片描述
SystemC中的定時
為了能夠實現描述電路的行為,SystemC增加了對時鐘的支持。在SystemC的庫中,定義了兩個特殊的對象:sc_time類和sc_clock類。
這兩個對象在SystemC庫中定義的時候分別都有不同的構造函數,因此用戶可以根據不同的需要定義自己的時鐘模型。在SystemC中,支持的時間單位包括SC_FS、SC_PS、SC_NS、SC_US、SC_MS和SC_SEC,它們分別表示不同的時間精度。下面是定義一個時鐘的例子,用來簡單說明SystemC中定時的概念。
如果要產生一個周期為10ns的時鐘信號,可以這樣實現:
sc_time time(10,SC_NS);
sc_clock clk("clk",time);
也可以這樣定義一個完整的時鐘(包含占空比、開始時間、初始邏輯等參數):
sc_clock clk("clk",10,SC_NS,0.5,5,SC_NS,false);
這個時鐘周期為10ns,占空比(高電平持續時間與時鐘周期的比)為0.5(0.5∶1),時鐘初始第一邏輯值的保持時間是5ns,第一個邏輯值是高電平(false)。
另一個和時間概念相關的是wait(
)函數。wait( )函數可以用來描述系統的等待時間。例如,在一個進程中wait(10,SC_NS)表示進程在等待10ns后被激活。
-
時鐘
+關注
關注
10文章
1721瀏覽量
131378 -
ESL
+關注
關注
1文章
74瀏覽量
21329 -
systemc
+關注
關注
2文章
25瀏覽量
14547
發布評論請先 登錄
相關推薦
評論