fpga程序固化不了是怎么回事

fpga程序固化不了是怎么回事,第1张

fpga程序固化不了的原因有设计错误、时序不合理和电压干扰。

1、设计错误:FPGA设计中存在设计错误,导致程序无法正确固化。此时需要重新检查设计,并进行修正。

2、时序不合理:FPGA程序的时序不合理,导致固化失败。您可以通过时序约束、时钟域划分等方式来解决时序问题。

3、电压干扰:对于一些复杂的FPGA系统,在固化过程中可能会受到来自其他硬件或干扰的影响,导致固化失败。在这种情况下,您可以采用电源滤波器、屏蔽罩等方式来降低干扰。

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下载电缆或主控器来完成。

AS PS JTAG的区别:

AS模式: 烧到FPGA的配置芯片里保存的,FPGA器件每次上电时,作为控制器从配置器件EPCS主动发出读取数据信号,从而把EPCS的数据读入FPGA中,实现对FPGA的编程;

PS模式:EPCS作为控制器件,把FPGA当做存储器,把数据写人到FPGA中,实现对FPGA的编程。该模式可以实现对FPGA在线可编程;

JTAG:直接烧到FPGA里面的,由于是SRAM,断电后要重烧;

.pof文件可以通过AS方式下载(保证byteblasterII/usb blaster连接正确);

.sof文件或者转换的.jic可以通过JTAG方式下载。

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实验板,(如cyclone系列)的时候,用AS+JTAG方式,这样可以用JTAG方式调试,而最后程序已经调试无误了后,再用 AS模式把程序烧到配置芯片里去,

关于工程中不同后缀名的文件的适用范围:

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的

比如说Altera FPGA,对于大部分芯片都可以同时采用2种编程方法,即AS+配置芯片方式以及JTAG方式,下载电缆都可以通用,比如ByteBlasterII;

用AS+配置芯片方式,就是可以将程序下载到配置芯片中,配置芯片(如EPCS系列)就是一块EPROM,它可以在每次系统上电的时候,都自动将程序烧写到FPGA中,这样一来FPGA就用不着每次上电都重新烧写了,跟使用CPLD时是一样的。这种方式下采用的下载文件时POF文件。

用JTAG方式的话,就是直接将程序下载到FPGA中,由于FPGA中是基于SRAM结构的,所以每次断电之后程序就没有了,所以必须每次上电都重新下载。用JTAG方式的好处在于便于调试,比如我们可以用QuartusII中的SignalTapII嵌入式逻辑分析仪进行FPGA I/0引脚上信号的实时观测,非常的方便。这种方式下采用的下载文件时SOF文件。

另外,如果使用了某些没有License的IP Core资源的话,那么必须在JTAG方式下,把下载线连在FPGA上才能使用,而且通常有时间限制,超过时限之后,就需要重新编译程序,产生新的SOF下载文件。

如果以上2种方式同时使用,需要2跟接线柱,一根下载线,一套配置成AS方式,一套配置成JTAG方式。前期使用JTAG方式调试,待FPGA功能成型之后,就可以用AS方式将程序固化到配置芯片中去,以后就不用每次上电都重新下载了。

2种方式具体的连接图,看看Altera官方发布的配置手册就可以了,很简单的

altera altera 对JTAG电缆、器件上电有顺序要求!另外,按照参考手册,jtag都是2.5V供电。你的jtag电缆是否支持2.5V?还有,你的程序里面双向IO口有没有可能没控制好,和外面的ASIC发生冲突造成短路?以前用过ep3c80,插拔电缆时很容易把jtag口烧掉,那次运气,只是jtag坏掉了,芯片没烧

 

 

PHY芯片的MII接口(发往FPGA)的差分信号线上没有限流电阻,因为FPGA的IO口电流范围为10uA,而PHY的输出电路为微安级mA的,这在长时间情况下会不会造成FPGA芯片损坏?


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12112576.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存