1、1 FPGA 器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG) 配置方式。 主动串行(AS)由 FPGA 器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS 系列.如EPCS1,EPCS4 配置器件专供 AS 模式,目前只支持 Stratix II 和 Cyclone 系列。使用 Altera 串行配置器件来完成。Cyclone 器件处于主动地位,配置器件处于从属地位。配置数据通过DATA0 引脚送入 FPGA。配置数据被同步在 DCLK 输入上,1 个时钟周期传送 1 位数据。AS 配置器件是一种非易失性、基于 flash 存储器的存储器,
2、用户可以使用 altera 的ByteBlaster II 加载电缆、altera 的“altera programming unit”或者第三方的编程器来对配置芯片进行编程。它与 FPGA 的接口为以下简单的 4 个信号线:. 串行时钟输入(DCLK):是在配置模式下 FPGA 内部的振荡器( oscillator)产生的,在配置完成后,该振荡器将被关掉。工作时钟在 20MHz 左右,而 fast AS 方式下(stratix II 和cyclone II 支持该种配置方式) ,DCLK 时钟工作在 40MHz 左右,在 altera 的主动串行配置芯片中,只有 EPCS16 和 EPCS6
3、4 的 DCLK 可以支持到 40MHz,EPCS1 和 EPCS4 只能支持20MHz。. AS 控制信号输入( ASDI). 片选信号(nCS) ;. 串行数据输出(DATA) 。多片配置:控制配置芯片的 FPGA 为“主”,其后面的 FPGA 为“从” 。主片的 nCE 需要直接接地,其 nCEO 输出脚驱动从片的 nCE,而从片的 nCEO 悬空,nCEO 脚在 FPGA 未配置时输出为低。这样,AS 配置芯片中的配置数据首先写到主片的 FPGA 中,当其接收到它的所有的配置数据以后,随即驱动 nCEO 信号为高,使能从片的 FPGA,这样配置芯片后面的读出的数据将被写入到从片的 FP
4、GA 中。在生成配置文件对串行配置器件编程时,Quartus II 工具需要将两个配置文件合并到一个 AS 配置文件中,编程到配置器件中。如果这两个 FPGA 的配置数据完全一样,就可以将从片的 nCE 也直接接地,这样只需要在配置芯片中放一个配置文件,两个 FPGA 同时配置。被动串行(PS):PS(被动串行)则由外部计算机或控制器控制配置过程。所有 altera FPGA 都支持这种配置模式。通过 altera 的下载电缆、加强型配置器件(EPC16,EPC8,EPC4)等配置器件或智能主机(如微处理器和 CPLD)来完成,在 PS 配置期间,配置数据从外部储存部件(这些存储器可以是 al
5、tera 配置器件或单板上的其他 flash 器件) ,通过 DATA0 引脚送入FPGA。配置数据在 DCLK 上升沿锁存,1 个时钟周期传送 1 位数据。FPP(快速被动并行):该配置模式只有在 stratix 系列和 APEX II 中支持;PPA(被动并行异步):该配置模式在stratix 系列、APEX II、APEX 20K、mercury 、ACEX 1K 和 FLEX 10K 中支持;PPS(被动并行同步):这种模式只有一些较老的器件支持,APEX II、APEX 20K、mercury、ACEX 1K 和 FLEX 10K。PSA(被动串行异步):只有在 FLEX 6000
6、器件中支持。是使用最多的一种配置方式。与 FPGA 的信号接口:. DCLK(配置时钟) ;. DATA0(配置数据) ;. nCONFIG(配置命令) ;. nSTATUS(状态信号) ;.CONF_DONE(配置完成指示) 。在 PS 方式下,FPGA 处于完全被动的地位。 FPGA 接收配置时钟、配置命令和配置数据,给出配置的状态信号以及配置完成指示信号等。PS 配置可以使用 altera 的配置器件(EPC1、EPC4 等) ,可以使用系统中的微处理器,也可以使用单板上的 CPLD,或者 altera的下载电缆,不管配置的数据源从哪里来,只要可以模拟出 FPGA 需要的配置时序来,将配
7、置数据写入 FPGA 就可以。在上电以后,FPGA 会在 nCONFIG 管脚上检测到一个从低到高的跳变沿,因此可以自动启动配置过程。支持多片配置方式。JTAG 配置方式:JTAG 接口是一个业界标准,主要用于芯片测试等功能,使用 IEEE Std 1149.1 联合边界扫描接口引脚,支持 JAM STAPL 标准,可以使用 Altera 下载电缆或主控器来完成。JTAG 接口是一个业界标准接口,主要用于芯片测试等功能。altera FPGA 基本上都可以支持 JTAG 命令来配置 FPGA 的方式,而且 JTAG 配置方式比其他任何方式优先级都高。JTAG接口有 4 个必需的信号 TDI,
8、TDO, TMS 和 TCK 以及 1 个可选信号 TRST 构成,其中:. TDI,用于测试数据的输入;. TDO,用于测试数据的输出;. TMS,模式控制管脚,决定 JTAG 电路内部的 TAP 状态机的跳变;. TCK,测试时钟,其他信号线都必须与之同步;. TRST,可选,如果 JTAG 电路不用,可以讲其连到 GND。用户可以使用 altera 的下载电缆,也可以使用微处理器等智能设备从 JTAG 接口设置FPGA。nCONFIG、MESL 和 DCLK 信号都是用在其他配置方式下。如果只用 JTAG 配置,则需要将nCONFIG 拉高,将 MSEL 拉成支持 JTAG 的任一方式,
9、并将 DCLK 拉成高或低的固定电平。JTAG 配置方式支持菊花链方式,级联多片 FPGA。FPGA 在正常工作时,它的配置数据存储在 SRAM 中,加电时须重新下载。在实验系统中,通常用计算机或控制器进行调试,因此可以使用 PS。在实用系统中,多数情况下必须由FPGA 主动引导配置操作过程,这时 FPGA 将主动从外围专用存储芯片中获得配置数据,而此芯片中 fpga 配置信息是用普通编程器将设计所得的 pof 格式的文件烧录进去。 专用配置器件:epc 型号的存储器 常用配置器件:epc2,epc1,epc4,epc8,epc1441(现在好象已经被逐步淘汰了)等。对于 cyclone cy
10、cloneII 系列器件,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
11、),Passive Parallel Synchronous(PPS),Passive Parallel Asynchronous(PPA),Passive Serial Asynchronous(PSA),JTAG 等七种配置方式,其中 Cyclone 支持的配置方式有 PS,AS ,JTAG 三种. 2 FPGA 配置过程:在 FPGA 正常工作时,配置数据存储在 SRAM 中,这个 SRAM 单元也被称为配置存储器(configure RAM) 。由于 SRAM 是易失性存储器,因此在 FPGA 上电之后,外部电路需要将配置数据重新载入到芯片内的配置 RAM 中。在芯片配置完成之后,内部
12、的寄存器以及 I/O管脚必须进行初始化(initialization) ,等到初始化完成以后,芯片才会按照用户设计的功能正常工作,即进入用户模式。FPGA 上电以后首先进入配置模式(configuration) ,在最后一个配置数据载入到 FPGA 以后,进入初始化模式(initialization) ,在初始化完成后进入用户模式( user-mode) 。在配置模式和初始化模式下,FPGA 的用户 I/O 处于高阻态(或内部弱上拉状态) ,当进入用户模式下,用户 I/O 就按照用户设计的功能工作。altera FPGA 配置全过程:一个器件完整的配置过程将经历复位、配置和初始化等 3 个过程
13、。FPGA 正常上电后,当其 nCONFIG 管脚被拉低时,器件处于复位状态,这时所有的配置RAM 内容被清空,并且所有 I/O 处于高阻态,FPGA 的状态管脚 nSTATUS 和 CONFIG_DONE管脚也将输出为低。当 FPGA 的 nCONFIG 管脚上出现一个从低到高的跳变以后,配置就开始了,同时芯片还会去采样配置模式(MSEL)管脚的信号状态,决定接受何种配置模式。随之,芯片将释放漏极开路(open-drain)输出的 nSTATUS 管脚,使其由片外的上拉电阻拉高,这样,就表示 FPGA 可以接收配置数据了。在配置之前和配置过程中,FPGA 的用户I/O 均处于高阻态。在接收配
14、置数据的过程中,配置数据由 DATA 管脚送入,而配置时钟信号由 DCLK 管脚送入,配置数据在 DCLK 的上升沿被锁存到 FPGA 中,当配置数据被全部载入到 FPGA 中以后,FPGA 上的 CONF_DONE 信号就会被释放,而漏极开路输出的 CONF_DONE 信号同样将由外部的上拉电阻拉高。因此,CONF_DONE 管脚的从低到高的跳变意味着配置的完成,初始化过程的开始,而并不是芯片开始正常工作。INIT_DONE 是初始化完成的指示信号,它是 FPGA 中可选的信号,需要通过 Quartus II工具中的设置决定是否使用该管脚。在初始化过程中,内部逻辑、内部寄存器和 I/O 寄存
15、器将被初始化,I/O 驱动器将被使能。当初始化完成以后,器件上漏极开始输出的INIT_DONE 管脚被释放,同时被外部的上拉电阻拉高。这时,FPGA 完全进入用户模式,所有的内部逻辑以及 I/O 都按照用户的设计运行,这时,那些 FPGA 配置过程中的 I/O 弱上拉将不复存在。不过,还有一些器件在用户模式下 I/O 也有可编程的弱上拉电阻。在完成配置以后,DCLK 信号和 DATA 管脚不应该被浮空(floating ), 而应该被拉成固定电平,高或低都可以。如果需要重新配置 FPGA,就需要在外部将 nCONFIG 重新拉低一段时间,然后再拉高。当 nCONFIG 被拉低吼, nSTATU
16、S 和 CONF_DONE 也将随即被 FPGA 芯片拉低,配置 RAM 被清,所有 I/O 都变成三态。当 nCONFIG 和 nSTATUS 都变为高时,重新配置就开始了。3 对 FPGA 芯片的配置中,可以采用 AS 模式的方法,如果采用 EPCS 的芯片,通过一条下载线进行烧写的话,那么开始的“nCONFIG,nSTATUS“应该上拉,要是考虑多种配置模式,可以采用跳线设计。让配置方式在跳线中切换,上拉电阻的阻值可以采用 10K 4 在 PS 模式下 tip:如果你用电缆线配置板上的 FPGA 芯片,而这个 FPGA 芯片已经有配置芯片在板上,那你就必须隔离缆线与配置芯片的信号。一般平
17、时调试时不会把配置芯片焊上的,这时候用缆线下载程序.只有在调试完成以后,才把程序烧在配置芯片中, 然后将芯片焊上.或者配置芯片就是可以方便取下焊上的那种.这样出了问题还可以方便地调试. 在 AS 模式下 tip: 用过一块板子用的 AS 下载,配置芯片一直是焊在板子上的,原来 AS 方式在用线缆对配置芯片进行下载的时候,会自动禁止对 FPGA 的配置,而 PS 方式需要电路上隔离。 5 一般是用 jtag 配置 epc2 和 flex10k, 然后 epc2 用 ps 方式配置 flex10k.这样用比较好.(这是我在网上看到的,可以这样用吗?怀疑中)望达人告知. 6 下载电缆,Altera
18、下的下载电缆分为 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
19、和 JTAG 7 一般在做 FPGA 实验板,(如 cyclone 系列) 的时候, 用 AS+JTAG 方式,这样可以用 JTAG 方式调试, 而最后程序已经调试无误了后, 再用 AS 模式把程序烧到配置芯片里去,而且这样有一个明显的优点,就是在 AS 模式不能下载的时候 ,可以利用 Quartus 自带的工具生成 JTAG 模式下可以利用的 jic 文件来验证配置芯片是否已经损坏,方法祥见附件(这是骏龙的人写的, 摘自咱们的坛子,如有版权问题 ,包涵包涵 ). 8 Altera 的 FPGA 可以通过单片机,CPLD 等加以配置,主要原理是满足 datasheet 中的时序即可,这里我就不
20、多说了, 有兴趣的朋友可以看看下面几篇文章,应该就能够明白是怎么回事了. 9 配置时,quartus 软件操作部分: (1).assignmentdevicedevice&pin options选择 configuration scheme,configuaration mode,configuration device,注意在不支持远程和本地更新的机器中 configuration mode 不可选择, 而 configuration device 中会根据不同的配置芯片产生 pof 文件,如果选择自动,会选择最小密度的器件和适合设计 (2).可以定义双口引脚在配置完毕后的作用, 在刚才的
21、device&pin optiondual-purpose pins,可以在配置完毕后继续当 I/O 口使用 (3).在 general 菜单下也有很多可钩选项 ,默认情况下一般不做改动 ,具体用法参见 altera configuration handbook,volume2,sectionII. (4)关于不同后缀名的文件的适用范围: sof(SRAM Object File):当直接用 PS 模式下将配置数据下到 FPGA 里用到、 USB ASTER, MASTERBLASER, BBII,BBMV 适用、quartusII 会自动生成,所有其他的配置文件都是由 sof 生成的. po
22、f(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-check