Указание задержек сигнала в предложении SystemC as ПОСЛЕ в VHDL

#vhdl #systemc

#vhdl #systemc

Вопрос:

У меня проблема в SystemC, пытающемся записать сигнал по прошествии некоторого времени…

Рассмотрим следующее:

 process (clk)
   begin
      -- Updating my signal, out signal, in order to get result, but after a certain delay.
      signal1 <= '0' after 2 ns;
  

ХОРОШО!
Я могу сделать то же самое в SystemC:

 SC_CTOR(MyModule) {
   SC_METHOD(mymethod);
   sensitive << ....
}
void mymethod() {
   mysig = '0'; // HOW TO SAY AFTER 2 NS?????????
}
  

Как я могу указать задержку для назначения сигнала в SystemC????

Ответ №1:

Я думаю, вы можете wait(2, SC_NS); в SC_THREAD s, но не в SC_METHOD s . (AFAIK, вам не разрешено wait в SC_METHOD s.)

Комментарии:

1. нет, вы не можете использовать wait в SC_METHOD . wait() функция вызывает yeild на текущем оптоволокне, и нет места, на которое можно переключиться, так что это может привести к сбою.

2. У меня был тот же вопрос, и я не смог найти, о чем говорит Gene. В итоге я выполнил это с помощью отдельного оператора wait(), за которым следовало присваивание.

Ответ №2:

Я уже забываю синтаксис SC, но он должен быть похож на GBL, write функция должна принимать необязательный параметр задержки, например, mysig.write(0, 2*SC_NS); в GBL это либо mysig.Write(0, 2*ns); , либо альтернативный синтаксис: mysig(2*ns) = 0;