Двунаправленное соединение порта с сигналом в SystemC - PullRequest
0 голосов
/ 28 мая 2019

В иерархии модулей при подключении входного порта с помощью sc_signal это показывает ошибку. Так есть ли какой-либо другой тип сигнала, который мне нужно подключить к входному (двунаправленный порт)?

Ошибка: (E115) sc_signal не может иметьболее одного драйвера: сигнал Dha.signal_0' (sc_signal) first driver Dha.Memory.port_4 '(sc_inout) второй драйвер `Dha.Alloc.port_3' (sc_inout)

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

Вам нужно создать экземпляр 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;
}
0 голосов
/ 29 мая 2019

Вам нужен sc_signal_rv. Проверьте пример здесь http://www.asic -world.com / systemc / ports_signals4.html # Пример _: _ Resolved_Vector_Signals

...