Zynq™-7000 All Programmable SoC在单个器件上实现了ARM处理功能与FPGA逻辑独特的组合,因此需要双重的配置过程,同时需要考虑处理器系统和可编程逻辑。工程师会发现,其配置顺序与传统的赛灵思FPGA稍有差别。尽管如此,方法仍是相似的,生成引导镜像和完成配置存储器编程的难度不大。
虽然标准的FPGA配置实践一般只需要FPGA bit文件,但是如果您想最大限度地利用Zynq SoC的优势,还需要添加另一种配置文件,即软件可执行与可链接格式(ELF)文件。FPGAbit文件用于定义设计中可编程逻辑部分的行为,而ELF文件则是处理系统将要执行的软件程序。
下面让我们来看看如何在Zynq SoC上实现裸机(无操作系统)软件应用。
配置概览
在Zynq SoC中,处理系统(PS)处于主控地位,因此负责配置器件的可编程逻辑(PL)侧。(唯一例外的情况是在使用JTAG接口进行配置时。)这就是说,如果需要,您可以在可编程逻辑侧不加电的情况下给处理系统加电并使之运行,从而降低系统的总功耗。当然如果需要使用Zynq SoC的PL侧,您也需要给它加电。
软件应用程序和FPGA bit文件都存储在连接到处理系统的同一配置存储器器件中。处理系统可以通过多种非易失性存储器类型为配置提供支持,包括quad SPI flash、NANDflash、NOR flash和SD卡等。此外,您还可以和其它任何器件一样,通过JTAG配置系统。
因此,Zynq SoC按照典型的处理器启动顺序配置器件两侧。首先从不可修改的内部的boot ROM运行。该boot ROM包含用于支持非易失性存储器的驱动程序。您可通过非易失性存储器中的报头(header)对boot ROM加以配置。报头标记着配置镜像的起始点,是引导ROM首先要查找的。报头定义了boot ROM可以实现的一些启动选项,直接在flash上运行程序(execute in place)(但是并不适用于所有类型的存储器)、第一阶段引导载入程序(FSBL)偏移和加密配置等。这个报头解析和处理的目的,是确保引导ROM的工作模式与配置存储器的格式相兼容。
对于具体设计而言,用户可以选择加密或非加密的配置方法。引导ROM报头能够支持和定义这两种模式。在加密配置下,必须给器件的可编程逻辑部分加电,将其作为硬件宏AES和SHA。您需要这两个宏进行加密,而且必须把它们放置在器件的可编程逻辑侧。