CN108664264A - 一种基于cpu通过jtag方式远程更新fpga的装置和方法 - Google Patents

一种基于cpu通过jtag方式远程更新fpga的装置和方法 Download PDF

Info

Publication number
CN108664264A
CN108664264A CN201810936261.2A CN201810936261A CN108664264A CN 108664264 A CN108664264 A CN 108664264A CN 201810936261 A CN201810936261 A CN 201810936261A CN 108664264 A CN108664264 A CN 108664264A
Authority
CN
China
Prior art keywords
fpga
cpu
jtag
interface
loaded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810936261.2A
Other languages
English (en)
Inventor
邓林
吴东海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHENGDU ISTONE TECHNOLOGY Co Ltd
Original Assignee
CHENGDU ISTONE TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHENGDU ISTONE TECHNOLOGY Co Ltd filed Critical CHENGDU ISTONE TECHNOLOGY Co Ltd
Priority to CN201810936261.2A priority Critical patent/CN108664264A/zh
Publication of CN108664264A publication Critical patent/CN108664264A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

本发明涉及一种基于CPU通过JTAG方式远程更新FPGA的装置,包括FPGA设备、控制主板及远程终端机,FPGA设备包括相互连接的FPGA和FLASH,控制主板包括CPU、PCIE桥、硬盘和South Bridge,PCIE桥分别与CPU、硬盘和South Bridge连接,远程终端机包括相互连接的上位主机和输入显示器,上位主机通过以太网与CPU通信连接以将更新文件传输至CPU,South Bridge引出GPIO接口,FPGA引出JTAG接口,GPIO接口与JTAG接口相连,使得FPGA与CPU通信连接以接收CPU的更新文件并进行更新。本发明通过CPU的PCIe接口扩展引出外围PCIe和PCI桥设备,并利用该桥设备的GPIO接口模拟实现FPGA的JTAG时序,如此就可以借助网络接口将更新文件传给申威处理器平台,然后通过JTAG接口将更新文件烧写进FPGA中,进而实现FPGA代码的远程更新。

Description

