第13章FPGA配置和Flash编程_第1页
第13章FPGA配置和Flash编程_第2页
第13章FPGA配置和Flash编程_第3页
第13章FPGA配置和Flash编程_第4页
第13章FPGA配置和Flash编程_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGA-CPLD原理及应用 FPGA配置和Flash编程FPGA-CPLDFPGA-CPLD原理及应用原理及应用 FPGA-CPLD原理及应用 FPGA配置和Flash编程第13章 FPGA配置和Flash编程FPGA-CPLD原理及应用 FPGA配置和Flash编程将首先介绍FPGA配置方式和配置过程,然后简单介绍了配置芯片、配置文件的种类以及配置电路设计要点,最后讲述了配置文件下载、Flash编程等方面的内容,其中Flash编程包括NOR Flash的编程、EPCS的编程。通过本章的内容读者将理解并掌握FPGA配置以及Flash编程、NiosII程序装载等的相关内容。 主要内容FPGA-

2、CPLD原理及应用 FPGA配置和Flash编程n 1 FPGA配置 n 2 Cyclone IV FPGA配置n 3 配置芯片n 4 配置的软件设置n 5 配置文件n 6 配置可靠性及电路设计注意事项n 7 下载配置文件到FPGAn 8 下载配置文件到EPCSn 9 IDE Flash Programmer介绍n10 用户程序引导n11 使用IDE Flash Programmer 编程n12 创建目标板Flash编程设计FPGA-CPLD原理及应用 FPGA配置和Flash编程1 FPGA配置配置(configuration)是对FPGA的内容进行编程的过程。每次上电后都需要进行配置是基于

3、SRAM工艺FPGA的一个特点,也可以说是一个缺点。FPGA配置过程如下:FPGA配置配置器件器件外部电路将配置数据载入片内配置RAM中外部电路FPGA配置完成配置配置RAM配置配置RAM中的中的配置数据配置数据:用于控制FPGA内部可编程的内部逻辑、内部寄存器和I/O寄存器初始化,I/O驱动器使能等。之后FPGA进入用户模式。FPGA-CPLD原理及应用 FPGA配置和Flash编程1 FPGA配置nFPGA配置方式根据FPGA在配置电路中的角色,可以将配置方式分为三类:1.FPGA主动串行(AS)方式 2. JTAG方式 3. FPGA被动(Passive)方式EPCS系列系列配置数据FP

4、GA主动串行主动串行(AS)方式方式1下载工具下载工具或或智能主机智能主机JTAG方式方式2EPC系列系列FPGA仅输出响应信号FPGAFPGA被动被动(Passive)方式方式3FPGA-CPLD原理及应用 FPGA配置和Flash编程1 FPGA配置nFPGA配置方式根据FPGA在配置电路中的角色,可以将配置方式分为三类:1.FPGA主动串行(AS)方式 2. JTAG方式 3. FPGA被动(Passive)方式EPCS系列系列配置数据FPGA主动串行主动串行(AS)方式方式1下载工具下载工具或或智能主机智能主机JTAG方式方式2EPC系列系列FPGA仅输出响应信号FPGAFPGA被动被

5、动(Passive)方式方式3被动方式可分为下列几种方式: 被动串行方式(PS) 快速被动并行(FPP)方式 被动并行异步(PPA)方式 被动并行同步(PPS)方式 被动串行异步(PSA)方式FPGA-CPLD原理及应用 FPGA配置和Flash编程1 FPGA配置Cyclone FPGA配置方式表配 置 方 式描 述主动串行配置(AS)采用串行配置器件(EPCS1、EPCS4、EPCS16、EPCS64)被动配置(PS)1采用专用配置器件(EPC1、EPC2、EPC4、EPC8、EPC16);2采用配置控制器(单片机、CPLD等)配合Flash;3下载电缆。JTAG配置通过JTAG进行配置F

