一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 10235|回复: 2

FPGA配置

[复制链接]
发表于 2008-11-23 12:18 | 显示全部楼层 |阅读模式
FPGA配置(AS、PS、JTAG)
FPGA配置 ! R" S/ B. Q: W5 d1 S
作者:长江学者 2007-11-23 09:51:29
7 M! X4 i. M9 k" B, ]标签: 我记录我的校园知识/探索
+ |) j. W: n8 O: o- K* I, I   
& M# z: {6 L6 c4 A+ }
& k" G) T8 Q! ]$ F, p5 E* c! _很多兄弟对于CPLD下JTAG的下载很熟悉了,可转到FPGA来的时候,多多少少有些迷惑,怎么出现配置芯片了,为什么要用不同的下载电缆,不同的下载模式?我就自己知道的一点东西谈一些个人的见解,并发一些资料.希望路过的朋友喝个采,版主给点威望.有问题大家也一起讨论,欢迎拍砖.
/ E6 t, ]- ~# {
7 r  ?1 l  T/ R) o2 H: C( S1.FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式。
3 `" A% k% r9 A2 o: i% h6 U. QAS由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EPCS4配置器件专供AS模式,目前只支持 Cyclone系列。使用Altera串行配置器件来完成。Cyclone期间处于主动地位,配置期间处于从属地位。配置数据通过DATA0引脚送入 FPGA。配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。(见附图) 1 ^1 r& Z/ r! j; q# u& W% P, t3 x0 h

% a: |  ^! G8 RPS则由外部计算机或控制器控制配置过程。通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件来完成,在PS配置期间,配置数据从外部储存部件,通过DATA0引脚送入FPGA。配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。(见附图) 8 w: X- z) _. n
9 `, \4 B2 {1 A) l1 I' W; U3 I
JTAG接口是一个业界标准,主要用于芯片测试等功能,使用IEEE Std 1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。 ! k8 ?( V+ ^- r% w

7 g( I; o8 [; Q, y" v& `FPGA在正常工作时,它的配置数据存储在SRAM中,加电时须重新下载。在实验系统中,通常用计算机或控制器进行调试,因此可以使用PS。在实用系统中,多数情况下必须由FPGA主动引导配置操作过程,这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中fpga配置信息是用普通编程器将设计所得的pof格式的文件烧录进去。 2 k. M+ t8 b- K
专用配置器件:epc型号的存储器
6 \0 F( Y* h8 V1 p* Y- R9 w常用配置器件:epc2,epc1,epc4,epc8,epc1441(现在好象已经被逐步淘汰了)等
9 b+ L8 Q3 ^4 B) a2 j, z  D对于cyclone cycloneII系列器件,ALTERA还提供了针对AS方式的配置器件,EPCS系列.如EPCS1,EPCS4配置器件也是串行配置的.注意,他们只适用于cyclone系列. : w1 t  e; M+ A  v6 }/ ^- N0 ~
除了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三种.
6 I% s$ V$ V2 Z  a% o( X7 N9 |& v
& `' _% f4 B* l9 _2 对FPGA芯片的配置中,可以采用AS模式的方法,如果采用EPCS的芯片,通过一条下载线进行烧写的话,那么开始的"nCONFIG,nSTATUS"应该上拉,要是考虑多种配置模式,可以采用跳线设计。让配置方式在跳线中切换,上拉电阻的阻值可以采用10K
9 P3 @$ a" ]8 Z+ v3,在PS模式下tip:如果你用电缆线配置板上的FPGA芯片,而这个FPGA芯片已经有配置芯片在板上,那你就必须隔离缆线与配置芯片的信号.(祥见下图).一般平时调试时不会把配置芯片焊上的,这时候用缆线下载程序.只有在调试完成以后,才把程序烧在配置芯片中, 然后将芯片焊上.或者配置芯片就是可以方便取下焊上的那种.这样出了问题还可以方便地调试.
& w- H8 ~8 Q0 W- A: R6 Q&<60; 在AS模式下tip: 用过一块板子用的AS下载,配置芯片一直是焊在板子上的,原来AS方式在用线缆对配置芯片进行下载的时候,会自动禁止对FPGA的配置,而PS方式需要电路上隔离。 / R" c0 H7 Q( C# K' E* h5 l+ ^# p
% L2 X  ~( }  S; k0 _8 a  M2 z
4,一般是用jtag配置epc2和flex10k,然后 epc2用ps方式配置flex10k.这样用比较好.(这是我在网上看到的,可以这样用吗?怀疑中)望达人告知. & Z) Q. @6 L1 L  `! P9 i
5,下载电缆,Altera下的下载电缆分为byteblaster和byteblasterMV,以及ByteBlaster II,现在还推出了基于USB-blaster.由于BB基本已经很少有人使用,而USB-Blaster现在又过于昂贵,这里就说一下BBII和 BBMV的区别. " u( D9 Z. e: _. ?+ ?& o
BBII支持多电压供电5.5v,3.3v,2.5v,1.8v;   d0 N4 l1 U" q" ]# j7 a6 }0 y
BBII支持三种下载模式:AS,可对Altera的As串行配置芯片(EPCS系列)进行编程
3 K: L% O# p6 a&<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; PS,可对FPGA进行配置
0 W/ O% o1 L6 w0 t&<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; JTAG,可对FPGA,CPLD,即Altera配置芯片(EPC系列)编程
- A# E: c3 r. h0 h3 S) w; H&<60; &<60; 而BBMV只支持PS和JTAG
8 j/ `2 y- j5 f. R( r6,一般在做FPGA实验板,(如cyclone系列)的时候,用AS+JTAG方式,这样可以用JTAG方式调试,而最后程序已经调试无误了后,再用 AS模式把程序烧到配置芯片里去,而且这样有一个明显的优点,就是在AS模式不能下载的时候,可以利用Quartus自带的工具生成JTAG模式下可以利用的jic文件来验证配置芯片是否已经损坏,方法祥见附件(这是骏龙的人写的,摘自咱们的坛子,如有版权问题,包涵包涵). 4 s- ^- u4 `9 F% R+ l
7.Altera的FPGA可以通过单片机,CPLD等加以配置,主要原理是满足datasheet中的时序即可,这里我就不多说了,有兴趣的朋友可以看看下面几篇文章,应该就能够明白是怎么回事了.
/ Y+ m& o6 J* Z; W8.配置时,quartus软件操作部分: + o9 ^5 s9 b5 A( Z
(1).assignment-->device-->device&pin options-->选择configuration scheme,configuaration mode,configuration device,注
% k/ m, B* V& [8 i. R* t2 s% D  d1 F2 a, n; o; h
意在不支持远程和本地更新的机器中configuration mode不可选择,而configuration device中会根据不同的配置芯片产生pof文件, . ]. t- q+ I& u8 F
( ~4 X& p, z( |# Y& l, i. K1 T
如果选择自动,会选择最小密度的器件和适合设计
- S2 E7 x  S5 l- A8 G; t+ A(2).可以定义双口引脚在配置完毕后的作用,在刚才的device&pin option-->dual-purpose pins-->,可以在配置完毕后继续当I/O口 3 c; O7 ]9 d5 L" R+ p$ c

$ ^! i' S$ R- g6 x# u使用
6 i, y( C: S5 y' |/ }# F(3).在general菜单下也有很多可钩选项,默认情况下一般不做改动,具体用法参见altera configuration ! [& t* x, U. F3 _
+ M/ F9 j* L0 q! x" p+ m) [
handbook,volume2,sectionII.
3 T  z' N7 _- [7 {' l(4)关于不同后缀名的文件的适用范围: - n) D: F, q9 @5 C& d" S0 D8 b8 m3 l3 i
sof(SRAM Object File)当直接用PS模式下将配置数据下到FPGA里用到,USB BLASTER,MASTERBLASER,BBII,BBMV适用,quartusII会自 ( O" F4 y2 c5 a( F

- O2 L5 {. J3 c3 W& l动生成,所有其他的配置文件都是由sof生成的.
: ^# t/ C6 M+ y9 \* K+ bpof(Programmer Object File)也是由quartusII自动生成的,BBII适用,AS模式下将配置数据下到配置芯片中
" e/ z+ B% |2 s9 H8 ]; `; n8 |rbf(Raw Binary File)用于微处理器的二进制文件.在PS,FPP,PPS,PPA配置下有用处
" ?7 Z4 K: a' M/ V3 irpd(Raw Programing Data File)包含bitstream的二进制文件,可用AS模式配置,只能由pof文件生成
8 A" R3 _1 e& ahex(hexadecimal file)这个就不多说了,单片机里很多 ( j9 f. A- H8 r" }3 G
ttf(Tabular Text File)适用于FPP,PPS,PPA,和bit-wide PS配置方式 3 O7 o/ L+ s1 H+ h6 W* B4 j- _
sbf(Serial Bitstream File)用PS模式配置Flex 10k和Flex6000的
% [% o: S1 h* R" _3 e  G# tjam(Jam File)专门用于program,verigy,blank-check
4 Z9 K  |9 w& b% u* O" Jjic的用法6楼已经提到,在这里就不多说了
& Y- a  q0 r/ J+ B- G( O; I4 {
 楼主| 发表于 2008-11-23 17:27 | 显示全部楼层
常见到有网友问及 Altera FPGA 的配置文件,这里进行一下简单的总结:
/ c2 B4 p$ X  @5 r& C1 H) G" I
3 f, r+ K2 V- E* H9 M% c0 t( f5 Q0 e% |4 x.sof(SRAM Object File):如果选择模式为 JTAG 或 PS 方式,使用 Altera 的下载电缆对 FPGA 进行配置时,将用到 .sof 文件。此文件是 Quartus II 自动产生的。在使用 .sof 文件配置时,Quartus II 下载工具将控制整个配置的顺序,并向配置数据流内自动插入合适的头信息。其他的配置文件类型都是从 .sof 产生出来的。
. ^2 h4 `) ]. Q$ B.pof(Programmer Object File):是用来对各种 Altera 配置芯片进行编程的文件。要注意的是,需要在 Quartus II 中设置编程器件类型,才可以生成该类型的 .pof 文件。对一些小的 FPGA,多个 FPGA 的 .sof 文件可以放到一个 .pof 文件中,烧制到一个配置器件中;而对一些较大的 FPGA,如果一个配置器件不够,可以使用多个配置器件。
9 s% h; F5 s9 O' ~, U$ a.rbf(Raw Binary File):是二进制的配置文件,只包含配置数据的内容。通常被用在外部的智能配置设备上,如微处理器。例如,一种用法是将 .rbf 文件通过其他工具转换成十六进制的数组文件,编译到微处理器的执行代码中,由微处理器将数据加载到 FPGA 中。当然,也可以由处理器在配置过程中完成实时的转换工作。.rbf 中的 LSB(最低位)被首先载入到 FPGA 中。
1 n5 g- W8 a) F7 k.rpd(Raw Programming Data File):用外部编程设备对 AS 串行配置芯片进行在系统编程(ISP)的文件。这个文件是由 .pof 转换而来的。选择不同的 AS 配置芯片,转换得到的 .rpd 文件大小都不一样。/ i" ~% f. _- H% k! l' a' H
.hex(Hexadecimal File):是一个 ASCII 码文件,以 Intel 的十六进制格式存放了 FPGA 的配置内容,可以用在外部的配置设备上。7 z1 D3 b) X' m3 o
.ttf(Tabular Text File):与 .rbf 内容一样的 ASCII 码格式文件。在每个配置数据字节之间用逗号隔开。
- J  @8 Y4 ~% X: U! d: X3 D.sbf(Serial Bitstream File):用 BitBlaster 来通过 PS 方式配置 FLEX10K 和 FLEX6000 系列器件将使用该文件。
* |1 W( ?* A4 H.jam(Jam File):是一种以 Jam 器件编程语言描述的 ASCII 码文件。它包含了对 JTAG 链中的一个或多个 FPGA 进行编程、配置、验证和空白校验的数据信息。用户可以在 Quartus II 的编程器或微处理器中使用 .jam 文件,并可以用 .jam 文件对所有 Quartus II 支持的器件,以及 EPC2、EPC4、EPC8 和 EPC16 器件,进行配置和编程。甚至 JTAG 链上还可以包含非 Altera 的器件。
回复

使用道具 举报

 楼主| 发表于 2008-11-23 17:27 | 显示全部楼层
配置是对 FPGA 内容进行编程的一个过程,每次上电后需要进行配置是基于 SRAM 工艺 FPGA 的一个特点,也可以说是一个缺点。在 FPGA 内部,有许多可编程的多路器、逻辑、互连线结点和 RAM 初始化内容等,都需要配置数据来控制。配置 FPGA 的过程看似简单,但却是实际系统中遇到问题最多的地方。
# J( P1 C+ I/ Z* e1 k在主动串行(AS)配置方式中,FPGA 必须与 Altera 专用的 AS 串行配置器件一起使用。 AS 串行配置芯片是一种非易失性的、基于 Flash 存储器的器件,它与 FPGA 的接口有4个信号:DCLK、ASDI、nCS 和 DATA。可以使用 Altera 的 ByteBlaster II 加载电缆进行编程。
* X5 S$ F' r7 f: Y3 {6 `被动串行(PS)是使用最多的一种配置方式,该方式下,FPGA 处于完全被动的地位。FPGA 接收 DCLK、nCONFIG、DATA0,给出配置的 nSTATUS 以及 CONF_DONE 等。PS 配置可以使用 ALtera 的配置器件(EPC1、EPC4 等),可以使用系统中的微处理器,也可以使用单板上的 CPLD,或者是 Altera 的下载电缆。不管配置的数据源从哪里来,只要可以模拟出 FPGA 需要的配置时序来,将配置数据写入 FPGA 就可以。
2 B0 _2 T+ C4 d( P( [JTAG 接口是一个业界标准接口。Altera FPGA 基本上都可以支持由 JTAG 命令来配置 FPGA 的方式,而且 JTAG 配置方式比其他任何一种配置方式的优先级都高。JTAG 接口由4个必须信号 TDI、TDO、TMS 和 TCK,以及一个可选信号 TRST 构成。可以使用 Altera 的下载电缆,也可以使用微处理器等从 JTAG 接口配置 FPGA。
8 S7 Z1 z5 {# C建议 pennypenny 好好看一看 Altera 官方提供的有关 Altera FPGA 配置编程的技术文档!
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-10-28 03:17 , Processed in 0.032400 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表