一种基于CPU通过JTAG方式远程更新FPGA的装置和方法
技术领域
本发明涉及可编辑片上系统配置技术领域,特别是涉及一种基于CPU通过JTAG方式远程更新FPGA的装置及实现方法。
背景技术
目前,市面上随着FPGA的用量需求越来越大,应用范围越来越广,一般的更新及调试方式已经不能满足客户需求。
传统的更新FPGA代码的方式是借助各FPGA厂家的JTAG烧写器连接FPGA的JTAG接口,再借助各FPGA厂家提供的专用烧写软件将所需更新的FPGA逻辑代码烧写进FPGA当中,这样的烧写过程繁琐且依赖于烧写器和专用烧写软件而无法远程更新FPGA程序。
基于上述传统烧写FPGA方式,有些FPGA设备已安装在用户的整机内部或者在密闭环境中不便打开设备进行FPGA更新,此时一旦遇到为解决或调试某问题而需要更新FPGA程序时,如果采用传统烧写方式会遇到较大困难且费时费力。因此,用户对FPGA的远程更新需求也日益迫切。
而且,相当一部分用户所用FPGA开发的设备结构和设计已定型,而最初设计只预留了FPGA的JTAG接口供外部烧写更新用,因此,FPGA的远程烧写更新只能采用JTAG接口的方式,迫切需要一种采用JTAG接口的方式实现的FPGA的更新方案,以兼容用户的原有方案设计。
为此,研究人员提供了以下设计方案:
将FPGA和CPU通过多路选择开关(或缓冲器模块)一起与FPGA外接的Flash存储器连接,可以通过CPU操作多路选择开关来控制存储器与FPGA还是与CPU相连;当需要远程更新FPGA程序时,CPU通过选择开关与存储器相连,进而更新存储器中的FPGA烧写文件;更新完成后,CPU通过操作多路选择开关断开CPU与存储器的连接,并将存储器与FPGA连接,CPU在通知FPGA从外接存储器中加载更新后的烧写文件,进而实现FPGA的远程升级更新。
但是,这种解决方案需要在CPU和FPGA之间增加额外的多路选择开关和相应电路。这样才能实现在更新FPGA程序时,可借助多路选择开关将CPU与FPGA外接的存储器连接更新程序,在程序更新完成之后,需要控制多路选择开关断开CPU与存储器的连接,而将FPGA与存储器直接相连,最后控制FPGA加载存储器中更新的FPGA程序,因此实现逻辑比较繁琐,在频繁更新FPGA程序时,且多路选择开关的转换实现容易出错,增加了不稳定因素。目前很多用户已定型的FPGA外设卡等设备没有考虑多路选择开关等电路,只保留了更新FPGA所需的JTAG调试接口,因此如果用现有技术则必然导致用户FPGA外设卡的改版,需重新改版来额外增加相应开关电路,进而导致实现成本高且实现的时间周期较长,影响了用户将产品快速推向市场的时间进度。
发明内容
本发明的目的在于提供一种基于CPU通过JTAG方式远程更新FPGA的装置和方法,基于CPU通过JTAG接口远程更新FPGA逻辑代码,确保在不改动用户定型产品设计的前提下实现FPGA程序的无缝升级更新。
为了实现上述目的,本发明提供了以下技术方案:
本发明提供的一种基于CPU通过JTAG方式远程更新FPGA的装置,包括FPGA设备、控制主板及远程终端机,FPGA设备包括相互连接的FPGA和FLASH,控制主板包括CPU、PCIE桥、硬盘和South Bridge,PCIE桥分别与CPU、硬盘和South Bridge连接,远程终端机包括相互连接的上位主机和输入显示器,FPGA设备、控制主板及远程终端机分别配置有供电电源,上位主机通过以太网与CPU通信连接以将更新文件传输至CPU,South Bridge引出GPIO接口,FPGA引出JTAG接口,GPIO接口与JTAG接口相连,使得FPGA与CPU通信连接以接收CPU的更新文件并进行更新。
进一步地,CPU操作GPIO接口的控制时序以模拟标准JTAG接口,使得GPIO接口与JTAG接口相连通以传输数据。
该装置中,CPU接收需要烧写的更新文件,将更新文件经PCIE桥传输至SouthBridge;CPU控制操作GPIO接口的控制时序形成模拟JTAG接口,South Bridge将更新文件及控制指令经模拟JTAG接口传输至FPGA;FPGA接收更新文件及控制指令,按控制指令运行更新,并返回反馈数据。
该装置中,CPU根据JTAG协议标准控制操作南桥的GPIO接口来模拟出标准JTAG的控制时序输出,然后,先软复位FPGA的TAP控制器接口,TAP复位之后模拟标准JTAG操作GPIO的控制时序,以发出更新文件及控制指令到FPGA及接收FPGA的反馈数据。
还提供一种基于CPU通过JTAG方式远程更新FPGA的装置进行远程更新FPGA的方法,包括以下内容:
该装置包括FPGA设备、控制主板及远程终端机,FPGA设备包括相互连接的FPGA和FLASH,控制主板包括CPU、PCIE桥、硬盘和South Bridge,PCIE桥分别与CPU、硬盘和SouthBridge连接,远程终端机包括相互连接的上位主机和输入显示器,FPGA设备、控制主板及远程终端机分别配置有供电电源,上位主机通过以太网与CPU通信连接以将更新文件传输至CPU,South Bridge引出GPIO接口,FPGA引出JTAG接口,GPIO接口与JTAG接口相连,使得FPGA与CPU通信连接以接收CPU的更新文件并进行更新;该进行远程更新FPGA的方法包括以下步骤:
201、配置与FPGA通信接口:通过CPU操作GPIO接口的控制时序以模拟标准JTAG接口,使得CPU与FPGA通信连接;
202、下载配置逻辑到FPGA;
203、启动配置逻辑进行更新:先把升级程序通过JTAG传送到FPGA,再由配置逻辑把升级程序写入FLASH,完成更新。
其中,步骤202的具体内容如下:
202.1、获取FPGA的IDCODE:FPGA发出IDCODE指令,CPU接收到FPGA的ID号并验证,若验证通过则执行下一步骤,若验证未通过则终止程序并退出;
202.2、载入配置流:首先发送JPROGRAM指令,表示对FPGA进行全配置,再发送CFG_IN指令,表示即将载入配置逻辑;
202.3、载入配置逻辑;
202.4、一次CRC校验:校验CRC,若校验通过,则表示载入成功,可执行下一步骤;若校验未通过,则表示载入失败,终止程序并退出。
步骤203的具体内容如下:
203.1、启动载入的配置逻辑:CPU发出JSTART指令给FPGA,在规定的时钟周期后,FPGA加载配置逻辑并运行;
203.2、启动载入升级程序:根据FPGA的配置逻辑载入升级程序,具体是FPGA通过JTAG接收升级程序并把升级程序写入FLASH;
203.3、二次CRC校验:对写入FLASH的升级程序进行CRC校验,若校验通过则执行下一步骤,若校验未通过则终止程序并退出;
203.4、升级成功:上一步骤校验通过表示升级成功,断电后FPGA自动加载升级后的程序。
与现有技术相比,本发明具有以下优点:
本发明通过CPU的PCIe接口扩展引出外围PCIe和PCI桥设备,并利用该桥设备的GPIO接口模拟实现FPGA的JTAG时序,如此远程PC等调试设备就可以借助网络接口将所需更新的FPGA文件传给申威处理器平台,然后通过JTAG接口将FPGA文件烧写进FPGA中,进而实现FPGA代码的远程更新;解决了现有FPGA代码的远程更新所遇到的接口复杂、实现逻辑复杂、实现成本高和实现周期长的问题。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的硬件原理框图;
图2为本发明的方法流程图;
图3为本发明的FPGA配置逻辑框图。
具体实施方式
以下结合附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
如图1、图2所示,本实施例提供的一种基于CPU通过JTAG方式远程更新FPGA的装置,包括FPGA设备、控制主板及远程终端机,FPGA设备包括相互连接的FPGA和FLASH,控制主板包括CPU、PCIE桥、硬盘和South Bridge,PCIE桥分别与CPU、硬盘和South Bridge连接,远程终端机包括相互连接的上位主机和输入显示器,FPGA设备、控制主板及远程终端机分别配置有供电电源,上位主机通过以太网与CPU通信连接以将更新文件传输至CPU,South Bridge引出GPIO接口,FPGA引出JTAG接口,GPIO接口与JTAG接口相连,使得FPGA与CPU通信连接以接收CPU的更新文件并进行更新。
其中,CPU为申威CPU ,CPU操作GPIO接口的控制时序以模拟标准JTAG接口,使得GPIO接口与JTAG接口相连通以传输数据。
该装置中,CPU接收需要烧写的更新文件,将更新文件经PCIE桥传输至SouthBridge;CPU控制操作GPIO接口的控制时序形成模拟JTAG接口,South Bridge将更新文件及控制指令经模拟JTAG接口传输至FPGA;FPGA接收更新文件及控制指令,按控制指令运行更新,并返回反馈数据。
该装置中,CPU根据JTAG协议标准控制操作南桥的GPIO接口来模拟出标准JTAG的控制时序输出,然后,先软复位FPGA的TAP控制器接口,TAP复位之后模拟标准JTAG操作GPIO的控制时序,以发出更新文件及控制指令到FPGA及接收FPGA的反馈数据。
该装置的更新流程如下:
101、获取FPGA的IDCODE:FPGA发出IDCODE指令,CPU接收到FPGA的ID号并验证,若验证通过则执行下一步骤,若验证未通过则终止程序并退出;
102、载入配置流:首先发送JPROGRAM指令,表示对FPGA进行全配置,再发送CFG_IN指令,表示即将载入配置逻辑;
103、载入配置逻辑;
104、一次CRC校验:校验CRC,若校验通过则执行下一步骤,若校验未通过则终止程序并退出。
105、启动载入的配置逻辑:CPU发出JSTART指令给FPGA,在规定的时钟周期后,FPGA加载配置逻辑并运行;
106、启动载入升级程序:根据FPGA的配置逻辑载入升级程序,具体是FPGA通过JTAG接收升级程序并把升级程序写入FLASH;
107、二次CRC校验:对写入FLASH的升级程序进行CRC校验,若校验通过则执行下一步骤,若校验未通过则终止程序并退出;
108、升级成功:上一步骤校验通过表示升级成功,断电后FPGA自动加载升级后的程序。。
如上述,通过CPU的PCIe接口扩展引出外围PCIe和PCI桥设备,并利用该桥设备的GPIO接口模拟实现FPGA的JTAG时序,如此远程PC等调试设备就可以借助网络接口将所需更新的FPGA文件传给申威处理器平台,然后通过JTAG接口将FPGA文件烧写进FPGA中,进而实现FPGA代码的远程更新。
实施例2
如图1、图2所示,本实施例提供的一种基于CPU通过JTAG方式远程更新FPGA的装置进行远程更新FPGA的方法,包括以下内容:
该装置包括FPGA设备、控制主板及远程终端机,FPGA设备包括相互连接的FPGA和FLASH,控制主板包括CPU、PCIE桥、硬盘和South Bridge,PCIE桥分别与CPU、硬盘和SouthBridge连接,CPU为申威CPU ,远程终端机包括相互连接的上位主机和输入显示器,FPGA设备、控制主板及远程终端机分别配置有供电电源,上位主机通过以太网与CPU通信连接以将更新文件传输至CPU,South Bridge引出GPIO接口,FPGA引出JTAG接口,GPIO接口与JTAG接口相连,使得FPGA与CPU通信连接以接收CPU的更新文件并进行更新。该进行远程更新FPGA的方法包括以下步骤:
201、配置与FPGA通信接口:通过CPU操作GPIO接口的控制时序以模拟标准JTAG接口,使得CPU与FPGA通信连接;
202、下载配置逻辑到FPGA;
其中,步骤202的具体内容如下:
202.1、获取FPGA的IDCODE:FPGA发出IDCODE指令,CPU接收到FPGA的ID号并验证,若验证通过则执行下一步骤,若验证未通过则终止程序并退出;
202.2、载入配置流:首先发送JPROGRAM指令,表示对FPGA进行全配置,再发送CFG_IN指令,表示即将载入配置逻辑;
202.3、载入配置逻辑;
202.4、一次CRC校验:校验CRC,若校验通过,则表示载入成功,可执行下一步骤;若校验未通过,则表示载入失败,终止程序并退出。
203、启动配置逻辑进行更新:先把升级程序通过JTAG传送到FPGA,再由配置逻辑把升级程序写入FLASH,完成更新。
其中,步骤203的具体内容如下:
203.1、启动载入的配置逻辑:CPU发出JSTART指令给FPGA,在规定的时钟周期后,FPGA加载配置逻辑并运行;
203.2、启动载入升级程序:根据FPGA的配置逻辑载入升级程序,具体是FPGA通过JTAG接收升级程序并把升级程序写入FLASH;
203.3、二次CRC校验:对写入FLASH的升级程序进行CRC校验,若校验通过则执行下一步骤,若校验未通过则终止程序并退出;
203.4、升级成功:上一步骤校验通过表示升级成功,断电后FPGA自动加载升级后的程序。
如上述,通过CPU的PCIe接口扩展引出外围PCIe和PCI桥设备,并利用该桥设备的GPIO接口模拟实现FPGA的JTAG时序,如此远程PC等调试设备就可以借助网络接口将所需更新的FPGA文件传给申威处理器平台,然后通过JTAG接口将FPGA文件烧写进FPGA中,进而实现FPGA代码的远程更新。
下述将对上述实施例1和2进行具体说明。
参见图1,该装置可分为:远程终端机、控制主板、FPGA(Field Programmable GateArray,现场可编程门阵列)设备三大部分,各部分的功能说明如下:
1)远程终端机主要是用户可直接操作的PC上位机(该PC上位机包括主机及配置的显示屏、键盘及鼠标等)或手机及平板电脑等移动终端,借助该上位机通过以太网与控制主板相连,进而实现对控制主板的远程控制和远程更新数据的传输;
2)控制主板由申威CPU、PCIE switch桥芯片、硬盘和South Bridge(南桥芯片)组成,因为申威CPU只引出了PCIEx8的接口,所以需要通过PCIE switch桥芯片来扩展多路外部PCIEx1接口,扩展出来的PCIEx1引出相应SATA控制芯片和SATA硬盘,也可以将其中的一路PCIEx1引出南桥芯片,进一步扩展相应的外围和GPIO接口,进而CPU可以操作该GPIO口的控制时序来模拟标准JTAG(Joint Test Action Group,联合测试行动组,一种规范的硬件调试接口)接口, 该JTAG接口与FPGA设备的JTAG接口相连;
3)FPGA设备作为远程更新FPGA程序的目标板,主要由FPGA组成,其中FPGA的JTAG与控制主板的南桥模拟的JTAG接口连接,进而通过控制主板来实现FPGA程序的远程更新。
参见图2,控制主板软件处理流程,可分两个步,第一步下载配置逻辑到FPGA;第二步启动配置逻辑后把升级程序通过JTAG传送到FPGA,再由配置逻辑把升级程序写入FLASH。
参见图3,FPGA配置逻辑由JTAG接口、SPI接口、缓存和配置控制器组成。
如上述,由远程终端机通过以太网实现对控制主板的远程控制和远程数据传输,将需要更新烧写的FPGA文件传输给控制主板,然后控制主板中的申威CPU将接收到该FPGA烧写文件,一方面将该文件存放在申威CPU外扩的硬盘中存储,也便于后续FPGA程序的本地更新;另一方面将该文件经由PCIE桥传输到南桥,南桥的GPIO口与FPGA设备的JTAG口相连,并由CPU通过PCIE桥操作南桥芯片上的GPIO引脚来模拟JTAG控制时序控制和升级FPGA。
实现FPGA程序更新的具体流程为:根据JTAG协议标准的协议规范,用软件操作南桥的GPIO口来模拟出标准JTAG的控制时序输出,遵循首先软复位FPGA的TAP控制器接口,TAP复位后模拟JTAG操作GPIO时序可发出控制命令到FPGA和收到FPGA的数据。其中,软件配置流程如下:
1)读出FPGA设备的IDCODE:FPGA发出IDCODE指令,申威CPU接收到FPGA的ID号并验证,验证通过进行下一步,验证未通过终止程序退出。
2)载入配置流:首先发送JPROGRAM指令,表示对FPGA进行全配置,再发送CFG_IN指令,表示即将载入配置逻辑。
3)载入配置逻辑。
4)CRC校验:校验CRC,校验通过进行下一步,校验未通过则终止程序并退出。
5)启动载入的配置逻辑:CPU发出JSTART指令给FPGA,在规定的时钟周期后,FPGA加载配置逻辑并运行。
6)启动载入升级程序:依靠FPGA的配置逻辑就可以载入升级程序,具体过程是FPGA通过JTAG接收升级程序并把升级程序通过SPI接口写入FLASH。
7)CRC校验:对写入FLASH的升级程序进行CRC校验,校验通过进行下一步,校验未通过则终止程序并退出。
8)升级成功:断电后FPGA可以自动加载升级后的程序。
如上述,本发明根据申威处理器的架构特点,通过申威CPU的PCIe接口扩展引出外围PCIe和PCI桥设备,并利用该桥设备的GPIO接口模拟实现FPGA的JTAG时序,如此远程PC等调试设备就可以借助网络接口将所需更新的FPGA文件传给申威处理器平台,然后通过JTAG接口将FPGA文件烧写进FPGA中,进而实现FPGA代码的远程更新。
本发明基于CPU通过JTAG远程更新FPGA逻辑代码,解决现有FPGA代码的远程更新所遇到的接口复杂、实现逻辑复杂、实现成本高、实现周期长和方法不通用的技术问题。
本发明解决了用户已定型FPGA设备的远程更新的难题,在只保留了JTAG调试接口的FPGA设备中实现FPGA程序的远程更新,只需要通过JTAG接口就可以实现FPGA烧写程序的更新,实现电路简单,且没有增加额外电路。可以实现FPGA程序的烧写,大大简化了实现方法和步骤,减少了用户电路实现的复杂度,降低FPGA远程更新的成本和产品周期,便于FPGA设备向智能化和小型化方向发展。也可以摆脱需由FPGA厂家提供的专用烧写软件进行烧写的束缚,如FPGA烧写软件支持的FLASH型号有限,本发明可以突破这种限制,扩展更多型号的FLASH。
应当理解,本发明上述实施例及实例,是出于说明和解释目的,并非因此限制本发明的范围。本发明的范围由权利要求项定义,而不是由上述实施例及实例定义。