6、PGA-CPLD原理及应用 FPGA配置和Flash编程1 FPGA配置nFPGA配置过程FPGA的配置包括3各阶段:复位、配置和初始化。复位复位配置配置初始化初始化进入进入用户模式用户模式配置过程波形图FPGA-CPLD原理及应用 FPGA配置和Flash编程1 FPGA配置nFPGA配置过程FPGA的配置包括3各阶段:复位、配置和初始化。复位复位配置配置初始化初始化进入进入用户模式用户模式配置数据写入到器件中器件内部逻辑和寄存器初始化,I/O缓冲使能配置过程波形图FPGA-CPLD原理及应用 FPGA配置和Flash编程2 Cyclone IV FPGA配置Cyclone IVFPGA使用

7、SRAM单元来存储配置数据。FPGA中的SRAM是易失性的,每次上电之前,配置数据(或压缩的配置数据)必须重新下载到FPGA中。下面的2个条件均可使FPGA产生一次配置请求:给FPGA重新上电;FPGA的nConfig引脚上产生一个低电平到高电平的上升沿。FPGA-CPLD原理及应用 FPGA配置和Flash编程2 Cyclone IV FPGA配置Cyclone IV FPGA的配置方式包括:1.FPGA主动串行(AS)配置方式; 2.FPGA被动(Passive)配置方式 ;3.JTAG配置方式 。用户可以通过设置FPGA上的MSEL0、MESL1两个引脚的状态来选择配置方式。各种方式的M

8、SEL0、MESL1设置如下表所列:FPGA-CPLD原理及应用 FPGA配置和Flash编程2 Cyclone IV FPGA配置MSEL1MSEL0配置方式备注00AS主动(串行配置器件)20M10快速AS主动(串行配置器件) 40M,只限Cyclone IV01PS被动(CPLD控制)00或1JTAG配置配置方式设置说明:说明:1.在上表中,如果只采用一种配置方式,则可以直接将MSEL0、MESL1连接到VCC(注意要与FPGA的IO口的供电VCCIO相同)或GND;2.如果需要多种配置方式,那么MSEL要用控制器(单片机、CPLD等)来控制以进行切换;3.MSEL管脚在配置开始前必须处

9、于一个固定的状态,因此不能将MSEL管脚悬空。FPGA-CPLD原理及应用 FPGA配置和Flash编程n主动串行配置主动串行配置方式(AS)是将配置数据事先存储在串行配置器件EPCS中,然后在系统上电时Cyclone IV FPGA通过串行接口读取配置数据(如果是压缩数据,还会进行解压缩处理)对内部的SRAM单元进行配置。因为上述配置过程中FPGA控制配置接口,因此通常称为主动配置方式。2 Cyclone IV FPGA配置FPGA-CPLD原理及应用 FPGA配置和Flash编程n主动串行配置nCEnSTATUSnCONFIGCONFIG_DONEDATA0DCLKnCSOASDOnCEO

10、MSEL0MSEL1Cylone(Cyclone II) FPGAnCSDATAASDIDCLKEPCS串行配置器件10k10k10kVCCVCCVCCN.C.12345678910AS接口10kVCClow or high主动串行配置的电路原理图说明:说明:1.因为FPGA上的nSTATUS、CONFIG_DONE管脚都是开漏结构,所以都要接上拉电阻。FPGA的片选脚nCE必须接地。用于对EPCS的编程2 Cyclone IV FPGA配置FPGA-CPLD原理及应用 FPGA配置和Flash编程通过JTAG接口,利用Quartus II软件可以直接对FPGA进行单独的硬件重新配置。Quar

11、tus II软件在编译时会自动生成用于JTAG配置的.sof文件。如果同时使用AS方式和JTAG方式来配置FPGA,JTAG配置方式拥有最高的优先级,此时AS方式将停止,而执行JTAG方式配置。2 Cyclone IV FPGA配置12345678910JTAG接口10k10kR1R2DATA0nCONFIGnCEMSEL0MSEL1DCLKCONF_DONEnSTATUSTCKTMSTDOTDICyclone(Cyclone II) FPGAVCCVIO(3)N.C.N.C.VCCVCCVCCVCC(1)(2)(2)(2)(2)(2)R3Cyclone: R1-R3 10KCyclone I

