sopc课件第七章.ppt_第1页
sopc课件第七章.ppt_第2页
sopc课件第七章.ppt_第3页
sopc课件第七章.ppt_第4页
sopc课件第七章.ppt_第5页
免费预览已结束,剩余151页可下载查看

下载本文档

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

文档简介

第七章FPGA配置和Flash编程,本章主要内容,本章对FPGA配置和编程技术进行了讨论,重点介绍CycloneII的配置芯片、配置模式、配置器件的信号连接,配置数据的编程方法等内容。,目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,需要外加专用配置芯片,在上电时,由这个专用配置芯片把配置数据加载到FPGA中,之后FPGA就可以正常工作,配置器件是基于Flash存储器的器件,所以FPGA的配置和编程技术是SOPC开发中必须掌握的技术。,本章主要内容,第7章目录,1FPGA配置概述2.CycloneII系列FPGA配置3.FPGA的配置器件4.QuartusII中FPGA配置的选项5.FPGA配置调试技术,6.IDEFlashProgrammer介绍7.用户程序引导8.在IDE模式下使用NIOS2FLAShProgrammer9.板子描述编辑器,7.1FPGA配置概述,Altera的FPGA共支持7种配置模式,不同系列的FPGA所支持的配置模式也不同。所有的配置模式通过主机或配置器件来实现。如下表7-1所示,注:虽然通过JTAG引脚不能配置FLEX6000,可以进行JTAG边界扫描测试。7种配置模式说明如下:,表7-1FPGA配置模式支持表,被动串行(PS)该配置模式需要增强型配置器件(EPC16、EPC8和EPC4)、配置器件EPC2、EPC1、EPC1441等;串行同步微处理器接口;USBBlasterUSB口下载电缆、MasterBlaster通讯电缆、ByteBlasterII并行下载电缆或ByteBlasterMV并行端口下载电缆等。主动串行(AS)该配置模式需要串行配置器件(EPCS1和EPCS4等)。被动并行同步(PPS)该配置模式需要使用一并行同步微处理器接口。快速被动并行(FPP)该配置模式需要一增强的配置器件或者并行同步微处理器接口,在每个时钟周期装载8位配置数据,其速度是PPS的8倍。被动并行异步(PPA)该配置模式需要一并行异步微处理器接口,该模式下,微处理器把目标设备作为存储器。被动串行异步该配置模式需要一串行异步微处理器接口。JTAG该配置模式通过IEEEStd.1149.1(JTAG)引脚实现。,7种配置模式说明如下:,1被动配置模式概述当FPGA工作时,配置数据被保存在其片内SRAM中。由于SRAM的易失性,每次上电时配置数据必须被重新装载到SRAM中,FPGA配置完成后,其寄存器和I/O引脚必须被初始化,初始化完成后,FPGA进入在系统操作的用户模式。在配置、初始化和用户模式期间,配置引脚的波形如图7-1所示。,图7-1配置周期波形图,FPGA的nCONFIG引脚上由低到高的跳变启动配置周期。配置周期由3个阶段组成:复位、配置和初始化。nCONFIG和nSTATUS为高电平时启动配置阶段。在初始化期间,内部逻辑、内部和I/O寄存器被初始化且I/O缓冲器被允许。nCONFIG引脚从高到低,再变为高电平将启动一次新的配置周期。配置过程的状态转换如下图7-2所示。,图7-2配置过程的状态转换图,2选择配置模式,AlteraFPGA的配置数据可使用主动、被动或JTAG配置模式进行装载。使用被动配置模式,当系统在运行时,可重新配置FPGA来改变其功能。FPGA配置模式由MSEL引脚来决定。,被动串行配置(PS)主动串行配置(AS)被动并行同步配置(PPS)快速被动并行配置(FPP)被动并行异步配置(PPA)被动串行异步配置(PSA)JTAG配置,AlteraFPGA支持的7种配置模式,7.2CycloneII系列FPGA配置,CycloneII系列FPGA使用SRAM存储器进行配置。由于SRAM的易失性,每次上电时,配置数据必须重新下载到CycloneII系列FPGA中。本节说明CycloneII的配置特点,讨论CycloneII系列FPGA的配置方法,给出配置引脚的定义及CycloneII的配置文件格式。,7.2.1CycloneII系列FPGA配置概述,可以采用AS、PS和JTAG配置模式来配CycloneII系列FPGA。采用何种配置模式由MSEL引脚的电平来决定,如表7-2所示。表7-2Cyclone配置模式,使用AS,PS或JTAG接口下载配置数据到CycloneIIFPGA,其所需设备如表7-3所示。,表7-3CycloneIIFPGA配置模式,7.2.2配置文件,表7-4列出了CycloneIIFPGA的未压缩的配置文件大小。要计算多个FPGA配置所需的存储空间,需将每个FPGA的文件大小相加。表7-4CycloneII的原始(raw)二进制文件(.rbf)大小,表7-4中的数据是在设计被编译之前文件大小的预估值。不同的配置文件格式,例如十六进制(.hex)或Tabular文本文件(.ttf)格式,将有不同的文件大小。然而对QuartusII软件的不同版本,对同一型号的FPGA的设计将有相同大小的未压缩配置文件。若采用压缩文件,由于压缩率取决于设计,文件的大小在编译后可能不同。,7.2.3配置数据的压缩,CycloneII系列FPGA支持配置数据的解压缩,该特性节省配置存储空间和配置时间。可把压缩的配置数据存储在配置器件或其他存储器中,配置时传送压缩的位流数据到CycloneIIFPGA。在配置期间,CycloneII系列的FPGA实时解压缩且对FPGA中的SRAM进行编程。预估(Preliminary)数据表明:配置位流数据的压缩比例为35%50%。CycloneIIFPGA支持AS和PS模式下的解压缩。JTAG模式不支持解压缩。,当多个CycloneIIFPGA级联时,可为链中每个FPGA选择压缩特性。图7-3所示是两个Cyclone器件的级联。第一个器件允许压缩特性,且从配置器件接收压缩的数据流,第2个CycloneII器件禁止压缩特性,且接收未压缩数据。在QuartusII软件中可以创建该设置下的编程文件(例如.POF文件)。,图7-3在编程文件中的压缩和未压缩配置数据,7.2.4AS配置模式,在AS配置模式下,使用一个串行配置器件对CycloneIIFPGA进行配置。这些配置器件包含非易失性存储器,价格便宜,且具有4个引脚的简单接口。这些特性使串行配置器件成为一个理想的低成本的配置解决方案。串行配置器件提供访问配置数据的串行接口,在FPGA配置期间,CycloneIIFPGA通过串行接口读配置数据,解压缩数据(如果需要),配置其SRAM单元。,注:当使用AS模式配置CycloneII设备时,CycloneII具有解压缩功能。表7-5是AS模式下的MSEL引脚设置。表7-5CycloneII配置模式,表7-5注:(1)EPCS16和EPCS64支持40MHz的DCLK。其他EPCS器件支持20MHz.的DCLK。,1单设备AS配置串行配置器件有一个4引脚接口:串行时钟输入(DCLK)、串行数据输出(DATA)、AS数据输入(ASDI)和一个低有效片选(nCS)。4引脚接口与CycloneII引脚相连。如图7-4所示。,图7-4单设备AS配置,配置周期由复位、配置和初始化等3个阶段组成。(1)复位阶段当nCONFIG或nSTATUS为低时,FPGA处于复位状态。POR之后,CycloneII释放nSTATUS,CycloneII设备进入配置模式。(2)配置阶段CycloneII设备产生的DCLK信号控制整个配置周期,提供串行接口的定时。表7-6列出了ASDCLK的输出频率。,表7-6ASDCLK的输出频率,(3)初始化阶段在CycloneIIFPGA中,初始化时钟源可以是10MHz(典型的)内部振荡器(与AS的内部振荡器无关),也可以是CLKUSR引脚。(4)用户模式初始化完成后,FPGA进入用户模式。在用户模式,用户的I/O引脚将不再有弱上拉电阻,且由用户设计来决定其状态。(5)配置错误,2多个FPGA的AS配置使用一个配置器件可对多个CycloneIIFPGA进行配置。在级联链中的第一个FPGA是配置主设备,且控制整个链中FPGA的配置。第一片选择AS配置模式,其他各片(配置从设备)选为PS配置模式。其他系列的支持PS配置模式的FPGA也可以串联到链中,在多片FPGA组成的串联链中,每个FPGA的nCONFIG、nSTATUS、CONF_DONE、DCLK和DATA0引脚的连接方法如图7-4所示。,图7-4多个FPGA的AS配置,如图7-4所示,所有目标FPGA的nSTATUS和CONF_DONE引脚连在一起并与上拉电阻相连。这些引脚是漏极开路的双向引脚。通过CLKUSR引脚,可选择链中每个设备进入用户模式的先后次序。如果配置数据超过串行配置器件的容量,必须选择较大的配置设备和/或允许压缩特性。配置多个设备时,配置数据的大小是每个设备配置数据容量的总和。,3多个FPGA配置为同一设计有时多个FPGA需要配置相同的系统设计或.SOF文件。下面介绍两种方法,2种方法都不能对串行配置器件进行串联。(1)多个SOFs文件第一种方法是将.SOF文件的2个拷贝存放在串行配置器件中,用第一个拷贝配置CycloneII主设备,而用第2个拷贝同时配置所有其他从设备。本设置中,CycloneII主设备是在AS模式,其他从设备工作在PS模式。如图7-5所示。,图7-5多个FPGA的AS配置(2个SOFs文件),图7-5用2个SOF文件配置4个同型号的CycloneII设备,3个从设备同时进行配置。所示方法的优点是:对CycloneII主设备可有不同的SOF文件,但所有的CycloneII从设备必须被配置为同样的SOF文件。该配置方法中的SOF文件可以是压缩或未压缩的。(2)单个SOF文件第2种配置方法使用同一SOF文件配置主设备和从设备,此时串行配置器件只保存SOF文件的一个拷贝。其连接方法如图7-6所示。在图中,主设备设为AS模式,从设备设为PS模式(MSEL=01),可以在链中连接一个或多个从设备,所有从设备连接方式相同。,图7-6一个SOF文件配置多个FPGA,4AS配置时间的估计AS配置时间是指从串行配置器件传送数据到CycloneIIFPGA所花费的时间。CycloneII的DCLK输出(用内部振荡器产生)作为串行接口的时钟,如表7-5所示:如果使用40MHz振荡器,DCLK的最小频率是20MHz(50ns)。所以对EP2C5的最大配置时间是:RBF容量(DCLK最大周期/每个DCLK周期1位)=最大配置时间估计值1223980bits(50ns/1bit)=61.2ms要估计典型配置时间,可使用表7-5中列出的典型DCLK周期。对一个典型38.46ns的DCLK周期,典型的配置时间是47.1ms。允许压缩特性减少发送到CycloneII设备的配置数据,同时也缩短配置时间,平均来看,数据压缩可减少配置时间约50%。,5串行配置器件的编程串行配置器件是基于非易失性的Flash存储器的,可以利用AS编程接口对串行配置器件进行在系统编程,在系统编程期间,下载电缆使nCE为高电平,禁止FPGA对AS接口的访问。将nCONFIG信号拉低可以使CycloneIIFPGA处于复位状态。编程结束后,下载电缆释放nCE和nCONFIG信号,允许通过下拉和上拉电阻使nCE为GND,nCONFIG为Vcc。图7-7是下载电缆与串行配置器件的连接示意图。,图7-7串行配置器件的在系统编程,可以通过QuartusII软件和相应的配置器件编程适配器对串行配置器件进行编程。所有的串行配置器件是8脚或16脚的SOIC(smalloutlineintegratedcircuit)封装,可用PLMSEPC-8适配器进行编程。空的串行配置器件在安装到PCB板上之前可使用APU或其他第三方编程硬件进行编程。串联配置器件可通过运行SRunner的外部处理器进行在系统编程。SRunner的串行配置器件编程时序与QuartusIIProgrammer的编程时序类似。图7-8给出了使用串行配置器件采用AS配置模式的时序图。,图7-8AS配置时序,7.2.5PS配置模式,在PS模式下,使用配置器件、下载电缆或智能主机(例如MAXII器件或微处理器)来配置CycloneIIFPGA。PS模式下配置CycloneIIFPGA时可使用压缩特性。使用PS配置模式时MSEL1接地(0),MSEL0应接高(1)。1使用MAXII器件进行PS模式下单个设备配置PS模式下,可使用MAXII器件作为一个智能主机,把存储器(例如Flash存储器)中的配置数据传送到目标FPGA中。配置数据可以是RBF、HEX或TTF等格式。图7-9是CycloneII设备与MAXII器件的配置接口连接图。,图7-9使用外部主机的单个FPGA的PS配置,上电后,CycloneII设备首先经过POR,持续约100ms,在POR期间,设备将复位,保持nSTATUS为低电平。使所有用户I/O引脚处于三态。FPGA成功退出POR后,所有用户引脚继续为三态。配置周期由复位、配置和初始化三个阶段组成。(1)复位阶段(2)配置阶段(3)初始化阶段,2MAXII器件作为主设备PS模式下多个FPGA的配置图7-10是使用MAXII器件配置多个FPGA的示意图。该电路与单设备配置图类似,只是多个FPGA被级联。第一个FPGA的nCE接地,其nCEO与下一个设备的nCE相连。一个FPGA的nCEO引脚可悬空或作为用户I/O使用。,图7-10使用外部主机的多个FPGA的配置,通过CLKUSR引脚可控制链中设备初始化的时间与先后顺序。若链中每个设备需要的初始化时钟数相同,则它们同时进入用户模式,否则进入用户模式的时间会不同。若多个FPGA配置数据相同,可把所有设备的nCE接地,其他配置引脚连在一起,配置后,nCEO引脚可作为用户I/O引脚,所有设备同时启动且完成配置。PS配置时序必须满足建立和保持参数以及最大时钟频率。当使用微处理器或另一个智能主设备来控制PS接口时,确保满足时序要求。PS配置时序波形如图7-11所示。,图7-11PS配置时序波形,表7-7定义了CycloneII设备PS配置时的时序参数。表7-7CycloneII设备的时序参数,使用微处理的PS配置在PS配置模式下,微处理器从存储器(例如Flash)取出配置数据,将数据传送到目标CycloneIIFPGA。其配置过程与使用MAXII作为主设备进行PS配置相同。使用配置器件的单个FPGA的PS配置可使用配置器件(例如EPC、EPC或增强型配置器件)通过串行位流配置数据对CycloneIIFPGA进行配置。配置数据存储在配置器件中,图7-12给出了FPGA和配置器件的连接示意图。,图7-12使用增强型配置器件的单个FPGA的PS配置,5使用一个配置器件对多个FPGA进行PS配置图7-13采用增强型配置器件配置多个FPGA,其电路与单个设备配置电路类似,只是多个FPGA要进行级联。,图7-13增强型配置器件对多个FPGA进行PS配置,增强型的配置器件支持最多8个并行配置。n-bit(n=1、2、4或8)PS配置模式允许增强型配置器件同时配置多个FPGA。各个FPGA可以是不同系列不同型号,也可以具有不同的设计。每个FPGA对应一个DATA引脚,其连接方式如图7-14所示。,图7-14使用增强型配置器件同时对多个FPGA进行PS配置,QuartusII软件允许设置n=1、2、4或8。但采用这些模式可配置1到8个FPGA。若多个CycloneIIFPGA配置数据相同,nCE接地,nCEO悬空,nCEO引脚也可以用作用户I/O引脚。配置链中每个FPGA的nCONFIG、nSTATUS、DCLK、DATA0和CONF_DONE引脚连接在一起,配置信号可能需要驱动。确保DCLK和DATA信号每3个设备加一级驱动。所有设备将同时启动和完成配置。图7-15是PS模式下多个设备接收同一配置数据的示意图。,图7-15使用增强型配置器件对接收同一配置数据的多个FPGA进行PS配置,6使用下载电缆的PS配置上电后,CycloneII设备经过约100ms的POR,FPGA成功退出POR后,nSTATUS被释放,所有用户I/O引脚为三态。使用下载电缆时,Auto-restartconfigurationaftererror选项不可用。另外,当使用QuartusIIprogrammer和下载电缆对FPGA进行编程时,Enableuser-suppliedstart-upclock选项不可用。该选项在SOF文件中被禁止。图7-18是使用下载电缆进行PS配置的示意图。,图7-18使用下载电缆进行PS配置,图7-19使用下载电缆PS配置多个FPGA,图7-21使用下载电缆和配置器件对FPGA进行PS配置,7.2.6JTAG配置模式,联合测试行动组(JTAG)已经开发了一个边界扫描测试规约。JTAG配置模式的优先权高于其他配置模式,这意味着JTAG配置可打断其他模式下的配置过程。采用JTAG模式进行配置,不支持CycloneII解压缩特性。在JTAG配置期间,所有用户I/O引脚是三态的。表7-9对每个JTAG引脚功能进行了说明。,表7-9专用JTAG引脚,表7-9注:TDO输出由VCCIO供电。若VCCIO接到3.3V,则I/O引脚和TDO由3.3V电压驱动。,1单个设备的JTAG配置,图7-21使用下载电缆的单个设备的JTAG配置,若配置JTAG链中的单个设备,编程软件设置其他设备在旁路(BYPASS)模式。该模式可允许编程软件对目标设备进行编程或验证。一个时钟周期后配置数据出现在TDO引脚。配置完成后,QuartusII软件对配置进行验证。在JTAG模式下忽略CLKUSR选项,因为SOF文件禁止该选项。DEV_CLRn(chip_widereset)和DEV_OE(chip-wideoutputenable)引脚不影响JTAG边界扫描或编程操作。改变这两个引脚的状态将不影响JTAG操作。,表7-9在JTAG配置期间专用配置引脚的连接,图7-22使用微处理器处理单个设备的JTAG配置,2多个设备的JTAG配置,图7-23使用下载电缆的多个设备的JTAG配置,Altera的支持JTAG的其他系列FPGA也可连接到同样的JTAG链进行设备的编程和配置。1.JamSTAPL2.JRunner配置CycloneIIFPGA3.使用JTAG接口对串行配置器件在系统编程,图7-24单个设备JTAG配置图,7.2.6CycloneII系列FPGA的配置引脚定义,表7-10CycloneII系列FPGA的专用配置引脚,MSEL1.0该引脚是2位配置输入,用来选择CycloneII设备的配置模式。详见表7-1。该引脚必须连到地或VCCIO。nCONFIG该引脚是配置控制输入引脚。若在用户模式该引脚被拉低,FPGA将丢弃其配置数据,进入复位状态,且使所有I/O引脚为三态。nSTATUS上电后,nSTATUS为低,经过POR时间后被释放。该引脚提供CycloneII设备状态的输入和输出。配置和初始化之后,把nSTATUS驱动为低电平不影响被配置的设备。表7-11列出了可选的配置引脚。若这些可选的配置引脚在QuartusII软件中未使能,它们可作为通用I/O引脚。所以在配置期间,这些引脚为用户I/O引脚且处于有弱上拉电阻的三态。,表7-11可选的配置引脚,CLKUSRCLKUSR是一个可选的由用户提供的时钟输入,用来同步一个或多个设备的初始化。在QuartusII软件中选项Enableuser-suppliedstart-upclock(CLKUSR)为ON时,使能该引脚。INIT_DONEINIT_DONE是一个状态引脚,用来指示设备初始化是否完成,是否处于用户模式。当nCONFIG为低且在配置开始时,该引脚是三态的且被一个外接的10k上拉电阻拉高,当INIT_DONE的使能位被编程到FPGA时,INIT_DONE引脚将变低。当初始化完成时,INIT_DONE将被释放且被拉高,FPGA进入用户模式。故监测电路必须能够检测到一个低到高的跳变。在QuartusII软件中选项EnableINIT_DONEoutput为ON将使能该引脚。DEV_OE当该引脚为低时,所有I/O引脚是三态的。当为高时,所有引脚的状态由编程决定。在QuartusII中选项Enabledevice-wideoutputenable(DEV_OE)为ON将使能该引脚。DEV_CLRn该可选引脚为低时,所有寄存器被清0,当为高时,所有寄存器由编程决定。在QuartusII中选项Enabledevice-widereset(DEV_CLRn)为ON将使能该引脚。,表7-12列出了专用的JTAG引脚,在配置之前和配置期间,JTAG引脚必须保持稳定以防止JTAG指令意外的装载。TCK引脚有一个弱内部下拉电阻且TDI和TMSJTAG输入引脚有内部弱上拉电阻。表7-12专用JTAG引脚,TDI指令、测试和编程数据的串行输入引脚。数据在TCK的上升沿被移入。若不用JTAG接口,该引脚应接Vcc,禁止JTAG电路。TDO指令、测试和编程数据的串行输出引脚。在TCK的下沿数据被移出。若数据没有正在被移出FPGA设备,该引脚为三态。若板子不用JTAG接口,该引脚应悬空,禁止JTAG电路。TMS提供控制信号的输入引脚,以决定TAP控制器状态机的变迁。在状态机内发生的转换发生在TCK的上沿。所以TMS在TCK的上沿到来之前必须被建立。若板子上不用JTAG接口,该引脚接Vcc将禁止JTAG电路。TCKBST电路的时钟输入,某些操作发生在上沿,而其他操作发生在下沿。,7.3FPGA的配置器件,FPGA操作期间,配置数据存贮在其内部的SRAM中。由于SRAM存贮器的易失性,FPGA每次上电后必须重新装载配置数据到SRAM中。Altera增强型配置器件(EPC16、EPC8和EPC4)支持单个高密度FPGA设备的配置。增强型配置器件由2个主要部分组成:控制器和Flash存储器。由于它的Flash容量大且具有解压缩特性,一个配置器件可保存多个FPGA的配置数据。未使用的Flash空间可被NiosII处理器访问。,表7-13总结了Altera配置器件的特性及它们的配置数据的容量。注意不是每个配置器件可用于配置所有的FPGA。表7-13Altera配置器件,7.3.1串行配置器件功能描述,串行配置器件具有以下特性使用AS模式配置StratixII和Cyclone系列的FPGA,具有1M、4M、16M和64M4种闪存容量。使用简单的4引脚接口。成本低、引脚数少和非易失性存贮器。配置期间低电流且接近0的备用模式电流。配置期间的低电流及接近零的备用模式电流。3.3V的操作电压。8脚和16脚SOIC封装(Smalloutlineintegratedcircuit)。NiosII处理器可通过AS的存贮器接口访问剩余的Flash空间。具有超过100,000次的擦写/编程周期的可重复编程存贮器。使用状态寄存器对存贮器扇区的写保护支持。利用SRunner软件驱动程序可进行在系统编程。可使用USBBlaster或ByteBlasterII下载电缆进行在系统编程。AlteraQuartusII软件的编程支持。运输时存贮器阵列被擦除(所有位为1)。,串行配置器件包括EPCS1、EPCS4、EPCS16和EPCS64器件。EPCS1和EPCS4器件;EPCS16和EPCS64器件具有相同的封装。串行配置器件的容量如表7-13所示。表7-14列出了每个StratixIIFPGA使用的串行配置器件。表7-14支持StratixII设备的串行配置器件,表7-15列出了CycloneIIFPGA使用的串行配置器件以及配置文件大小。表7-15CycloneII设备所使用的串行配置器件,表7-16列出了CycloneFPGA使用的串行配置器件及配置文件的大小。表7-16Cyclone设备所使用的串行配置器件,利用StratixII和Cyclone系列的FPGA新的数据解压缩特性,设计者可使用较小的串行配置器件配置较大的FPGA。,图7-25串行配置器件的方块图,7.3.2AS模式下的FPGA配置,StratixII和Cyclone系列的FPGA可使用串行配置器件在AS配置模式下进行配置。串行配置器件有4个信号直接与FPGA的控制信号接口。串行配置器件的DTAT、DCLK、ASDI和nCS分别与FPGA的DTAT0、DCLK、ASDO和nCSO信号相连。在图7-26中,串行配置器件在AS模式配置FPGA,通过下载电缆对其编程。,图7-26使用下载电缆对串行配置器件进行编程,图7-27使用APU或第3方编程器对串行配置器件进行编程,在配置过程中,FPGA作为配置主设备且为串行配置器件提供时钟。通过nCSO引脚将nCS信号拉低使能串行配置器件。在配置期间,FPGA控制nSTATUS和CONF_DONE引脚。配置成功后,FPGA释放CONF_DONE引脚,允许外接的10k电阻把该信号拉高。CONF_DONE变高后,初始化过程开始,初始化结束后,FPGA进入用户模式。,7.3.3AS模式下串行配置器件的存贮器访问,表7-17串行配置器件的存贮器组织,下面讨论访问串行配置器件中的存贮器的操作,1操作码DATA、DCLK、ASDI和nCS信号访问串行配置器件内的存贮器。配置器件的操作码、地址和数据串行移入和移出FPGA且高位在前。不同操作的输入数列不同。执行某个操作时,首先必须移入相应的操作码,然后是地址字节,最后是数据字节,二者也可以均无。操作数列的最后一位移入配置器件后,FPGA必须驱动nCS为高电平。表7-18列出了串行配置器件支持的操作数列。,表7-18串行配置器件的操作码,2写使能操作,图7-28写使能操作的时序图,3写禁止操作写禁止操作码是b00000100,最高位在前。写禁止操作复位写使能锁存位。为了防止存贮器的非法写入,当执行写禁止操作或在下列条件下,写使能锁存位自动复位。上电写字节操作完成写状态操作完成bulk擦除操作完成sector擦除操作完成图7-29为写禁止操作的时序图。,图7-29写禁止操作时序图,4.读状态操作读状态操作码是b00000101,最高位在前。利用读状态操作读状态寄存器。图7-30、图7-31列出了EPCS4和EPCS1中的状态寄存器。,图7-30EPCS4状态寄存器,图7-31EPCS1状态寄存器,WIP(writeinprogress)位被置1指示串行配置器件正在写或擦除周期中。复位该位意味着没有写或擦除周期正在进行当中。复位WEL(writeenablelatch)位指示没有任何写或擦除周期将被接受。当块保护位均为0时,bulk擦除操作才允许。当块保护位被置1时,相应的区域不允许字节写入操作或不允许扇区擦除操作。FPGA也可连续读状态寄存器,其时序如图7-32所示。,图7-32读状态操作时序图,5.写状态操作写状态操作码为b00000001,最高位在前。该操作将状态寄存器的块保护位置1,写状态操作对其他位没有影响。写状态操作之前必须执行写使能操作以将写使能锁存位置1。图7-33为写状态操作的时序图。数据字节的第8位被锁存后,nCS必须为高,否则写状态操作不被执行。nCS被驱动为高电平后,FPGA立即初始化自定时的写状态周期。自定时的写状态周期通常需5ms,且最大不超过15ms(见表7-24的tws)。在自定时的写周期时,WIP位为1,当它完成时为0。,图7-33写状态操作时序图,6读字节操作读字节操作码为b00000011,最高位在前。为了读出串行配置器件的存贮内容,首先nCS为低选中该器件,之后,读字节操作码被移入,后面是3个字节的地址(A230)。每个地址位必须在DCLK的上沿被锁入。地址锁入后,指定地址中的存贮单元内容在DATA引脚被串行移出,且最高位在前。对rpd(RawProgrammingData)格式的文件,串行移出时最低位在前。数据位在DCLK的下沿被移出。读字节操作的DCLK的最高频率为20MHz,图7-34是读字节操作的时序图。,图7-34读字节操作时序图,7读硅片ID操作,读硅片ID操作码是b10101011,最高位在前。读操作从DATA输出引脚读出串行配置器件的8位引脚,若在擦除或写周期进行读ID操作,操作被忽略,且不影响正在进行的操作。表7-20列出串行配置器件的硅片ID。,表7-20串行配置器件的硅片ID,图7-35读硅片ID操作时序图,8写字节操作,写字节操作码为b00000010,最高位在前。写字节操作允许把数据字节写入存贮器。该操作前必须首先执行写使能操作。使状态寄存器中的写允许位为1。若超过256个字节的数据在一个写字节操作中被移入配置器件,前面锁存的数据被丢弃,最后的256个字节被写入该页。若配置数据超过256个字节,则需多于1页的存贮器。在写一个新页之前,需发送写使能和写字节操作码,跟着3个新的目标地址字节以及256个数据。,最后一个字节数据的第8位被锁入后,nCS必须被驱动为高电平。否则,写操作不执行。每个写字节操作完成前,状态寄存器的写允许锁存位被清0,所以下一个写字节操作前必须执行写使能操作。nCS为高电平之后,器件立即初始化自定时(self-timed)的写周期,EPCS4写周期通常需1.5ms,EPCS1需2ms,最大不能超过5ms(见表7-24中的twb)。所以在写新的一页存贮器时,必须考虑该延时。另外,在自定时写周期进行时,通过执行读状态操作可检查WIP。在写周期时,该位被置1,完成时为0。,图7-36写字节操作时序图,9擦除Bulk操作,擦除Bulk操作码是b11000111,最高位在前。该操作将所有存贮位写为1或FFH。与写字节操作类似,在擦除bulk操作之前,必须执行写使能操作以至于状态寄存器的写使能锁存位被置为1。该操作执行过程是:nCS为低后,在ASDI引脚移入擦除操作码,操作码的第8个数据位被锁存后,nCS必须被驱动为高电平。图7-37为该操作时序图。,图7-37擦除Bulk操作时序图,10擦除扇区操作,擦除扇区操作操作码是b11011000,最高位在前。擦除扇区操作过程是:首先使nCS为低,然后通过ASDI引脚移入操作码,接着是选择扇区的3个字节的地址码。该地址码可以是所指定扇区内的任意地址。地址的最后一位被锁存后拉高nCS,图7-38是其时序图。,图7-38擦除扇区操作时序图,7.3.4电源与操作,讨论电源模式、POR(power_onreset)延迟、错误检测和串行配置器件的初始编程状态。1电源模式串行配置器件支持现用电源(activepower)和备用电源(standpower)模式。2上电复位上电期间有POR延时以确保系统电压达到稳定。3错误检测在串行配置器件的AS配置期间,FPGA通过nSTATUS和CONF_DONE引脚监视配置状态.,7.3.5串行配置器件的时序,图7-39写操作时序,表7-21写操作参数,图7-40读操作时序,表7-22读操作参数,表7-23AS配置下时序参数,7.3.6编程与配置文件,QuartusII支持串行配置器件的编程。选择串行配置器件后,QuartusII自动创建用来对配置器件进行编程的.pof(ProgrammerObjectFile)文件。外部微处理器通过SRunner可对串行配置器件进行在系统编程。在使用USBBlaster或ByteBlasterII下载电缆的串行配置器件在系统编程期间,电缆拉低nCONFIG引脚使FPGA复位。编程完成后,下载电缆立即释放上面4个引脚及FPGA的nCE引脚,发脉冲给nCONFIG,启动配置过程。,7.3.7串行配置器件的引脚描述,图7-41串行配置器件的8脚封装引脚图,图7-42串行配置器件的16脚封装引脚图,表7-24串行配置器件引脚描述,DATA在读/配置操作期间,该引脚将配置数据串行输出到FPGA。把nCS拉低启动配置器件,DATA信号在DCLK的下沿发生跳变。ASDI该信号用于将数据串行输入到配置器件。它接收串行配置器件的编程数据,数据在DCLK的上沿被锁存。nCS该信号在指令执行的开始和结束时发生跳变。当它为高时,器件未选中,DATA为三态。当它为低时,器件被使能且使设备为主动方式。上电后任何操作开始以前,nCS上应有一下降沿。DCLKDCLK由FPGA提供。它是串行接口的时序信号,在DCLK的上升沿,出现在ASDI上的数据被锁进串行配置器件,DCLK的下沿出现后,DATA上的数据发生改变且在上升沿被锁进FPGA。Vcc连到3.3V的电源信号。GND地信号。,7.4QuartusII中FPGA配置的选项,7.4.1配置选项,在QuartusII的Assignments下拉菜单中,双击Device.或Setting.选项,打开Settings画面,单击画面中DevicePinOptions按钮,打开DevicePinOptions对话框,在该对话框中的Configuration标签中可以设定配置模式和配置器件。如图7-43所示。,图7-43配置对话框,图7-44双用途引脚对话框,图7-45配置选项对话框,7.4.2配置文件的格式,QuartusII开发工具可创建多种格式的配置和编程文件来支持各种配置模式。当编译某个设计时,QuartusII将自动产生一个.SOF(SRAMObjectFile)和一个.POF(ProgrammObjectFile)文件,用于配置设备。1配置文件的产生为了设定QuartusII在编译期间产生的其他的配置文件格式,在DevicePinOptions对话窗口选中ProgrammingFiles标签,如图7-46所示。,图7-46编程文件对话框,图7-47转换编程文件对话框,2RAMObjectFile(.sof)当在QuartusII中使用USBBlaster、MasterBlaster、ByteBlasterII、EthernetBlaster或ByteBlasterMV等下载电缆直接下载配置数据到FPGA中时,在PS配置期间SOF文件被使用。3ProgrammerObjectFile(.pof)Altera的编程硬件使用POF文件编程配置器件。4RawBinaryFile(.rbf)RBF是一个包含配置数据的二进制文件。5RawProgrammingDataFile(.rpd)RDF文件是一个包含Cyclone配置数据二进制流的二进制文件。,6Hexadecimal(Intel-Format)File(.hex)或(.hexout)HEX文件是IntelHEX格式的ASCII文件。7TabularTextFile(.ttf)TTF是一个列表ASCII文件。8JamFile(.jam)Jam文件是一种STAPL格式的ASCII码文本文件,包含编码数据用于编程、配置、验证和查空JTAG链中一个或多个FPGA。9JamByte-CodeFile(.jbc)JBC文件是一种字节编码的二进制文件。包含设备编程信息,用于编程、配置、验证和查空JTAG链中一个或多个FPGA。,10SerialVectorFormatFile(.svf)SVF是一种ASCII码文本文件,11JTAGIndirectConfigurationFile(.jic)JIC是一种二进制文件,包含EPCS1、EPCS4、EPCS16和EPCS64串行配置器件数据和串行Flashloader设备名称。12InSystemConfigurationFile(.isc)ISC文件是IEEE1532使用的IEEE1532数据文件。可用于对许多Altera和非Altera设备进行编程。例如Max3000,Max7000B或Max7000AE等设备,其创建方法与Jam文件相同。,7.5FPGA配置调试技术,7.5.1板子布局DCLK典型地是一个低频信号,它驱动FPGA上的边沿触发的引脚。因而,DCLK引脚上任何上冲、下冲、环路或其他噪声都会影响配置。设计电路板时,DCLK布线应采用和CLOCK信号线一样的技术。这对TCK引脚同样适用,因为DATA的建立和保持时间与DCLK有关。,7.5.2调试技术,1对所有配置模式2多设备配置链3使用外部主机(例如微处理器或CPL)4使用配置器件5使用JTAG配置,7.6IDEFlashProgrammer介绍,基于NiosII处理器的许多设计经常利用板上Flash存贮器存放FPGA配置数据和NiosII程序。任何与FPGA相连的与CFI兼容的Flash可通过NiosIIIDE中的FlashProgrammer进行编程。CFI是一个Flash的接口规范,它提供不同厂商的Flash器件的公共接口。除此之外,它还能对与FPGA相连的Altera串行配置器件(EPCS)进行编程。,7.6.1NiosIIIDEFlashProgrammer的编程过程,FlashProgrammer包含两部分:主机部分和目标部分,如图7-48所示。主机部分运行在计算机上,它通过一个下载电缆将Flash编程文件发送到目标板。目标部分是用户的硬件设计,运行在FPGA上。它接收主机发送的编程数据,将数据写到Flash存储器中。为了能够使用FlashProgrammer进行编程,FPGA设计必须满足某些要求。,图7-48NiosII的FlashProgrammer的组成,7.6.2Flash编程模式,NiosIIIDEFlashProgrammer在两种模式下运行。IDE模式NiosIIIDE提供一个使用FlashProgrammer的一个简单接口,IDE模式可以满足大部分Flash编程的需要。命令行模式对高级用户,命令行模式提供对FlashProgrammer的完全控制,从命令shell,例如SDKshell,可以运行命令行FlashProgrammer实用程序。,7.6.3FlashProgrammer目标设计,使用NiosIIIDEFlashProgrammer,要求必须有一个有效的FlashProgrammer目标设计。该目标设计包含一个SOPCBuilder系统,该系统具有以下特性:至少包含表7-25所示的SOPCBuilder组件。指明一个目标板。在主机上运行NiosIIFlashProgrammer之前,目标设计必须运行在PFGA上。1最小的组件组合最小的组件组合提供目标设计与主机通讯、写数据到Flash存储器的功能。最小组合取决于所使用的Flash存储器的类型。表7-25列出了最小的组件组合。,表7-25FlashProgrammer目标设计的最小组合,图7-49包含最小组合的目标设计实例,2板子描述文件目标设计中的SOPCBuilder系统必须指定一个目标板,这就要求必须有一个SOPCBuilder板子描述。板子描述为FlashProgrammer提供必需的信息,例如系统中Flash存储器的地址和名称。Altera为Nios开发板提供了板子描述。如果使用定制板子,需要利用SOPCBuilder板子描述编辑器创建一个板子描述。,7.6.4Flash中的编程内容对Flash进行编程的数据分为3种类型。1.软件数据用户程序是NiosIIIDE创建的.elf文件。把用户程序编程到Flash,允许复位后从Flash中启动NiosIICPU。2.FPGA配置数据FPGA配置数据是.sof文件,利用NiosIIFlashProgrammer可把配置数据编程到Flash中。若使用配置控制器,上电复位时,FPGA可从Flash中配置。3.任意数据任意数据是需要编程到Flash中的任意类型的二进制数据。例如,图形、声音数据等。,7.6.5Flash文件Flash文件是已被格式化的数据文件,NiosIIIDEFlashProgrammer可以读取Flash文件。Flash文件的扩展名是.flash,可以用2flash实用程序从其他类型的数据文件创建Flash文件,然而使用NiosIIIDE对Flash进行编程,实用程序可以在后台运行。,7.7用户程序引导,7.7.1从CFIFlash中引导用户程序AlteraNios开发板使用EPM71228AECPLD作为配置控制器。上电复位后,配置控制器自动寻找Flash中的FPGA配置数据,若配置数据存在,则从Flash中自动配置FPGA。配置完成后,若配置的系统中包含一个复位地址在Flash地址空间内的NiosII处理器,则该处理器将从Flash中启动。NiosIIFlashProgrammer能够将FPGA配置数据和软件数据编程到Flash中的任何地址,故整个系统无论硬件和软件均可以从CFIFlash中启动。,7.7.2从EPCS串行配置器件中引导用户程序,若使用串行配置器件,系统的硬件和软件也能从配置器件中启动。NiosIIIDEFlashProgrammer也可将FPGA配置数据和软件数据编程到EPCS串行配置器件中。FlashProgrammer首先检查FPGA配置数据的大小,然后把软件数据附加到配置数据的后面。若从EPCS串行配置器件中启动,要求所开发的系统中包含有SOPCBuilder中的EPCSSerialflashcontroller组件。该组件中含有一小容量的片上ROM用于启动。,7.7.3引导复制(Boot-Copier)程序,执行elf2flash实用程序可以在用户程序前插入一个boot-copier。其参数包括base、-end、-reset和.elf文件中软件所链接的地址。当且仅当复位地址在Flash地址空间内且.elf文件被链接到Flash之外的地址处时,elf2flash实用程序将在软件内容前插入一个boot_copier。,7.8在IDE模式下使用NiosIIFlashProgrammer,IDE使Flash存储器的编程过程自动化,允许在图形界面下对参数进行控制,一次操作即可完成将软件、硬件和二进制数据编程到Flash存储器中。推荐尽量在IDE模式下使用NiosII的FlashProgrammer。NiosIIIDE所完成的功能与命令行完全一样,但NiosIIIDE使过程更加自动化,且采用图形方式进行选项设定。,使用NiosIIIDE进行Flash编程的步骤如下:1.从SOPCBuilder中的SystemGeneration标签或者从Start菜单中,起动NiosIIIDE。2.建一个软件工程。3.选择ToolsFlashProgrammer,如图7-50所示。4.单击New5.选中Programmerflashmemorywithsoftwareproject,将工程的.elf文件编程到Flash。检查工程文件名是否正确。6.选中Buildprojectanddependents(ifrequired)beforelaunching。,7.选中Programafileintoflashmemory,编程一个二进制文件到Flash中。单击Browse,选择要编程的文件。选择要编程的Flash存贮器。键入Flash存贮器的偏移地址。8

温馨提示

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

评论

0/150

提交评论