11.2 基于FPGA+DSP的协同处理平台的设计流程
11.2.1 FPGA与DSP的功能划分
FPGA+DSP系统的设计流程和单独FPGA或者DSP设计流程相比,最大的不同就是在设计流程里面增加了功能划分环节。这个环节的主要目的就算将系统功能进行分解,然后分配给FPGA和DSP去执行。
1.功能划分的原则和依据
功能划分的基本原则就是把数据密集,但算法简单、重复性高的功能放在FPGA上执行,而把算法复杂,重复性低的功能分配给DSP实现,这样可以充分发挥两种芯片的特长。
功能划分的主要依据是系统的指标需求和功能定义,即系统在进行功能划分之后,不能影响系统的整体性能和指标。
2.功能划分的方法
(1)按照数据流向来划分。
这种划分方法一般应用于数据采集领域,具体来说,就是FPGA负责采集数据,并把数据送给DSP芯片,而DSP用来对采集到的数据进行处理。
例如,在图像处理领域一般采用FPGA完成图像的采集,并送给DSP芯片处理。FPGA也可以对输入的图像进行预处理后再送给DSP完成后期的编码和传输功能。这样的系统中,数据流是单向传输的,如图11.1所示。
(2)按照算法流程来划分。
如果FPGA作为DSP的协处理器,那么一般采用按算法流程来划分的方法。DSP负责整个算法的调度和数据流的控制,把需要处理的数据送给FPGA,并从FPGA取回处理后的结果。
例如,在FPGA充当DSP的浮点协处理单元(FPU)的应用中,DSP芯片在需要浮点运算的时候会把数据送给FPGA去处理。当FPGA处理完成后,会通知DSP取回处理结果,如图11.2所示。
图11.1 按照数据流向来划分功能的系统框图 图11.2 按照算法流程来划分功能的系统框图
11.2.2 FPGA+DSP的系统设计流程
FPGA+DSP的双核系统设计流程的示意图如图11.3所示。
图11.3 FPGA+DSP的双核系统设计流程的示意图
从上面的图中可以看出,整个流程中比较重要的环节是FPGA与DSP的通信接口设计方法以及联合调试的注意事项。