如何在两个函数中编写C程序?

时间:2018-05-04 17:23:44

标签: c function fpga vivado zynq

我想知道如何将我的C代码(只有一个带有几个不同功能的.c)编写成两个带输入和输出的函数。 我正在寻找这些因为我要将两部分代码放入CPU并将另一部分留在FPGA中,它们可以通过Zynq系列板上的接口(例如ZC706)相互通信。

在这方面,通过Vivado HLS,我必须只有一个功能,可以转换为例如VHDL通过Vivado HLS和其他功能可以保留在CPU中。

提前致谢,如果需要可以分享我的代码。

1 个答案:

答案 0 :(得分:-1)

完全没有!

FPGA中没有pthread或函数。 你必须认为FPGA更像是一个电路。有像电线这样的物理连接。在内部尤其是Zynq系列中,您可以通过RAM,DMA控制器或寄存器进行通信。 有来自Xilinx的文档,您需要的是AXI / AXI Stream。

但是你要做的是编写任何C代码并在FPGA区域中运行它们,就像在处理器中一样。这种方法并不乐观。

在Vivado HLS中,您可以在C / C ++ / OpenCL / SystemC中编写“函数”,但它只是一个输入和输出转换为硬件描述语言(VHDL / Verilog)的块。 您必须将其导出并将其添加到Vivado项目中才能使用它。 此时,您在HLS中创建的IP可能会做您期望的事情,但仍然有很多工作要以正确的方式连接端口。

我的建议是熟悉Zynq系列,尤其是AXI协议。如果您熟悉DMA / AXI4 / AXI4S以及如何从ARM和Logic访问它们,那么请开始使用HLS。否则你将无法理解如何编写HLS理解的代码。