Claims (10)

1.一种基于CPU通过JTAG方式远程更新FPGA的装置,其特征在于,包括FPGA设备、控制主板及远程终端机,所述FPGA设备包括相互连接的FPGA和FLASH,所述控制主板包括CPU、PCIE桥、硬盘和South Bridge,所述PCIE桥分别与CPU、硬盘和South Bridge连接,所述远程终端机包括相互连接的上位主机和输入显示器,所述FPGA设备、控制主板及远程终端机分别配置有供电电源,所述上位主机通过以太网与CPU通信连接以将更新文件传输至CPU,所述South Bridge引出GPIO接口,所述FPGA引出JTAG接口,所述GPIO接口与JTAG接口相连,使得FPGA与CPU通信连接以接收CPU的更新文件并进行更新。
2.根据权利要求1所述一种基于CPU通过JTAG方式远程更新FPGA的装置,其特征在于,所述CPU操作GPIO接口的控制时序以模拟标准JTAG接口,使得GPIO接口与JTAG接口相连通以传输数据。
3.根据权利要求2所述一种基于CPU通过JTAG方式远程更新FPGA的装置,其特征在于,该装置中, CPU接收需要烧写的更新文件,将更新文件经PCIE桥传输至South Bridge;CPU控制操作GPIO接口的控制时序形成模拟JTAG接口,South Bridge将更新文件及控制指令经模拟JTAG接口传输至FPGA;FPGA接收更新文件及控制指令,按控制指令运行更新,并返回反馈数据。
4.根据权利要求3所述一种基于CPU通过JTAG方式远程更新FPGA的装置,其特征在于,该装置中,CPU为申威CPU ,CPU根据JTAG协议标准控制操作南桥的GPIO接口来模拟出标准JTAG的控制时序输出,然后,先软复位FPGA的TAP控制器接口,TAP复位之后模拟标准JTAG操作GPIO的控制时序,以发出更新文件及控制指令到FPGA及接收FPGA的反馈数据。
5.根据权利要求4所述一种基于CPU通过JTAG方式远程更新FPGA的装置,其特征在于,该装置的更新文件的更新流程如下:
101、获取FPGA的IDCODE:FPGA发出IDCODE指令,CPU接收到FPGA的ID号并验证,若验证通过则执行下一步骤,若验证未通过则终止程序并退出;
102、载入配置流:首先发送JPROGRAM指令,表示对FPGA进行全配置,再发送CFG_IN指令,表示即将载入配置逻辑;
103、载入配置逻辑;
104、一次CRC校验:校验CRC,若校验通过则执行下一步骤,若校验未通过则终止程序并退出;
105、启动载入的配置逻辑:CPU发出JSTART指令给FPGA,在规定的时钟周期后,FPGA加载配置逻辑并运行;
106、启动载入升级程序:根据FPGA的配置逻辑载入升级程序,具体是FPGA通过JTAG接收升级程序并把升级程序写入FLASH;
107、二次CRC校验:对写入FLASH的升级程序进行CRC校验,若校验通过则执行下一步骤,若校验未通过则终止程序并退出;
108、升级成功:上一步骤校验通过表示升级成功,断电后FPGA自动加载升级后的程序。
6.一种基于权利要求1-4任一项权利要求所述基于CPU通过JTAG方式远程更新FPGA的装置进行远程更新FPGA的方法,其特征在于,包括以下步骤:
201、配置与FPGA通信接口:通过CPU操作GPIO接口的控制时序以模拟标准JTAG接口,使得CPU与FPGA通信连接;
202、下载配置逻辑到FPGA;
203、启动配置逻辑进行更新:先把升级程序通过JTAG传送到FPGA,再由配置逻辑把升级程序写入FLASH,完成更新。
7.根据权利要求6所述一种基于CPU通过JTAG方式远程更新FPGA的方法,其特征在于,所述步骤202的具体内容如下:
202.1、获取FPGA的IDCODE:FPGA发出IDCODE指令,CPU接收到FPGA的ID号并验证,若验证通过则执行下一步骤,若验证未通过则终止程序并退出;
202.2、载入配置流:首先发送JPROGRAM指令,表示对FPGA进行全配置,再发送CFG_IN指令,表示即将载入配置逻辑;
202.3、载入配置逻辑;
202.4、一次CRC校验:校验CRC,若校验通过,则表示载入成功,可执行下一步骤;若校验未通过,则表示载入失败,终止程序并退出。
8.根据权利要求7所述一种基于CPU通过JTAG方式远程更新FPGA的方法,其特征在于,所述步骤202中,在执行步骤202.1之前,需要执行JTAG复位操作。
9.根据权利要求6所述一种基于CPU通过JTAG方式远程更新FPGA的方法,其特征在于,所述步骤203的具体内容如下:
203.1、启动载入的配置逻辑:CPU发出JSTART指令给FPGA,在规定的时钟周期后,FPGA加载配置逻辑并运行;
203.2、启动载入升级程序:根据FPGA的配置逻辑载入升级程序,具体是FPGA通过JTAG接收升级程序并把升级程序写入FLASH;
203.3、二次CRC校验:对写入FLASH的升级程序进行CRC校验,若校验通过则执行下一步骤,若校验未通过则终止程序并退出;
203.4、升级成功:上一步骤校验通过表示升级成功,断电后FPGA自动加载升级后的程序。
10.根据权利要求9所述一种基于CPU通过JTAG方式远程更新FPGA的方法,其特征在于,所述步骤203中,在执行步骤203.2之前,需要执行JTAG复位操作。
CN201810936261.2A 2018-08-16 2018-08-16 一种基于cpu通过jtag方式远程更新fpga的装置和方法 Pending CN108664264A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810936261.2A CN108664264A (zh) 2018-08-16 2018-08-16 一种基于cpu通过jtag方式远程更新fpga的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810936261.2A CN108664264A (zh) 2018-08-16 2018-08-16 一种基于cpu通过jtag方式远程更新fpga的装置和方法

