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文章
1749浏览量
131897 -
ESL
+关注
关注
1文章
74浏览量
21421 -
systemc
+关注
关注
2文章
25浏览量
14598
发布评论请先 登录
相关推荐
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)
评论