- UID
- 872339
|
关键字:SoC FPGA Cortex-A9 Linux
主要FPGA供应商已经开始销售集成了硬核处理器内核的低成本FPGA器件,SoC类FPGA器件最终会成为主流。为能够充分发挥所有重要FPGA的灵活性,这些器件提供了FPGA设计人员和软件工程师还不熟悉的新特性。设计人员需要考虑怎样在FPGA和处理器之间初始化这些资源并进行分配,管理复杂的连接,以及处理器外设的各种设置。
I/O限制
您可能会说,“I/O有什么问题?FPGA有很多I/O!”然而,FPGA现在采用了功能强大的双核Cortex-A9处理器,需要高性能存储器系统。如果您不需要处理器,您不用购买器件,因此,连接DDR2/3存储器来提高性能是最重要的。这需要72个专用引脚。这里不仅有功能强大的处理器,而且还有多种有用的标准外设(例如USB、以太网等)—这就需要更多的引脚。增加一系列电源和地引脚以实现良好的信号完整性,这会使得以前足够用的BGA引脚开始显得捉襟见肘。对于硬件外设,好在这些器件具有复用功能,因此,您可以简单地选择并引出您需要的外设。
引脚配置
对FPGA器件进行编程的比特流含有怎样配置I/O引脚的信息。实际上,SoC FPGA器件的工作方式相似,但是有两种不同的引脚配置过程—一种用于FPGA I/O,一种用于处理器专用I/O(这也包括配置硬件外设复用、I/O引脚和DDR控制器设置),如图1。之所以需要DDR控制器设置,是因为需要为某些器件和电路板布局调整高性能存储器控制器,以实现最优存储器性能。在FPGA硬件开发工具中进行处理器专用I/O和存储器控制器设置,其方式与FPGA引脚相似。如果您不对FPGA进行编程,所有这些配置数据是怎样进入器件中的呢?
图1,Altera SoC FPGA系统,显示了专用处理器和FPGA I/O引脚(右侧)
处理器启动
低成本微控制器简化了从片内ROM的启动,而高端处理器从外部ROM(例如x86 BIOS)启动,然后,装入第二个启动加载程序。与微控制器相似,SoC FPGA器件有硬线片内启动ROM,含有启动处理器的启动代码,但是这些代码也配置I/O引脚,这些引脚用于从FPGA、闪存或者SD卡中读取数据。这样,系统将第二个启动加载程序镜像装入片内RAM。
第二个启动加载程序二进制代码和专用I/O引脚配置设置内置在一个镜像文件中,这一镜像也含有FPGA配置数据、处理器软件(操作系统(OS)启动加载程序、OS以及应用软件)。这一镜像文件存储在介质中,成为处理器的启动源。当处理器从片内ROM启动时,它读取外部引脚的状态,选择启动源,将第二个启动加载程序装入片内RAM,然后运行它。这些代码设置处理器,配置外部存储器控制器和专用外设I/O引脚,允许用户应用程序代码(可以是OS的启动加载程序)从启动源装入到DDR存储器中。在这一阶段,配置处理器和所有处理器专用I/O—因此,OS启动加载程序(例如U-Boot)甚至可以通过外设(例如通过以太网)来装入OS二进制代码。
图2,典型的SoC FPGA启动过程
|
|