资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1,1.FPGA,配置,配置,(configuration),是对,FPGA,的内容进行编程的过程。每次上电后都需要进行配置是基于,SRAM,工艺,FPGA,的一个特点,也可以说是一个缺点。,FPGA,配置过程如下:,FPGA,配置,器件,外部电路将,配置数据,载入,片内配置,RAM,中,外部电路,FPGA,配置完成,配置,RAM,配置,RAM,中的,配置数据,:,用于控制,FPGA,内部可编程的,内部逻辑,、,内部寄存器和,I/O,寄存器初始化,,,I/O,驱动器使能,等。之后,FPGA,进入用户模式。,2,1.1 FPGA,配置方式,根据,FPGA,在配置电路中的角色,可以将配置方式分为三类:,1.,FPGA,主动串行,(AS-Active Serial),方式,2.,JTAG,方式,3.,FPGA,被动,(Passive),方式,EPCS,系列,配置数据,FPGA,主动串行,(AS),方式,1,下载工具,或,智能主机,JTAG,方式,2,EPC,系列,FPGA,仅输出响应信号,FPGA,FPGA,被动,(Passive),方式,3,3,根据,FPGA,在配置电路中的角色,可以将配置方式分为三类:,1.,FPGA,主动串行,(AS),方式,2.,JTAG,方式,3.,FPGA,被动,(Passive),方式,EPCS,系列,配置数据,FPGA,主动串行,(AS),方式,1,下载工具,或,智能主机,JTAG,方式,2,EPC,系列,FPGA,仅输出响应信号,FPGA,FPGA,被动,(Passive),方式,3,被动方式可分为下列几种方式:,被动串行方式(,PS,),快速被动并行(,FPP,)方式,被动并行异步(,PPA,)方式,被动并行同步(,PPS,)方式,被动串行异步(,PSA,)方式,PS-Passive Serial,FPP-Fast passive parallel,PPA-Passive parallel asynchronous,PPS-Passive parallel synchronous,PSA-Passive Serial Asynchronous,4,FPGA,EPC Device,Configuration,Controller,Memory,FPGA,MAX,II or,External Processor,Configuration,Controller,External Flash,Memory,FPGA,FPGA,External,Memory,Initiates configuration process,Provides configuration data,Configuration,Controller,主动(,AS,)方式,被动(,PS,)方式,被动(,PS,)方式,JTAG,方式,5,配置方式,器件类别,Stratix II,Stratix,Stratix GX,Cyclone II,Cyclone,APEX II,APEX20K,APEX20KE,APEX20KC,Mercury,ACEX 1K,FLEX10K,FLEX10KE,FLEX10KA,FLEX6000,被动串行(,PS,),主动串行,(AS),快速被动并行(,FPP,),被动并行同步(,PPS,),被动并行异步(,PPA,),被动串行异步(,PSA,),JTAG,仅支持边界扫描测试,Altera FPGA,配置方式列表,Cyclone FPGA,配置方式表,配 置 方 式,描 述,主动串行配置,(AS),采用串行配置器件(,EPCS1,、,EPCS4,、,EPCS16,、,EPCS64,),被动配置(,PS,),1,采用专用配置器件(,EPC1,、,EPC2,、,EPC4,、,EPC8,、,EPC16,);,2,采用配置控制器(单片机、,CPLD,等)配合,Flash,;,JTAG,配置,通过,JTAG,进行配置,6,1.2 FPGA,配置过程,FPGA,的配置包括,3,各阶段:,复位,、,配置,和,初始化,。,复位,配置,初始化,进入,用户模式,配置过程波形图,7,1.2 FPGA,配置过程,FPGA,的配置包括,3,各阶段:,复位,、,配置,和,初始化,。,复位,配置,初始化,进入,用户模式,配置数据写入到器件中,器件内部逻辑和寄存器初始化,,I/O,缓冲使能,配置过程波形图,8,FPGA,配置流程图,9,Power-Up Sequence,time,volts,Power-off,Power-Up,Power-On,Device Power Sequence,POR,Configuration,Power supply ramp time,T,RAMP,Device Mode,User-Mode,POR:Power-On Reset,10,2,.,Cyclone及Cyclone II FPGA配置,Cyclone,以及,Cyclone II,FPGA,使用,SRAM,单元来存储配置数据。,FPGA,中的,SRAM,是易失性的,每次上电之前,配置数据,(,或压缩的配置数据,),必须重新下载到,FPGA,中。下面的,2,个条件均可使,FPGA,产生一次配置请求:,给,FPGA,重新上电;,FPGA,的,nConfig,引脚上产生一个低电平到高电平的上升沿。,11,Cyclone,及,Cyclone II FPGA,的配置方式包括:,FPGA,主动串行(AS),配置,方式,;,FPGA,被动(Passive),配置,方式,;,JTAG,配置,方式,。,用户可以通过设置,FPGA,上的,MSEL0,、,MESL1,两个引脚的状态来选择配置方式。各种方式的,MSEL0,、,MESL1,设置如下表所列:,12,MSEL1,MSEL0,配置方式,备注,0,0,AS,主动(串行配置器件),20M,1,0,快速,AS,主动(串行配置器件),40M,,只限,Cyclone II,0,1,PS,被动(,CPLD,控制),0,0,或,1,JTAG,配置,配置方式设置,说明:,在上表中,如果只采用一种配置方式,则可以直接将,MSEL0,、,MESL1,连接到,VCC,(注意要与,FPGA,的,IO,口的供电,VCCIO,相同)或,GND,;,如果需要多种配置方式,那么,MSEL,要用控制器(单片机、,CPLD,等)来控制以进行切换;,MSEL,管脚在配置开始前必须处于一个固定的状态,因此不能将,MSEL,管脚悬空。,13,另外,不同型号,FPGA,的配置文件大小不同,下表中列出了,FPGA,在不压缩情况下二进制配置文件,(.rbf),的最大大小。设计者可以根据配置文件的大小来选择合适的配置器件和其它存储器。并可使用压缩功能,来减小配置文件的大小。,器件类型,器件型号,数据大小(,Bits,),数据大小(,Bytes,),Cyclone,EP1C3,627,376,78,422,EP1C4,924,512,115,564,EP1C6,1,167,216,145,902,EP1C12,2,326,528,290,816,EP1C20,3,559,608,444,951,Cyclone II,EP2C5,1,265,792,152,998,EP2C8,1,983,536,247,974,EP2C20,3,892,496,486,562,EP2C35,6,858,656,857,332,EP2C50,9,963,392,1,245,424,EP2C70,14,319,216,1,789,902,14,2.1,主动串行配置,主动串行配置方式,(AS),是将,配置数据,事先存储在串行配置器件,EPCS,中,然后在系统上电时,Cyclone,及,Cyclone II FPGA,通过,串行接口,读取配置数据,(如果是压缩数据,还会进行解压缩处理),对内部的,SRAM,单元进行配置,。因为上述配置过程中,FPGA,控制配置接口,因此通常称为主动配置方式。,15,说明:,因为,FPGA,上的,nSTATUS,、,CONFIG_DONE,管脚都是开漏结构,所以都要接上拉电阻。,FPGA,的片选脚,nCE,必须接地。,主动串行配置的电路原理图,16,Multi-Device AS Configurations,Multiple-device AS configuration,nSTATUS,CONF_DONE,nCONFIG,nCE,DATA0 nCEO,DCLK,nCSO,ASDO MSELn.0,GND,V,CC,CONF_DONE,nSTATUS,nCE nCEO,nCONFIG,DCLK MSELn.0,DATA0,Serial Configuration,Device,DATA,DCLK,nCS,ASDI,V,CC,V,CC,Buffers,V,CC,V,CC,V,CC,Multiple-device PS configuration when both devices receive the same data,nSTATUS,CONF_DONE,nCONFIG,nCE,DATA0 nCEO,DCLK,nCSO,ASDO MSELn.0,GND,CONF_DONE,nSTATUS,nCE nCEO,nCONFIG,DCLK MSELn.0,DATA0,Serial Configuration,Device,DATA,DCLK,nCS,ASDI,Buffers,GND,Multiple-device AS configuration,same data,17,串行时钟,(DCLK),在配置结束后内部振荡器关闭。下表列出了,DCLK,的输出频率。对于,Cyclone II FPGA,,通过,MSEL,可以选择时钟为,20MHz,或,40MHz,。,配置的时间,与配置文件大小以及,DCLK,的频率有关,关于,AS,方式配置时间的估算请见下一小节。,器件,最小,典型,最大,单位,Cyclone,14,17,20,MHz,Cyclone II,10,13,20,20,26,40,18,用户可以在,QuartusII,软件,中选择,用,哪一个时钟,来进行,FPGA,寄存器和用户,I/O,口的初始化、以及,是否,在,配置,出错后重新开始配置等内容。如下图所示的弹出窗口:,功能复用引脚设置,19,2.2,主动串行配置,(AS),的配置时间估算,主动串行配置时间,为串行配置器件数据传送到,FPGA,的时间,这取决于,DCLK,的频率,以及,配置文件的大小,。,以,Cyclone EP1C6,器件为例,非压缩的,.rbf,格式配置文件的大小为,1167216,位、,DCLK,最低频率为,14MHz(71ns),,则最大配置时间为:,1167216*71ns,82872336ns83ms,当,DCLK,的典型频率为,17MHz(59ns),时,配置时间为:,1167216*59ns=68865744ns 69ms,20,如果允许配置,数据压缩,,由于配置时要对数据进行解压缩,需要增加配置时间,一般要,增加,50,的配置时间,,即,EP1C6,器件在采用压缩数据进行配置时需要约,103.5ms,的时间。,此外,在配置完成后紧接着的,FPGA,寄存器和用户,I/O,口初始化也需要消耗一定的时间,(,Cyclone,为,136,个时钟周期,,Cyclone II,为,299,个时钟周期),当不采用,CLKUSR,管脚时钟,而使用,FPGA,内部,10MHz,时钟时,,Cyclone EP1C6,消耗,13.6us,的初始化时间。,21,2.3 JTAG,配置,通过,JTAG,接口,,利用,Quartus II,软件,可以,直接,对,FPGA,进行单独的硬件重新配置。,Quartus II,软件在编译时会自动生成用于,JTAG,配置的,.sof,文件。,如果同时使用,AS,方式和,JTAG,方式来配置,FPGA,,,JTAG配置方式拥有最高的优先级,,,此时,AS,方式将停止,而执行,JTAG,方式配置。,JTAG,配置的电路原理图,22,Pin 1,Download Cable 10-Pin Male Header(JTAG Mode),nSTATUS,nCONFIG CONF_DONE,DCLK,MSELn.0,nCE,TDI TMS TCK TDO,nSTATUS,nCONFIG CONF_DONE,DCLK,MSELn.0,nCE,TDI TMS TCK TDO,V,CC,V,CC,V,CC,V,CC,V,CC,V,CC,V,IO,JTAG Configuration of Multiple Devices,23,管脚,描述,功 能,TDI,测试数据输入,指令、测试以及编程数据的串行输入。数据在,TCK,的上升沿移入。如果电路板上的,JTAG,不需要,可以将该管脚连接到,VCC,。,TDO,测试数据输出,指令、测试以及编程数据的串行输出。数据在,TCK,的下降沿移出。在没有数据移出时,该管脚是高阻态。如果电路板上的,JTAG,不需要,可以不连接该管脚。,TMS,测试模式选择,控制信号输入管脚,控制信号决定测试访问端口控制状态的转换。状态的转换出现在,TCK,的上升沿。因此,,TMS,必须在,TCK,上升沿之前建立。如果电路板上的,JTAG,不需要,可以将该管脚连接到,VCC,。,TCK,测试时钟输入,边界扫描测试,(BST),电路的时钟输入。一些操作发生在其上升沿,一些发生在下降沿。如果电路板上的,JTAG,不需要,可以将该管脚连接到,GND,。,利用,Quartus II,软件和,USB Blaster,、,ByteBlaster II,等下载电缆可下载配置数据到,FPGA,。,Quartus II,软件可以验证,JTAG,配置是否成功。,JTAG,配置通过下载电缆使用,SOF,、,Jam,或者,JBC,文件直接对,FPGA,进行配置,这种配置方式只能用于调试阶段,因为,掉电后,FPGA,中的配置数据将丢失。,JTAG,各引脚功能描述,24,Altera FPGA的配置芯片可以分为3类:,增强型配置器件,:EPC16、EPC8、EPC4,;,主动串行配置器件,:EPCS64、EPCS16、EPCS4和EPCS1,;,普通配置器件,:EPC2、EPC1、EPC1441。,3.,配置芯片,各配置芯片的属性如下表所示:,25,EPC Devices Capacities and Features,Device,Memory Size(bits),On-Chip Decompression Supported,ISP Support,Cascading Support,Reprogrammable,Operating Voltage(V),EPC16,16,777,216,Yes,Yes,No,Yes,3.3,EPC8,8,388,608,Yes,Yes,No,Yes,3.3,EPC4,4,194,304,Yes,Yes,No,Yes,3.3,EPC2,1,695,680,No,Yes,Yes,Yes,5.0 or 3.3,EPC1,1,046,496,No,No,Yes,No,5.0 or 3.3,EPC1441,440,800,No,No,No,No,5.0 or 3.3,FPGA,EPC,CC,FM,26,EPCS Devices Capacities and Features,Device,Memory Size(bits),On-Chip Decompression Supported,ISP Support,Cascading Support,Reprogrammable,Operating Voltage(V),EPCS128,134,217,728,No,Yes,No,Yes,3.3,EPCS64,67,108,864,No,Yes,No,Yes,3.3,EPCS16,16,777,216,No,Yes,No,Yes,3.3,EPCS4,4,194,304,No,Yes,No,Yes,3.3,EPCS1,1,048,576,No,Yes,No,Yes,3.3,FPGA,EPCS,CC,FM,27,or,=,Choosing a Configuration Device(1/2),28,EP3C25,EPC16,CC,FM,EP1AGX35C,EP3C25,EPCS16,CC,FM,EP1AGX35C,Choosing a Configuration Device(2/2),29,4.,配置的软件设置,在,Quartus II,软件中,可以设置配置方式和配置芯片。,配置选项卡,30,配置方式,(AS,、,PS),选择,配置模式,(,本地或远程,),选择,配置器件,(EPCS,系列、,EPC,系列,),压缩,配置选项卡,31,【General】,选项卡,用于配置的通用选项。,32,5.,配置文件的压缩,Quartus II,为,Cyclone,、,Cyclone II,以及,StratixII,提供了,配置数据可压缩特性,,用户可以为,FPGA,选择容量较小的,EPCS,器件,以节省成本。,ALTERA,给出对配置数据的压缩率可达到,35,到,60%,。,当在,Quartus II,软件中使能压缩特性时,软件自动采用压缩配置数据来生成,POF,配置文件,。通过压缩后的配置文件减小了对配置器件或,Flash,的存储空间需求。,33,有两种方法来使用压缩特性:,在用户设计编译前,可在编译设置菜单中来选择压缩特性;,在用户设计编译后,可利用,File,菜单中的文件转换器,Convet Programming Files,进行压缩。,通过文件转换可利用,SOF,文件生成各种格式的压缩文件。,方法一:编译前选择压缩特性,方法二:用文件转换器进行压缩,34,6.,配置可靠性及电路设计注意事项,6.1,配置的可靠性,Altera,的,FPGA,结构中设计了一些保护电路来减小电源上电和数据噪声的影响,使基于,SRAM,工艺的,FPGA,可靠性大大提高。为了提高可靠性主要采取了以下几个方面:,1,在配置过程中,采用,CRC,电路对输入到,FPGA,中的每一帧配置数据进行校验,确保配置数据的正确性;,2,Altera FPGA,提供了保护电路,要求在系统掉电后重新配置,以保证,FPGA,在系统掉电时的高可靠性。,35,6.2,电路设计注意事项,在配置电路设计时,通常应该注意下面几点:,1,在设计,DCLK,和,TCK,时,要将其当作高速的时钟信号来处理;,2,在有多片,FPGA,配置链中,一般建议将各片,FPGA,的,DCLK,、,DATA0(DATA7.0,、,nCONFIG,、,nSTATUS,、和,CONF_DONE,信号连在一起。这样可以确保各,FPGA,配置同时开始和结束;,3,确保,FPGA,配置管脚的电平和配置器件的电平兼容;,4,确保所有配置管脚按照,FPGA,的数据手册进行连接。,36,7.,下载配置文件到FPGA,要使用,JTAG,下载配置数据到,FPGA,,首先要生成可用于,JTAG,下载的配置数据文件,这些配置数据文件包括:,.sof,、,.Jam,以及,.JBC,。一般来说,,JTAG,方式利用,SOF,文件即可,,JAM,和,JBC,可以不用。,利用JATG接口下载配置数据到FPGA的过程,如下:,37,JTAG,下载配置数据过程,38,JTAG,下载配置数据过程,39,8.,下载配置文件到EPCS,利用,ByteBlasterII(,或,USB_Blaster),、,AS,接口、,.pof,配置文件以及,QuartusII,的,Programmer,可直接对,EPCS,进行编程,这种方式速度快,但需要专门的,AS,接口。下载过程如下:,编译前指定,AS,方式和,EPCS,类型,40,EPCS,的,AS,编程,41,
展开阅读全文