Как скомпилировать и запустить программу Verilog, которая вызывает функцию C?

Я не пытаюсь использовать вызов DPI, а просто программу Verilog, которая внутренне использует свой PLI для вызова функции, написанной на языке Си. Я не знаю о статических ссылках. Я использую edaplayground.

Может кто-нибудь сказать мне, какой симулятор я должен использовать и переключить, если я должен передать, чтобы связать и Verilog и C? Должен ли я включить файл C в Verilog?

Пример кода выглядит следующим образом

// C function implementation
#include <stdio.h>  
void hello() {
   printf ("\nHello world\n");
 }

// SV function call
module sv_pli ();

  initial begin
    $hello;
     #10  $finish;
  end

 endmodule

Я хотел бы знать, возникла ли необходимость в регистрации pli, поскольку в настоящее время вызов pli hello не обнаружен.

1 ответ

Решение

Я поместил ваш код C в новый файл с именем test.c и добавил SV-DPI в ваш код Verilog, удалил знак доллара из задачи $hello, чтобы он стал вызовом DPI.

Посмотрите выходные данные симулятора, и это должен быть ожидаемый результат из вашего примера кода.

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