如何避免FPGA升级失败变砖

本文讨论了在FPGA烧写过程中可能出现的问题,提出了一种通过在固定地址固化基础程序并允许软件更新的方法,以及利用XILINXGoldImage和返回地址策略来处理烧写失败。同时,详细说明了0地址和4地址的配置设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

在实际使用的时候FPGA没办法保证每一次烧写都是成功的,有可能烧写的过程有问题导致烧写失败,这个时候FPGA就编程砖了,需要重新掉电烧写。

问题描述

在更新FPGA程序的时候有没有办法在逻辑烧写不完整的情况下启动一个备用逻辑来实现远程烧写的功能呢?在远程烧写失败的情况下如何在不拆解产品的情况下重新更新逻辑呢?如何让自己偷懒,给软降帮忙烧写逻辑呢(这个最关键)?

原因分析:

烧写失败重启逻辑的办法又好几种
第一种:采用XILINX的 gold image 的办法(没有验证,应该是可行的)
第二种:采用返回地址的办法

解决方案:

FPGA启动的时候是固定启动32’h0000_0000地址的程序的,所以我们需要在32’h0000_0000地址固化一个基础程序,让软件可以在这个基础版本上面进行更新逻辑程序。同时在32’h0040_0000地址上面烧写一个正式程序,这个程序包含我们所需要的全部功能,这个程序会在0地址启动之后检验该地址的程序是否校验通过,通过则启动该地址程序。这样我们就可以在0地址启动之后4地址的程序没有问题就启动4程序,有问题就启动0程序让软件可以更新程序,当然也可以在4地址也加上让软件可以更新,这样更加方便。

0地址约束:

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]

4地址约束:

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 32’h00400000 [current_design]
set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值