CycloneII系列FPGA配置手册_第1页
CycloneII系列FPGA配置手册_第2页
CycloneII系列FPGA配置手册_第3页
CycloneII系列FPGA配置手册_第4页
CycloneII系列FPGA配置手册_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、幸幸*-arvJtrJhi-istrsdJarir-sirdlbr-sdkrrir-slr-Jr-iBriJk-air-salr-Air幸*幸*44*CycloneII系列器件配置手册I硬件设计培训使用手册!*TOC o 1-5 h z* HYPERLINK l bookmark30幸*車*S*申*幸J半*I幸*卡*J幸*車*S*幸*卡*电*奉*幸幸半*J*宰*申*Rev.AuthorDateDescription0.1Tenglong2007-1-24FirstDraft说明:此文档用作硬件技术培训,主要面向硬件设计、调试工程师;FPGA的软、硬件工程师同等条件培训。但作为FPGA硬件设计工

2、程师对本文档中涉及的内容要了如指掌,此为FPGA硬件设计工程师必备手册;当然软件设计人员也要比较熟悉这部分内容。*本文档是培训人员使用手册,其中使用粉红色标记的地方为学员不可见部分,需要培训人员作详细讲解。本文档培训时间大致为2到3个小时。2警f-iS-晟目录-YitA_TATatiT目录第一节、本文介绍:第二节、CycloneII器件配置概述:第三节、配置文件格式第四节、配置数据压缩第五节、AS模式:1、AS模式下配置一个CycloneII系列FPGA:2、AS模式下多器件配置3、同一个配置数据配置多个器件4、估算AS配置时间5、串行配置器件的编程第六节、PS模式:1、使用MAXII器件对单

3、CycloneII器件的配置2、使用MAXII器件对多CycloneII器件的配置3、使用微机对多CycloneII器件的配置4、使用配置器件对单CycloneII器件的配置5、使用配置器件对多CycloneII器件的配置6、使用下载电缆对CycloneII器件的配置第七节、JTAG配置模式:JTAG模式下对单CycloneII器件的配置JTAG模式下对多个CycloneII器件的配置用JTAG接口在系统环境下对串行配置器件编程.3.4.4.4.5.6.6.91012121414162020202123232627T1TAT第八节:CycloneII器件配置管脚简介:第九节:总结:rl第十节:

4、使用Flash配置CycloneII器件:第十一节:配置调试及调试技巧:1、可靠性配置问题:2、板子Layout技巧:3、调试建议:TWJ-警f-iS-晟管脚的电平状态,请参照表4-1。表4-1CycloneII配置模式配置模式MSEL1MSEL0描述AS(20MHz)00使用串行配置器件(EPCS1、EPCS4、EPCS16或EPCS64)PS01使用增强配置器件(EPC1、EPC2、EPC4、EPC8或EPC16)或者是微机加上电缆FastAS(40MHz)10同AS模式JTAG*下载电缆和微机(外部控制器)第三节、配置文件格式第一节、本文介绍:半*I由于CycloneII系列器件是用易失

5、性的SRAM结构单元来存储配置数据的,所以在每次系统上电时都要进行重配置。用户可以使用DCLK频率高达40MHz的AS(主动串行)模式、PS(被动串行)模式或是JTAG对FPGA器件进行配置操作。另外,为了减小存储需求和配置时间CycloneII系列器件能够使用压缩数据进行配置。JLI本文的目的是让用户了解CycloneII器件的配置特点,让用户掌握如何使用CycloneII器件所支持的配置方式对此系列FPGA进行配置。同时,也会介绍配置管脚的使用及配置文件的格式等相关信息。第二节、CycloneII器件配置概述:用户可以使用AS、PS和JTAG模式配置CycloneII系列FPGA。选择何种

6、配置方式取决于MSEL表4-2列出了几个CycloneII系列器件的没有压缩过的配置文件的大小(近似值)。如果要计算多器件配置时的配置数据的存储空间,可以将相应的值相加。表4-2CycloneII器件的.rbf文件大小(RawBinaryFile)器件数据大小(Bits)数据大小(Bytes)EP2C51,265,792152,998EP2C81,983,536247,974EP2C203,892,496486,526EP2C356,858,656857,332EP2C509,963,3921,245,424EP2C7014,319,2161,789,902;用表4-2的值只是为了在设计之前大

7、致的估计配置文件的大小。不同的配置文件格式的大小并不一样,但即使是不同款的设计软件,只要目标器件一定的情况下,那么它编译的无压缩配置文件大小是固定的;而压缩过的文件大小在每次编译时都有所改变,这是由设计时的压缩比例来决定。第四节、配置数据压缩*ICycloneII器件支持配置数据的压缩,这能节省配置数据存储的空间以及配置时间。这个特性使得设计者能够将压缩过的配置数据存储在配置芯片或者其他的存储器(Flash)中,并且传送的也是压缩过的数据流文件。在配置期间,CycloneII器件实时解压这些数据流并且将其配置到SRAM单元中。数据压缩能使得配置数据减小35%-55%左右。|需要注意的是,Cyc

