资源描述
FPGA配置芯片l.Altera FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG) 配置方式。AS由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EPCS4 配置器件专供AS模式,目前只支持Cyclone系列。使用Altera串行配置器件来完成。Cyclone期间处 于主动地位,配置期间处于从属地位。配置数据通过DATA0引脚送入FPGA。配置数据被同步在DCLK 输入上,1个时钟周期传送1位数据。(见附图)PS则由外部计算机或控制器控制配置过程。通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件 来完成,在PS配置期间,配置数据从外部储存部件,通过DATA0引脚送入FPGA。配置数据在DCLK 上升沿锁存,1个时钟周期传送1位数据。(见附图)JTAG接口是一个业界标准,主要用于芯片测试等功能,使用IEEE Std 1149.1联合边界扫描接口引脚,支 持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。FPGA在正常工作时,它的配置数据存储在SRAM中,加电时须重新下载。在实验系统中,通常用计算机 或控制器进行调试,因此可以使用PS。在实用系统中,多数情况下必须由FPGA主动引导配置操作过程, 这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中fpga配置信息是用普通编程器将设 计所得的pof格式的文件烧录进去。专用配置器件:epc型号的存储器常用配置器件:epc2,epc1,epc4,epc8,epc1441(现在好象已经被逐步淘汰了)等对于cyclone cycloneII系列器件,ALTERA还提供了针对AS方式的配置器件,EPCS系列.如 EPCS1,EPCS4配置器件也是串行配置的.注意,他们只适用于cyclone系列.除了 AS和PS等单BIT配置外,现在的一些器件已经支持PPS,FPS等一些并行配置方式,提升配置了 配置速度。当然所外挂的电路也和PS有一些区别。还有处理器配置比如JRUNNER等等,如果需要再 baidu吧,至少不下十种。 比如 Altera公司的配置方式主要有 Passive Serial(PS),Active Serial(AS),Fast Passive Parallel(FPP),Passive Parallel Synchronous(PPS),Passive Parallel Asynchronous(PPA),Passive Serial Asynchronous(PSA),JTAG 等七种配置方 式,其中Cyclone支持的配置方式有PS,AS,JTAG三种.对FPGA芯片的配置中,可以采用AS模式的方法,如果采用EPCS的芯片,通过一条下载线进行烧写的 话,那么开始的nCONFIG,nSTATUS”应该上拉,要是考虑多种配置模式,可以采用跳线设计。让配置方 式在跳线中切换,上拉电阻的阻值可以采用10K在PS模式下tip:如果你用电缆线配置板上的FPGA芯片,而这个FPGA芯片已经有配置芯片在板上,那你 就必须隔离缆线与配置芯片的信号.(祥见 下图).一般平时调试时不会把配置芯片焊上的,这时候用缆线下 载程序.只有在调试完成以后,才把程序烧在配置芯片中,然后将芯片焊上.或者配置芯片就是可以方便取下 焊上的那种.这样出了问题还可以方便地调试.在AS模式下tip:用过一块板子用的AS下载,配置芯片一直是焊在板子上的,原来AS方式在用线缆对 配置芯片进行下载的时候,会自动禁止对FPGA的配置,而PS方式需要电路上隔离。一般是用jtag配置epc2和flex10k,然后epc2用ps方式配置flex10k.这样用比较好.(这是我在网上 看到的,可以这样用吗?怀疑中)望达人告知.下载电缆,Altera下的下载电缆分为byteblaster和byteblasterMV,以及ByteBlaster II,现在还推出了 基于USB-blaster.由于BB基本已经很少有人使用,而USB-Blaster现在又过于昂贵,这里就说一下BBII 和BBMV的区别.BBII 支持多电压供电 5.5v,3.3v,2.5v,1.8v;BBII支持三种下载模式:AS,可对Altera的As串行配置芯片(EPCS系列)进行编程PS,可对FPGA进行配置JTAG,可对FPGA,CPLD,即Altera配置芯片(EPC系列)编程而BBMV只支持PS和JTAG6. 一般在做FPGA实验板,(如cyclone系列)的时候,用AS+JTAG方式,这样可以用JTAG方式调试,而最 后程序已经调试无误了后,再用AS模式把程序烧到配置芯片里去,而且这样有一个明显的优点,就是在AS 模式不能下载的时候,可以利用Quartus自带的工具生成JTAG模式下可以利用jic文件来验证配置芯片是 否已经损坏,方法祥见附件.7. Altera的FPGA可以通过单片机,CPLD等加以配置,主要原理是满足datasheet中的时序即可,这里我 就不多说了,有兴趣的朋友可以看看下面几篇文章,应该就能够明白是怎么回事了.8. 配置时,quartus软件操作部分:(1) .assignment-device-device&pin options-选择 configuration scheme,configuaration mode,configuration device,注意在不支持远程和本地更新的机器中configuration mode不可选择,而configuration device中会根据 不同的配置芯片产生pof文件,如果选择自动,会选择最小密度的器件和适合设计(2) .可以定义双口引脚在配置完毕后的作用,在刚才的device&pin option-dual-purpose pins-,可 以在配置完毕后继续当I/O 口使用(3) .在general菜单下也有很多可钩选项,默认情况下一般不做改动,具体用法参见altera configuration handbook,volume2,sectionII.(4) 关于不同后缀名的文件的适用范围:sof(SRAM Object File)当直接用PS模式下将配置数据下到FPGA 里用到,USB BLASTER,MASTERBLASER,BBII,BBMV适用,quartusII会自动生成,所有其他的配置文件都是由sof 生成的.pof(Programmer Object File)也是由quartusII自动生成的,BBII适用,AS模式下将配置数据下到配置 芯片中rbf(Raw Binary File)用于微处理器的二进制文件.在PS,FPP,PPS,PPA配置下有用处rpd(Raw Programing Data File)包含bitstream的二进制文件,可用AS模式配置,只能由pof文件生 成hex(hexadecimal file)这个就不多说了,单片机里很多ttf(Tabular Text File)适用于 FPP,PPS,PPA,和 bit-wide PS 配置方式 sbf(Serial Bitstream File)用 PS 模式配置 Flex 10k 和 Flex6000 的 jam(Jam File)专门用于 program,verigy,blank-checkFPGA配置方式和配置器件介绍配置,就是对FPGA的内容进行编程的一个过程。在一般的应用中,都是选择 用Altera的配置芯片配合完成配置过程。在Altera的产品中,可以根据FPGA在整个配置过程的角色,可以分为3类: FPGA主动方式(AS);FPGA被动方式(PS);JTAG方式。在FPGA主动方式下(以下简称AS),由板上的FPGA主动输出输出控制和 同步信号给Altera专用的一种串行配置芯片(如EPCS1等),在配置芯片收 到命令后,就把配置芯片数据发到FPGA,完成配置过程。注意:该方式只能与 Altera提供的主动串行配置芯片配合使用(即EPCS系列),该配置 方式只有 在Stratix II系列和Cyclone系列(包括I,II,III代)中使用。在FPGA被动方式下,由系统的其他设备发起并控制配置过程。这些设备包 括Altera的配置芯片(EPC系列),或者是微控制器(如单片机),CPLD等。 FPGA完全处于被动地位,只是简单的输出一些状态信号配合配置过程。在FPGA被动方式中,包括被动串行(PS),快速被动并行(FPP),被动并 行同步(PPS),被动并行异步(PPA)等。我们主要介绍一下最常用的,具有 代表性的PS模式。PS模式是所有Altera FPGA都支持的,一般最常见的是用 Altera的配置芯片EPC系列来完成配置过程。在做PS配置时,FPGA配置数 据从存储器(一般是EPC系列)里读出,在时钟的上升沿到来时降数据打入 FPGA。JTAG是IEEE 1149.1边界扫描测试的标准接口,主要用于芯片的测试等功能。 Altera FPGA基本上都支持由JTAG命令来配置FPGA的方式,而且JTAG的 配置方式比其他任何一种配置方式都高级。不同的Altera FPGA系列所支持的配置方式:Configuration SchemeDevice FamilyStratix IVStratix IIISlrutix llT Stratix II GXStrati七 Stratix GXArria GXCyclone IIICycloneAPEX20K, APEX 20KE,MercuryACEX1KFLEX1DK, FLEX1DKE,FLEX 6000Passive Serial PSActive Serial (ASActive Parallel (APFast Passive Parallel曲Passive ParallelSynchronous (FPSPassive Parallel Asynchronous (PPAPassive SerialAsynchronous (PSAJoint Test Action Group (JTAG7(V卜面介绍下配置芯片:Altera的配置芯片可以分为以下三种:1. 增强型配置器件:EPC16,EPC8,EPC42. AS 串行配置器件:EPCS64,EPCS16,EPCS4 和 EPCS13. 普通配置器件:EPC2,EPC1和EPC1441如下是各个配置芯片的属性:增强型配置器件:DevreeMemory Size (bits)Qn-Chip Decompression SupportISP SupportCascading SupportReprogrammableOperating VoRage (V)EPC44,194,304YesYesMoYes3.3EPC88,388,608Yes间No.Yes3.3EPC1616,777,216YesYesNdYes3.3AS串行配置器件:DeviceMemory Size (bits)On-Chip Decompression SupportESP SupportCascading SupportReprogrammableOperating Voltage (V)EPCS11,048,576NoYesNoYes3.3EPGS44,194,304 .NdYesNo.Yes.3.3,EPCS1616,777,216NoYesNoYes3.3EPCS64 67,108,864NoYesNdYes3.3EPCS128134,217,728HoYeshloYes3;3普通配置器件:DeviceMemory Size (Bits)ISP SupportCascaded SupportReprogrammableOperating VoltageEPC11,046,496NoYesNo5.0 or 3.3 VEPC21,695,680Yes.YesYes5.0 or 3.3 VEPC106465,536NoNoNo5.0 VEPC1064V65,536NoNoNo3.3 UEPC1213212,942NoYesNo5.0 VEPC1441440,800NoNoNo5.0 or 3.3 V增强型配置器件可以支持对大容量FPGA单元的配置,可以由JTAG接口进行 在线系统编程(ISP)普通配置器件容量较小,其中只有EPC2具有可重复编程的特点。AS配置芯片是专为为Stratix II,Cyclone系列(包括I,II,III代)设计的单片、低成本的配置芯片,可以由下载电缆进行可重复编程。漫谈xilinx FPGA配置电路这里要谈的时xilinx的spartan-3系列FPGA的配置电路。当然了,其它系列的FPGA配置 电路都是大同小异的,读者可以类推,重点参考官方提供的datasheet,毕竟那才是最权威 的资料。这里特权同学只是结合自己的理解,用通俗的语言作一点描述。所谓典型,这里要列出一个市面上最常见的spartan-3的xc3s400的配置电路。所有 spartan-3的FPGA配置电路的链接方式都是一样的。Xc3s400是40万门FPGA,它的 ConfigurationBitstream虽然只有1.699136Mbit,但是它还是需要2Mbit的配置芯片XCF02S,不能 想当然的以为我的设计简单,最多用到1Mbit,那么我选XCF01S(1Mbit)就可以了。事 实并非如此,即使你只是用xc3s400做一个流水灯的设计,那么你下载到ROM (XCF02S) 里的数据也是1.699136Mbit的,所以对于FPGA的配置ROM的选择宜大不宜小。配置电路无非有下面五种:主串,从串,主并,从并,JTAG。前四种是相对于下载到 PROM而言的(串并是相对于不同配置芯片是串口和时并口协议和FPGA通讯区分的), 只有JTAG是相对于调试是将配置下载到FPGA的RAM而言的(掉电后丢失)。FPGA和 CPLD相比,CPLD是基于ROM型的,就是在数据下载到CPLD上,掉电后不丢失。而 FPGA则是基于RAM的,如果没有外部ROM存储配置数据,那么掉电后就丢失数据。所 以FPGA都需要外接有配置芯片(当然现在也有基于FLASH的FPGA出现)。那么我们 就来看一下主串模式下FPGA的配置电路的连接。官方的硬件连接如下:Platform Flash PROMDINMODE PINSXilinx FPGA Master SerialCCLK.DONEDOUTINIT_BPROG_BTDITMSTCKTDOGNDDINCCLK-DONE-INIT_BPROG_E:.OPTIONAL Slave FPGAs with id&nticat configurationsDIN .OPTIONALI CCLKDONEDaisy-chainedSlav FPGAs-init_b withPROG_E: configurations点击看原图为了增加配置电路的可靠性,通常我们我们增加一些抗干扰的设计(如增加滤波电容、匹配电阻):?X3;M-00-+roJ03t;B:;WAP E1T;:IDIHI;!ii, isISintrFjF io uDNUwcmiDWUwcoDHUOEM; CLK演IDIIDO ICEIM;:DNUDHUGBDDNUE.?点击看原图先看PROM芯片的各个管脚吧。18,19,20脚就不谈了,根据datasheet给供相对应的 电平;3脚CLK是接了 FPGA的CCLK,数据通信的同步就是通过FPGA的CCLK产生的 时钟进行的;因为使用的芯片时串行的配置芯片,所以只有一个数据信号口 DO,连接到 FPGA的DIN 口(上图没有画出),和上面的时钟信号协同工作完成串行数据传输,每当 CLK的上升沿锁存数据,同时PROM内部的地址计数器自动增加;另外还有两条控制信号 线时 INIT (连接 PROM 的 OE/RESET)DONE (连接 PROM 的 CE),OE/RESET 是 为了确保每次重新配置前PROM的地址计数器复位;关于CE脚,官方资料说得也不是很 详细,以我个人的理解,CE应该是chip enable的缩写,从它和FPGA的DONE脚连接我 们不难推断出,FPGA未配置完成时DONE=0,那么配置芯片PROM处于片选状态,而一 旦配置完成DONE=1,那么PROM就不再被选通,同时datasheet也说到这个管脚可以直 接接地,就是一直片选中,但是这样会使DATA 口有持续的数据信号输出,同时导致不必 要的电流消耗;CEO脚这里不接,因为它在多个PROM的配置电路中时作为下一个PROM 的OE端信号连接用的;CF信号时连接FPAG的PROG_B接口的,它的作用就是产生开 始配置信号,它连接了一个上拉电阻,如果PROG_B产生低电平脉冲则PROM会重新开 始一次配置,所以我们会在这条线上接一个按键到地,如果按键按下那么就会使能PROM 重新配置FPGA;还有几个信号接口 TDI,TCK,TMS,TDO都是PROM和PC连接的信号, PC通过这些电路(通常接一片驱动隔离芯片后通过并口通信,这里不重点介绍了)下载数 据到PROM中。上面谈及PROM的信号接口时都附带的谈到了 FPGA的配置管脚。这里再做一些归纳性的说明。FPGA有7个专用的配置管脚(CCLK,DIN,PROG_B,DONE,HSWAP_EN,M0,M1,M2),4 个专用的 JTAG 管脚(TDI,TCK,TMS,TDO),这些管脚是由VCCAUX专门供电的(该系列FPGA通常接VCCAUX=2.5V)。FPGA的M0,M1,M2脚是进行配置模式选择用的,该电路主串模式下 M0,M1,M2=000,如果时JTAG下载模式M0,M1,M2=101。上面没有提及的HSWAP_EN 管脚接地,则是用于设置当FPAG处于配置状态下其它闲置管脚为上拉状态,而如果该管 脚接高电平,则FPAG处于配置状态下其它闲置管脚浮空。所以为了减少FPGA配置过程 的干扰,一般把此脚接地。Xilinx FPGA电路配置FPGA配置电路可以看成用户设计和硬件电路之间的连接纽带,最终目的是在一 定外部条件下,准确快速地实现FPGA系统配置。在FPGA的配置系统中,软件编程由FPGA提供商提供,设计人员要掌握其操作方 法,将配置数据从PC加载到XilinxFPGA芯片的整个配置过程,可分为以下步骤:初 始化;清空配置存储器;加载配置数据;CRC错误检查,START-UPFPGA配置方式灵活多样,根据芯片是否能够自己主动加载配置数据分为主模式、 从模式以及JTAG模式。典型的主模式都是加载片外非易失(断电不丢数据)性 存储器中的配置比特流,配置所需的时钟信号(称为CCLK)由FPGA内部产生, 且FPGA控制整个配置过程。从模式需要外部的主智能终端(如处理器、微控制 器或者DSP等)将数据下载到FPGA中,其最大的优点就是FPGA的配置数据可 以放在系统的任何存储部位,包括:Flash、硬盘、网络,甚至在其余处理器的 运行代码中。JTAG模式为调试模式,可将PC中的比特文件流下载到FPGA中, 断电即丢失。此外,目前赛灵思还有基于Internet的、成熟的可重构逻辑技术 System ACE解决方案。(1)主模式在主模式下,FPGA上电后,自动将配置数据从相应的外存储器读入到SRAM中, 实现内部结构映射;主模式根据比特流的位宽又可以分为:串行模式(单比特 流)和并行模式(字节宽度比特流)两大类。如:主串行模式、主SPI Flash串 行模式、内部主SPI Flash串行模式、主BPI并行模式以及主并行模式,如图 5-19所示。(2)从模式在从模式下,FPGA作为从属器件,由相应的控制电路或微处理器提供配置所需 的时序,实现配置数据的下载。从模式也根据比特流的位宽不同分为串、并模式 两类,具体包括:从串行模式、JTAG模式和从并行模式三大类,其概要说明如 图5-20所示。(3) JTAG 模式 在JTAG模式中,PC和FPGA通信的时钟为JTAG接口的TCLK,数据直接从TDI 进入FPGA,完成相应功能的配置。目前,主流的FPGA芯片都支持各类常用的主、从配置模式以及JTAG,以减少配置电路失配性对整体系 统的影响。在主配置模式中,FPGA自己产生时钟,并从外部存储器中加载配置数据,其位宽可以为单比 特或者字节;在从模式中,外部的处理器通过同步串行接口,按照比特或字节宽度将配置数据送入FPGA 芯片。此外,多片FPGA可以通过JTAG菊花链的形式共享同一块外部存储器,同样一片/多片FPGA也 可以从多片外部存储器中读取配置数据以及用户自定义数据。Xilinx FPGA的常用配置模式有5类:主串模式、从串模式、Select MAP模式、 Desktop配置和直接SPI配置。在从串配置中,FPGA接收来自于外部PROM或其 它器件的配置比特数据,在FPGA产生的时钟CCLK的作用下完成配置,多个FPGA 可以形成菊花链,从同一配置源中获取数据。Select MAP模式中配置数据是并 行的,是速度最快的配置模式。SPI配置主要在具有SPI接口的FLASH电路中使 用。下面以Spartan-3E系列芯片为例,给出各种模式的配置电路。主串模式最常用的FPGA配置模式1.配置单片FPGA在主串模式下,由FPGA的CCLK管脚给PROM提供工作时钟,相应的PROM在CCLK 的上升沿将数据从D0管脚送到FPGA的DIN管脚。无论PROM芯片类型(即使其 支持并行配置),都只利用其串行配置功能。Spartan3E系列FPGA的单片主串配 置电路如图5-21所示。主串模式是赛灵思公司各种配置方式中最简单,也最常 用的方式,基本所有的可编程芯片都支持主串模式。2 .配置电路的关键点主串配置电路最关键的3点就是JTAG链的完整性、电源电压的设置以及CCLK 信号的考虑。只要这3步任何一个环节出现问题,都不能正确配置PROM芯片。(1)JTAG链的完整性FPGA和PROM芯片都有自身的JTAG接口电路,所谓的JTAG链完整性指的是将JTAG 连接器、FPGA、PROM的TMS、TCK连在一起,保证从JTAG连接器TDI到其TDO 之间,形成 JTAG 连接器的 “TDI (TDITDO) (TDITDO) 一 JTAG 连接器 TDO” 的闭合回路,其中(TDITDO)为FPGA或者PROM芯片自身的一对输入、输出管脚。 图5-12中配置电路的JTAG链从连接器的TDI到FPGA的TDI,再从FPGA的TDO 到PROM的TDI,最后从PROM的TDO到连接器的TDO,形成了完整的JTAG链,FPGA 芯片被称为链首芯片。也可以根据需要调换FPGA和PROM的位置,使PROM成为 链首芯片。电源适配性 如图5-22所示,由于FPGA和PROM要完成数据通信,二者的接口电平必须一致, 即FPGA相应分组的管脚电压Vcco_2必须和PROM Vcco的输入电压大小一致,且 理想值为2.5V,这是由于FPGA的PROG_B和DONE管脚由2.5V的Vccaux供电。 此外,由于JTAG连接器的电压也由2.5V的Vccaux提供,因此PROM的VCCJ也 必须为2.5V。因此,如果接口电压和参考电压不同,在配置阶段需要将相应分 组的管脚电压和参考电压设置为一致;在配置完成后,再将其切换到用户所需的 工作电压。当然,FPGA和PROM也可以自适应3.3V的I/O电平以及JTAG电平, 但需要进行一定的改动,即添加几个外部限流电阻,如图5-22所示。在主串模 式下,XCFxxS系列PROM的核电压必须为3.3V,XCFxxP系列PROM的核电压必须 为 1.8V。RSER、RPAR这两个电阻要特别注意。首先,RSER= 68。将流入每个输入的电流 限制到9.5mA ;其次,N= 3三个输入的二极管导通,RPAR = VCCAUX min/ NIIN = 2.375V/(3*9.5mA)=83。或82。(与标准值误差小于5%的电阻)(3)CCLK的信号完整性CCLK信号是JTAG配置数据传输的时钟信号,其信号完整性非常关键。FPGA配 置电路刚开始以最低时钟工作,如果没有特别指定,将逐渐提高频率。CCLK信 号是由FPGA内部产生的,对于不同的芯片和电平,其最大值如表F-1所示。3 .配置多片FPGA多片FPGA的配置电路和单片的类似,但是多片FPGA之间有主(Master)、从 (Slave)之分,且需要选择不同的配置模式。两片Spartan 3E系列FPGA的典型 配置电路如图5-23所示,两片FPGA存在主、从地位之分。Platform Flash 的特性特性PFPFXL密度1Mb-32 Mb120 Mb配置数据宽度8位代位配置数据速度264 Mbps000 MbpsF期e应用支持F:通用Flash接口 ( CFI)支持速度33 MHz50 MHz电源1.S/2.5/3.3V I/O2.5/3.3VI/QDeviceActive Serial (AS) x 1ASX4Active Parallel (AP)Passive Serial (PS)Fast Passive Parallel (FPP) x8FastPassiveParallel (FPP)x 16PassiveParallelSynch (PPS)Passive Parallel Asynch (PPA)JTAGStratix V/-7-.Stratix IV/-V/-.VStratix IIIV-V-./Stratix II and Stratix II GX/V-VStratix andStratix GX-/-/VCyclone IV-/VCyclone III/Cyclone III LS/Cyclone II-/Cyclone-/Arria II GX/Arria GXV/-/VAPEXTM II./-/APEX 20K, 2OKEZ and 20KC-/.VMercuryTM-./.-VACEX IK-/-V%/FLEX 1OK, 1OKE, and 10KA-V-V
展开阅读全文