Выделенная структура для value_p для использования с VPI vpi_put_value()

Я реализую Verilog "force" и "release", используя VPI, чтобы их можно было вызывать из подпрограмм Си. Чтобы форсировать значение в векторной сети, мне нужно создать массив s_vpi_vecval для value_p. Я выделил хранилище для массива и заполнил его желаемым значением. Затем я использовал vpi_put_value() для принудительной установки значения вектора в сеть.

Стандарт IEEE 1800 четко говорит, что вызывающей подпрограмме необходимо выделить место для такой структуры для value_p. Но он не сказал, когда безопасно освободить хранилище. Безопасно ли освобождать хранилище сразу после вызова vpi_put_value()?

Я предполагаю, что vpi_put_value() сохранит копию значения силы в своей стороне. Любое понимание этого очень ценится.

1 ответ

Я думаю, можно с уверенностью предположить, что вы можете освободить память после вызова VPI - так работают все остальные подпрограммы VPI.

Вы можете легко проверить это, сделав два звонка dpi_put_value() используя тот же указатель структуры.

Я отправил запрос на разъяснение стандарта IEEE.

Другие вопросы по тегам