首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA器件的在线配置方法

FPGA器件的在线配置方法

关键字:FPGA   在线配置   ICR   AT24C256  
  引 言

  在当今变化的市场环境中,产品是否便于现场升级,是否便于灵活使用成为产品能否进入市场的关键因素。在这种背景下,Altera公司的基于SRAM LUT结构的FPGA器件得到了广泛的应用。虽然这些器件应用广泛,但由于其内部采用SRAM工艺,它的配置数据存储在SRAM中。由于SRAM的易失性,每次系统上电时,必须重新配置数据,即ICR(In-Circuit Reconfigurability),只有在数据配置正确的情况下系统才能正常工作。在线配置方式一般有两类:一是通过下载电缆由计算机直接对其进行配置,二是通过配置芯片对其进行配置。通过PC机对FPGA进行在系统重配置,虽然在调试时非常方便,但在应用现场是很不现实的。上电后,自动加载配置对FPGA应用来说是必需的。Altera公司提供的配置芯片有一次可编程型和可擦除编程型两种:一次可编程型芯片只能写入一次,不适合开发阶段反复调试、修改及产品的方便升级;可擦除编程型价格昂贵,且容量有限,对容量较大的可编程逻辑器件,需要多片配置芯片组成菊花链形进行配置,增加系统设计的难度。

  为了降低成本,目前在开发阶段多用可擦除型配置芯片;最终产品用不可擦写的配置芯片,但一次简单的代码更换就需要更换一次器件,这在产品升级时很不实用。至今还没有低成本的配置芯片出现,而我们采用的这套配置方案充分考虑了在FPGA实际使用中,对设计的保密性和设计的可升级的要求,不但可以实现代替价格昂贵的不可擦写和可擦写配置芯片,而且可以实现多任务电路结构重配置。该方案有PC机控制程序、单片机和外部串行存储器组成,只要通过替换外部串行存储器,就可实现对不同容量的多种配置芯片的代替。PC机是用来将配置数据写入存储器的,在写好数据后该配置系统不再需要PC机的控制,在单片机的控制下实现ICR或多任务电路结构重配置。多任务电路结构重配置即将多个配置文件分区存储到外部存储器中,然后由单片机接收不同的命令,以选择读取不同存储器区的数据下载到FPGA器件,实现在线配置成多种不同的工作模式。

  1 FPGA器件的配置方式和配置文件

  Altera公司生产的具有ICR功能的FPGA器件有FLEX6000、FLEX10K、APEX和ACEX等系列。它们的配置方式可分为PS(被动串行)、PPS(被动并行同步)、PPA(被动并行异步)、PSA(被动串行异步)和JTAG(Joint Test Action Group)等五种方式。这五种方式都能适用于单片机配置。PS方式因电路简单,对配置时钟的要求相对较低,而被广泛应用。我们的配置方案也采用PS配置方式来实现ICR功能,图1是PS配置方式的时序图。


  被动串行工作过程:当nconfig产生下降沿脉冲时启动配置过程,在dclk上升沿,将数据移入目标芯片。在配置过程中,系统需要实时监测,一旦出现错误,nSTATUS将被拉低,系统识别到这个信号后,立即重新启动配置过程。配置数据全部正确地移入目标芯片内部后,CONF_DONE信号跳变为高,此后,DCLK必须提供几个周期的时钟(具体周期数与DCLK的频率有关),确保目标芯片被正确初始化,进入用户工作模式。

  Altera的MAX+PLUS II或Quartus II开发工具可以生成多种配置或编译文件,用于不同配置方法的配置系统,而对于不同系列的目标器件配置数据的大小也不同,配置文件的大小一般有.rbf文件决定。.rbf文件即二进制文件。该文件包括所有的配置数据,一个字节的 .rbf文件有8位配置数据,每一字节在配置时最低位最先被装载。微处理器可以读取这个二进制文件,并把它装载到目标器件中。Altera提供的软件工具不自动生成 .rbf文件,须按照下面的步骤生成:① 在MAX+PLUS II编译状态,选择文件菜单的变换SRAM目标文件命令; ② 在变换SRAM目标文件对话框,指定要转换的文件并且选择输出文件格式为 .rbf(Sequential),然后确定。

  2 配置电路结构和原理

  2.1 串行通信的电路结构和原理

  PC机与单片机的接口如图2所示。AT89C2051单片机通过串行口直接接收PC机传送来的串行数据,然后把接收到的数据存入数据存储器。由于PC机的串行口都是RS-232C标准的接口,所以,其输入输出在电平上和采用TTL电平的AT89C2051在接口时会产生电平不同的问题。为了解决这个问题,在PC机和单片机的串行通信电路中加入了MAX232芯片,以实现TTL电平和RS-232C接口电平之间的转换。这样PC机和AT89C2051单片机进行串行通信时就可以顺利进行了。除了电路结构之外,要实现PC机和AT89C2051之间的通信,还需要有合适的通信软件。

返回列表