12、I: R1-R3 1K主动串行配置的电路原理图nJTAG配置FPGA-CPLD原理及应用 FPGA配置和Flash编程nJTAG配置2 Cyclone IV FPGA配置管脚描述功 能TDI测试数据输入指令、测试以及编程数据的串行输入。数据在TCK的上升沿移入。如果电路板上的JTAG不需要,可以将该管脚连接到VCC。TDO测试数据输出指令、测试以及编程数据的串行输出。数据在TCK的下降沿移出。在没有数据移出时,该管脚是高阻态。如果电路板上的JTAG不需要,可以不连接该管脚。TMS测试模式选择控制信号输入管脚,控制信号决定测试访问端口控制状态的转换。状态的转换出现在TCK的上升沿。因此,TMS必

13、须在TCK上升沿之前建立。如果电路板上的JTAG不需要,可以将该管脚连接到VCC。TCK测试时钟输入边界扫描测试(BST)电路的时钟输入。一些操作发生在其上升沿,一些发生在下降沿。如果电路板上的JTAG不需要,可以将该管脚连接到GND。FPGA-CPLD原理及应用 FPGA配置和Flash编程nJTAG配置利用Quartus II软件和USB Blaster等下载电缆可下载配置数据到FPGA。Quartus II软件可以验证JTAG配置是否成功。JTAG配置通过下载电缆使用SOF、Jam或者JBC文件直接对FPGA进行配置,这种配置方式只能用于调试阶段,因为,掉电后FPGA中的配置数据将丢失。

14、 2 Cyclone IV FPGA配置USB BlasterFPGA-CPLD原理及应用 FPGA配置和Flash编程Altera FPGA的配置芯片可以分为3类:增强型配置器件:EPC16、EPC8、EPC4;主动串行配置器件:EPCS64、EPCS16、EPCS4和EPCS1;普通配置器件:EPC2、EPC1、EPC1441。3 配置芯片FPGA-CPLD原理及应用 FPGA配置和Flash编程3 配置芯片器件存储容量(bits)片上解压缩支持在系统编程(ISP)支持可重编程操作电压(V)EPC1616,777,216YesYesYes3.3EPC88,388,608YesYesYes3

15、.3EPC44,194,304YesYesYes3.3EPCS6467,108,864 NoNoYes3.3EPCS1616,777,216 NoNoYes3.3EPCS44,194,304NoNoYes3.3EPCS11,048,576NoNoYes3.3EPC21,695,680NoYesYes3.3或5各配置芯片的属性如下表所示:FPGA-CPLD原理及应用 FPGA配置和Flash编程4 配置的软件设置n配置方式及配置芯片选择在Quartus II软件中,可以设置配置方式和配置芯片。配置选项卡FPGA-CPLD原理及应用 FPGA配置和Flash编程5 配置文件n配置文件的格式Quar

16、tus II开发软件能生成一个或多个用于配置电路的配置文件。1.SRAM目标文件(.sof).sof文件一般是在调试时通过下载电缆和JTAG直接下载到FPGA中的SRAM中。SOF文件在Quattus II软件编译时自动生成。所有其他配置文件都是由SOF文件转换生成的。FPGA-CPLD原理及应用 FPGA配置和Flash编程5 配置文件n配置文件的格式Quartus II开发软件能生成一个或多个用于配置电路的配置文件。2.编程目标文件(.pof).pof文件用于对各种Altera配置芯片进行编程。当在Quartus II中设置好配置芯片类型后,软件会在编译时为用户生成对应器件类型的POF文件

17、。多个FPGA的sof文件可放到一个POF文件中,形成一个配置文件。Quartus II也可以将配置文件分到几个配置芯片中。FPGA-CPLD原理及应用 FPGA配置和Flash编程5 配置文件n配置文件设置和转换用Quartus II软件可 对 S O F 和POF文件进行转换,生成其它格式的文件。编程文件的转换FPGA-CPLD原理及应用 FPGA配置和Flash编程6 配置可靠性及电路设计注意事项n配置的可靠性Altera的FPGA结构中设计了一些保护电路来减小电源上电和数据噪声的影响,使基于SRAM工艺的FPGA可靠性大大提高。为了提供可靠性主要采取了以下几个方面:1在配置过程中,采用

