赞
踩
第一次写文章。。。
通常,升级FPGA程序(写flash)可通过:
1、下载器,烧写bin(mcs等)文件。
2、由另一个芯片去控制存储FPGA程序的flash读写,如加一块A7芯片,将其他接口发过来的bin文件写入flash中,在上电时将数据读出来,送入被升级FPGA的启动引脚,完成程序升级。
现在,介绍一种通过STARTUP原语的升级方法。
首先,新建一个blockdesign,添加microblaze软核,添加axi_quad_spi IP,其配置如下
可以看到此IP包含STARTUP原语,这样就可以通过软核来控制原语时序,用户不必纠结具体的时序操作。
blockdesign框图如下
可以看到,软核上挂了双端口ram和axi_quad_spi。程序实现的大体思路就是,来自外部的bin文件包(若有ddr3类似的缓存可一次全部写入)写入ram,由软核读取该数据包,并通过axi_quad_spi模块控制写入挂载在被升级FPGA上的flash中,写完一包后,由软核通知外部控制器发送下一包数据,直到配置完成。
注意:flash要支持SPI协议。
软核程序可在example design中获取。该程序主要是实现一些spi接口初始化、中断配置、擦除flash,写flash操作。
外部发送的数据接口类型不限,只要是能够接收bin文件包,并写入双端口ram中即可,并且可以和FPGA进行指令交互即可。
写在最后,没时间细写,将就着看,主要是提供一个思路。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。