Как скомпилировать и запустить программу 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.
Посмотрите выходные данные симулятора, и это должен быть ожидаемый результат из вашего примера кода.