双向端口与SystemC中的信号连接

时间:2019-05-28 14:17:12

标签: systemc

在模块层次结构中,在将inout端口与sc_signal连接时显示错误,那么我是否需要与inout(双向端口)连接任何其他类型的信号?

错误:(E115)sc_signal不能有多个驱动程序:  信号Dha.signal_0' (sc_signal) first driver Dha.Memory.port_4'(sc_inout)  第二个驱动程序“ Dha.Alloc.port_3”(sc_inout)

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您需要使用写入器策略sc_signal实例化SC_MANY_WRITERS,以驱动来自多个端口/进程的信号。

#include <systemc.h>
SC_MODULE(Foo) {
  sc_inout<bool> port;
  SC_CTOR(Foo)
    : port("port")
  {}
  // ...
};
SC_MODULE(Bar) {
  sc_inout<bool> port;
  SC_CTOR(Bar)
    : port("port")
  {}
  // ...
};
int sc_main(int, char*[])
{
  sc_signal<bool, SC_MANY_WRITERS> signal; // <-- policy here
  Foo foo("foo");
  Bar bar("bar");
  foo.port(signal);
  bar.port(signal);
  sc_start();
  return 0;
}