8、loneII器件不支持在JTAG模式下的配置数据流的解压缩,只能在AS及PS模式下进行。卡尽管压缩算法一样,但CycloneII器件与增强配置器件(EPC4、EPC8、EPC16)的解压缩特性却不一样,在增强配置器件中存储的压缩数据在传送给CycloneII器件之前就进行解压缩了。t在PS模式下,为了减少配置时间,用户可以使用CycloneII器件的解压特性而发送压缩过的配置数据进行器件配置。需要注意的是在使用增强配置器件的时候,用户不能同时使用CycloneII和增强配置器件的解压特性。(在这里要用实例说明,也可能需要演示)TATArITATAri,iATArItITiTATArXTifAT

9、丄ATATL-fir1YAT当然也可以在AS模式下,使用CycloneII器件的解压特性进行配置,但这个时候用户存放配置数据的是串行配置器件(EPCS1、EPCS4、EPCS16orEPCS64)。当用户使能了压缩功能,QuartusII软件就会产生压缩过的配置数据文件。这个压缩文件能够减少数据在配置器件或Flash(这种需要协控制器)中存放的空间,当然也能减少配置过程所花费的时间(可以想出为什么会)。f有两种方法能够使能CycloneII器件配置数据的压缩:一种是在编译之前(在编译设置中),:另一种是在编译后(在转换配置文件格式下)。(在这里打开QuartusII软件演示一下)在此介绍T一下

10、后者的基本步骤:*t在File下拉菜单中点击ConvertProgrammingFiles;TOC o 1-5 h z选择编成文件类型。只有ProgrammerObjectFile(.pof)、SRAMHEXOUT(.hexout)、RawfBinaryFile(.rbf)、TabularTextFile(.ttf)支持数据压缩;|f3.如果是产生.pof,则需要选择器件;(增强配置器件还可以进行设置)J*4.选择AddFile增加.sof文件;車5.选中加入的.sof文件,点击Properties;|6.选中Compression选框。f幸*当用户对多个CycloneII器件进行配置时,配置

11、数据压缩同样也可以针对每个器件进行选择。TT在下图4-2中,在配置链路上有两个CycloneII器件,如果第一个CycloneIIFPGA使用了压缩使能,那么它会从配置器件中接收到压缩过的配置数据;而第二个CycloneIIFPGA没有使用数据压缩,那么它将接收到非压缩的配置数据流文件。(在后面章节会详细简述多器件配置问题) #*4*凰 *4*凰图4-2压缩或不压缩配置数据的配置第五节、AS模式:在AS配置模式下,要使用串行配置器件来配置CycloneII系列FPGA,这些配置器件是低成f本、非易失性设备,只有4个信号接口,这些优良特性使其成为理想的低成本配置解决方案。;这种器件使用串行接口来

12、传送串行数据。在配置时CycloneII系列FPGA通过串行接口读取|配置数据或经过压缩的数据来配置内部的逻辑单元。这种由FPGA来控制外部器件的配置方式就是;主动串行模式(Activeserial),而有外部设备(如PC机,或其他设备)控制FPGA进行配置的方:幸式称为被动串行模式(Passiveserial)。幸表4-3列出了AS配置模式时,MESL的管脚状态。1表4-3CycloneII器件配置模式选择配置模式MSEL1MSEL0AS(20MHz)00FastAS(40MHz)101、AS模式下配置一个CycloneII系列FPGA:;串行配置器件具有4个I/O接口:串行时钟输入(DCL

13、K)、串行数据输出(DATA)、AS数据输入|(ASDI)和片选信号(nCS)。这四个信号与CycloneII系列FPGA相连的示意图如下图4-3所示: #wr #wr彎 wr wr彎图4-3AS模式下单芯片配置示意图、亠注意:、Vcc为3.3V;、CycloneII器件使用ASDO信号控制串行配置控制器;、此信号可以不连接,或用于通用I/O口;在CycloneII器件上电重起时,将nSTATUS和C0NF_D0NE信号拉低,将所有I/O口设置为高阻态(大概100ms)。重起后CycloneII器件释放nSTATUS,使得外部10K的上拉电阻将nSTATUS信号拉高,从而进入配置模式。此时所有

14、I/O口仍然持续高阻态。幸*|整个配置过程包括:重起(reset)、配置(configuration)以及初始化(initialization)阶段。|j(1)、重起阶段f当nCONFIG或nSTATUS为低电平的时候,器件(FPGA)处于重起状态。重起之后CycloneII器件释放nSTATUS,外部10K上拉电阻将其拉高,此时器件进入配置状态。(配置管脚所在的Bank|区的VCCIO和VCCINT都要有正常的电压;如果nSTATUS不能拉高也能下载,但CONFIG_DONE信号|不能拉高,也就是下载后没反应)(系统一上电,芯片就进入到重起阶段并完成此阶段):(2)、配置阶段由Cyclone

