传统的FPGA程序更新的方式是使用开发工具通过JTAG方式将FPGA程序固化至存储器件Nor Flash中,当某一复杂系统内需要更新多块FPGA时,JTAG方式由于同时只能更新一块FPGA,耗费时间长,并且还必须连接线缆,无法实现远程更新。因此,提出了一种FPGA在线更新程序的实现方案,该方案可以实现系统内的多块FPGA程序更新,最大化更新速度的同时,可通过网络实现远程更新,便于调试及远程升级。 《基于Flash控制器的FPGA在线加载功能设计》 在当今的嵌入式系统设计中,现场可编程门阵列(Field Programmable Gate Array,FPGA)因其灵活性和可配置性而备受青睐。然而,传统的FPGA程序更新方式,即通过JTAG接口将程序固化到Nor Flash中,存在诸多不便。在复杂的系统中,当需要更新多块FPGA时,JTAG更新方式不仅耗时,而且需要物理连接,无法实现远程更新。因此,本文提出了一种基于Flash控制器的FPGA在线加载功能设计,旨在提高更新效率,并支持远程更新。 0 引言 随着FPGA在各种应用中的普及,其程序的频繁更新成为常态。传统的JTAG更新方法在面对大规模FPGA系统时显得效率低下。本文的创新之处在于利用FPGA内部逻辑控制Flash控制器,实现对多个FPGA并行更新,从而显著提升更新速度,同时支持远程更新,为系统的调试和升级提供了便利。 1 FPGA配置方式 常见的FPGA配置方式有串行Flash、并行Flash和JTAG等,其中并行Flash(BPI)是最常用的一种。它通过控制读写使能信号和地址线,将配置文件写入Nor Flash,FPGA重启后从Flash中读取配置数据进行加载。本文的在线更新方案正是基于这种并行配置方式,通过FPGA逻辑控制Flash的读写,实现多块FPGA的并行更新。 2 Flash控制器设计 Flash控制器的设计是实现FPGA在线更新的关键。控制器需要能够执行读、写、擦除等基本操作,通过控制相应的命令寄存器和接口信号(如片选、写使能、读使能、地址和数据总线)来实现。例如,Spansion公司的S29GL-P系列Nor Flash,其控制器外部接口包括启动信号、数据交互信号以及状态指示等。控制器的工作流程通常包括读ID以验证芯片、执行扇区擦除和写缓冲操作。 3 工程应用及性能测试 在实际项目中,例如一个包含10块FPGA的系统,采用本文提出的在线加载方案,可以构建如图7所示的系统架构。通过性能测试,我们可以评估该方案的效率和可靠性。在并行更新过程中,地址会自动累加,写操作选择缓冲写以最大化速度,而读操作则根据系统需求选择单字读。在完成擦除和写入操作后,通过config_status信号确认更新状态。 总结,基于Flash控制器的FPGA在线加载功能设计为复杂系统中的FPGA程序更新提供了一种高效且灵活的解决方案。它减少了更新时间,增强了系统的可维护性和远程服务能力,对于现代嵌入式系统的设计和优化具有重要意义。
- 粉丝: 7
- 资源: 880
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助