您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 第五章FPGA配置和Flash编程
1基于FPGA的SOPC设计信息学院·李贞妮二○一三年五月2第五章FPGA配置和FLASH编程3本章将首先介绍FPGA配置方式和配置过程,然后简单介绍了配置芯片、配置文件的种类以及配置电路设计要点,本章最后讲述了配置文件下载、Flash编程等方面的内容,其中Flash编程包括NORFlash的编程、EPCS的编程。通过本章的内容读者将理解并掌握FPGA配置以及Flash编程、NiosII程序装载等的相关内容。主要内容4第5章目录•5.1FPGA配置•5.2Cyclone及CycloneIIFPGA配置•5.3配置芯片•5.4配置的软件设置•5.5配置文件•5.6配置可靠性及电路设计注意事项•5.7下载配置文件到FPGA•5.8下载配置文件到EPCS•5.9IDEFlashProgrammer介绍•5.10用户程序引导•5.11使用IDEFlashProgrammer编程•5.12创建目标板Flash编程设计5第5章目录•5.1FPGA配置•5.2Cyclone及CycloneIIFPGA配置•5.3配置芯片•5.4配置的软件设置•5.5配置文件•5.6配置可靠性及电路设计注意事项•5.7下载配置文件到FPGA•5.8下载配置文件到EPCS•5.9IDEFlashProgrammer介绍•5.10用户程序引导•5.11使用IDEFlashProgrammer编程•5.12创建目标板Flash编程设计65.1FPGA配置配置(configuration)是对FPGA的内容进行编程的过程。每次上电后都需要进行配置是基于SRAM工艺FPGA的一个特点,也可以说是一个缺点。FPGA配置过程如下:FPGA配置器件外部电路将配置数据载入片内配置RAM中外部电路FPGA配置完成配置RAM配置RAM中的配置数据:用于控制FPGA内部可编程的内部逻辑、内部寄存器和I/O寄存器初始化,I/O驱动器使能等。之后FPGA进入用户模式。75.1FPGA配置FPGA配置方式根据FPGA在配置电路中的角色,可以将配置方式分为三类:1.FPGA主动串行(AS)方式2.JTAG方式3.FPGA被动(Passive)方式EPCS系列配置数据FPGA主动串行(AS)方式1下载工具或智能主机JTAG方式2EPC系列FPGA仅输出响应信号FPGAFPGA被动(Passive)方式385.1FPGA配置FPGA配置方式根据FPGA在配置电路中的角色,可以将配置方式分为三类:1.FPGA主动串行(AS)方式2.JTAG方式3.FPGA被动(Passive)方式EPCS系列配置数据FPGA主动串行(AS)方式1下载工具或智能主机JTAG方式2EPC系列FPGA仅输出响应信号FPGAFPGA被动(Passive)方式3被动方式可分为下列几种方式:被动串行方式(PS)快速被动并行(FPP)方式被动并行异步(PPA)方式被动并行同步(PPS)方式被动串行异步(PSA)方式95.1FPGA配置配置方式器件类别StratixIIStratix,StratixGXCycloneIICycloneAPEXIIAPEX20K,APEX20KE,APEX20KCMercuryACEX1KFLEX10K,FLEX10KE,FLEX10KAFLEX6000被动串行(PS)√√√√√√√√√√主动串行(AS)√√√快速被动并行(FPP)√√√被动并行同步(PPS)√√√√被动并行异步(PPA)√√√√√√√被动串行异步(PSA)√JTAG√√√√√√√√√仅支持边界扫描测试AlteraFPGA配置方式列表105.1FPGA配置CycloneFPGA配置方式表配置方式描述主动串行配置(AS)采用串行配置器件(EPCS1、EPCS4、EPCS16、EPCS64)被动配置(PS)1.采用专用配置器件(EPC1、EPC2、EPC4、EPC8、EPC16);2.采用配置控制器(单片机、CPLD等)配合Flash;3.下载电缆。JTAG配置通过JTAG进行配置115.1FPGA配置FPGA配置过程FPGA的配置包括3各阶段:复位、配置和初始化。复位配置初始化进入用户模式配置过程波形图125.1FPGA配置FPGA配置过程FPGA的配置包括3各阶段:复位、配置和初始化。复位配置初始化进入用户模式配置数据写入到器件中器件内部逻辑和寄存器初始化,I/O缓冲使能配置过程波形图13FPGA配置过程FPGA配置流程图14第5章目录•5.1FPGA配置•5.2Cyclone及CycloneIIFPGA配置•5.3配置芯片•5.4配置的软件设置•5.5配置文件•5.6配置可靠性及电路设计注意事项•5.7下载配置文件到FPGA•5.8下载配置文件到EPCS•5.9IDEFlashProgrammer介绍•5.10用户程序引导•5.11使用IDEFlashProgrammer编程•5.12创建目标板Flash编程设计155.2Cyclone及CycloneIIFPGA配置Cyclone以及CycloneIIFPGA使用SRAM单元来存储配置数据。FPGA中的SRAM是易失性的,每次上电之前,配置数据(或压缩的配置数据)必须重新下载到FPGA中。下面的2个条件均可使FPGA产生一次配置请求:给FPGA重新上电;FPGA的nConfig引脚上产生一个低电平到高电平的上升沿。165.2Cyclone及CycloneIIFPGA配置Cyclone及CycloneIIFPGA的配置方式包括:1.FPGA主动串行(AS)配置方式;2.FPGA被动(Passive)配置方式;3.JTAG配置方式。用户可以通过设置FPGA上的MSEL0、MESL1两个引脚的状态来选择配置方式。各种方式的MSEL0、MESL1设置如下表所列:175.2Cyclone及CycloneIIFPGA配置MSEL1MSEL0配置方式备注00AS主动(串行配置器件)20MHz10快速AS主动(串行配置器件)40MHz,只限CycloneII01PS被动(CPLD控制)00或1JTAG配置配置方式设置说明:1.在上表中,如果只采用一种配置方式,则可以直接将MSEL0、MESL1连接到VCC(注意要与FPGA的IO口的供电VCCIO相同)或GND;2.如果需要多种配置方式,那么MSEL要用控制器(单片机、CPLD等)来控制以进行切换;3.MSEL管脚在配置开始前必须处于一个固定的状态,因此不能将MSEL管脚悬空。185.2Cyclone及CycloneIIFPGA配置另外,不同型号FPGA的配置文件大小不同,下表中列出了FPGA在不压缩情况下二进制配置文件(.rbf)的最大大小。设计者可以根据配置文件的大小来选择合适的配置器件和其它存储器。并可使用压缩功能,来减小配置文件的大小。说明:1.同型号的FPGA配置文件会因所使用的单元不同而不同,配置文件越小下载速度和配置速度越快。195.2Cyclone及CycloneIIFPGA配置器件类型器件型号数据大小(Bits)数据大小(Bytes)CycloneEP1C3627,37678,422EP1C4924,512115,564EP1C61,167,216145,902EP1C122,326,528290,816EP1C203,559,608444,951CycloneIIEP2C51,265,792152,998EP2C81,983,536247,974EP2C203,892,496486,562EP2C356,858,656857,332EP2C509,963,3921,245,424EP2C7014,319,2161,789,902CycloneFPGA二进制文件(.rbf)大小20主动串行配置主动串行配置方式(AS)是将配置数据事先存储在串行配置器件EPCS中,然后在系统上电时Cyclone及CycloneIIFPGA通过串行接口读取配置数据(如果是压缩数据,还会进行解压缩处理)对内部的SRAM单元进行配置。因为上述配置过程中FPGA控制配置接口,因此通常称为主动配置方式。5.2Cyclone及CycloneIIFPGA配置21主动串行配置nCEnSTATUSnCONFIGCONFIG_DONEDATA0DCLKnCSOASDOnCEOMSEL0MSEL1Cylone(CycloneII)FPGAnCSDATAASDIDCLKEPCS串行配置器件10k10k10kVCCVCCVCCN.C.12345678910AS接口10kVCCloworhigh主动串行配置的电路原理图说明:1.因为FPGA上的nSTATUS、CONFIG_DONE管脚都是开漏结构,所以都要接上拉电阻。FPGA的片选脚nCE必须接地。用于对EPCS的编程5.2Cyclone及CycloneIIFPGA配置22主动串行配置复位配置初始化进入用户模式配置数据写入到器件中器件内部逻辑和寄存器初始化,I/O缓冲使能配置过程波形图23主动串行配置串行时钟(DCLK)在配置结束后内部振荡器关闭。下表列出了DCLK的输出频率。对于CycloneIIFPGA,通过MSEL[]可以选择时钟为20MHz或40MHz。配置的时间与配置文件大小以及DCLK的频率有关,关于AS方式配置时间的估算请见下一小节。器件最小典型最大单位Cyclone141720MHzCycloneII1013202026405.2Cyclone及CycloneIIFPGA配置24主动串行配置用户可以在QuartusII软件中选择,用哪一个时钟来进行FPGA寄存器和用户I/O口的初始化、以及是否在配置出错后重新开始配置等内容。如下图所示的弹出窗口:5.2Cyclone及CycloneIIFPGA配置功能服用引脚设置25主动串行配置(AS)的配置时间估算主动串行配置时间为串行配置器件数据传送到FPGA的时间,这取决于DCLK的频率以及配置文件的大小。以CycloneEP1C6器件为例,非压缩的.rbf格式配置文件的大小为1167216位、DCLK最低频率为14MHz(71ns),则最大配置时间为:1167216*71ns=82872336ns≈83ms当DCLK的典型频率为17MHz(59ns)时,配置时间为:1167216*59ns=68865744ns≈69ms5.2Cyclone及CycloneIIFPGA配置26主动串行配置(AS)的配置时间估算如果允许配置数据压缩,由于配置时要对数据进行解压缩,需要增加配置时间,一般要增加50%的配置时间,即EP1C6器件在采用压缩数据进行配置时需要约103.5ms的时间。此外,在配置完成后紧接着的FPGA寄存器和用户I/O口初始化也需要消耗一定的时间(Cyclone为136个时钟周期,CycloneII为299个时钟周期),当不采用CLKUSR管脚时钟,而使用FPGA内部10MHz时钟时,CycloneEP1C6消耗13.6us的初始化时间。5.2Cyclone及CycloneIIFPGA配置27JTAG配置通过JTAG接口,利用QuartusII软件可以直接对FPGA进行单独的硬件重新配置。QuartusII软件在编译时会自动生成用于JTAG配置的.sof文件。如果同时使用AS方式和JTAG方式来配置FPGA,JTAG配置方式拥有最高的优先级,此时AS方式将停止,而执行JTAG方式配置。5.2Cyclone及CycloneIIFPGA配置12345678910JTAG接口10k10kR1R2DATA0nCONFIGnCEMSEL0MSEL1DCLKCONF_DONEnSTATUSTCKTMSTDOTDICyclone(CycloneII)FPGAVCCVIO(3)N.C.N.C.VCCVCCVCCVCC(1)(2)(2)(2)(2)(2)R3Cyclone:R1-R310KCycloneII:R1-R31KJTAG配置的电路原理图28JTAG配置5.2Cyclone及CycloneIIFPGA配置管脚描述功能TD
本文标题:第五章FPGA配置和Flash编程
链接地址:https://www.777doc.com/doc-332508 .html