15、II器件内部产生的串行时钟(DCLK)用来控制整个配置过程,CycloneII器件内部可以产生DCLK信号时钟,使用MESL管脚可以选择时钟频率为20MHz或40MHz40MHz的频率可以使得配置所花费时间更短。由于温度、电压等因素的影响,内部产生的DCLK的频率并不固定,见下表4-4所示。表4-4DCLK的频率内部频率选择最小典型最大单位740MHz202640MHz20MHz101320MHz在AS和FastAS模式下,串行配置器件在DCLK的上升沿锁定输入和控制信号,在DCLK的下降沿输出配置数据。而CycloneII器件在DCLK的下降沿输出控制信号,也在下降沿锁定输入的配置数据。T在

16、配置时CycloneII器件通过nCSO信号(此信号连接串行配置器的nCS)选中串行配置器件。之后CycloneII器件通过串行时钟信号(DCLK)及串行地址信号(ASDO)来发送控制命令和地址信号;串行配置器件使用DATA信号发送配置数据到CycloneII器件的DATAO接口。在CycloneII器件接收到所有的配置数据后,就会释放C0NF_D0NE,使得外部连接的10K上拉电阻将其拉高。当然,此时CycloneII器件停止对DCLK信号的控制。一旦CONF_DONE信号进入高电平的时候,那么就进入初始化状态。这样也就是说一定要在CONF_DONE信号上接入10K的上拉电阻。所有的AS配置

17、信号(DATA0、DCLK、nCS0、ASD0)在FPGA内部都有一个一直工作的微弱的上拉电阻。因此,在配置之后,这些信号都被拉高。(3)、初始化阶段在CycloneII器件中,初始化时钟信号即可以是芯片内部产生(与DCLK不一样)也可以使用可选的CLKUSR管脚。内部时钟是默认的初始化时钟信号,这有利于CycloneII器件进行更合理的初始化过程,也避免用户给FPGA的CLKUSR管脚提供额外的时钟信号。此时你可以将CLKUSR用作通用I/O接口。如果用户想要延迟初始化,则可以使用CLKUSR管脚。使用CLKUSR使得用户可以控制芯片何时进入用户状态。当用户使能了UserSuppliedSt

18、art-upClock选项,则CLKUSR就是初始化的时钟信号。这并不影响配置过程。在接收到所有的配置数据并且CONF_DONE被拉高后CycloneII器件需要299个时钟周期才能完成初始化进程CLKUSR的最高频率为100MHz。.iCycloneII器件用INIT_DONE信号的由低到高的转变,来表明结束了初始化进程而进入到用户模式下。EnableINIT_DONEoutput选项被选中的时候INIT_DONE信号才有效。(有必要说明此选项在何处进行设置)。如果使用此信号,则要将此信号线上接入10K的上拉电阻,目的是在配置一开始且nCONFIG为低时将此信号拉高。一旦使用此信号的标志位(

19、在配置数据的第一帧中)进入FPGA器件后,INIT_DONE信号进入低电平。此信号由低到高的转变则标志了器件进入了用户模式状态。如果用户没有使用此信号,初始化过程的结束是在CONF_DONE信号变高后再经过299个时钟周期(此时使用了CLKUSR)或是在CONF_DONE变高后经Tcf2um(见表4-7)(此时使用的是内部的时钟)。(4)、用户阶段当初始化过程结束后,FPGA进入用户模式状态。在用户模式下,用户I/O口上并不再使用内部微弱的上拉电阻,而是由用户的设计来决定。当器件在用户模式下,用户可以将nCONFIG信号置低,来进行重新配置。此信号置低的时间最少要保持40us。当此信号为低时,

20、CycloneII器件重起,进入重起阶段oCycloneII器件也将nSTATUS和CONF_DONE拉低且所有I/O口为三态。一旦nCONFIG和nSTATUS进入高电平后,则进入重配置状态。 亠*暴 亠*暴彎(5)、配置过程中出错辛如果在配置过程中出现错误CycloneII器件将nSTATUS信号拉低来表明数据帧的错误,此时幸C0NF_D0NE信号仍为低。如果用户在软件中使能了Auto-Restartconfigurationaftererror选项,CycloneII器件将通过cCSO信号将串行配置器件重新设置,且在重起时间之后(40us)释放nSTATUS,从而进行重配置工作。如果Au

21、to-Restartconfigurationaftererror没有开启,则外部系统必j须监控nSTATUS上的状态。一旦出现错误,则将nCONFIG信号拉低至少40us以便重新配置器件。(如果用户使用了CLKUSR,则还有问题要处理)2、AS模式下多器件配置用户可以使用一个串行配置器件来配置多个FPGA器件,可以使用芯片使能(nCE)及芯片使能输出(nCEO)信号级联多个FPGA芯片。将第一个FPGA的nCE接地,将输出(nCEO)接到下一个芯片的输入上(nCE),且在后面的nCE信号上使用外部10K的上拉电阻。当第一个器件获得配置数据后,就会将将nCEO拉低,从而对下个器件进行配置。最后

22、一个器件的nCEO可以悬空也可以用作通用I/O口。|(注意:在默认情况下,Quartus软件将CycloneII器件的nCEO设置为输出低电平(连接到Gnd),如果器件在级联链路中,则要确保nCEO没有用作用户接口。)在链路中的第一个CycloneII器件是配置控制者,它负责整个链路上的配置。对第一个CycloneII器件选用AS模式来进行配置,而其他的器件使用PS模式。由于所有其他的Altera的器件都支持PS配置模式,所以也可以将其他器件连接到此链路中。在多器件链路中,每个器件的nCONFIG、fnSTATUS、CONF_DONE、DCLK和DATAO信号都连在一起,如下图4-4所示:AT

