FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种可以通过编程实现不同数字逻辑功能的集成电路。它的特点在于用户可以在其生命周期内对FPGA进行反复的配置和重配置。FPGA因其灵活性、高性能以及快速上市时间在通信、工业控制、消费电子等诸多领域得到广泛应用。然而,FPGA的设计与升级一直以来都是一个技术难题,特别是产品发布之后的维护和更新更是一个需要解决的问题。
在传统上,FPGA的配置一般依赖于ISP技术。ISP技术允许芯片不从印制电路板上取下就可以对其进行编程,极大地方便了生产过程中的编程。但ISP的局限性在于它需要专用的硬件接口和软件开发环境,操作较为复杂,对技术人员的技术水平要求较高,且成本相对较高。
另一方面,IAP(In-Application Programming,应用内编程)技术则允许FPGA在应用过程中接收新的配置数据,并更新其功能。IAP技术不需要增加额外的硬件支持,软件开发相对简单,可节省维护和更新的成本。IAP通过在FPGA中嵌入处理器(如NiosII软核处理器)来实现,可以扩展外设并构建完整的片上系统,以此来实现对FPGA的动态配置更新。
NiosII处理器是一个可配置的32位嵌入式处理器IP核,采用Avalon总线结构通信接口,允许用户根据设计要求配置和构建。利用QuartusII等开发工具,用户可以对NiosII及其外围设备进行构建,以满足系统设计的要求。NiosII系列处理器包括NiosII/f(快速)、NiosII/s(标准)和NiosII/e(经济)三种不同的产品,各自针对不同的性能需求和资源使用进行优化。
在FPGA应用编程技术的低成本实现方案中,一个关键点是在FPGA中嵌入NiosII软核处理器,并扩展片上存储器、FLASH控制器与UART控制器等外设。这样构建出的片上系统可以通过串口接收外部发送的配置程序文件,并将其写入外部配置FLASH芯片。该方式大大降低了维护成本,无需返厂或现场技术人员介入,且操作简单。
在FPGA的配置过程中,配置数据通常存储在外部配置芯片中,FPGA上电后通过串行接口主动从FLASH中读取配置数据。在此过程中,JTAG接口作为硬件调试接口,是ISP技术中烧录程序的重要途径。此外,SerialFlashLoader作为JTAG接口与AS接口之间的桥梁,通过它将配置数据先发送至FPGA,然后由FPGA将数据写入FLASH,以完成FPGA的程序烧录。
IAP技术对比ISP技术,具有明显的成本和操作优势。IAP技术不需要专用软硬件,可以通过简单的串口通信实现程序的更新。但是,IAP技术在软件开发上相对较复杂,需要在程序中增加一段专门用于程序烧录的代码。ISP技术则依赖于厂商提供的专用软件开发环境和硬件仿真器,虽然通用性较强,但其成本高、操作复杂。
随着嵌入式技术的快速发展和产品更新换代的加速,FPGA的低成本应用编程技术解决方案(如IAP技术)对于产品的维护和升级具有重要的意义。通过嵌入NiosII软核处理器和外设构建片上系统,提供了一种操作简单、成本低廉的FPGA程序更新途径,这有助于缩短产品上市时间,提高市场竞争力。