如何将以单独文件编写的VHDL函数调用到C程序

时间:2016-05-18 16:58:29

标签: c vhdl

假设我有一个用VHDL编写的函数,我想从C调用它并在C程序中执行它。我该怎么做?

一个简单的例子会有所帮助。我搜索并找到了this book,但它只显示了如何从VHDL调用C函数,而不是相反。

我可以在设备驱动程序中包含我想要实现的VHDL代码吗?使用像xilinx XPS这样的工具可以制作设备驱动程序,并且可以将比特流下载到FPGA中以进行硬件配置。所以最后C文件将在微网格中运行,VHDL实现将在FPGA中作为设备驱动程序。我可以将驱动程序调用到C文件吗?因为我想做的是用VHDL实现C代码的一部分,其余当然是在C中并将其卸载到FPGA并检查延迟是否减少。我使用pppd源代码进行此项目。

1 个答案:

答案 0 :(得分:1)

VHDL与其他语言之间唯一的标准接口是VHPI(VHDL-2008标准中的新功能)。有一个名为FLI的Modelsim特定接口。

但是,所有这些语言都适用于VHDL到C / C ++。据我所知,没有机制可以将子程序从C / C ++调用到VHDL中。我对此进行了广泛的研究。

根据使用的工具,可以从SystemC或SystemVerilog调用VHDL子程序(分别通过SC_IMPORTimport "DPI-C"),根据我的经验,这种支持非常有限且非常有用依赖(通常仅在非常高端的商业工具中提供)。

现在,如果你想实现一些pppd,你最好通过entity / architecture对实现它,然后在SystemVerilog或SystemC环境中实例化它并传递数据通过给定端口进入VHDL实体。或者,如果您坚持将其作为子程序,请使用SystemVerilog或SystemC来实现。