23、Lsriliri,IfATi.IfxLsri图4-4AS模式下多器件的配置电路TATI?ATliiATX_iT4T4l_MixiAlxAT1_XOTATXL_MIXHIX_TXTATAT WJ-XOTXATAiI4l_4TX_18lxirl_iTX#ixl_MI4Atlii4r说明:、Vcc为3.3伏;、此电压为nCEO所在的Bank区的Vccio电压;e、nCE0可浮空或用于普通I/O;如上图所示,连路中所有器件的nC0NFIG、C0NF_D0NE都连接在一起,并在外部接入了10K的上拉电阻。在第一个器件接收到所有的配置数据后,将它的nCEO信号置低,并且释放CONF_DONE信号,但后面的

24、设备在接收到配置数据之前仍然保持CONF_DONE信号为低。当所有的设备都得到它们的配置数据后且释放CONF_DONE后,外部的上拉电阻将此信号拉高,从而使得链路中所有设备同时进入初始化状态。(进入初始化状态,始终选择仍像上面的初始化过程中的一样。所不同的是当用户使用CLKUSR时钟时,可任意控制链路上的任何一个器件进入用户模式的时间,也就是说用户可以控制链路上设备进入用户状态的先后顺序。但这需要对每个设备的CLKUSR都使用单独的时钟信号。不同系列的FPGA器件需要的初始化时钟周期数是不一样的。也就是说,如果在链路中使用了不同系列的FPGA器件,那么它们进入用户状态的时间就会稍稍有些差别。而

25、如果在此链路上使用了同一系列的FPGA器件,那么它们进入用户状态的时间是一致的。此配置过程出现错误和单芯片的配置是同样处理的;如果用户级联了CycloneII器件,那么就不能在级联配置芯片了。如果配置数据的大小超出了穿行配置芯片的容量,那么用户就不得不更换大容量的芯片或者对配置数据进行压缩了。配置多个器件的配置数据的大小是每个器件配置数据大小的总和。)3、同一个配置数据配置多个器件在一些情况下,用户需要使用同一个配置数据对多个器件进行统一配置。在这个介绍两种方法来实现。在这两种方案中用户都不能将穿行配置器件进行级联。(1)多SOFs配置方案这种方案中,需要在串行配置器件中存放2个SOFs文件(

26、可以不一样),用第一个配置数据(SOF)配置第一个主控器件;第二个配置数据(SOF)配置其他剩下的所有器件。这时第一个器件是通过主动串行(AS)模式,其他的器件是通过被动穿行(PS)模式进行配置的。如下图4-5所示:图4-5两个SOF文件多器件配置蛊说明:同图4-4翼丰*连接4个同样的CycloneII器件,后面3个器件的配置工作是并发的(同时进行);主控器件的nCEO输出连接到后面所有器件的nCE上。其他信号的连接如图所示。(在第一个配置一开始时,主设备读取它的配置数据的同时将nCEO信号拉高,等到配置完成:时才将nCEO信号拉低;之后进行从器件配置数据的传送(从串行配置器件中获得),然后同

27、时配置J后面3个器件;此方案中第一个SOF可以和后面的不一样,但后面三个的是一样的。也就是说第一个器件可以与后面的3个器件不是同一个型号,而后面的3个必须是同一个型号。这种方案中的SOF文件可以是经过压缩的。)(2)单SOF配置方案T这种方案中,所有器件都使用同一个SOF文件,在串行配置器件中只存储了一个SOF文件。第一个器件使用AS模式进行配置,其它的器件都使用PS模式。如下图4-6所示:11 # #WJ-图4-6单SOF配置多个器件说明:同上(在这种方案中,所有的器件同时进行配置工作。由于CycloneII器件具有一样的配置时钟周期,这样能减少AS模式配置时间。t将所有器件的nCE信号连接

28、到Gnd,可以将nCEO信号浮空或用作通用I/O口。此方案中的SOF文件也可以是经过压缩的。)f用户最好在DATA和DCLK上加入Buffer,如上图所示。4、估算AS配置时间;AS配置时间就是从串行配置器件传送配置数据到CycloneII器件所花费的时间。可以根据表4-4的DCLK的时钟频率进行计算。(拿EP2C5的配置数据为l,223,980bits,DCLK为20M来计算)配置时间(估算)二配置数据的大小*(DCLK的时钟周期/1bit).LT=l,223,980bits*(50ns/1bit)=61.2ms(配置时间主要取决于DCLK的速率以及配置数据的大小,一般经过压缩的配置数据能节

29、省50%f的配置时间。)5、串行配置器件的编程串行配置器件是非易失、基于Flash构架的串行设备。用户可以使用Altera提供的BBII或USBBlaster下载电缆对此器件进行在线编程。在对该器件进行编成期间,下载电缆通过将nCE拉高来禁止FGPA器件访问AS接口。CycloneII器件也进入重起状态(nSTATUS被拉低)。在下载(对EPCS编程)之后,电缆释放对nCE和nSTATUS信号的控制,允许下拉(nCE)和上拉(nSTATUS)电阻对其进行控制。如图4-7所示: # #WJ-.1图4-7AS接口示意图说明:、Vcc为3.3伏;、可浮空或用于通用I/O口;、为电缆供电,一般为3.3

