SystemC中的数据类型概念

描述

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.55,SC_NS,false);

这个时钟周期为10ns,占空比(高电平持续时间与时钟周期的比)为0.5(0.5∶1),时钟初始第一逻辑值的保持时间是5ns,第一个逻辑值是高电平(false)。

另一个和时间概念相关的是wait(
)函数。wait( )函数可以用来描述系统的等待时间。例如,在一个进程中wait(10,SC_NS)表示进程在等待10ns后被激活。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分