如何FPGA远程FPGA版本更新
本帖最后由 vjcmain 于 2018-5-9 14:20 编辑RT 带有FPGA芯片的 投放到市场有可能因为修复BUG 或者增加功能 需要对FPGA的配置进行更新,使用JTAG编程器拆机烧录FLASH 看起来不是一个好方法。请问大家都是用什么方案来在线更新FPGA?
请问可以可以利用FPGA与FALSH的配置接口往FALSH写入数据吗?FPGA配置引脚在完成配置后用户是否可以使用?
如果能使用的话意味着可以往里写数据,那么就可以更新FPGA 版本了?
问一下厂家要如何热更新。
有个想法,如果怕变砖的话,可以在板上放个小单片机来做辅助,如果FPGA没有正确启动起来,可以由MCU来更新FPGA的程序。 xilinx,lattice都可以双boot 以前做过一块板子,上面有单片机和fpga两部分,fpga是通过单片机主动配置的,配置文件是单片机内部存着的,这样不用说更新,即使你想一块板跑N个fpga程序都没问题{:titter:} 那个脚是可以直接用的,本来就是双用io。只是在线升级变砖后就再也起不来了,只能拆机烧 单片机外部通信,接收、存储、配置FPGA固件;
FPGA设置为被动加载模式,花样可以更多 wye11083 发表于 2018-5-9 15:48
那个脚是可以直接用的,本来就是双用io。只是在线升级变砖后就再也起不来了,只能拆机烧 ...
大神,你的意思是说这个配置管脚在加载完成后用户可以访问? xivisi 发表于 2018-5-9 16:00
单片机外部通信,接收、存储、配置FPGA固件;
FPGA设置为被动加载模式,花样可以更多 ...
硬件已经发布了。改板成本太高了。当前的架构能否实现升级呢? gwj221 发表于 2018-5-9 15:07
xilinx,lattice都可以双boot
所谓的mutiboot (多重启动)? aozima 发表于 2018-5-9 14:58
问一下厂家要如何热更新。
有个想法,如果怕变砖的话,可以在板上放个小单片机来做辅助,如果FPGA没有正确 ...
新的项目考虑使用MCU 外挂FLASH存FPGA的配置文件,然后电MCU直接配置FPGA。 但现在木已成舟。 vjcmain 发表于 2018-5-9 16:46
大神,你的意思是说这个配置管脚在加载完成后用户可以访问?
我一直在这样用,现在我干脆把spi绑到fx3上去了(我这主要是usb),这样随时可以在线下载。之前用fpga下载容易变砖,时序有一点不稳定就变砖。基本上除了几个固定功能脚,其它全是多用脚,你找找手册,说的很清楚。 lattice XO2 可以 vjcmain 发表于 2018-5-9 16:47
所谓的mutiboot (多重启动)?
是啊 最方便 如果更新的挂了 从原始的驱动再更新 一直到更新成功为止 加个单片机 用于升级 记得以前用过周立功的逻辑分析仪,里面有个fpga芯片但是没有配置芯片,固件是使用的时候直接从上位机通过USB数据线配置到fpga里面的。用单片机模拟FPGA 配置数据的协议。 可以用的,不需要加单片机 xilinx可以在的spi flash里面放置2个固件,一个main,一个backup或者叫golden,启动时候先启动main,如果启动失败,就会自动切换到从backup启动。
这样backup出厂写死,保证可升级的基本功能,而main则是可以FPGA自己擦写spi flash升级的,对应的管脚在启动完成后都是可以使用的用户管脚,就是擦写逻辑注意约束地址部分,别擦到backup了。 mark,收藏备用 有点意思,关注下 我们一般都是用MCU主动配置FPGA,升级直接固件发到MCU,我觉得这个才是靠谱方案
羿凌天 发表于 2018-5-15 17:11
我们一般都是用MCU主动配置FPGA,升级直接固件发到MCU,我觉得这个才是靠谱方案
...
每次开机 MCU都要配置FPGA吗?, 还是MCU 负责接受PC 发来的固件,放到FPGA的配置FLASH里面?。 Altera 的可以直接用它的RSU IP jiaowoxiaolu 发表于 2018-5-9 15:08
以前做过一块板子,上面有单片机和fpga两部分,fpga是通过单片机主动配置的,配置文件是单片机内部存着的, ...
一般用什么单片机,装不下怎么办?
现在ALTERL CYCLONE IV E系列最低端配置文件也不小呀,还不算软核.ELF文件。 羿凌天 发表于 2018-5-15 17:11
我们一般都是用MCU主动配置FPGA,升级直接固件发到MCU,我觉得这个才是靠谱方案
...
一般用什么单片机,装不下怎么办?
现在ALTERL CYCLONE IV E系列最低端配置文件也不小呀,还不算软核.ELF文件。 硬件完全不需要改,我有办法搞定这个问题,不过得付费。{:tongue:} 羿凌天 发表于 2018-5-15 17:11
我们一般都是用MCU主动配置FPGA,升级直接固件发到MCU,我觉得这个才是靠谱方案
...
PCIe有枚举的独特特性。
带MCU,做的不精致的话卡会不好用。
在线升级简单的很,做个MCU挂SPI的IP就行了,升级失败可以用MultiBoot的Fallback加上芯片写保护实现。 xilinx有现成的DEMO
搜索一下XAPP rerainings 发表于 2018-5-16 10:55
17楼方法正解,我们目前发布的设备有这样实现的。不过现在都换成外部mcu主动配置了。 ...
请问一下,这种mcu主动配置哪里有参考例程?
见过有fpga开发板用f103做主动配置,连接电脑虚拟出优盘,拷贝进去就完成fpga程序更新 是可以利用FPGA与FLASH的配置接口往FLASH里写入数据的,利用与fpga通讯的接口将需要配置的数据写入flash中,之前的项目没有直接写入配置信息,而是写入了一段在线加载数据代码,是可以完成数据的读写操作 mcu和fpga连接只要mosi 和 sck .done, progB ,FPGA配置好启动模式,直接发送原来主动配置时写到flash的数据就行。 没见过 fpga 主动模式下回写配置flash的。即使原理可以但是不安全呀,如果更新过程中断就变砖了。 楼主这个功能实现了吗?我最近也在研究这个,想取取经。 用MCU 写入,甚至还可以把fpga二进制代码放到mcu的flash里面 之前做的项目是PCIE直接升级flash 不用外接MCU,内部可以用NIOSII来更新 dellric 发表于 2022-11-14 18:45
不用外接MCU,内部可以用NIOSII来更新
(引用自37楼)
那xilinx家的怎么说呢? zzsczz 发表于 2022-11-17 11:24
那xilinx家的怎么说呢?
(引用自38楼)
MicroBlaze RAMILE 发表于 2018-5-9 17:44
lattice XO2 可以
(引用自12楼)
这个可以的
页:
[1]