30、V图4-8显示了AS模式配置数据时的各信号的时序 # #WJ-图4-8AS模式配置时许图第六节、PS模式:用户可以使用PS配置模式对CycloneII器件进行配置。在此模式下,由外部控制器(如PCj机、MaxII系列CPLD或其它嵌入式系统)控制整个配置过程。配置数据在DCLK的上升沿由DATAO输入到CycloneII器件的内部。(在PS模式下,可以使用CycloneII器件的解压缩特性)在PS模式下MSEL=01;1、使用MAXII器件对单CycloneII器件的配置j在PS模式下,可以使用MAXII器件作为外部控制器,将配置数据从外部存储器(Flash)传|送到CycloneII器件。配

31、置数据的存储格式可以是RBF、HEX、TTF等。图4-9为MAXII器件与CycloneII器件连接的示意图。*图4-9用外部控制器控制的配置模式示意图 #WJ-说明:、Vcc=3.3V;、nCE0可浮空或用作普通I/O系统加电后CycloneII器件经过大约100ms的重起阶段,nSTATUS被拉低,所有用户I/O为高阻态。(I/0口上的内部上拉电阻在配置期间始终有效):真个配置过程由:重起阶段、配置阶段和初始化阶段组成。i|(1)、重起阶段:!1:在此阶段CycloneII器件的nCONFIG和nSTATUS被拉低,MAXII必须将nCONFIG由低拉高才j:能结束重起而进入到配置阶段。(

32、要求各Bank区的电压正常)|当nCONFIG由低变为高时CycloneII器件退出重起阶段,将nSTATUS信号释放,使得外部的:10K上拉电阻将其拉高。使得CycloneII器件进入配置阶段而准备接收配置数据。MAXII能决定器件何时开始配置。(2)、配置阶段:I|在CycloneII器件的nSTATUS变为高电平后,MAXII器件通过DATAO管脚发送配置数据。如|果使用配置数据的格式为RBF、HEX或TTF类型,则先从每个字节的最低位开始发送。例如:你要j发送的数据为021BEE01FA,那么最先传送的数据流为10000111-01111000-0000|

33、0101-1111。ICycloneII器件通过DATA0管脚接收数据,使用DCLK管脚接收时钟信号。数据在DCLK的上升|沿存入FPGA,直到CONF_DONF变高之前,数据被连续的存入到目标器件。在CycloneII器件成功|的接收到所有的配置数据之后,就会释放C0NF_D0NE,使得外部的10K上拉电阻将其拉高C0NF_D0NE1:f信号由低到高的转变则说明器件结束了配置阶段而进入到初始化阶段。(C0NF_D0NE信号上一定要介入10K的上拉电阻。配置时钟频率必须低于指定的系统频率,DCLK没有最大周期限制,也就是说通过DCLK信号,用户可以暂停配置过程)(3)、初始化阶段:i|在Cyc

34、loneII器件中,初始化时钟信号即可以是芯片内部产生(与DCLK不一样)也可以使用|可选的CLKUSR管脚。内部时钟是默认的初始化时钟信号,这有利于CycloneII器件进行更合理的初始化过程,也避免用户给FPGA的CLKUSR管脚提供额外的时钟信号。此时你可以将CLKUSR用作通用I/O接口。;如果用户想要延迟初始化,则可以使用CLKUSR管脚。使用CLKUSR使得用户可以控制芯片何时f进入用户状态。当用户使能了UserSuppliedStart-upClock选项,则CLKUSR就是初始化的时钟信号。这并不影响配置过程。在接收到所有的配置数据并且CONF_DONE被拉高后CycloneI

35、I器件需要299个时钟周期才能完成初始化进程CLKUSR的最高频率为100MHz。CycloneII器件用INIT_DONE信号的由低到高的转变,来表明结束了初始化进程而进入到用户f|模式下。EnableINIT_DONEoutput选项被选中的时候INIT_DONE信号才有效。(有必要说明此选项|在何处进行设置)。如果使用此信号,则要将此信号线上接入10K的上拉电阻,目的是在配置一开:始且nCONFIG为低时将此信号拉高。一旦使用此信号的标志位(在配置数据的第一帧中)进入FPGA器件后,INIT_DONE信号进入低电平。此信号由低到高的转变则标志了器件进入了用户模式状态。I如果用户没有使用此

36、信号,初始化过程的结束是在CONF_DONE信号变高后再经过299个时钟周期(此j15时使用了CLKUSR)或是在CONF_DONE变高后经Tcf2um(见表4-7)(此时使用的是内部的时钟)。(不建议使用INIT_DONE信号坐位通用I/O口,因为这样用的话,至少要在CONF_DONE变高之后等Tcf2um,确保器件进入用户使用阶段才能正常使用此端口。TOC o 1-5 h z虫出I确定MAXII器件在配置阶段、初始化阶段及器件进入用户使用阶段之前没有奖CONF_DONE信!i号拉低。)!1:(4)用户使用阶段:j:|初始化完成之后CycloneII器件进入到用户使用阶段。在此阶段,用户I/

