《FPGA配置和Flash编程》由会员分享,可在线阅读,更多相关《FPGA配置和Flash编程(113页珍藏版)》请在金锄头文库上搜索。
1、第5章 FPGA配置方式和配置过程-片上系统嵌入式基础教程郑州大学出版社出版郑州坤升电子技术有限公司徐江峰等编著本章将首先介绍FPGA配置方式和配置过程,然后简单介绍了配置芯片、配置文件的种类以及配置电路设计要点,本章最后讲述了配置文件下载、Flash编程等方面的内容,其中Flash编程包括NOR Flash的编程、EPCS的编程。通过本章的内容读者将理解并掌握FPGA配置以及Flash编程、NiosII程序装载等的相关内容。 主要内容第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5
2、.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10
3、 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计5.1 FPGA配置配置(configuration)是对FPGA的内容进行编程的过程。每次上电后都需要进行配置是基于SRAM工艺FPGA的一个特点,也可以说是一个缺点。FPGA配置过程如下:FPGA配置配置器件器件外部电路将配置数据载入片内配置RAM中外部电路FPGA配置完成配置配置RAM配置配置RAM中的中的配置数据配置数据:用于控制FPGA内部可编程的内部逻辑、内部寄存器和I/O寄存器初始化,I/O驱动器使能等。之后FPGA进入用户模式。5.1 FPGA配置nFPGA配置方
4、式根据FPGA在配置电路中的角色,可以将配置方式分为三类:1.FPGA主动串行(AS)方式 2. JTAG方式 3. FPGA被动(Passive)方式EPCS系列系列配置数据FPGA主动串行主动串行(AS)方式方式1下载工具下载工具或或智能主机智能主机JTAG方式方式2EPC系列系列FPGA仅输出响应信号FPGAFPGA被动被动(Passive)方式方式35.1 FPGA配置nFPGA配置方式根据FPGA在配置电路中的角色,可以将配置方式分为三类:1.FPGA主动串行(AS)方式 2. JTAG方式 3. FPGA被动(Passive)方式EPCS系列系列配置数据FPGA主动串行主动串行(A
5、S)方式方式1下载工具下载工具或或智能主机智能主机JTAG方式方式2EPC系列系列FPGA仅输出响应信号FPGAFPGA被动被动(Passive)方式方式3被动方式可分为下列几种方式: 被动串行方式(PS) 快速被动并行(FPP)方式 被动并行异步(PPA)方式 被动并行同步(PPS)方式 被动串行异步(PSA)方式5.1 FPGA配置配置方式器件类别Stratix IIStratix ,Stratix GXCyclone IICycloneAPEX IIAPEX20K,APEX20KE,APEX20KCMercuryACEX 1KFLEX10K,FLEX10KE,FLEX10KAFLEX60
6、00被动串行(PS)主动串行(AS)快速被动并行(FPP)被动并行同步(PPS)被动并行异步(PPA)被动串行异步(PSA)JTAG仅支持边界扫描测试Altera FPGA配置方式列表5.1 FPGA配置Cyclone FPGA配置方式表配 置 方 式描 述主动串行配置(AS)采用串行配置器件(EPCS1、EPCS4、EPCS16、EPCS64)被动配置(PS)1采用专用配置器件(EPC1、EPC2、EPC4、EPC8、EPC16);2采用配置控制器(单片机、CPLD等)配合Flash;3下载电缆。JTAG配置通过JTAG进行配置5.1 FPGA配置nFPGA配置过程FPGA的配置包括3各阶段
7、:复位、配置和初始化。复位复位配置配置初始化初始化进入进入用户模式用户模式配置过程波形图5.1 FPGA配置nFPGA配置过程FPGA的配置包括3各阶段:复位、配置和初始化。复位复位配置配置初始化初始化进入进入用户模式用户模式配置数据写入到器件中器件内部逻辑和寄存器初始化,I/O缓冲使能配置过程波形图nFPGA配置过程FPGA 配置流程图第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn
8、5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计5.2 Cyclone及Cyclone II FPGA配置Cyclone 以及Cyclone IIFPGA使用SRAM单元来存储配置数据。FPGA中的SRAM是易失性的,每次上电之前,配置数据(或压缩的配置数据)必须重新下载到FPGA中。下面的2个条件均可使FPGA产生一次配置请求:给FPGA重新上电;FPGA的nConfig引脚上产生一个低电平到高电平的上升沿。5.2 Cyclone及Cyclone II FPGA配
9、置Cyclone及Cyclone II FPGA的配置方式包括:1.FPGA主动串行(AS)配置方式; 2.FPGA被动(Passive)配置方式 ;3.JTAG配置方式 。用户可以通过设置FPGA上的MSEL0、MESL1两个引脚的状态来选择配置方式。各种方式的MSEL0、MESL1设置如下表所列:5.2 Cyclone及Cyclone II FPGA配置MSEL1MSEL0配置方式备注00AS主动(串行配置器件)20M10快速AS主动(串行配置器件) 40M,只限Cyclone II01PS被动(CPLD控制)00或1JTAG配置配置方式设置说明:说明:1.在上表中,如果只采用一种配置方式
10、,则可以直接将MSEL0、MESL1连接到VCC(注意要与FPGA的IO口的供电VCCIO相同)或GND;2.如果需要多种配置方式,那么MSEL要用控制器(单片机、CPLD等)来控制以进行切换;3.MSEL管脚在配置开始前必须处于一个固定的状态,因此不能将MSEL管脚悬空。5.2 Cyclone及Cyclone II FPGA配置另外,不同型号FPGA的配置文件大小不同,下表中列出了FPGA在不压缩情况下二进制配置文件(.rbf)的最大大小。设计者可以根据配置文件的大小来选择合适的配置器件和其它存储器。并可使用压缩功能,来减小配置文件的大小。说明:说明:1.同型号的FPGA配置文件会因所使用的
11、单元不同而不同,配置文件越小下载速度和配置速度越快。5.2 Cyclone及Cyclone II FPGA配置器件类型器件型号数据大小(Bits)数据大小(Bytes)CycloneEP1C3627,37678,422EP1C4924,512115,564EP1C61,167,216145,902EP1C122,326,528290,816EP1C203,559,608444,951Cyclone IIEP2C51,265,792152,998EP2C81,983,536247,974EP2C203,892,496486,562EP2C356,858,656857,332EP2C509,963
12、,3921,245,424EP2C7014,319,2161,789,902Cyclone FPGA 二进制文件(.rbf)大小n主动串行配置主动串行配置方式(AS)是将配置数据事先存储在串行配置器件EPCS中,然后在系统上电时Cyclone及Cyclone II FPGA通过串行接口读取配置数据(如果是压缩数据,还会进行解压缩处理)对内部的SRAM单元进行配置。因为上述配置过程中FPGA控制配置接口,因此通常称为主动配置方式。5.2 Cyclone及Cyclone II FPGA配置n主动串行配置主动串行配置的电路原理图说明:说明:1.因为FPGA上的nSTATUS、CONFIG_DONE管
13、脚都是开漏结构,所以都要接上拉电阻。FPGA的片选脚nCE必须接地。用于对EPCS的编程5.2 Cyclone及Cyclone II FPGA配置n主动串行配置复位复位配置配置初始化初始化进入进入用户模式用户模式配置数据写入到器件中器件内部逻辑和寄存器初始化,I/O缓冲使能配置过程波形图n主动串行配置串行时钟(DCLK)在配置结束后内部振荡器关闭。下表列出了DCLK的输出频率。对于Cyclone II FPGA,通过MSEL可以选择时钟为20MHz或40MHz。配置的时间与配置文件大小以及DCLK的频率有关,关于AS方式配置时间的估算请见下一小节。器件最小典型最大单位Cyclone141720
14、MHzCyclone II1013202026405.2 Cyclone及Cyclone II FPGA配置n主动串行配置用户可以在QuartusII软件中选择,用哪一个时钟来进行FPGA寄存器和用户I/O口的初始化、以及是否在配置出错后重新开始配置等内容。如下图所示的弹出窗口:5.2 Cyclone及Cyclone II FPGA配置功能服用引脚设置n主动串行配置(AS)的配置时间估算主动串行配置时间为串行配置器件数据传送到FPGA的时间,这取决于DCLK的频率以及配置文件的大小。以Cyclone EP1C6器件为例,非压缩的.rbf格式配置文件的大小为1167216位、DCLK最低频率为1
15、4MHz(71ns),则最大配置时间为:1167216*71ns82872336ns83ms当DCLK的典型频率为17MHz(59ns)时,配置时间为:1167216*59ns=68865744ns 69ms5.2 Cyclone及Cyclone II FPGA配置n主动串行配置(AS)的配置时间估算如果允许配置数据压缩,由于配置时要对数据进行解压缩,需要增加配置时间,一般要增加50的配置时间,即EP1C6器件在采用压缩数据进行配置时需要约103.5ms的时间。此外,在配置完成后紧接着的FPGA寄存器和用户I/O口初始化也需要消耗一定的时间(Cyclone为136个时钟周期,Cyclone I
16、I为299个时钟周期),当不采用CLKUSR管脚时钟,而使用FPGA内部10MHz时钟时,Cyclone EP1C6消耗13.6us的初始化时间。5.2 Cyclone及Cyclone II FPGA配置nJTAG配置通过JTAG接口,利用Quartus II软件可以直接对FPGA进行单独的硬件重新配置。Quartus II软件在编译时会自动生成用于JTAG配置的.sof文件。如果同时使用AS方式和JTAG方式来配置FPGA,JTAG配置方式拥有最高的优先级,此时AS方式将停止,而执行JTAG方式配置。5.2 Cyclone及Cyclone II FPGA配置主动串行配置的电路原理图nJTAG
17、配置5.2 Cyclone及Cyclone II FPGA配置管脚描述功 能TDI测试数据输入指令、测试以及编程数据的串行输入。数据在TCK的上升沿移入。如果电路板上的JTAG不需要,可以将该管脚连接到VCC。TDO测试数据输出指令、测试以及编程数据的串行输出。数据在TCK的下降沿移出。在没有数据移出时,该管脚是高阻态。如果电路板上的JTAG不需要,可以不连接该管脚。TMS测试模式选择控制信号输入管脚,控制信号决定测试访问端口控制状态的转换。状态的转换出现在TCK的上升沿。因此,TMS必须在TCK上升沿之前建立。如果电路板上的JTAG不需要,可以将该管脚连接到VCC。TCK测试时钟输入边界扫描
18、测试(BST)电路的时钟输入。一些操作发生在其上升沿,一些发生在下降沿。如果电路板上的JTAG不需要,可以将该管脚连接到GND。nJTAG配置利用Quartus II软件和USB Blaster、ByteBlaster II等下载电缆可下载配置数据到FPGA。Quartus II软件可以验证JTAG配置是否成功。JTAG配置通过下载电缆使用SOF、Jam或者JBC文件直接对FPGA进行配置,这种配置方式只能用于调试阶段,因为,掉电后FPGA中的配置数据将丢失。 5.2 Cyclone及Cyclone II FPGA配置ByteBlaster IIUSB Blaster第5章 目录n5.1 FP
19、GA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计Altera FPGA的配置芯片可以分为3类:1.增强型配置器件:EPC16、EPC8、EPC4;2.主动串行配置器件:EPCS64、EPCS16、EPCS4和EPCS1;3.普通配置器件
20、:EPC2、EPC1、EPC1441。5.3 配置芯片5.3 配置芯片器件存储容量(bits)片上解压缩支持在系统编程(ISP)支持可重编程操作电压(V)EPC1616,777,216YesYesYes3.3EPC88,388,608YesYesYes3.3EPC44,194,304YesYesYes3.3EPCS6467,108,864 NoNoYes3.3EPCS1616,777,216 NoNoYes3.3EPCS44,194,304NoNoYes3.3EPCS11,048,576NoNoYes3.3EPC21,695,680NoYesYes3.3或5EPC11,046,496NoNoN
21、o3.3或5EPC1441440,800NoNoNo3.3或5各配置芯片的属性如下表所示:第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计5.4 配置的软件设置n配置方式及配置芯片选择在Quartus II软件
22、中,可以设置配置方式和配置芯片。配置选项卡5.4 配置的软件设置n配置方式及配置芯片选择在Quartus II软件中,可以设置配置方式和配置芯片。配置方式配置方式(AS、PS)选择选择配置模式配置模式(本地或远程本地或远程)选择选择配置器件配置器件(EPCS系列、系列、EPC系列系列)压缩配置选项卡5.4 配置的软件设置n复用配置引脚处理当用户选择了一种配置 方 式 后 , 在【 Dual-Purpose Pins】选项卡中将自动把这种方式下可复用为IO口的管脚列出。用户可选择如何处理这些引脚。复用配置引脚处理5.4 配置的软件设置n复用配置引脚处理【General】选项卡,用于有关于配置的通
23、用选项。功能复用引脚设置第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计5.5 配置文件n配置文件的格式Quartus II开发软件能生成一个或多个用于配置电路的配置文件。1.SRAM目标文件(.sof).so
24、f文件一般是在调试时通过下载电缆和JTAG直接下载到FPGA中的SRAM中。SOF文件在Quattus II软件编译时自动生成。所有其他配置文件都是由SOF文件转换生成的。5.5 配置文件n配置文件的格式Quartus II开发软件能生成一个或多个用于配置电路的配置文件。2.编程目标文件(.pof).pof文件用于对各种Altera配置芯片进行编程。当在Quartus II中设置好配置芯片类型后,软件会在编译时为用户生成对应器件类型的POF文件。多个FPGA的sof文件可放到一个POF文件中,形成一个配置文件。Quartus II也可以将配置文件分到几个配置芯片中。5.5 配置文件n配置文件的
25、格式Quartus II开发软件能生成一个或多个用于配置电路的配置文件。3.原始二进制文件(.rbf)RBF是原始二进制配置数据的文件,只包含配置数据的内容。RBF文件通常被用于外部带微处理器的配置电路中。在被动配置方式(PS)时,可以将.rbf文件存储在大容量存储器中(如NOR Flash),然后通过微控制器读取二进制数据并装载到FPGA中去。5.5 配置文件n配置文件的格式Quartus II开发软件能生成一个或多个用于配置电路的配置文件。4.原始编程数据文件(.rpd)RPD是包含Cyclone器件二进制位流配置数据的二进制文件。该文件存储在串行配置器件中,用于带嵌入式处理器环境,但在Q
26、uartus II软件以外Cyclone FPGA主动配置方式的配置。RPD文件的大小等于目标串行配置器件存储容量大小。但不同于RBF文件,它只给单一的配置器件提供配置。每个字节的低位LSB应先写入串行配置器件。5.5 配置文件n配置文件的格式Quartus II开发软件能生成一个或多个用于配置电路的配置文件。5.十六进制文件(.hex)HEX文件是Intel HEX格式的ASCII文件。微控制器或外部主机可使用HEX文件来存储和传送配置数据。该文件也可以用于第三方的编程器对Altera公司的配置器件进行编程。5.5 配置文件n配置文件的格式Quartus II开发软件能生成一个或多个用于配置
27、电路的配置文件。6.文本列表文件(.ttf)文本列表文件是一种提供了逗号分隔的列表ASCII文件,该文件中的配置数据用于FPP、PPS、PPA和位宽。TTF文件可以允许用户将配置数据以包含或源命令行的形式作为微控制器的源代码,微控制器能从配置器件和大容量存储器中访问这些数据并下载到目标器件(FPGA)。5.5 配置文件n配置文件的格式Quartus II开发软件能生成一个或多个用于配置电路的配置文件。7.JAM文件(.jam)JAM文件是用来存储器件编程信息的ASCII文本文件。这些文件在QusrtusII编程器和带嵌入式处理器的环境中常用于一个或多个器件的编程、校验、查空。5.5 配置文件n
28、配置文件的格式Quartus II开发软件能生成一个或多个用于配置电路的配置文件。8.字节编码文件(.jbc)JBC文件是同JAM文件内容一样的二进制文件。此外还有串行位流文件(.sbf)是用于FLEX 10K和FLEX6000器件的配置。5.5 配置文件n配置文件设置和转换Quartus II软件中指定生成哪种格式的配置文件。配置过程波形图5.5 配置文件n配置文件设置和转换用Quartus II软 件 可 对 SOF和POF文件进行转换,生成其它格式的文件。编程文件的转换5.5 配置文件n配置文件设置和转换SOF文件RBF文件转换步骤如下: 配置过程波形图5.5 配置文件n配置文件的压缩Q
29、uartus II 为Cyclone、Cyclone II以及StratixII提供了配置数据可压缩特性,用户可以为FPGA选择容量较小的EPCS器件,以节省成本。ALTERA给出对配置数据的压缩率可达到35到60%。当在Quartus II软件中使能压缩特性时,软件自动采用压缩配置数据来生成POF配置文件。通过压缩后的配置文件减小了对配置器件或Flash的存储空间需求。5.5 配置文件n配置文件的压缩有两种方法来使用压缩特性:1.在用户设计编译前,可在编译设置菜单中来选择压缩特性;2.在用户设计编译后,可利用File菜单中的文件转换器Convet Programming Files进行压缩。
30、通过文件转换可利用SOF文件生成各种格式的压缩文件。5.5 配置文件n配置文件的压缩方法一:编译前选择压缩特性方法二:用文件转换器进行压缩第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计5.6 配置可靠性及电路
31、设计注意事项n配置的可靠性Altera的FPGA结构中设计了一些保护电路来减小电源上电和数据噪声的影响,使基于SRAM工艺的FPGA可靠性大大提高。为了提供可靠性主要采取了以下几个方面:1在配置过程中,采用CRC电路对输入到FPGA中的每一帧配置数据进行校验,确保配置数据的正确性;2Altera FPGA提供了保护电路要求在系统在掉电后重新配置,以保证FPGA在系统掉电时的高可靠性。5.6 配置可靠性及电路设计注意事项n电路设计注意事项在配置电路设计时,通常应该注意下面几点:1在设计DCLK和TCK时,要将其当作高速的时钟信号来处理;2在有多片FPGA配置链中,一般建议将各片FPGA的DCLK
32、、DATA0(DATA7.0、nCONFIG、nSTATUS、和CONF_DONE信号连在一起。这样可以确保各FPGA配置同时开始和结束;3确保FPGA配置管脚的电平和配置器件的电平兼容;4确保所有配置管脚按照FPGA的数据手册进行连接。第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE F
33、lash Programmer 编程n5.12 创建目标板Flash编程设计5.7 下载配置文件到FPGA要使用JTAG下载配置数据到FPGA,首先要生成可用于JTAG下载的配置数据文件,这些配置数据文件包括:.sof、.Jam以及.JBC。一般来说,JTAG方式利用SOF文件即可,JAM和JBC可以不用。利用JATG接口和ByteBlasterII电缆下载配置数据到FPGA的过程,如下:5.7 下载配置文件到FPGAJTAG下载配置数据过程5.7 下载配置文件到FPGAByteBlaster II 下载电缆安装第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II
34、 FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计5.8 下载配置文件到EPCS使用AS方式对Cyclone FPGA配置前,必须将配置文件写入串行配置器件EPCS。写入的方法有3种:1.在QuartusII的Programmer中,通过专门与EPCS连接的AS下载接口来下载.pof文件到EP
35、CS;2.在QuartusII的Programmer中,使用JTAG接口,通过FPGA中间通道来间接对EPCS进行编程;3.使用Nios II IDE中的Flash Programmer对EPCS进行编程。5.8 下载配置文件到EPCSnAS接口的EPCS直接编程利 用 ByteBlasterII、 AS接 口 、 .pof配 置 文 件 以 及QuartusII的Programmer可直接对EPCS进行编程,这种方式速度快,但需要专门的AS接口。下载过程如下:5.8 下载配置文件到EPCSEPCS的AS编程5.8 下载配置文件到EPCSnJTAG接口的EPCS间接编程JTAG接口的EPCS间
36、接编程是指利用Quartus II的Programmer、FPGA的JTAG接口以及Altera提供的用于编程时配置FPGA的Serial FlashLoader(SFL)来对EPCS进行编程。EPCS编程示意图(a) 传统通过AS接口对AS接口对EPCS编程(a) 通过SFL和JTAG接口对EPCS编程5.8 下载配置文件到EPCS利用JTAG和SFL对EPCS的编程过程示意图.jic或.jam5.8 下载配置文件到EPCSnSOF文件转换为JIC文件SOF文件转换为JIC文件的过程如下所示:5.8 下载配置文件到EPCS文件转换对话框5.8 下载配置文件到EPCS选择器件5.8 下载配置文
37、件到EPCS选择添加被转换文件5.8 下载配置文件到EPCS设置转换配置文件压缩窗口5.8 下载配置文件到EPCSnJIC文件转换为JAM文件要使用JAM文件,用户必须首先将SOF文件转换为JIC文件,然后再将JIC文件转换为JAM文件。转换步骤如下:5.8 下载配置文件到EPCS选择添加进行转换的JIC文件5.8 下载配置文件到EPCS5.8 下载配置文件到EPCSnJIC和JAM文件的内容1.SFL的配置映像。这个配置映像是在文件转换时当用户选择目标FPGA时(见图5.21)由QuartusII软件创建的;在对串行配置器件进行编程之前,SFL配置映像要对FPGA进行配置;2.串行配置器件的
38、配置数据。这个配置数据来源于用户选择的SOF文件,在编程过程中这些配置数据将被写入串行配置器件EPCS。5.8 下载配置文件到EPCSn使用JIC文件和Quartus II Programmer对EPCS编程通过前面的方法将SOF文件转换成JIC文件。可以利用JIC文件和Qusrtus II Programmer 对串行配置器件EPCS进行编程,步骤如下:选 中 SFL映像 对 FPGA进行配置选中配置数据写入EPCS开始编程5.8 下载配置文件到EPCSn使用JAM文件和Quartus II Programmer对EPCS编程JIC文件转成JAM文件,可以利用JAM文件和Quartus II
39、 Programmer对串行配置器件EPCS进行编程,步骤如下:使用JIC和Quartus II Progrmmer 进行EPCS编程第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计5.9 IDE Flash
40、Programmer介绍Nios II IDE 提供了Flash Programer工具来对目标板上遵守CFI(common flash interface)规范的Flash进行编程。IDE的Flash Programer通过使用Altera的下载电缆能够方便的对目标板上连接在FPGA上的Flash进行编程。IDE的Flash Programer除了能对连接在FPGA上的Flash进行编程外,还能对连接在FPGA上的串行配置器件EPCS进行编程。5.9 IDE Flash Programmer介绍nIDE Flash Programmer编程工作过程IDE Flash Programmer通过
41、2个过程将数据写入Flash。第一步:使用Flash编程设计对FPGA进行配置第二步:传送编程内容到Flash器件5.9 IDE Flash Programmer介绍nFlash编程设计Flash编程设计实际就是一个由SOPC Builder系统生成的最小FPGA设计。Flash编程设计是IDE Flash Programmer的关键组成部分。除此之外,还必须包括:1.与主机(PC机)通讯的JTAG接口;2.由主机提供的写入Flash的编程数据。不同的电路板(目标板)往往使用不同的Flash器件,并且Flash与FPGA的管脚连接及FPGA型号也不相同。因此,每个Flash编程设计都与具体的目
42、标板相联系,不能用于其它的目标板。5.9 IDE Flash Programmer介绍n目标板Flash编程设计一个目标板Flash编程设计是一组SOPC Builder文件,这些文件包含了用户使用电路板的一些特有信息,其中必须指明FPGA与Flash的连接关系。包含下列信息:1.每一个连接到电路板FPGA上的Flash的参考元件标号,如U7;2.Flash器件在Flash编程设计中的基地址;3.主机上用于配置电路板上FPGA的Flash编程设计的SOF文件。参考元件标号用于区分设计中不同的Flash器件。电路板上的Flash器件在设计时的命名和基地址可能不同,但参考元件标号总是相同的。5.9
43、 IDE Flash Programmer介绍nFlash编程内容的类型1.用户软件;2.FPGA的配置数据;3.任意内容。5.9 IDE Flash Programmer介绍nFlash文件所有要通过IDE Programmer写入Flash中的数据文件都要转换为能被Flash Programmer读取的.flash文件。Flash文件通过其后缀.flash来识别,尽管它们与工业标准SREC文件相同。IDE Flash Programmer在 后 台 提 供 了 elf2flash、sof2flash、bin2flash三个命令来分别将这三种文件转换为flash文件,这三个命令在IDE Fl
44、ash Programmer后台自动调用执行而不需用户干预,当然用户也可以在Nios II SDK shell中通过命令行来执行文件转换。第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计FPGA5.10 用户程
45、序引导用户程序可以存放在Flash中,也可以存放在EPCS,因此用户程序可以从Flash引导,也可以从EPCS中引导。用户程序FlashEPCS用户程序用户引导程序5.10 用户程序引导n从CFI Flash引导FPGA上电或复位配置成功后,如果配置中包含的Nios II处理器复位地址指向Flash的地址空间,那么程序将从Flash引导。SOPC Builder指定复位地址为Flash5.10 用户程序引导n从串行配置器件EPCS引导如果使用串行配置器件EPCS,且配置数据的容量小于EPCS的容量,那么剩余的存储空间可用来存放用户程序。EPCS控制器结构框图Boot-LoaderROMEPCS
46、控制器配置存储空间通用存储空间EPCS配置器件Avalon总线NiosIICPU片内外设Altera FPGA存储FPGA配置数据剩余空间可用于存储用户非易失性数据。1KB的片内存储器5.10 用户程序引导n从串行配置器件EPCS引导IDE的Flash Programmer能将配置数据文件(.sof)和用户程序(.elf)写入到EPCS中。当用户程序存放在EPCS中时,如果想从EPCS中引导程序,在SOPC Builder中必须添加EPCS控制器,且必须在SOPC Builder中指定Nios II处理器的复位地址指向EPCS控制器(epcs_controller)。5.10 用户程序引导n从
47、串行配置器件EPCS引导SOPC Builder指定复位地址为epcs_controller5.10 用户程序引导n引导复制程序Alter提供了引导复制程序,它能根据用户在IDE中设置的用户程序文件(.elf)连接地址来重新装载程序,然后跳过.elf文件的连接地址执行程序。引导复制程序是IDE Flash Programmer在后台执行elf2flash命令时判断并自动加入完成的。Boot CopierMy_sw.elfMy_sw.flash加入Boot Copier 示意图5.10 用户程序引导n用户程序ELF文件连接设置在Nios II IDE中工程的属性页控制了工程中的程序与硬件系统的相
48、互影响关系以及IDE怎样编译连接该应用工程。用户IDE工程库属性设置对话框局部图5.10 用户程序引导n用户程序引导小结通过SOPC Builder和IDE用户工程库属性页中的不同设置,可实现用户程序的不同引导和在不同存储空间运行,现总结于下表。SOPC Builder中Reset AddressIDE中.elf连接存储空间程序运行情况FlashSDRAM从Flash中复制到SDRAM运行Onchip_RAM从Flash中复制到Onchip_RAM运行Onchip_ROMOnchip_ROM (2)FlashFlash (3)Epcs_controllerEpcs_controller (4)
49、Epcs_controllerSDRAM从EPCS中复制到SDRAM运行Onchip_RAM从EPCS中复制到Onchip_RAM运行Onchip_ROMOnchip_ROM (2)FlashFlash (5)第5章 目录n5.1 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programme
50、r 编程n5.12 创建目标板Flash编程设计5.11 使用IDE Flash Programmer 编程选择目标板Flash编程设计5.11 使用IDE Flash Programmer 编程从SOPC Builder启动 Nios II IDE编译连接用户工程建立软件工程后,进行编译连接5.11 使用IDE Flash Programmer 编程打开IDE Flash ProgrammerFlash Programmer 对话框启动Flash Programmmer界面5.11 使用IDE Flash Programmer 编程Flash Programmer 对话框第5章 目录n5.1
51、 FPGA配置 n5.2 Cyclone及Cyclone II FPGA配置n5.3 配置芯片n5.4 配置的软件设置n5.5 配置文件n5.6 配置可靠性及电路设计注意事项n5.7 下载配置文件到FPGAn5.8 下载配置文件到EPCSn5.9 IDE Flash Programmer介绍n5.10 用户程序引导n5.11 使用IDE Flash Programmer 编程n5.12 创建目标板Flash编程设计5.12 创建目标板Flash编程设计目标板编程设计对Flash编程必不可少,其提供了Flash Programmer对Flash进行编程所需的全部信息,包括Flash的容量以及fl
52、ash的引脚连接等等。目标板Flash编程设计包含下列内容:n每个在电路板上连接到FPGA的Flash芯片上的参考标号;nFlash芯片在Flash编程设计中的基地址 ;n一个针对用户板,经过裁剪的Flash编程设计;n一个用户板的Flash编程设计的配置文件(.sof ) 。只有Nios 开发套件 7.1版本以下才需要用户自己创建目标板Flash编程设计。Nios 7.1及其以上版本已经集成,用户编译完 即可自动下载。5.12 创建目标板Flash编程设计一个用户板包含下列文件:nclass.ptf-描述连接到FPGA的Flash,并且指出用户板Flash编程设计的存放位置;n.ptf-Fl
53、ash编程设计的SOPC Builder系统文件;n.qpf-Flash编程设计的Quartus II工程文件;n.sof-Flash编程设计的FPGA配置文件。5.12 创建目标板Flash编程设计每一个Flash编程设计都包含下列元件: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。5.12 创
54、建目标板Flash编程设计下 面 以 SmartSOPC多 功 能 教 学 实 验 开 发 平 台 上QuickSOPC核心板的Flash编程设计为例,叙述创建目标板Flash编程设计的步骤:Nios SDK shell 启动方法12启动后界面5.12 创建目标板Flash编程设计创建命令参数和提示信息命令和参 数创 建信 息提 示 下一 步 的工 作35.12 创建目标板Flash编程设计4.启 动 Quartus II软 件 并 打 开 刚 才 创 建 的 新 工 程 ,SmartSOPC_Board_cyclone_1c6.qpf;5.在Quartus II软件中,从【Assignmen
55、ts】【Device】打开setting对话框,选择实际电路板上所用的FPGA型号,本例为EP1C6Q240C8;6.从【Tools】【SOPC Builder】来启动SOPC Builder软件;7.对【System Contents】标签页的设置。添加三态桥 Avalon Tri-State Bridge。5.12 创建目标板Flash编程设计添加Avalon Tri-state Bridge8添加CFI接口的Flash5.12 创建目标板Flash编程设计添加CFI接口Flash9Flash接口的时序设置修改CPU的设置5.12 创建目标板Flash编程设计修改经济核为快速核10修改CP
56、U的设置5.12 创建目标板Flash编程设计10指定Cache大小修改JTAG_UART的配置5.12 创建目标板Flash编程设计11修改JTAG_UART的配置修改JTAG_UART的配置5.12 创建目标板Flash编程设计12More “Board_System”Settings 选项卡5.12 创建目标板Flash编程设计14.选择进入【System Generation】,关闭【Simulation】选项然后点击 ;15.当生成完成后,点击 退出并返回到Quartus II;16.在任意处右击,在弹出的快捷菜单中选择【Update Symbol or Block】以更新;17.电
57、路板上实际使用的振荡器输出频率不能达到50MHz以上,加入一个PLL以提高时钟频率。本例使用PLL将时钟频率提升为80MHz。添加、连接并命名引脚。5.12 创建目标板Flash编程设计18SmartSOPC_Board_cyclone_1c6顶层图5.12 创建目标板Flash编程设计19.如果在Flash接口所在的三态总线上还有挂有其它的外设,用户必须确保这些在本设计中不使用的外设不会影响Flash数据的读写;20.进行管脚分配。如果用户在其它的设计中已经有包含Flash、时钟、复位等管脚的分配,则可直接利用;21.点击【File】【Save】保存设计;22.点击【Processing】【
58、Start Compilation】编译工程。 编译成功后,目标板Flash编程设计即成功创建。打开SOPC Builder即可在【Target】下的Board栏中找到刚才的目标板Flash编程设计,对于本例为SmartSOPC_Board _1c6。5.12 创建目标板Flash编程设计说明:说明:创建好的目标板Flash编程设计在任何设计的SOPC Builder中都能使用。如果想让该目标板Flash编程设计在其它的PC机上也能使用,将整个设计文件夹拷贝到NiosII安装路径alterakitsnios2components目录下即可。因此,无论使用mk_target_board命令创建时的路径如何,在创建完成后,将整个设计文件夹拷贝到alterakitsnios2components目录下。