我有一个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项目。