Publications (1)

Publication Number Publication Date
CN108664264A true CN108664264A (zh) 2018-10-16

Family

ID=63789035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810936261.2A Pending CN108664264A (zh) 2018-08-16 2018-08-16 一种基于cpu通过jtag方式远程更新fpga的装置和方法

Country Status (1)

Country Link
CN (1) CN108664264A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408125A (zh) * 2018-11-06 2019-03-01 英业达科技有限公司 服务器系统
CN109885327A (zh) * 2019-02-28 2019-06-14 新华三信息安全技术有限公司 一种升级cpld的方法及装置
CN111158710A (zh) * 2019-12-30 2020-05-15 杭州迪普科技股份有限公司 程序烧写方法、装置及网络设备
CN112104404A (zh) * 2020-07-22 2020-12-18 北京轩宇空间科技有限公司 一种面向元器件飞行验证的fpga在轨调试方法
CN112256312A (zh) * 2020-10-14 2021-01-22 四川九洲空管科技有限责任公司 基于PowerPC的FPGA程序便捷升级方法及系统
CN113535213A (zh) * 2021-07-21 2021-10-22 联想长风科技(北京)有限公司 一种可编程逻辑器件的固件更新方法及系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050073384A (ko) * 2004-01-09 2005-07-13 삼성전자주식회사 이동통신시스템에서 프로그램이 가능한 로직 디바이스에데이터를 다운로딩하는 장치 및 방법
CN101420328A (zh) * 2008-12-03 2009-04-29 杭州华三通信技术有限公司 远程升级现场可编程门阵列的系统、接口卡及方法
CN102609287A (zh) * 2012-02-10 2012-07-25 株洲南车时代电气股份有限公司 一种通过cpu远程更新fpga的装置及其方法
CN202870800U (zh) * 2012-11-14 2013-04-10 济南迈越信息科技有限公司 一种嵌入式大容量网络存储控制模块
CN103092659A (zh) * 2013-01-31 2013-05-08 中国航空无线电电子研究所 脱离仿真器支持环境的dsp软件升级系统及其升级方法
CN203759601U (zh) * 2014-03-27 2014-08-06 无锡市同芯恒通科技有限公司 一种工业计算机主板
CN203825610U (zh) * 2014-04-21 2014-09-10 北京网视通联科技有限公司 一种arm平台下高速读写与大容量存储系统
CN105224345A (zh) * 2014-05-28 2016-01-06 株洲变流技术国家工程研究中心有限公司 一种可编程逻辑器件远程更新系统及其方法
CN105955783A (zh) * 2016-05-09 2016-09-21 浙江大学 一种基于fpga控制的远程fpga逻辑代码的下载方法
CN107066276A (zh) * 2017-04-17 2017-08-18 中国电子科技集团公司第三十四研究所 一种通信设备内的fpga器件远程配置更新的方法
CN206431464U (zh) * 2017-02-13 2017-08-22 济南浪潮高新科技投资发展有限公司 一种基于申威处理器的工业控制主板
CN107145459A (zh) * 2016-03-01 2017-09-08 华为技术有限公司 一种级联板、ssd远程共享访问的系统和方法
CN107346257A (zh) * 2017-07-03 2017-11-14 山东超越数控电子有限公司 一种基于申威服务器usb转jtag更新fpga程序的实现方法及装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050073384A (ko) * 2004-01-09 2005-07-13 삼성전자주식회사 이동통신시스템에서 프로그램이 가능한 로직 디바이스에데이터를 다운로딩하는 장치 및 방법
CN101420328A (zh) * 2008-12-03 2009-04-29 杭州华三通信技术有限公司 远程升级现场可编程门阵列的系统、接口卡及方法
CN102609287A (zh) * 2012-02-10 2012-07-25 株洲南车时代电气股份有限公司 一种通过cpu远程更新fpga的装置及其方法
CN202870800U (zh) * 2012-11-14 2013-04-10 济南迈越信息科技有限公司 一种嵌入式大容量网络存储控制模块
CN103092659A (zh) * 2013-01-31 2013-05-08 中国航空无线电电子研究所 脱离仿真器支持环境的dsp软件升级系统及其升级方法
CN203759601U (zh) * 2014-03-27 2014-08-06 无锡市同芯恒通科技有限公司 一种工业计算机主板
CN203825610U (zh) * 2014-04-21 2014-09-10 北京网视通联科技有限公司 一种arm平台下高速读写与大容量存储系统
CN105224345A (zh) * 2014-05-28 2016-01-06 株洲变流技术国家工程研究中心有限公司 一种可编程逻辑器件远程更新系统及其方法
CN107145459A (zh) * 2016-03-01 2017-09-08 华为技术有限公司 一种级联板、ssd远程共享访问的系统和方法
CN105955783A (zh) * 2016-05-09 2016-09-21 浙江大学 一种基于fpga控制的远程fpga逻辑代码的下载方法
CN206431464U (zh) * 2017-02-13 2017-08-22 济南浪潮高新科技投资发展有限公司 一种基于申威处理器的工业控制主板
CN107066276A (zh) * 2017-04-17 2017-08-18 中国电子科技集团公司第三十四研究所 一种通信设备内的fpga器件远程配置更新的方法
CN107346257A (zh) * 2017-07-03 2017-11-14 山东超越数控电子有限公司 一种基于申威服务器usb转jtag更新fpga程序的实现方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408125A (zh) * 2018-11-06 2019-03-01 英业达科技有限公司 服务器系统
CN109408125B (zh) * 2018-11-06 2022-03-29 英业达科技有限公司 服务器系统
CN109885327A (zh) * 2019-02-28 2019-06-14 新华三信息安全技术有限公司 一种升级cpld的方法及装置
CN111158710A (zh) * 2019-12-30 2020-05-15 杭州迪普科技股份有限公司 程序烧写方法、装置及网络设备
CN111158710B (zh) * 2019-12-30 2023-08-25 杭州迪普科技股份有限公司 程序烧写方法、装置及网络设备
CN112104404A (zh) * 2020-07-22 2020-12-18 北京轩宇空间科技有限公司 一种面向元器件飞行验证的fpga在轨调试方法
CN112256312A (zh) * 2020-10-14 2021-01-22 四川九洲空管科技有限责任公司 基于PowerPC的FPGA程序便捷升级方法及系统
CN112256312B (zh) * 2020-10-14 2024-03-22 四川九洲空管科技有限责任公司 基于PowerPC的FPGA程序便捷升级方法及系统
CN113535213A (zh) * 2021-07-21 2021-10-22 联想长风科技(北京)有限公司 一种可编程逻辑器件的固件更新方法及系统
CN113535213B (zh) * 2021-07-21 2024-03-29 联想长风科技(北京)有限公司 一种可编程逻辑器件的固件更新方法及系统

