关于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的

转载于:https://www.cnblogs.com/feng-bxr/articles/2469718.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在解决FPGA程序固化重新上电后程序不运行的问题时,可以采取以下措施: 1. 检查电源连接:确认FPGA芯片的电源连接是否正常,检查供电电压是否达到规定范围。如果电压不稳定或低于要求,可能导致FPGA芯片无法正常启动。 2. 确认配置文件:检查FPGA芯片的配置文件是否正确,包括程序代码、时钟设置、引脚分配等。确保程序代码被正确加密并烧录到FPGA芯片中。 3. 初始化过程:在重新上电后,确保FPGA芯片的初始化过程正常。这包括复位、时钟配置等操作。可以通过检查FPGA芯片的状态寄存器来确认初始化状态是否正常。 4. 时钟问题FPGA芯片的时钟设置非常重要。如果时钟信号异常,可能会导致FPGA芯片无法正确工作。确保时钟源和时钟分频设置正确,并检查时钟信号的稳定性。 5. 引脚分配:检查FPGA芯片的引脚分配是否正确。如果引脚分配错误,可能无法正确连接到外部设备或其他芯片,导致程序无法运行。 6. 调试工具:使用FPGA芯片的调试工具(如JTAG调试工具)进行调试,检查程序运行时的状态和寄存器值。通过调试工具可以定位问题,并查看可能的错误信息。 总结起来,解决FPGA程序固化重新上电程序不运行的问题需要仔细检查电源连接、确认配置文件正确性、确保初始化过程正常、处理时钟问题、检查引脚分配和使用调试工具进行调试。通过这些措施可以解决FPGA重新上电后程序无法正常运行的问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值