版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
FPGA配置(AS、PS、JTAG)FPGA配置 3 h7 c6 m! v) _9 m! d# J
作者:长江学者 2007-11-23 09:51:29 0 {8 L: s' A. H1 S3 f6 u+ D
标签: 我记录我的校园知识/探索
/ N4 p! g6 F( F" a( @4 G
; a. n" T+ V# ]/ ^7 ^: @. y7 ?
很多兄弟对于CPLD下JTAG的下载很熟悉了,可转到FPGA来的时候,多多少少有些迷惑,怎么出现配置芯片了,为什么要用不同的下载电缆,不同的下载模式?我就自己知道的一点东西谈一些个人的见解,并发一些资料.希望路过的朋友喝个采,版主给点威望.有问题大家也一起讨论,欢迎拍砖.
1 H: q; r# u( q4 b8 o5 u
7 b F' i0 u, j5 X. Q. c1.FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式。 6 S, N) H4 D) ^. @7 D6 E3 k
AS由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EPCS4配置器件专供AS模式,目前只支持 Cyclone系列。使用Altera串行配置器件来完成。Cyclone期间处于主动地位,配置期间处于从属地位。配置数据通过DATA0引脚送入 FPGA。配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。(见附图) $ [, N* ~8 b6 s
; l. |, N5 p: VPS则由外部计算机或控制器控制配置过程。通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件来完成,在PS配置期间,配置数据从外部储存部件,通过DATA0引脚送入FPGA。配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。(见附图) + d% t$ F+ R6 j3 w
$ f" Q9 s6 y& Z) p, P0 E+ z6 gJTAG接口是一个业界标准,主要用于芯片测试等功能,使用IEEE Std 1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。 ; j) a j4 l& o( w# I' b/ s) z
: f; F2 H. \ P
FPGA在正常工作时,它的配置数据存储在SRAM中,加电时须重新下载。在实验系统中,通常用计算机或控制器进行调试,因此可以使用PS。在实用系统中,多数情况下必须由FPGA主动引导配置操作过程,这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中fpga配置信息是用普通编程器将设计所得的pof格式的文件烧录进去。 & Q9 M# I. [. ?
专用配置器件:epc型号的存储器
* q- s5 h4 i; ]5 t: ]常用配置器件:epc2,epc1,epc4,epc8,epc1441(现在好象已经被逐步淘汰了)等 1 n! ~) y7 y/ [" n3 G3 `1 S9 ^
对于cyclone cycloneII系列器件,ALTERA还提供了针对AS方式的配置器件,EPCS系列.如EPCS1,EPCS4配置器件也是串行配置的.注意,他们只适用于cyclone系列.
5 H% Z/ n: W- [! B除了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三种.
' F' ^, q3 u5 N6 O X, w
2 A! E+ i5 R! `; _" ^. H7 Q' V1 T2 对FPGA芯片的配置中,可以采用AS模式的方法,如果采用EPCS的芯片,通过一条下载线进行烧写的话,那么开始的"nCONFIG,nSTATUS"应该上拉,要是考虑多种配置模式,可以采用跳线设计。让配置方式在跳线中切换,上拉电阻的阻值可以采用10K
% e( \& m% G% z, T M8 N" ?3,在PS模式下tip:如果你用电缆线配置板上的FPGA芯片,而这个FPGA芯片已经有配置芯片在板上,那你就必须隔离缆线与配置芯片的信号.(祥见下图).一般平时调试时不会把配置芯片焊上的,这时候用缆线下载程序.只有在调试完成以后,才把程序烧在配置芯片中, 然后将芯片焊上.或者配置芯片就是可以方便取下焊上的那种.这样出了问题还可以方便地调试.
1 ~0 [0 V8 A$ Y' b# ?8 Q. b&<60; 在AS模式下tip: 用过一块板子用的AS下载,配置芯片一直是焊在板子上的,原来AS方式在用线缆对配置芯片进行下载的时候,会自动禁止对FPGA的配置,而PS方式需要电路上隔离。
& M3 [8 h3 h% B- X# Q
/ l& d4 w. E4 p7 Y4,一般是用jtag配置epc2和flex10k,然后 epc2用ps方式配置flex10k.这样用比较好.(这是我在网上看到的,可以这样用吗?怀疑中)望达人告知. " ~0 |9 ?3 Q& T! I: |) e4 j9 Q
5,下载电缆,Altera下的下载电缆分为byteblaster和byteblasterMV,以及ByteBlaster II,现在还推出了基于USB-blaster.由于BB基本已经很少有人使用,而USB-Blaster现在又过于昂贵,这里就说一下BBII和 BBMV的区别.
" Q+ P" C5 \" G- o ?" d* OBBII支持多电压供电5.5v,3.3v,2.5v,1.8v; ; ?8 _8 b+ r: z1 W! r
BBII支持三种下载模式:AS,可对Altera的As串行配置芯片(EPCS系列)进行编程
- A/ w( O0 D- Q0 F1 w6 \&<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; PS,可对FPGA进行配置
. ?, }8 X- u3 o1 c&<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; &<60; JTAG,可对FPGA,CPLD,即Altera配置芯片(EPC系列)编程 # F F" A* Y' o$ [, [& E
&<60; &<60; 而BBMV只支持PS和JTAG + J" j5 W- X7 w! o( b7 V) ~0 ?
6,一般在做FPGA实验板,(如cyclone系列)的时候,用AS+JTAG方式,这样可以用JTAG方式调试,而最后程序已经调试无误了后,再用 AS模式把程序烧到配置芯片里去,而且这样有一个明显的优点,就是在AS模式不能下载的时候,可以利用Quartus自带的工具生成JTAG模式下可以利用的jic文件来验证配置芯片是否已经损坏,方法祥见附件(这是骏龙的人写的,摘自咱们的坛子,如有版权问题,包涵包涵).
1 A7 R) M6 N% \7 s; g- x! N7.Altera的FPGA可以通过单片机,CPLD等加以配置,主要原理是满足datasheet中的时序即可,这里我就不多说了,有兴趣的朋友可以看看下面几篇文章,应该就能够明白是怎么回事了.
c9 I& O( G# o7 v" Q# Q& d8.配置时,quartus软件操作部分: 3 R6 a9 ~+ S: O- S8 W4 X2 @
(1).assignment-->device-->device&pin options-->选择configuration scheme,configuaration mode,configuration device,注
9 @" M6 V9 q$ Q# [2 |2 i1 x& c% _, l
意在不支持远程和本地更新的机器中configuration mode不可选择,而configuration device中会根据不同的配置芯片产生pof文件, 2 W2 U8 a a% J( X5 W. [
) I) @* j7 X6 ~0 V7 {
如果选择自动,会选择最小密度的器件和适合设计
1 J- C4 Z5 A3 M+ Z: M- X/ h- M(2).可以定义双口引脚在配置完毕后的作用,在刚才的device&pin option-->dual-purpose pins-->,可以在配置完毕后继续当I/O口 % p6 [8 ~) y; r" ]6 J! \2 K) G7 N
! g- j- x* D8 k* j! d
使用
9 n; a1 ]" x$ c. L(3).在general菜单下也有很多可钩选项,默认情况下一般不做改动,具体用法参见altera configuration ! ^! X% B9 j+ b
, U6 [. C. ^- Q" t! F( ihandbook,volume2,sectionII. 0 s6 S" x* H4 A' r! s0 k
(4)关于不同后缀名的文件的适用范围: 3 L+ N% m+ {% H' j, i
sof(SRAM Object File)当直接用PS模式下将配置数据下到FPGA里用到,USB BLASTER,MASTERBLASER,BBII,BBMV适用,quartusII会自
7 p( v; Y# x; I% M- {
5 w# I0 g& j2 p& {+ c动生成,所有其他的配置文件都是由sof生成的. ; E1 v7 T, V: S O) ^: s
pof(Programmer Object File)也是由quartusII自动生成的,BBII适用,AS模式下将配置数据下到配置芯片中
0 A. y6 v! s' f, F% q! L3 D; qrbf(Raw Binary File)用于微处理器的二进制文件.在PS,FPP,PPS,PPA配置下有用处 $ h2 _3 f/ k7 z
rpd(Raw Programing Data File)包含bitstream的二进制文件,可用AS模式配置,只能由pof文件生成 4 Q% O0 F' f; @1 Y: x- x
hex(hexadecimal file)这个就不多说了,单片机里很多 ?2 C" ^/ ~" S7 J; [" `
ttf(Tabular Text File)适用于FPP,PPS,PPA,和bit-wide PS配置方式 + q; p/ [! v) E1 ?$ ]
sbf(Serial Bitstream File)用PS模式配置Flex 10k和Flex6000的
+ ~! i% c$ s }/ L: R- I2 [7 sjam(Jam File)专门用于program,verigy,blank-check z& e$ i% t8 l8 H1 _( E
jic的用法6楼已经提到,在这里就不多说了 ; R. Z6 z4 e1 o. q
|
|
|