将事件触发器发送到SystemC中的模块

时间:2013-01-31 14:02:18

标签: systemc

我想做的事情就像将av事件从一个模块发送到另一个模块(如按下按钮)。但正如我搜索过的那样,似乎应该以其他方式完成,因为我没有找到任何标准方式来发送av事件触发/通知。

我的简单模型包括两个模型,1个发生器和1个控制器。我希望Generator能够将Controller中的内部布尔值设置为true(表示传感器上已注册)。控制器有一个线程,如果自上次以来已经注册,则会执行该操作,然后将bool重置为false(在5秒等待期间有效地忽略并丢弃更多传感器注册)。

if(sensor_activity)
{
    doStuff();
    wait(5, SC_SEC);
    sensor_activity = 0;
}

我应该如何将信号从发电机发送到控制器?

2 个答案:

答案 0 :(得分:0)

使用缓冲区。即使你写下它已有的值,它也会触发。

答案 1 :(得分:0)

有很多方法可以做到。

  1. Systemc基本上是C ++。因此,生成器可以调用控制器的公共函数,它将通知内部事件,这将触发所需的线程。
  2. 在对端口敏感的控制器中创建一个进程,该进程将通知内部事件,该事件将触发所需的线程。从发电机写入端口。
  3. 声明一个全局sc_event变量。现在在生成器中通知它并使用它来触发控制器中的线程。