FPGA的不同配置方式 您所在的位置:网站首页 程序员的mac硬件配置是什么 FPGA的不同配置方式

FPGA的不同配置方式

2024-07-12 14:30| 来源: 网络整理| 查看: 265

  FPGA器件有三类配置下载方式:   主动配置方式(AS)   被动配置方式(PS)   JTAG配置方式(最常用)

一、主动配置方式(AS)

   由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列(如EPCS1,EPCS4)配置器件专供AS模式,目前只支持 Cyclone系列。使用Altera串行配置器件来完成。Cyclone器件处于主动地位,配置器件(EPCS)处于从属地位。我的Cyclone开发板中用的就是EPCS4配置芯片,一种串行FLASH(非易失性闪存器),掉电后配置信息不会丢失。

二、被动配置方式(PS)

   则由外部计算机或控制器控制配置过程。不常用,就先不介绍了。

三、JTAG配置方式

  JTAG接口是一个业界标准接口,主要用于芯片测试等功能。altera FPGA基本上都可以支持JTAG命令来配置FPGA的方式,而且JTAG配置方式比其他任何方式优先级都高。

四、三者的区别:

  AS模式: 烧到FPGA的配置芯片里保存的,每次上电时,FPGA器件作为控制器向配置器件EPCS主动发出读取数据信号,从而把EPCS的数据读入FPGA中,实现对FPGA的编程;    PS模式:EPCS作为控制器件,把FPGA当做存储器,把数据写人到FPGA中,实现对FPGA的编程。该模式可以实现对FPGA在线可编程;   JTAG模式:直接烧到FPGA里面的,对FPGA进行配置。由于是SRAM,断电后配置信息消失要重烧;    注释1 : .pof文件可以通过AS方式下载;.sof文件或者转换的.jic可以通过JTAG方式下载。   注释2 :JTAG方式并不是把配置文件下载到FPGA的内部SRAM中存储,这是一个概念性的错误。所谓的FPGA配置文件,顾名思义,是用来配置FPGA的,里面存储的是FPGA内部的可自定义电路单元的工作模式(如SRAM构成的LUT的真值表、单元间的连线关系等)信息。说得浅显一点,FPGA是一个可自定义的集成电路,配置文件里存储的就是如何搭建这个集成电路的信息。FPGA加载后,就按照配置文件里的信息,初始化内部的各个单元开始按照预期工作。因此,FPGA加载后的工作状态就是这个配置文件的表现形式,如果谁要是说配置文件在加载后存储在FPGA里来了,就是概念上没搞清楚。

五、 altera FPGA配置全过程

   FPGA上电以后首先进入配置模式(configuration),在最后一个配置数据载入到FPGA以后,进入初始化模式(initialization),在初始化完成后进入用户模式(user-mode)。在配置模式和初始化模式下,FPGA的用户I/O处于高阻态(或内部弱上拉状态),当进入用户模式下,用户I/O就按照用户设计的功能工作。    注释3 :在FPGA正常工作时,配置数据存储在SRAM中,这个SRAM单元也被称为配置存储器(configure RAM)。由于SRAM是易失性存储器,因此在FPGA上电之后,外部电路需要将配置数据重新载入到芯片内的配置RAM中。在芯片配置完成之后,内部的寄存器以及I/O管脚必须进行初始化(initialization),等到初始化完成以后,芯片才会按照用户设计的功能正常工作,即进入用户模式。    一个FPGA器件完整的配置过程将经历复位、配置和初始化等3个过程。FPGA正常上电后,当其nCONFIG管脚被拉低时,器件处于复位状态,这时所有的配置RAM内容被清空,并且所有I/O处于高阻态,FPGA的状态管脚nSTATUS和CONFIG_DONE管脚也将输出为低。当FPGA的nCONFIG管脚上出现一个从低到高的跳变以后,配置就开始了,同时芯片还会去采样配置模式(MSEL)管脚的信号状态,决定接受何种配置模式。随之,芯片将释放漏极开路(open-drain)输出的nSTATUS管脚,使其由片外的上拉电阻拉高,这样,就表示FPGA可以接收配置数据了。在配置之前和配置过程中,FPGA的用户I/O均处于高阻态。    在接收配置数据的过程中,配置数据由DATA管脚送入,而配置时钟信号由DCLK管脚送入,配置数据在DCLK的上升沿被锁存到FPGA中,当配置数据被全部载入到FPGA中以后,FPGA上的CONF_DONE信号就会被释放,而漏极开路输出的CONF_DONE信号同样将由外部的上拉电阻拉高。因此,CONF_DONE管脚的从低到高的跳变意味着配置的完成,初始化过程的开始,而并不是芯片开始正常工作。    注释4 :一般的系统,会把程序(包括逻辑块和NIOS的C代码)通过工具(内嵌在nios IDE中)烧写到EPCS中(当然你的数据文件也是可以存在这里面的,地址要在程序空间之后),上电后,FPGA从内部ROM中引导程序(这个ROM是不需要用户操作的),然后将EPCS中的程序加载到on_chip_ram或外部SRM,SDRAM什么的,这取决于你SOPC定制的时候,在CPU的异常复位地址指向on_chip_ram还是SRM,SDRAM等。所以对于一个简单的系统应该是这样的启动流程:SOPC定制(程序烧写到什么地方,复位地址在哪)–>编写逻辑模块和nios程序–>调试,烧写程序–>启动系统–>boot_loader从ROM启动将程序搬入on_chip_ram或外部SRM,SDRAM–>程序跳转到on_chip_ram或外部SRM,SDRAM的0地址开始执行用户的程序。

六、总结

   一般的FPGA实验板,(如cyclone系列)都用AS+JTAG方式,这样可以用JTAG方式调试,而最后程序已经调试无误了后,再用AS模式把程序烧到配置芯片里去。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有