18、CRC电路对输入到FPGA中的每一帧配置数据进行校验,确保配置数据的正确性;2Altera FPGA提供了保护电路要求在系统在掉电后重新配置,以保证FPGA在系统掉电时的高可靠性。FPGA-CPLD原理及应用 FPGA配置和Flash编程6 配置可靠性及电路设计注意事项n电路设计注意事项在配置电路设计时,通常应该注意下面几点:1在设计DCLK和TCK时,要将其当作高速的时钟信号来处理;2在有多片FPGA配置链中,一般建议将各片FPGA的DCLK、DATA0(DATA7.0、nCONFIG、nSTATUS、和CONF_DONE信号连在一起。这样可以确保各FPGA配置同时开始和结束;3确保FPGA

19、配置管脚的电平和配置器件的电平兼容;4确保所有配置管脚按照FPGA的数据手册进行连接。FPGA-CPLD原理及应用 FPGA配置和Flash编程7 下载配置文件到FPGA要使用JTAG下载配置数据到FPGA,首先要生成可用于J TA G 下 载 的 配 置 数 据 文 件 , 这 些 配 置 数 据 文 件 包括:.sof、.Jam以及.JBC。一般来说,JTAG方式利用SOF文件即可,JAM和JBC可以不用。利用JATG接口和ByteBlasterII电缆下载配置数据到FPGA的过程,如下:FPGA-CPLD原理及应用 FPGA配置和Flash编程8 下载配置文件到EPCS使用AS方式对Cy

20、clone FPGA配置前,必须将配置文件写入串行配置器件EPCS。写入的方法有3种:在QuartusII的Programmer中,通过专门与EPCS连接的AS下载接口来下载.pof文件到EPCS;在QuartusII的Programmer中,使用JTAG接口,通过FPGA中间通道来间接对EPCS进行编程;使用Nios II IDE中的Flash Programmer对EPCS进行编程。FPGA-CPLD原理及应用 FPGA配置和Flash编程299 IDE Flash Programmer介绍Nios II IDE 提供了Flash Programer工具来对目标板上遵守CFI(common

21、 flash interface)规范的Flash进行编程。IDE的Flash Programer通过使用Altera的下载电缆能够方便的对目标板上连接在FPGA上的Flash进行编程。IDE的Flash Programer除了能对连接在FPGA上的Flash进行编程外,还能对连接在FPGA上的串行配置器件EPCS进行编程。FPGA-CPLD原理及应用 FPGA配置和Flash编程309 IDE Flash Programmer介绍nIDE Flash Programmer编程工作过程IDE Flash Programmer通过2个过程将数据写入Flash。第一步:使用Flash编程设计对FP

22、GA进行配置第二步:传送编程内容到Flash器件FPGA-CPLD原理及应用 FPGA配置和Flash编程319 IDE Flash Programmer介绍nFlash编程设计Flash编程设计实际就是一个由SOPC Builder系统生成的最小FPGA设计。Flash编程设计是IDE Flash Programmer的关键组成部分。除此之外,还必须包括:与主机(PC机)通讯的JTAG接口;由主机提供的写入Flash的编程数据。不同的电路板(目标板)往往使用不同的Flash器件,并且Flash与FPGA的管脚连接及FPGA型号也不相同。因此,每个Flash编程设计都与具体的目标板相联系,不能

23、用于其它的目标板。FPGA-CPLD原理及应用 FPGA配置和Flash编程329 IDE Flash Programmer介绍n目标板Flash编程设计一个目标板Flash编程设计是一组SOPC Builder文件,这些文件包含了用户使用电路板的一些特有信息,其中必须指明FPGA与Flash的连接关系。包含下列信息:每一个连接到电路板FPGA上的Flash的参考元件标号,如U7;Flash器件在Flash编程设计中的基地址;主机上用于配置电路板上FPGA的Flash编程设计的SOF文件。参考元件标号用于区分设计中不同的Flash器件。电路板上的Flash器件在设计时的命名和基地址可能不同,但

24、参考元件标号总是相同的。FPGA-CPLD原理及应用 FPGA配置和Flash编程339 IDE Flash Programmer介绍nFlash编程内容的类型用户软件:由NIOSII IDE生成,以.elf为后缀,将用户软件写入Flash;FPGA的配置数据:以.sof为后缀,NIOS II IDE允许用户使用FPGA配置数据对Flash进行编程;任意内容:指所有用户想写入FLASH中的二进制类型数据文件(.bin),例如:图片,声音等。FPGA-CPLD原理及应用 FPGA配置和Flash编程349 IDE Flash Programmer介绍nFlash文件所有要通过IDE Progra

25、mmer写入Flash中的数据文件都要转换为能被Flash Programmer读取的.flash文件。Flash文件通过其后缀.flash来识别。IDE Flash Programmer在后台提供了elf2flash、sof2flash、bin2flash三个命令来分别将这三种文件转换为flash文件,这三个命令在IDE Flash Programmer后台自动调用执行而不需用户干预,当然用户也可以在Nios II SDK shell中通过命令行来执行文件转换。FPGA-CPLD原理及应用 FPGA配置和Flash编程35FPGA10 用户程序引导用户程序可以存放在Flash中,也可以存放在

26、EPCS,因此用户程序可以从Flash引导,也可以从EPCS中引导。用户程序FlashEPCS用户程序用户引导程序FPGA-CPLD原理及应用 FPGA配置和Flash编程3610 用户程序引导n从CFI Flash引导FPGA上电或复位配置成功后,如果配置中包含的Nios II处理器复位地址指向Flash的地址空间,那么程序将从Flash引导。SOPC Builder指定复位地址为FlashFPGA-CPLD原理及应用 FPGA配置和Flash编程3710 用户程序引导n从串行配置器件EPCS引导如果使用串行配置器件EPCS,且配置数据的容量小于EPCS的容量,那么剩余的存储空间可用来存放用

27、户程序。EPCS控制器结构框图Boot-LoaderROMEPCS控制器配置存储空间通用存储空间EPCS配置器件Avalon总线NiosIICPU片内外设Altera FPGA存储FPGA配置数据剩余空间可用于存储用户非易失性数据。1KB的片内存储器FPGA-CPLD原理及应用 FPGA配置和Flash编程3810 用户程序引导n从串行配置器件EPCS引导IDE的Flash Programmer能将配置数据文件(.sof)和用户程序(.elf)写入到EPCS中。当用户程序存放在EPCS中时,如果想从EPCS中引导程序,在SOPC Builder中必须添加EPCS控制器,且必须在SOPC Bui

28、lder中指定Nios II处理器的复位地址指向EPCS控制器(epcs_controller)。FPGA-CPLD原理及应用 FPGA配置和Flash编程3910 用户程序引导n从串行配置器件EPCS引导SOPC Builder指定复位地址为epcs_controllerFPGA-CPLD原理及应用 FPGA配置和Flash编程4010 用户程序引导n引导复制程序(Boot-copier Program)Alter提供了引导复制程序,它能根据用户在IDE中设置的用户程序文件(.elf)连接地址来重新装载程序,然后跳过.elf文件的连接地址执行程序。引导复制程序是IDE Flash Progr

29、ammer在后台执行elf2flash命令时判断并自动加入完成的。Boot CopierMy_sw.elfMy_sw.flash加入Boot Copier 示意图FPGA-CPLD原理及应用 FPGA配置和Flash编程4110 用户程序引导n用户程序ELF文件连接设置在Nios II IDE中工程的属性页控制了工程中的程序与硬件系统的相互影响关系以及IDE怎样编译连接该应用工程。用户IDE工程库属性设置对话框局部图FPGA-CPLD原理及应用 FPGA配置和Flash编程4210 用户程序引导n用户程序引导小结通过SOPC Builder和IDE用户工程库属性页中的不同设置,可实现用户程序的

30、不同引导和在不同存储空间运行,现总结于下表。SOPC Builder中Reset AddressIDE中.elf连接存储空间程序运行情况FlashSDRAM从Flash中复制到SDRAM运行Onchip_RAM从Flash中复制到Onchip_RAM运行Onchip_ROMOnchip_ROM (2)FlashFlash (3)Epcs_controllerEpcs_controller (4)Epcs_controllerSDRAM从EPCS中复制到SDRAM运行Onchip_RAM从EPCS中复制到Onchip_RAM运行Onchip_ROMOnchip_ROM (2)FlashFlash

31、 (5)FPGA-CPLD原理及应用 FPGA配置和Flash编程4311 使用IDE Flash Programmer 选择目标板Flash编程设计FPGA-CPLD原理及应用 FPGA配置和Flash编程4411 使用IDE Flash Programmer从SOPC Builder启动 Nios II IDE编译连接用户工程建立软件工程后,进行编译连接FPGA-CPLD原理及应用 FPGA配置和Flash编程4511 使用IDE Flash Programmer打开IDE Flash ProgrammerFlash Programmer 对话框启动Flash Programmmer界面F

32、PGA-CPLD原理及应用 FPGA配置和Flash编程4611 使用IDE Flash Programmer 编程Flash Programmer 对话框FPGA-CPLD原理及应用 FPGA配置和Flash编程4712 创建目标板Flash编程设计目标板编程设计对Flash编程必不可少,其提供了Flash Programmer对Flash进行编程所需的全部信息,包括Flash的容量以及flash的引脚连接等等。目标板Flash编程设计包含下列内容:n每个在电路板上连接到FPGA的Flash芯片上的参考标号;nFlash芯片在Flash编程设计中的基地址 ;n一个针对用户板,经过裁剪的Fla

33、sh编程设计;n一个用户板的Flash编程设计的配置文件(.sof ) 。FPGA-CPLD原理及应用 FPGA配置和Flash编程4812 创建目标板Flash编程设计一个用户板包含下列文件:nclass.ptf-描述连接到FPGA的Flash,并且指出用户板Flash编程设计的存放位置;n.ptf-Flash编程设计的SOPC Builder系统文件;n.qpf-Flash编程设计的Quartus II工程文件;n.sof-Flash编程设计的FPGA配置文件。FPGA-CPLD原理及应用 FPGA配置和Flash编程4912 创建目标板Flash编程设计每一个Flash编程设计都包含下列

34、元件:nNios II CPU;nJTAG UART;n如果采用EPCS串行配置器件,则需要Active serial memory interface(ASMI);nTri-state bridge;nCFI规范的Flash interface;nSystem ID peripheral;n用于存放程序以及作为数据缓冲的On-chip memory。FPGA-CPLD原理及应用 FPGA配置和Flash编程5012 创建目标板Flash编程设计下面以SmartSOPC多功能教学实验开发平台上QuickSOPC核心板的Flash编程设计为例,叙述创建目标板Flash编程设计的步骤:Nios S

35、DK shell 启动方法12启动后界面FPGA-CPLD原理及应用 FPGA配置和Flash编程5112 创建目标板Flash编程设计创建命令参数和提示信息命令和参 数创 建信 息提 示 下一 步 的工 作3FPGA-CPLD原理及应用 FPGA配置和Flash编程5212 创建目标板Flash编程设计启动Quartus II软件并打开刚才创建的新工程,SmartSOPC_Board_cyclone_1c6.qpf;在Quartus II软件中,从【Assignments】【Device】打开setting对话框,选择实际电路板上所用的FPGA型号,本例为EP1C6Q240C8;从【Tools】【SOPC Builder】来启动SOPC Builder软件;对【System Contents】标签页的设置。FPGA-CPLD原理及应用 FPGA配置和Flash编程53添加三态桥 Avalon Tri-State Bridge。12 创建目标板Flash编程设计添加Avalon Tri-state Bridge8FPGA-CPLD原理及应用 FPGA配置和Flash编程54添加CFI接口的Flash12 创建目标板Flash编程设计添加CFI接口Flash9Flash接口的时序设置FPGA-CPLD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论