Cyclone V FPGA远程更新设计基础教程

需积分: 33 9 下载量 174 浏览量 更新于2024-09-07 1 收藏 886KB PDF 举报
本文档主要介绍了如何在Altera FPGA(这里以Cyclone V SoC Terasic开发板为例)上利用ALTREMOTEUPDATE IP进行远程FPGA重新配置。设计示例名为"SimpleRemoteUpdateExampleDesign",其目标是演示如何通过预先编程的串行闪存设备触发FPGA的重新配置,但未涉及远程更新闪存的过程,这将作为后续教程的主题。设计基础基于ALTREMOTEUPDATE用户指南和应用笔记AN603。 首先,设计概述: 1. 设计背景:适用于配备了EPCQ256闪存的Cyclone V SoC Terasic开发板,但可根据具体硬件环境轻松调整。设计仅使用了Cyclone V的基本功能,不涉及SoC部分。 2. 设计流程: - 使用Altera PLL提供稳定的时钟输入,确保系统运行稳定。 - 利用ALTREMOTEUPDATE IP作为核心组件,它允许与预加载的闪存通信,实现FPGA配置的远程请求。 - Drive_Remote_Update是自定义组件,用于驱动ALTREMOTEUPDATE与外部闪存交互。 - 通过参数输入(如PARAMinput)控制不同的功能,如选择特定的页面(例如Page_Select设置为"100")。 - DATA_INinput用于接收来自应用程序的配置数据地址(如EPCQ-x的"01000000")。 - 有一个Busy信号参数,用于指示操作是否正在进行中。 - Reconfig参数可能表示配置过程的启动或停止。 - 设计中还包括一个20MHz的系统时钟和一个25MHz的开发板时钟,以及Switch S6的输入,用于可能的用户交互。 - 最后,LEDs用于显示状态信息,如LED1TopLe用于指示配置过程的完成或者错误。 整个设计是一个基础框架,展示了如何利用ALTREMOTEUPDATE IP实现FPGA的远程配置,适合初学者了解该技术,并为其后续深入学习和定制提供了起点。
2018-12-10 上传
在实际工程应用中,我们时常会遇到为解决某个老产品的BUG,需要在工程现场更新设备的FPGA代码,或者参加电信测试时需要现场升级设备FPGA程序以便于调试。公司现阶段所用的Altera FPGA程序代码一般存放于芯片配套的FLASH存储器中,而常见的对印制板上FLASH编程有几种方法,原始的方法是使用编程器,这种方法需要要将芯片取下,十分不便,或者通过JTAG接口连接到PC机上,但需要专用下载软件(一般由芯片生产厂商提供)。在测试现场或调测机房现场,要找到FPGA的专用下载线是比较困难的,且Altera FPGA的专用下载软件并不是每个PC设备上都有的。有时仅为了更新一个FPGA的程序就需要研发或客服人员亲自到现场去烧写程序,这既不便捷,也使得设备维护成本大大增加。  经过可行性与成本的考虑,我们找到一种既方便实用又低成本的方法来实现FPGA程序的在线现升级。即在MCU中(单片机或ARM均可)用软件来模拟XModem协议,将程序文件传输到FPGA的FLASH中。这种方法使用WINDOWS自带的超级终端软件来传送文件,无需安装专用软件,硬件支持仅需要一根通用串口线,只要在目标板MCU上增加一段实现XModem协议传输的代码,就可以方便的实现FPGA程序下载了。这种特点不仅方便了客服人员,也给研发和生产人员在现场调试和软件升级、修改中带来极大方便。