4

我不是在尝试使用 DPI 调用,而是在内部使用其 PLI 调用用 C 语言编写的函数的简单 Verilog 程序。我不知道静态链接。我正在使用edaplayground。

谁能告诉我应该使用哪个模拟器,应该通过切换来链接 Verilog 和 C 吗?我应该在 Verilog 中包含 C 文件吗?

示例代码如下

// 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 call hello。

4

1 回答 1

0

我将您的 C 代码放在一个名为 test.c 的新文件中,并将 SV-DPI 添加到您的 Verilog 代码中,从 $hello 任务中删除美元符号以成为 DPI 调用。

查看模拟器输出,它应该是示例代码的预期结果。

于 2015-08-19T00:13:54.640 回答