37、O口上不再有微弱|的上拉电阻,各个IO口如何连接,决定于用户的设置。确保在配置结束后DCLK和DATAO没有浮空,MAXII器件必须将它们拉高或拉低。在配置完成后,CycloneII器件的DATAO管脚不能用于用户I/O口使用。当器件在用户模式下,用户可以将nCONFIG信号置低,来进行重新配置。此信号置低的时间最I|少要保持40us。当此信号为低时,CycloneII器件重起,进入重起阶段oCycloneII器件也将nSTATUS|t和CONF_DONE拉低且所有I/O口为三态。一旦nCONFIG和nSTATUS进入高电平后,则进入重配置状辛态。(5)配置过程发生错误ATIfATL-fiTr

38、l如果在配置过程中发生错误CycloneII器件将nSTATUS信号拉低使得MAXII器件得知出现错误。如果用户在软件中使能了Auto-Restartconfigurationaftererror选项CycloneII器件在经过一个重起时间(大约40us)释放nSTATUS信号,使得外部的10K上拉电阻将其拉高。这时MAXII器件在不给nCONFIG低电平脉冲(重起用)的情况下重新进行配置。如果没有选中Auto-Restartconfigurationaftererror选项,MAXII器件必须产生一个低脉冲(40us)给nCONFIG,使得CycloneII器件进行重起。MAXII器件同时也

39、监测CONF_DONE和INIT_DONE这两个信号来确保配置成功。MAXI!器件必I须监测CycloneII的CONF_DONE信号,来探测错误和获知配置结束。如果所有的配置数据都已经发送,但CONF_DONE或INIT_DONE都没有变高,那么MAXII器件就重新配置目标器件。|2、使用MAXII器件对多CycloneII器件的配置用MAXII器件对多CycloneII器件的配置与对单CycloneII器件的配置很相似,不一样的是级联了多个CycloneII器件。如下图4-9所示:WJ- #升缶水 #升缶水警 升缶水 #升缶水警图4-10PS模式下MAXII器件对多CycloneII器件的

40、配置说明:、Vcc=3.3V;、Vcc连接到nCEO所在的Bank区I/O电压;、同以往在多器件PS模式下,将第一个CycloneII器件的nCE接到Gnd,将nCEO接到下一个器件的nCE上。在外部使用10K的上拉电阻将nCEO拉高。在第一个器件配置完成后,会将它的nCEO拉低,使得下一个FPGA的nCE使能,让下一个FPGA在不到一个时钟周期内进入配置状态。因此,MAXII器件在不中断的情况下将配置数据传送给下一个FPGA。可以使最后一个nCEO管脚浮空或用于通用I/O口。t(注意:在默认情况下,Quartus软件将CycloneII器件的nCEO设置为输出低电平(连接到:|Gnd),如果

41、器件在级联链路中,则要确保nCEO没有用作用户接口。)!用户必须将CycloneII器件的nCONFIG、nSTATUS、DCLK、DATAO和COBF_DONE这些信号分别f连接在一起。配置信号上可能需要Buffer来保持信号的完整性和防止时钟倾斜。每经过三个器件就要对DCLK和DATA这两个信号进行缓冲,这是因为所有器件的CONF_DONE都联在一起,所有器件电初始化和进入用户使用状态是在同一时刻。因为所有器件上的nSTATUS和CONF_DONE都是连接在一起的,所以在任意一个CycloneII器件上出现配置错误,都会使得整个链路上的配置停止而进入重配置状态。(如果第一个CycloneI

42、I器件监测到错误,它会将nSTATUS信号拉低来重起整个链路。这和单个CycloneII器件的配置是t一样的。)+审*如果用户在软件中使能了Auto-Restartconfigurationaftererror选项CycloneII器件在经过一个重起时间(大约40us)释放nSTATUS信号,使得外部的10K上拉电阻将其拉高。这时MAXII器件在不给nCONFIG低电平脉冲(重起用)的情况下重新进行配置。如果没有选中Auto-Restartconfigurationaftererror选项,MAXII器件必须产生一个低脉冲(40us)给TnCONFIG,使得CycloneII器件进行重起。:(

43、进入初始化状态,始终选择仍像上面的初始化过程中的一样。所不同的是当用户使用CLKUSR|时钟时,可任意控制链路上的任何一个器件进入用户模式的时间,也就是说用户可以控制链路上设备进入用户状态的先后顺序。但这需要对每个设备的CLKUSR都使用单独的时钟信号。17不同系列的FPGA器件需要的初始化时钟周期数是不一样的。也就是说,如果在链路中使用了不同系列的FPGA器件,那么它们进入用户状态的时间就会稍稍有些差别。而如果在此链路上使用了同一系列的FPGA器件,那么它们进入用户状态的时间是一致的。)I如果在你的系统中使用的是同一种型号的CycloneII系列FPGA(大小、速度等级、封装),并*且它们的

