用CPLD和FLASH存储器配置FPGA
随着FPGA生产商推出更高密度FPGA器件,要求更多的配置芯片存储配置数据并配置FPGA。本文介绍了采用计算机并口下载配置数据并用CPLD,FLASH存储器组成的被动串行(PS)配置系统配置高密度FPGA的方法,其方法是用CPLD作为控制器控制FLASH存储器对高密度的FPGA进行配置,通过使用一个FLASH存储器和一个CPLD器件可代替容量有限的专用配置芯片,具有配置速度快、实现容易的特点。
引言
Altera公司的基于SRAM查找表结构的FPGA器件自问世以来得到了广泛的应用,但由于SRAM的易失性,每次系统上电时,必须重新配置数据,即ICR(In-Circuit Reconfigurability),以保证系统的正常工作。在线配置方式一般有两类:一是通过由计算机直接对其进行配置,二是通过专用配置芯片对其进行配置。通过PC机对FPGA进行在系统重配置,由于对PC机的依赖性和FPGA的易失性,在应用现场是很不现实的;上电后,通过配置芯片自动加载数据对FPGA应用来说是必需的,Altera公司提供的配置芯片有一次可编程型和可擦除编程型两种:一次可编程型芯片不适合开发阶段反复调试、修改及产品的升级;可擦除编程型价格较高,且容量有限和不易购买。随着Altera公司推出高密度的FPGA芯片,其配置数据位流大小也随之增加,因此,应用中就要求更大容量的配置芯片来储存配置数据。虽然可以用多片配置芯片组成菊花链形进行配置,但是会增加系统设计的难度。用易于购买和易于选择的FLASH存储器作为配置器件就可以使配置变得简单方便。
1 FPGA器件的配置方式和配置文件
FPGA依据控制配置过程的器件不同,可将配置分为主动配置和被动配置两类;依据配置数据流的格式不同,可将配置分为串行配置和并行配置两类。因此,可组成被动串行(ps)、被动并行同步〔PPS)、被动并行异步(PPA)、被动串行异步(PSA)等配置方式。这五种方式都能适用于单片机配置。PS方式因电路简单,对配置时钟的要求相对较低,而被广泛应用。本文采用在CPLD控制下用一片FLASH存储器芯片对FPGA进行配置,配置方式采用被动串行配置(PS)模式。这种配置方案充分考虑了在FPGA实际使用中FPGA的密度和设计的可升级的要求,不仅可以实现代替价格贵的不可擦写和可擦写专用配置芯片,而且可以实现多任务电路结构重配置。该方案有PC机控制程序、CPLD和FLASH存储器组成,只要通过选择不同容量的存储器,就可实现对不同容量的FPGA的配置。方案中PC机将配置数据写人FLASH,在写好数据后该配置系统不再需要PC机的控制,在控制器(通过CPLD实现)的控制下完成配置。
Altera的MAX+PLUS11或QuartusII开发工具可以生成多种配置或编译文件,用于不同配置方法的配置系统,而对于不同系列的目标器件配置数据的大小也不同,配置文件的大小一般有.rbf文件决定。.rbf文件即二进制文件。该文件包括所有的配置数据,一个字节的.rbf文件有8位配置数据,每一字节在配置时最低位最先被装载。控制器可以读取这个二进制文件,并把它装载到目标器件中。Altera软件工具不自动生成rbf文件,但是MAX+PLUSII的编译器在编译过程中自动产生一个存储器目标文件(*.sof)。它包括一个专用数据头和二进制配置数据,在存储器目标文件(*.sof)的基础上,可以生成其它类型配置文件。
本文介绍并设计了用FLASH存储器和CPLD(MAX3000)配置高密度的FPGA。其中FLASH存储器存储配置数据,CPLD作为控制器,通过控制器生成数据流并传输数据到FPGA实现配置。这种配置方式适合APEX,ACEX,FLEX等FPGA芯片的配置。图1是利用EPM3128芯片和FLASH配置FPGA的原理简图。PC机通过并行口同控制器接口,通过控制器把配置数据编程到FLASH存储器,编程结束后控制器控制FLASH存储器对FPGA进行配置。本设计可用于对APEC,ACEX以及FLEX系列FPGA进行单个和多个串行配置,图1原理图中的上拉电阻对于APEX20OKE系列大小为10k欧姆,其余系列的上拉电阻均为1k欧姆。
Altera公司的基于SRAM查找表结构的FPGA器件自问世以来得到了广泛的应用,但由于SRAM的易失性,每次系统上电时,必须重新配置数据,即ICR(In-Circuit Reconfigurability),以保证系统的正常工作。在线配置方式一般有两类:一是通过由计算机直接对其进行配置,二是通过专用配置芯片对其进行配置。通过PC机对FPGA进行在系统重配置,由于对PC机的依赖性和FPGA的易失性,在应用现场是很不现实的;上电后,通过配置芯片自动加载数据对FPGA应用来说是必需的,Altera公司提供的配置芯片有一次可编程型和可擦除编程型两种:一次可编程型芯片不适合开发阶段反复调试、修改及产品的升级;可擦除编程型价格较高,且容量有限和不易购买。随着Altera公司推出高密度的FPGA芯片,其配置数据位流大小也随之增加,因此,应用中就要求更大容量的配置芯片来储存配置数据。虽然可以用多片配置芯片组成菊花链形进行配置,但是会增加系统设计的难度。用易于购买和易于选择的FLASH存储器作为配置器件就可以使配置变得简单方便。
1 FPGA器件的配置方式和配置文件
FPGA依据控制配置过程的器件不同,可将配置分为主动配置和被动配置两类;依据配置数据流的格式不同,可将配置分为串行配置和并行配置两类。因此,可组成被动串行(ps)、被动并行同步〔PPS)、被动并行异步(PPA)、被动串行异步(PSA)等配置方式。这五种方式都能适用于单片机配置。PS方式因电路简单,对配置时钟的要求相对较低,而被广泛应用。本文采用在CPLD控制下用一片FLASH存储器芯片对FPGA进行配置,配置方式采用被动串行配置(PS)模式。这种配置方案充分考虑了在FPGA实际使用中FPGA的密度和设计的可升级的要求,不仅可以实现代替价格贵的不可擦写和可擦写专用配置芯片,而且可以实现多任务电路结构重配置。该方案有PC机控制程序、CPLD和FLASH存储器组成,只要通过选择不同容量的存储器,就可实现对不同容量的FPGA的配置。方案中PC机将配置数据写人FLASH,在写好数据后该配置系统不再需要PC机的控制,在控制器(通过CPLD实现)的控制下完成配置。
Altera的MAX+PLUS11或QuartusII开发工具可以生成多种配置或编译文件,用于不同配置方法的配置系统,而对于不同系列的目标器件配置数据的大小也不同,配置文件的大小一般有.rbf文件决定。.rbf文件即二进制文件。该文件包括所有的配置数据,一个字节的.rbf文件有8位配置数据,每一字节在配置时最低位最先被装载。控制器可以读取这个二进制文件,并把它装载到目标器件中。Altera软件工具不自动生成rbf文件,但是MAX+PLUSII的编译器在编译过程中自动产生一个存储器目标文件(*.sof)。它包括一个专用数据头和二进制配置数据,在存储器目标文件(*.sof)的基础上,可以生成其它类型配置文件。
本文介绍并设计了用FLASH存储器和CPLD(MAX3000)配置高密度的FPGA。其中FLASH存储器存储配置数据,CPLD作为控制器,通过控制器生成数据流并传输数据到FPGA实现配置。这种配置方式适合APEX,ACEX,FLEX等FPGA芯片的配置。图1是利用EPM3128芯片和FLASH配置FPGA的原理简图。PC机通过并行口同控制器接口,通过控制器把配置数据编程到FLASH存储器,编程结束后控制器控制FLASH存储器对FPGA进行配置。本设计可用于对APEC,ACEX以及FLEX系列FPGA进行单个和多个串行配置,图1原理图中的上拉电阻对于APEX20OKE系列大小为10k欧姆,其余系列的上拉电阻均为1k欧姆。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
责任编辑:童伟
- 上一篇文章:基于CPLD的虚拟信号发生器设计
- 下一篇文章:<连载汇总>Protel二次开发从入门到精通
