如何用两个函数编写我的 C 程序?

How can I write my C program in two functions?

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

在这方面,通过 Vivado HLS,我只需要一个可以转换为例如通过 Vivado HLS 的 VHDL 和其他功能可以留在 CPU.

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

完全没有!

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

但是您想做的是编写任何 C 代码,然后 运行 在 FPGA 区域中编写它们,就像在处理器中一样。而且这种做法也不靠谱。

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

我的建议是熟悉 Zynq 系列,尤其是 AXI 协议。如果您熟悉 DMA/AXI4/AXI4S 以及如何从 ARM 和 Logic 访问它们,那么请开始使用 HLS。不然你怎么写代码HLS都看不懂的感觉。