在涉及PL和PS以及AXI通信的同时,如何在Zynq-ZC706平台上控制我的输入/输出数据?

时间:2018-07-20 17:14:50

标签: vivado zynq

我有一个C代码,对它进行了修改,使得我只有一个具有3个输入和3个输出的顶级模块(称为Top_FPGA)。

struct outputsFromFPGA
{
    int task_ID;
    int workload_ID;
    int core_ID;
};
struct outputsFromFPGA Top_FPGA(int task_ID, int workload_ID, int core_ID)

这3个输入应该来自PS(ZC706概念中的CPU /软件/ ARM内核),分别是task_ID,core_ID和工作负载_ID,这些输出也应该输入到PS,分别是task_ID,core_ID和工作负载_ID。

实际上,我们拥有要在CPU部件上可用内核上执行它们的任务的DAG,在这方面,我们在硬件中设置了调度程序部分,在软件中设置了处理程序部分。 因此,对于每个即将到来的工作负载(workload_ID),我们应该注意到PS,哪个任务(task_ID)应该在哪个核心(core_ID)上运行。这些是Top_FPGA的输出。另一方面,当在一个核心之一上执行任务中的一个完成时,我们应该知道哪个核心(core_ID)和工作负载(workload_ID)中的哪个任务(task_ID)已完成,并在这种方式。

所以我想知道如何将Top_FPGA.vhdl(我用Vivado_HLS合成了Top_FPGA.c)适合ZC706,考虑到PS和PL之间的AXI接口。我的意思是,哪个模块以及如何添加到设计中才能使设计正常工作?!

PS。我知道如何在Vivado中创建/构建/编程/运行PS和PL,并且我成功完成了,例如,板上的Hello_World项目。

0 个答案:

没有答案