Similar Documents

Publication Publication Date Title
CN108664264A (zh) 一种基于cpu通过jtag方式远程更新fpga的装置和方法
CN102609286B (zh) 一种基于处理器控制的fpga配置程序远程更新系统及其方法
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
CN103198042A (zh) Pci航空串行总线板卡及实现动态加载数据处理方法
CN102736938A (zh) Fpga配置程序的烧写方法
CN113434162B (zh) 远程在线更新fpga多版本程序的方法
CN102999350A (zh) 一种数字信号处理平台中fpga程序升级在线下载方法
CN108519889B (zh) 一种基于jtag标准的fpga程序远程升级系统及方法
US20090198770A1 (en) System and method of updating codes in controller
CN105279127A (zh) 一种基于PCI或PCIe总线的FPGA程序下载系统及方法
CN105320531A (zh) 一种基于MicroBlaze软核的FPGA软件在线升级方法
CN104679559A (zh) 单片机在线编程的方法
CN103605542A (zh) Fpga配置文件的在线升级装置
WO2011029385A1 (zh) 在线加载逻辑器件的方法、系统和处理器
CN110187909A (zh) 一种基于安卓系统的单片机固件升级方法
CN104077166A (zh) 基于fpga中ip核的epcs与epcq存储器在线升级方法
CN109669729A (zh) 一种处理器的启动引导方法
CN107526614B (zh) Fpga开发板的通信方法
CN102520961A (zh) 片外在线可编程的soc系统及其控制方法
CN109992555A (zh) 一种供多路服务器共用的管理板卡
CN108182079A (zh) 一种基于串口的tms320c6748程序加载方法
CN114138360A (zh) DSP在Flash上的多核烧写启动方法及系统
CN101788946B (zh) Cpld上连接有e2prom设备的固件烧结方法及装置
CN208589013U (zh) 一种基于cpu通过jtag方式远程更新fpga的装置
CN108984457A (zh) 一种基于STM32F7的USB Host HID实验方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination