#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;