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后被激活。
-
時鐘
+關注
關注
11文章
1746瀏覽量
131799 -
ESL
+關注
關注
1文章
74瀏覽量
21415 -
systemc
+關注
關注
2文章
25瀏覽量
14583
發布評論請先 登錄
相關推薦
1.2FreeRTOS中的數據類型
vhdl數據類型
編程語言SCL中ANY數據類型
![編程語言SCL<b class='flag-5'>中</b>ANY<b class='flag-5'>數據類型</b>](https://file.elecfans.com/web1/M00/F1/0B/pIYBAGCsafyAR7QkAAAkf7jPILk461.png)
重視變量的數據類型
![重視變量的<b class='flag-5'>數據類型</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Struct結構數據類型
結構數據類型(Struct)及應用案例
什么是數據類型轉換
定義數據類型
ARRAY 數據類型的變量
F型PLC數據類型與標準PLC數據類型(UDT)之間的差別在哪?
![F型PLC<b class='flag-5'>數據類型</b>與標準PLC<b class='flag-5'>數據類型</b>(UDT)之間的差別在哪?](https://file1.elecfans.com/web2/M00/A0/2E/wKgZomTqrWGAAUnwAAAT_474hFg733.png)
評論