TA的每日心情 | 开心 2022-1-29 15:05 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式。& A$ S1 z' s) E# { R
AS模式(active serial configuration mode):FPGA器件每次上电时作为控制器,由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,从配置器件EPCS主动发出读取数据信号,从而把EPCS的数据读入FPGA中,实现对FPGA的编程配置数据通过DATA0引脚送入 FPGA,配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。
! K5 W, Z0 }0 |1 h& QPS模式(passive serial configuration mode):则由外部计算机或控制器控制配置过程。通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件来完成,EPCS作为控制器件,把FPGA当作存储器,把数据写人到FPGA中,实现对FPGA的编程。该模式可以实现对FPGA在线可编程。在下载配置的时候对于Cyclone II的器件,如EP2C8,在JTAG下载方式对应.sof,AS下载方式对应.pof。
4 t) N+ B; p/ ~5 EJTAG:JTAG是直接烧到FPGA里面的 由于是SRAM 断电后要重烧,AS是烧到FPGA的配置芯片里保存的 每次上电就写到FPGA里。
1 x* |2 p. W1 E! {" e- l一般情况下,Cyclone II开发板上应该有两种下载模式,AS和JTAG。
/ Z0 ]- E* v9 JAS就是下载.pof文件到EPCS中。而JTAG就是下载.sof文件到FPGA中的RAM中。
+ o _/ `8 a3 x. M: Y" v8 B; \关于JTAG的原理,大家可以参考OPEN-JTAG 开发小组写的《ARM JTAG 调试原理》。JTAG、BDM 都比较类似,实际上是将仿真功能嵌入到芯片内部,接上比较简单的调试工具就可以进行开发了,省掉了高价的仿真器。+ |5 U# x) O5 u3 k
JTAG 调试用到了 TCK、TMS、TDI、TDO 和 TRST这几个脚。其中 TRST 是用来对TAP controller进行复位的,它不是必须的。通过在 TMS脚也可以使 TAP controller复位。
0 C2 j& I9 f% v0 w# s. b) t$ FTest Clock Input (TCK)
^1 q9 u; X# C9 Q3 gTCK为 TAP的操作提供了一个独立的、基本的时钟信号,TAP 的所有操作都是通过这个时钟信号来驱动的。TCK在 IEEE 1149.1 标准里是强制要求的。7 i5 |% q: ~% l/ B/ r
Test Mode Selection Input (TMS)
. S1 D8 R# W3 L6 z# |TMS信号用来控制 TAP状态机的转换。通过 TMS信号,可以控制 TAP在不同的状态间相互转换。TMS信号在 TCK的上升沿有效。TMS在 IEEE 1149.1 标准里是强制要求的。
: T* _7 {' C$ J. xTest Data Input (TDI)! d3 F4 l- G7 D3 @
TDI 是数据输入的接口。所有要输入到特定寄存器的数据都是通过 TDI 接口一位一位串行输入的(由 TCK驱动)。TDI在 IEEE 1149.1 标准里是强制要求的。) U% O- F: F: j
Test Data Output (TDO)
+ n5 @( U9 y2 H, v9 k5 sTDO 是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过 TDO 接口一位一位串行输出的(由 TCK驱动)。TDO在 IEEE 1149.1 标准里是强制要求的。
1 \2 w3 E% U4 W: `' tTest Reset Input (TRST)
) P! L9 \8 _3 ^' |+ MTRST 可以用来对 TAP Controller 进行复位(初始化)。不过这个信号接口在 IEEE 1149.1标准里是可选的,并不是强制要求的。因为通过 TMS也可以对 TAP Controller进行复位(初始化)。7 U5 M9 H9 p+ b3 P0 ] D
FPGA在正常工作时,它的配置数据存储在SRAM中,加电时须重新下载。在实验系统中,通常用计算机或控制器进行调试,因此可以使用PS。在实用系统中,多数情况下必须由FPGA主动引导配置操作过程,这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中FPGA配置信息是用普通编程器将设计所得的.pof格式的文件烧录进去。( M) p+ U% ]/ \
专用配置器件:EPC型号的存储器* N2 M4 m0 D4 M7 c: _8 [ Y
常用配置器件:EPC1,EPC2,EPC4,EPC8,EPC1441(现在好像已经被逐步淘汰了)等,对于Cyclone II系列器件,ALTERA还提供了针对AS方式的配置器件,EPCS系列.如EPCS1,EPCS4配置器件也是串行配置的。注意,他们只适用于cyclone系列。 B9 \+ m. {+ [+ n3 f$ D5 |6 S
除了AS和PS等单BIT配置外,现在的一些器件已经支持PPS,FPS等一些并行配置方式,提升配置了配置速度。当然所外挂的电路也和PS有一些区别。还有处理器配置比如JRUNNER 等等,如果需要再百度吧,至少不下十种。比如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三种。
8 _1 n& Z/ |$ q, L2 对FPGA芯片的配置中,可以采用AS模式的方法,如果采用EPCS的芯片,通过一条下载线进行烧写的话,那么开始的"nCONFIG ,nSTATUS"应该上拉,要是考虑多种配置模式,可以采用跳线设计。让配置方式在跳线中切换,上拉电阻的阻值可以采用10K。. `8 s* @' ^4 u8 G, S: L
3 在PS模式下tip:如果你用电缆线配置板上的FPGA芯片,而这个FPGA芯片已经有配置芯片在板上,那你就必须隔离缆线与配置芯片的信号。一般平时调试时不会把配置芯片焊上的,这时候用缆线下载程序.只有在调试完成以后,才把程序烧在配置芯片中, 然后将芯片焊上,或者配置芯片就是可以方便取下焊上的那种,这样出了问题还可以方便地调试。# W: I0 n9 B5 s# [8 `8 H h
在AS模式下tip:用过一块板子用的AS下载,配置芯片一直是焊在板子上的,原来AS方式在用线缆对配置芯片进行下载的时候,会自动禁止对FPGA的配置,而PS方式需要电路上隔离。0 q4 G" K( b( N
4 一般是用JTAG配置epc2和flex10k,然后 epc2用PS方式配置flex10k.这样用比较好.(这是我在网上看到的,可以这样用吗?怀疑中)望达人告知.1 e5 P' |, J: r- u6 _" l2 N/ }
5 下载电缆,Altera下的下载电缆分为ByteBlaster和ByteBlasterMV,以及ByteBlaster II,现在还推出了基于USB-blaster.由于BB基本已经很少有人使用,而USB-Blaster现在又过于昂贵,这里就说一下BBII和 BBMV的区别.# z7 }' `& D; a) c1 c
BBII支持多电压供电5.5v,3.3v,2.5v,1.8v;" v' H; h* C' I2 a$ A H
BBII支持三种下载模式:AS,可对Altera的As串行配置芯片(EPCS系列)进行编程;PS可对FPGA进行配置 ;JTAG,可对FPGA,cpld,即Altera配置芯片(EPC系列)编程;而BBMV只支持PS和JTAG。8 i% V% }, N( ]; {- [' `) T8 {
6 一般在做FPGA实验板,(如Cyclone系列)的时候,用AS+JTAG方式,这样可以用JTAG方式调试,而最后程序已经调试无误了后,再用 AS模式把程序烧到配置芯片里去,而且这样有一个明显的优点,就是在AS模式不能下载的时候,可以利用Quartus II自带的工具生成JTAG模式下可以利用的.jic文件来验证配置芯片是否已经损坏,方法详见附件(这是骏龙的人写的,摘自坛子,如有版权问题,请包涵).3 U3 A ^- Q' t/ ]8 E) X
7 Altera的FPGA可以通过单片机,CPLD等加以配置,主要原理是满足datasheet中的时序即可,这里我就不多说了,有兴趣的朋友可以看看下面几篇文章,应该就能够明白是怎么回事了。
) d- a# F7 k' w5 ~9 F8 配置时,Quartus软件操作部分:1 s8 ~- m8 h, _% X9 |4 L
(1).assignment-->device-->device&pin options-->选择configuration scheme, configuration mode, configuration device
" ~- m* q; V: g% d注:意在不支持远程和本地更新的机器中configuration mode不可选择,而configuration device中会根据不同的配置芯片产生pof文件,如果选择自动,会选择最小密度的器件和适合设计;0 ]2 D* ?& Z- M( `- b( ?, h
(2).可以定义双口引脚在配置完毕后的作用,在刚才的device&pin option-->dual-purpose pins-->,可以在配置完毕后继续当I/O口使用;
$ a! Y/ ^% X8 `" T6 I(3).在general菜单下也有很多可钩选项,默认情况下一般不做改动,具体用法参见Altera configuration handbook,volume2,sectionII.5 J; o. q D# g
(4)关于不同后缀名的文件的适用范围:
7 d, ]9 o& } r0 S7 |% Z.sof(SRAM Object File)当直接用PS模式下将配置数据下到FPGA里用到,USB BLASTER,MASTERBLASER,BBII,BBMV适用,Quartus II会自动生成,所有其他的配置文件都是由sof生成的。. g1 c( b. q P% X: b4 n8 G
.pof(Programmer Object File)也是由Quartus II自动生成的,BBII适用,AS模式下将配置数据下到配置芯片中" y* Q2 M6 u e; L9 M5 O2 V4 I
.rbf(Raw Binary File)用于微处理器的二进制文件。在PS,FPP,PPS,PPA配置下有用处。& i- m' \7 A& e5 N
rpd(Raw Programming Data File)包含bit stream的二进制文件,可用AS模式配置,只能由pof文件生成。
1 A. K/ \( \' e! e0 o7 K/ ~) p.hex(hexadecimal file)这个就不多说了,单片机里很多。" F I: ]6 D" c' {9 t# o7 e. C
.ttf(Tabular Text File)适用于FPP,PPS,PPA,和bit-wide PS配置方式。' |1 l4 \7 d. K; Q6 j/ l
.sbf(Serial Bit stream File)用PS模式配置Flex 10k和Flex6000的。2 M% B$ [5 I) l6 O+ M
.jam(Jam File)专门用于program, verify, blank-check。# s: L% m. m8 D, B' u
|
|