SDSoC上手必读:什么是SDSoC平台?

在《FPGA SoC入门难?SDSoC帮你跨“门槛儿”》这篇文章中,我们介绍了SDSoC开发环境革命性的定位,及其在提升开发效率方面体现出来的巨大优势。想必读过之后,很多以前在Zynq这个FPGA SoC平台外徘徊、不得其门而入的开发者,都会跃跃欲试。

不过在迈入SDSoC的大门之前,一些基础性的概念还是有必要预先了解一下的。首要的,就是要搞懂SDSoC“平台”这个名词。

一个SDSoC设计项目是建立在一个“平台”之上的。所谓“平台”包含硬件平台和软件平台两个部分,是一个设计开发可以复用的基础性系统。

平台是利用标准的Vivado、SDK和OS工具创建的。硬件平台(HPFM)定义了诸如处理系统(PS,Processing System)、I/O子系统、存储器接口等,这些工作都基于一个定义明确的端口接口(AXI、AXI-S,、时钟、复位、中断)。软件平台(SPFM)定义了OS、设备驱动、启动加载程序(boot loaders)、文件系统、库等。

基于C/C++源代码的定制和专用硬件和软件,用户可以扩展平台。

SDSoC将平台作为独立的解决方案空间,基于平台提供的资源去生成用于解决方案的IP。每个解决方案都是为一个平台裁剪而成的。

一个扩展名为xpfm的文件包含了硬件描述符XML文件(HPFM)和软件描述符XML文件(SPFM)位置的参考。

下图1显示的是一个SDSoC平台的示意图。

图1,SDSoC平台示意图

图1,SDSoC平台示意图

有时我们称其为一个基础平台(base platform),它包含一个Vivado项目和一个可启动的软件镜像。

Vivado项目包含接口IP和相关驱动程序,其与顶层SDSoC应用程序进行交互。基础平台通常使用赛灵思和安富利提供的开发工具和SOM。

图2展示的是一个基于基础平台的完整SDSoC设计的整体结构。需要加速的C/C++/SystemC功能成为了FPGA可编程逻辑(PL)中的IP,而其他功能保留在处理器系统(PS)中。同时,SDSoC会在那些IP和PS系统间自动生成互连。

图2,基于基础平台的完整SDSoC设计的结构

图2,基于基础平台的完整SDSoC设计的结构

所以,理解SDSoC“平台”是全面认知基于SDSoC的开发方法和流程的基础,是快速上手SDSoC的敲门砖。在后面的文章中,我们将详细介绍如何构建SDSoC的硬件平台和软件平台。

文章转载自:安富利 微信公众号