44、配置数据相同。那么用户将这些芯片的nCE连接到Gnd,且其他的配置信号分别连接在一起,就可以像配置一个器件一样来配置这些器件(节省配置时间)。这种情况下,nCEO管脚就可以用作通用I/O口来使用。为了保证信号的完整性以及防止时钟信号倾斜,要在DATA和DCLK链路上f加入Buzzer(每4个器件需要加入一组)。所有器件开始配置和完成配置的时间是一致的。图4-11给出了PS模式下所有器件同时接受配置数据的示意图:图4-11PS模式下多器件同时接收配置数据示意图说明:同上(用户也可以在单一链路中接入不同系列的FPGA芯片)PS模式配置时序:在最大配置时钟频率下,各配置信号必须满足建立时间与保持时间

45、的要求。在PS模式下使用外部控制器对CycloneII器件进行配置时,必须要满足图4-12所示的时序要求。警警 警警图4-12PS模式下配置信号时序波形图说明:、此图是在用户模式下开始,所以nSTATUS、nCONFIG和CONF_DONE都是高电平,当nSTATUS进入低电平后,器件进行重起。、上电之后CycloneII器件将nSTATUS信号拉低40us以上的时间;、上电后,在配置阶段没退出之前(初始化阶段之前),CONF_DONE始终为低电平。、在PS模式下,DCLK为输入;在AS模式下DCLK为输出;表4-5CycloneII器件的PS配置时序图(器件使用内部时钟)符号说明最小值最大值

46、单位T丄porPORDelay(重起延迟)100msTcf2cdnCONFIG为低电平到CONFDONE为低电平的时间800nsTcf2stoCONFDONE为低电平到nSTATUS为低电平的时间800nsTcfgnCONFIG为低电平的时间40usT丄statusnSTATUS为低电平的时间1040usTcf2st1nCONFIG为高电平到nSTATUS为高电平的时间40usTcf2ckCONFIG为高电平DCLK第一个上升沿的时间40usTst2cknSTATUS为高电平DCLK第一个上升沿的时间1usTdsuDCLK上升沿到来之前的数据建立时间7nsF表4-5列出了CycloneII器件

47、PS模式下配置时序:_.T41rAtIT1fIT1r4TLtXT4r4rArIT1r1iri!AT4iS-、进入到用户使用模式下,要将DATA拉低或拉高。Tdh上升沿到来后数据的保持时间0nsTchDCLK为高电平的时间4nsTclDCLK为低电平的时间4nsTclkDCLK的周期10nsfmaxDCLK的频率100MHzT丄cd2umC0NFD0NE为高到进入用户模式的时间1840usTcd2cuC0NF_D0NE为高到CLKUSR使能的时间4个DCLK的最大周期数Tcd2umcC0NF_D0NE为高到进入用户模式下CLKUSR开启时间Tcd2cu+(299个CLKUSR周期)3、使用微机对

48、多CycloneII器件的配置在PS模式下,微机能够从存储器中读取配置数据传送到CycloneII器件。可以参考第六节中*第一部分的内容,其中的MAXII器件可以换成微控制器(单片机等)。这部分的配置过程和第六章第一节的过程一致,也就是将MAXII器件换成了微控制器。4、使用配置器件对单CycloneII器件的配置.1这里说说的配置器件并不是前面说将的串行配置器件,而是EPC1、EPC2或增强型的配置器件。个人认为在CycloneII器件上使用这种配置方案不可取。所以建议用户不要在CycloneII器件上使用这种配置方式。在此也就不再详细介绍这种配置方法了。()5、使用配置器件对多Cyclon

49、eII器件的配置同上。6、使用下载电缆对CycloneII器件的配置在PS模式下,可以使用电脑,通过下载电缆将配置数据传送到CycloneII器件中进行配置。;用户可以选用MV(ByteBlaserMV)电缆、BBII(ByteBlasterII)电缆或者最新的USB(universalserialbus)电缆来连接PC机与CycloneII器件。*r系统上电后,CycloneII器件经过一个上电自启动过程,缩写为POR(Power-on-reset)。这|这个过程大概持续100ms。在这期间,器件进行重起,也就是将nSTATUS拉低,将所有I/O口设置为三态。一旦退出重起,器件将释放对nST

50、ATUS的控制,但仍保持所有I/O口为三态(内部有微弱f的上拉电阻)。j此模式下器件配置工作的过程大体相似,不再多加介绍。图4-13给出jPS模式下CycloneIIj器件与下载电缆接口的示意图。?图4-13PS模式下使用下载电缆配置示意图说明:、Vcc应为同一个电压,一般下载电缆在板上(CycloneII器件所在的板上)取电;、如果板上没有配置器件的话,要将DATAo和DCLK进行上拉(有时侯要下拉);、在MV电缆中此管脚不用,再使用AS模式的时候,此脚连接到nCE上;警警 # #警警警警 # #警警警警 警警、只有单个器件时,此脚可浮空或用作用户I/O。t在此方案中也可以配置多个器件,同以

