3.2 配置电路设计
嵌入式系统中FPGA的PS方式配置方式电路设计如图2所示。左侧的微处理器和FLASH、SDRAM组成了一个最基本的嵌入式系统。FLASH作为程序的存储器,其中存储着系统的整个应用程序、配置程序和配置文件。SDRAM作为系统程序运行空间,可以有效地解决微处理器自身SRAM容量小的问题。

4. 系统软件设计FLASH中存储的程序包括系统程序、配置程序、配置文件。系统加电后,微处理器从FLASH的0地址的引导程序开始运行,完成系统初始化后,微处理器将FLASH中的应用程序移至到SDRAM中运行。由于目前嵌入式系统大多采用实时多任务操作系统,所以设计时应将配置程序放置在第一个运行的任务中,保证开机后就开始运行。
软件设计时根据微处理器与FPGA通信信号线上的时序要求来设计。首先初始化微处理器的端口,在P0引脚上产生一个20μm的负脉冲,读取P4引脚上的信号,如果是高电平就开始数据准备,将数据读出,通过位移操作以串行比特流把低位的数据送上P1引脚,通过P2产生一个时钟上升沿。因为时钟上升沿与数据传送是同步的,这样P1引脚上的信号就传送到了FPGA。再将读出的数据右移位,将低位送上P1引脚,在P2上再产生一个时钟上升沿。如此循环下去,等读出的一个字节传送完毕时再读取下一个字节,按同样的方式传送出去。数据传送的同时检测P4(nSTATUS)是否为低,如果传送过程中遇到错误,P4将为低,这样系统需要重新配置。等到把数据传送完毕后检测P3引脚的状态,如果是高电平说明配置成功,如果是低电平则说明配置失败,系统需要重新配置。
软件设计语言可以选择C,也可用汇编。开发过程中根据芯片的硬件本身特点,注意各方面的优化。因为嵌入式系统中从SDRAM中读取数据的速度很快,所以软件设计时无须考虑从SDRAM到微处理器的传输速度问题。向FPGA器件写数据时,最低有效位居先。微处理器产生的配置时序可以通过给时序引脚发送高低电平来实现。
5. 结论
当今嵌入式系统已应用到各个领域中,因此无论成本还是体积上的优化,都是很有必要的。用嵌入式系统本身的资源优势来完成其它部件的专用功能,能够很有效地达到最优化集成、降低成本的作用。本文讨论的通用方案适用于不同的微处理器和Altera公司所有相关系列的FPGA产品。由于FPGA具有可重复配置的功能,所以在嵌入式系统中可预先包含多个不同功能的配置文件,根据现场的需要进行相应的配置。这充分显示出FPGA现场升级、灵活运用的设计理念。