51、往所介绍的方法一致。在此要说的是,当有器件在配置过程中发生错误时,用户必须在Quartus的下载软件中手动重新下载。示意图如4-14所示:图4-14PS模式下用电缆对多个器件配置示意图说明:同上T 警警表4-6JTAG功能管脚说明名称类型描述TDI数据输入数据在TCK时钟的上升沿移入器件;在不使用JTAG时要用1K的上拉电阻将其拉高。此为输入接口。TDO数据输出在TCK的下降沿将数据输出;此接口为三态;在不使用JTAG时,将此管脚浮空。(一般在此链路上串入49.9的匹配电阻)TMS模式选择输入接口,用于提供控制信号。在不使用JTAG时,将此管脚用1K的上拉电阻拉高。TCK时钟输入时钟输入接口;

52、在不使用JTAG时,将此管脚用1K下拉电阻拉低。表4-6列出了这些管脚的功能。第七节、JTAG配置模式:联合测试行动组(JointTestActionGroup)为边界扫描(Boundary-scantest)开发了一总测试方案。这种边界扫描(BST)结构使得用户能够测试已经焊接在PCB上的元件。这种测试方法使得器件在运行的时候不使用外部测试仪器来获取器件内部数据。JTAG链路也能够将配置数据传送到器件内部,在Quartus软件中,可以通过JTAG链路将Quartus软件自动生成的SOF数据传送到器件中进行配置。CycloneII器件的配置被设计成优先使用JTAG模式下载,也就是说JTAG模式

53、可以打断任何其他的配置模式(例如其它模式正在进行中,而JTAG就可以将其强行终止,从而进行JTAG模式配置,但在JTAG模式下,不能使用CycloneII器件的能解压配置数据的特性)。在JTAG模式下使用TCK、TDO、TMS和TDI这四个信号来进行器件的配置。在TCK管脚上FPGA内部有微弱的下拉电阻,TCK和TDI上有微弱的上拉电阻。在JTAG配置阶段,所有的I/O都处于三态。1.JTAG模式下对单CycloneII器件的配置如果使用JTAG接口进行下载,那么用户可以使用MV、BBII或USB下载电缆对CycloneII件进行配置。使用电缆对器件进行编程与在线编程非常相似。下图4-15所示

54、为JTAG接口对单个FPGA器件进行配置的原理图。 # # # #图4-15使用JTAG接口对CycloneII器件配置原理图说明:、Vcc应为同一种电源,一般是在板上取电;I如果只用JTAG模式,那么可以将nCONFIG接到Vcc,而MSEL信号接到Gnd;且将DCLK和DATAO接到Gnd或Vcc;在MV电缆中此管脚不用,再使用AS模式的时候,此脚连接到nCE上;nCE必须接到Gnd,或者拉低;nCEO可以浮空,或者用作用户I/O。在JTAG模式下对单器件进行配置时,编程软件将设置其它器件为旁路模式。在旁路模式下,CycloneII器件使用旁路电阻将数据从TDI传送到TDO管脚上,这个过程

55、并不影响内部数据的使用。在JTAG模式下,配置软件即能对器件进行编程,也能对器件进行调试。在TDO上出现一个时钟信号后,配置数据就被传送到目标器件中了。*QuartusII软件会在配置完成后校验JTAG链路配置是否成功。在配置结束时,软件会通过JTAG*;链路检测CONF_DONE信号。在配置多器件的链路时会,软件会生成JAM文件,它包含让所有在同一;|链路上的器件在同一时刻进入初始化阶段的指令。如果CONF_DONE没有变高,软件会认为配置失败;!如果CONF_DONE变高,则认为配置成功。在配置数据流通过TDI接口传送之后,在TCK链路上出现:299个时钟周期后CycloneII器件才执行

56、初始化进程。:在使用QuartusII软件和下载电缆用JTAG接口下载数据时,Enableuser-suppliedstart-up:clock(CLKUSR)选项不起作用。所以不能使用CLKUSR来对器件进行初始化工作,也就不用在给CLKUSR管脚加入时钟信号了。tCycloneII器件的JTAG管脚只有JTGA的作用。在CycloneII器件进行配置之前、之间或之后,用户都可以进行JTAG测试。幸C0NFIG_I0指令可以通过JTAG接口配置I/Obuffers,此指令可以中断配置进程CONFIG_IO幸指令能够在配置CycloneII器件之前或是在等待配置器件完成CycloneII器件配

57、置时,执行边界表4-7JTAG模式下,配置功能管脚的设定管脚名称描述nCE在所有的CycloneII系列器件中,nCE都要通过下拉电阻连接到Gnd上,只有在nCE连接到Gnd的时候,器件才工作nCEO当配置一个FPGA器件的时候,可以将此管脚浮空,或用于通用I/O口;当配置多个器件的时候,此信号可以作为下一个器件nCE的输入,但此时在此信号上必须接入10K的上拉电阻MSEL如果只使用JTAG的时候,此管脚可以连接到Gnd上。nCONFIG用10K的上拉电阻将其拉高。nSTATUS需要接入10K的上拉电阻;当配置多个器件的时候,要将每个器件的此信号都单独接入10K的上拉电阻。在配置期间此信号被拉低,则说明配置出错

温馨提示

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

评论

0/150

提交评论