CN114489742B - 一种提升ate设备中fpga在线升级效率的升级方法及*** - Google Patents
一种提升ate设备中fpga在线升级效率的升级方法及*** Download PDFInfo
- Publication number
- CN114489742B CN114489742B CN202111677571.5A CN202111677571A CN114489742B CN 114489742 B CN114489742 B CN 114489742B CN 202111677571 A CN202111677571 A CN 202111677571A CN 114489742 B CN114489742 B CN 114489742B
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- address
- flash0
- flash1
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出了一种提升ATE设备中FPGA在线升级效率的升级方法及***,方法包括:获取待升级FPGA地址以及版本数据;解析出所有Flash地址和待写入版本数据;寻址Flash地址对应的所有Flash,将版本数据分别写入到每个Flash中;通过读取每个Flash中的写入数据,并与版本数据进行数据对比,以判断每个Flash是否通过数据校验;若某个Flash通过数据校验,则相应的FPGA从该Flash中加载数据,完成在线升级。本发明将FPGA的版本数据通过并行的方式写入到Flash中,实现了多个Flash同时写入,大幅缩短版本数据下载到Flash的时间,极大提高了ATE设备在FPGA在线升级上的效率。同时优化了数据校验的方法,大大缩减了数据读取和数据对比的数据,在减少数据传输量的同时,提升了数据校验效率。
Description
技术领域
本发明涉及半导体芯片测试领域,特别涉及一种提升ATE设备中FPGA在线升级效率的升级方法及***。
背景技术
ATE(Automatic Test Equipment)是自动测试设备,它是一种由高性能计算机控制的测试仪器的集合体,是由测试仪和计算机组合而成的测试***,计算机通过运行测试机程序的指令来控制测试硬件。半导体芯片ATE用于检测集成电路的功能和性能的完整性,是集成电路生产制造流程中确保集成电路品质的重要设备,其对集成电路测试通常需经过测试机程序设计、程序编译、向量加载、测试执行四个过程。
在ATE设备中,每块业务板上都会配置有两块FPGA,分别实现不同的功能。在实际应用中,FPGA在生产时的调试一般用JATG接口进行烧录、调试。而等到FPGA实际应用到产品中时,由于JATG接口操作过于复杂,一旦需要更新FPGA程序,则必须使用在线升级,将新的FPGA程序下载到Flash中,在一定的条件下,使得FPGA从Flash中加载新的FPGA程序,完成在线升级。
由于国产ATE设备发展迅猛,FPGA的版本迭代速度极快,每次版本升级都需要耗费大量时间,升级效率问题极低。现有技术中,FPGA在线升级时,FPGA程序下载到Flash是最为耗时的步骤。假设一个FPGA器件写入Flash需要30秒,一块业务板有2个FPGA器件,一台ATE设备有20块业务板,则一台ATE设备升级业务板需要2*20*30秒。此外,由于写入的数据量大,写入时极易出错,数据写入Flash后需要读取出来进行数据对比,判断数据是否正确写入。读写的数据量大,读取时间长,极大影响在线升级的效率。
综上所述,现有技术中,FPGA在线升级普遍具有升级效率低、校验时间长的弊端。
因此,急需一种关于ATE设备中业务板FPGA升级的相关方案来解决FPGA在线升级效率低的问题。
发明内容
有鉴于此,本发明提出了一种提升ATE设备中FPGA在线升级效率的升级方法及***,具体方案如下:
一种提升ATE设备中FPGA在线升级效率的升级方法,适用于包括主控板、背板和业务板的ATE设备中,其中,每个所述业务板包括配置有Flash0的第一FPGA和配置有Flash1的第二FPGA;
所述升级方法包括如下:
获取待升级FPGA地址以及关于FPGA升级的版本数据;
从所述待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址,从所述版本数据中解析出需写入到Flash0的第一版本数据和需写入到Flash1的第二版本数据;
寻址所述第一地址对应的所有Flash0,将所述第一版本数据分别写入到每个Flash0中,得到第一写入数据;寻址所述第二地址对应的所有Flash1,将所述第二版本数据分别写入到每个Flash1中,得到第二写入数据;
通过读取每个Flash0中的第一写入数据,并与所述第一版本数据进行数据对比,以判断每个Flash0是否通过数据校验;通过读取每个Flash1中的第二写入数据,并与所述第二版本数据进行数据对比,以判断每个Flash1是否通过数据校验;
若某个Flash0通过数据校验,则相应的第一FPGA从该Flash0中加载第一写入数据,完成在线升级;若某个Flash1通过数据校验,则相应的第二FPGA从该Flash1中加载第二写入数据,完成在线升级。
在一个具体实施例中,“从所述待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址”具体包括:
从所述待升级FPGA地址中,解析出每个待升级FPGA对应的业务板地址和主板地址;所述待升级FPGA包括所述第一FPGA和所述第二FPGA;
根据所述业务板地址总结出一个虚拟业务板地址,所述虚拟业务板地址能够涵盖所有待升级FPGA的业务板地址,根据所述主板地址总结出一个虚拟主板地址,所述虚拟主板地址能够涵盖所有待升级FPGA的主板地址;
在所述虚拟业务板地址和所述虚拟主板地址的基础上,结合所述Flash0地址构建出一个第一地址,所述第一地址能够涵盖所有第一FPGA的Flash0地址,结合所述Flash1地址构建一个第二地址,所述第二地址能够涵盖所有第二FPGA的Flash1地址。
在一个具体实施例中,所述第一地址和所述第二地址的大小均为4Byte;
其中,所述Flash0地址的大小为1Byte,所述Flash1地址的大小为1Byte,所述虚拟业务板地址的大小为2Byte,所述虚拟主板地址的大小为1Byte。
在一个具体实施例中,所述数据校验具体包括:
读取每个第一写入数据在第一预设位置上的数据,与所述第一版本数据的在所述第一预设位置上的数据进行数据对比,若所述第一版本数据和某个第一写入数据在所述第一预设位置上的数据相同,则所述第一版本数据正确写入该Flash0中,该Flash0通过数据校验;
读取每个第二写入数据在第二预设位置上的数据,与所述第二版本数据的在所述第二预设位置上的数据进行数据对比,若所述第二版本数据和某个第二写入数据在所述第二预设位置上的数据相同,则所述第二版本数据正确写入该Flash1中,该Flash1通过数据校验。
在一个具体实施例中,所述第一预设位置和所述第二预设位置均为随机设置;
每个第一写入数据在第一预设位置上的数据的总量为16Byte;
每个第二写入数据在第二预设位置上的数据的总量为16Byte。
在一个具体实施例中,所述第一FPGA和所述第二FPGA在功能模式上不同,所述第一版本数据和所述第二版本数据不同;
根据所述第一FPGA的功能模式从所述版本数据中解析出需写入到Flash0的第一版本数据,根据所述第二FPGA的功能模式从所述第二版本数据中解析出需写入到Flash1的第二版本数据。
一种提升ATE设备中FPGA在线升级效率的升级***,适用于包括主控板、背板和业务板的ATE设备中,其中,每个所述业务板中包括配置有Flash0的第一FPGA和配置有Flash1的第二FPGA;
所述升级***包括如下,
数据获取单元:用于获取待升级FPGA地址以及关于FPGA升级的版本数据;
数据解析单元:用于从所述待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址,从所述版本数据中解析出需写入到Flash0的第一版本数据和需写入到Flash1的第二版本数据;
数据写入单元:用于寻址所述第一地址对应的所有Flash0,将所述第一版本数据分别写入到每个Flash0中,得到第一写入数据;寻址所述第二地址对应的所有Flash1,将所述第二版本数据分别写入到每个Flash1中,得到第二写入数据;
数据校验单元:用于通过读取每个Flash0中的第一写入数据,并与所述第一版本数据进行数据对比,以判断每个Flash0是否通过数据校验;通过读取每个Flash1中的第二写入数据,并与所述第二版本数据进行数据对比,以判断每个Flash1是否通过数据校验;
数据加载单元:若某个Flash0通过数据校验,则相应的第一FPGA从该Flash0中加载第一写入数据,完成在线升级;若某个Flash1通过数据校验,则相应的第二FPGA从该Flash1中加载第二写入数据,完成在线升级。
在一个具体实施例中,所述数据解析单元具体包括:
从所述待升级FPGA地址中,解析出每个待升级FPGA对应的业务板地址和主板地址;所述待升级FPGA包括所述第一FPGA和所述第二FPGA;
根据所述业务板地址总结出一个虚拟业务板地址,所述虚拟业务板地址能够涵盖所有待升级FPGA的业务板地址,根据所述主板地址总结出一个虚拟主板地址,所述虚拟主板地址能够涵盖所有待升级FPGA的主板地址;
在所述虚拟业务板地址和所述虚拟主板地址的基础上,结合所述Flash0地址构建出一个第一地址,所述第一地址能够涵盖所有第一FPGA的Flash0地址,结合所述Flash1地址构建一个第二地址,所述第二地址能够涵盖所有第二FPGA的Flash1地址。
在一个具体实施例中,所述第一地址和所述第二地址的大小均为4Byte;
其中,所述Flash0地址的大小为1Byte,所述Flash1地址的大小为1Byte,所述虚拟业务板地址的大小为2Byte,所述虚拟主板地址的大小为1Byte。
在一个具体实施例中,所述数据校验单元具体包括:
读取每个第一写入数据在第一预设位置上的数据,与所述第一版本数据的在所述第一预设位置上的数据进行数据对比,若所述第一版本数据和某个第一写入数据在所述第一预设位置上的数据相同,则所述第一版本数据正确写入该Flash0中,该Flash0通过数据校验;
读取每个第二写入数据在第二预设位置上的数据,与所述第二版本数据的在所述第二预设位置上的数据进行数据对比,若所述第二版本数据和某个第二写入数据在所述第二预设位置上的数据相同,则所述第二版本数据正确写入该Flash1中,该Flash1通过数据校验。
有益效果:本发明提出了一种提升ATE设备中FPGA在线升级效率的升级方法及***,将FPGA的版本数据通过并行的方式写入到Flash中,相较于传统的逐个Flash写入,能够实现了多个Flash同时写入,大幅缩短版本数据下载到Flash的时间,极大提高了ATE设备在FPGA在线升级上的效率。同时优化了数据校验的方法,将传统的校验全部数据改为随机校验部分数据,大大缩减了数据读取和数据对比的数据,在减少数据传输量的同时,提升了数据校验效率。
附图说明
图1为本发明实施例的升级方法流程示意图;
图2为本发明的ATE设备各级结构示意图;
图3为本发明实施例的通信协议模块示意图;
图4为本发明实施例的升级***模块示意图。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
附图标记:1-数据获取单元;2-数据解析单元;3-数据写入单元;4-数据校验单元;5-数据加载单元。
具体实施方式
在下文中,将更全面地描述本发明公开的各种实施例。本发明公开可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本发明公开的各种实施例限于在此公开的特定实施例的意图,而是应将本发明公开理解为涵盖落入本发明公开的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。
在本发明公开的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本发明公开的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明公开的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明公开的各种实施例中被清楚地限定。
实施例1
本发明实施例1公开了一种提升ATE设备中FPGA在线升级效率的升级方法,通过并行写入的方式,实现所有FPGA的在线升级。升级方法流程框图说明书附图1所示,具体方案如下:
一种提升ATE设备中FPGA在线升级效率的升级方法,适用于包括主控板、背板和业务板的ATE设备中,其中,每个业务板中包括配置有Flash0的第一FPGA和配置有Flash1的第二FPGA。在本实施例中,Flash0和Flash1都是位于业务板FPGA的存储位置上。FPGA通过从Flash中加载到新的FPGA程序,实现FPGA的在线升级。
本实施例升级方法的流程图如说明书附图1所示,具体方法流程包括如下:
101、获取待升级FPGA地址以及关于FPGA升级的版本数据;
102、从待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址,从版本数据中解析出需写入到Flash0的第一版本数据和需写入到Flash1的第二版本数据;
103、寻址第一地址对应的所有Flash0,将第一版本数据分别写入到每个Flash0中,得到第一写入数据;寻址第二地址对应的所有Flash1,将第二版本数据分别写入到每个Flash1中,得到第二写入数据;
104、通过读取每个Flash0中的第一写入数据,并与第一版本数据进行数据对比,以判断每个Flash0是否通过数据校验;通过读取每个Flash1中的第二写入数据,并与第二版本数据进行数据对比,以判断每个Flash1是否通过数据校验;
105、若某个Flash0通过数据校验,则相应的第一FPGA从该Flash0中加载第一写入数据,完成在线升级;若某个Flash1通过数据校验,则相应的第二FPGA从该Flash1中加载第二写入数据,完成在线升级。
本实施例将FPGA的版本数据通过并行的方式写入到Flash中,相较于传统的逐个Flash寻址写入,实现了多个Flash同时写入,大幅缩短了版本数据下载到Flash的时间,极大提高了ATE设备在FPGA在线升级上的效率。同时,由于在数据写入Flash时,数据出错都是整包出错,即写入Flash中的全部数据出错。根据这一特点,本实施例优化了数据校验的方法,将传统的校验全部数据改为随机校验部分数据,大大缩减了数据读取和数据对比的数据量,在减少数据传输量的同时,提升了数据校验效率。
需要说明的是,本实施例提出的升级方法适用于一个业务板中包括两个FPGA的ATE设备。在实际应用中,每个主板上配置有多个业务板,每个业务板上配置有两个FPGA,每个FPGA上配置有Flash。通过主机发送涉及到FPGA更新的版本数据,结合待升级FPGA的地址,将相应的版本数据写入到每个待升级FPGA的Flash中。ATE设备中关于Flash的结构如说明书附图2所示,每个业务板的第一FPGA中的Flash都被命名为Flash0,每个业务板的第二FPGA中的Flash都被命名为Flash1。所有Flash0中的数据相同,所有的Flash1中的数据都相同。但由于第一FPGA和第二FPGA功能不一样,需要写入的版本信息也不一样,因此Flash0和Flash1的数据并不相同。
101、获取待升级FPGA地址以及关于FPGA升级的版本数据。待升级FPGA地址即为待升级FPGA所处的业务板、该业务板所处的主板。FPGA的版本数据中包括第一版本数据和第二版本数据。
102、从待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址,从版本数据中解析出需写入到Flash0的第一版本数据和需写入到Flash1的第二版本数据。
步骤102主要对步骤101的数据进行解析,具体包括:
10201、从待升级FPGA地址中,解析出每个待升级FPGA对应的业务板地址和主板地址。待升级FPGA包括第一FPGA和第二FPGA。根据第一FPGA从版本数据中解析出需写入到Flash0的第一版本数据,根据第二FPGA从第二版本数据中解析出需写入到Flash1的第二版本数据。
10202、根据业务板地址总结出一个能够涵盖所有待升级FPGA的业务板地址的虚拟业务板地址,根据主板地址总结出一个能够涵盖所有待升级FPGA的主板地址的虚拟主板地址。
10203、在虚拟业务板地址和虚拟主板地址的基础上,结合Flash0地址构建出一个能够涵盖所有第一FPGA的Flash0地址的第一地址,结合Flash1地址构建一个能够涵盖所有第二FPGA的Flash1地址的第二地址。
假设存在四个主板,主板地址分别为的0x1、0x2、0x4、0x8,则可以用0xF概括四个主板地址,0xF即为虚拟主板地址。假设每个主板上配置有5个业务板,业务板地址分别为0x1、0x2、0x4、0x8、0x10,则可以用0x1F概括5个业务板地址,0x1F即为虚拟业务板地址。
其中,第一地址包括Flash0地址、虚拟业务板地址和虚拟主板地址,第一地址包括Flash1地址、虚拟业务板地址和虚拟主板地址。获取到虚拟业务板地址和虚拟主板地址后,只需要加入Flash0地址和Flash1地址即可获取第一地址和第二地址。实际上,本实施例用Flash0地址和Flash1代替了FPGA地址。第一地址包括了所有待升级的第一FPGA地址,第二地址包括了所有待升级的第二FPGA地址。
在本实施例中。第一地址和第二地址的大小均为4Byte;其中,Flash0地址的大小为1Byte,Flash1地址的大小为1Byte,虚拟业务板地址的大小为2Byte,虚拟主板地址的大小为1Byte。第一地址和第二地址对应的通信协议如说明书附图3所示。
103、寻址第一地址对应的所有Flash0,将第一版本数据分别写入到每个Flash0中,得到第一写入数据;寻址第二地址对应的所有Flash1,将第二版本数据分别写入到每个Flash1中,得到第二写入数据。本实施例主要是对寻址方式进行调整,寻址实际上就是指寻找业务板的在位状态,在软件启动时就已经知道,因此能够控制同时写入Flash。
示例性的,假设存在4个主板,分别为主板0、主板1、主板2、主板3,主板地址分别,0x1、0x2、0x4、0x8。每个主板上配置有5个业务板,分别为业务板0、业务板1、业务板2、业务板3、业务板4,业务板地址分别为0x1、0x2、0x4、0x8、0x10。每个业务板上分别配置有第一FPGA和第二FPGA。共有40个FPGA需要升级。
现有技术只能通过逐个FPGA的寻址,需要寻址、写入四十次,实现所有FPGA的在线升级,具体方案如下:
Step1,寻址主板0,业务板0,Flash0,地址为0x1000101,将第一版本数据写入Flash0。
Step2,寻址主板0,业务板0,Flash1,地址为0x1000102,将第二版本数据写入Flash1。
Step3,寻址主板0,业务板1,Flash0,地址为0x1000201,将第一版本数据写入Flash0。
Step......
Step40,寻址主板3,业务板4,Flash1,地址为0x8001001,将第二版本数据写入Flash1。
而采用本实施例的升级方法,只需寻址、写入两次,即可实现所有FPGA的在线升级,数据写入次数为原来的1/20,效率大幅度提升。具体方案如下:
Step1,寻址所有Flash0地址为0xF001F01的第一FPGA,将第一版本数据写入所有的Flash0内;
Step2,寻址所有Flash1地址为0xF001F02的第二FPGA,将第二版本数据写入所有的Flash1内。
104、通过读取每个Flash0中的第一写入数据,并与第一版本数据进行数据对比,以判断每个Flash0是否通过数据校验;通过读取每个Flash1中的第二写入数据,并与第二版本数据进行数据对比,以判断每个Flash1是否通过数据校验;
数据校验,是数据是否正确写入的判断方法,因为FPGA升级时对数据的要求性高,需要设置专门的步骤进行数据校验。在实际测试中发现,数据写入出错均为整包出错,即整个Flash的数据都是错误的,不存在个别位置出错的情况。现有的数据校验方法都是将所有写入的数据进行读取,数据量通常达到数KB。
本实施例基于这一情况,对数据校验进行了优化,只校验部分写入数据。相较于现有技术,数据量有数KB降低为几比特进行数据,大大减少了数据传输,提升了数据校验效率。数据校验具体包括:
读取每个第一写入数据在第一预设位置上的数据,与第一版本数据的在第一预设位置上的数据进行数据对比,若第一版本数据和某个第一写入数据在第一预设位置上的数据相同,则第一版本数据正确写入该Flash0中,该Flash0通过数据校验;
读取每个第二写入数据在第二预设位置上的数据,与第二版本数据的在第二预设位置上的数据进行数据对比,若第二版本数据和某个第二写入数据在第二预设位置上的数据相同,则第二版本数据正确写入该Flash1中,该Flash1通过数据校验。
需要说明的是,也可在某些情况采用传统的数据校验方法,即将所有的第一写入数据全部读取出来,与第一版本数据进行数据对比,将第二写入数据全部读取出来,与第二版本数据进行数据比对。
优选地,第一预设位置和第二预设位置均为随机设置。在某些情况下,第一预设位置和第二预设位置也可以固定设置。例如,在个别位置的数据较为重要,可只提取该部分的数据进行数据校验。
进一步优选地,每个Flash在数据校验时,仅校验16Byte的数据。即每个第一写入数据在第一预设位置上的数据的总量为16Byte;每个第二写入数据在第二预设位置上的数据的总量为16Byte。16Byte能够满足绝大多数的版本数据准确性保证。
105、若某个Flash0通过数据校验,则相应的第一FPGA从该Flash0中加载第一写入数据,完成在线升级;若某个Flash1通过数据校验,则相应的第二FPGA从该Flash1中加载第二写入数据,完成在线升级。加载完相应的数据,即可掉电重启,使用新的FPGA程序,完成FPGA的在线升级。
假设一个FPGA器件写入Flash需要30秒,一块业务板有2个FPGA器件,一台ATE设备有20块业务板,则升级业务板需要2*20*30秒。而采用本实施例的升级方法升级业务板只需要2*30秒,效率提升了20倍。
本实施例提供了一种提升ATE设备中FPGA在线升级效率的升级方法,将FPGA的版本数据通过并行的方式写入到Flash中,相较于传统的逐个Flash写入,能够实现了多个Flash同时写入,大幅缩短版本数据下载到Flash的时间,极大提高了ATE设备在FPGA在线升级上的效率。同时优化了数据校验的方法,将传统的校验全部数据改为随机校验部分数据,大大缩减了数据读取和数据对比的数据,在减少数据传输量的同时,提升了数据校验效率。
实施例2
本发明实施例2公开了一种提升ATE设备中FPGA在线升级效率的升级***,实施例1的一种升级方法***化,***的具体结构如说明书附图4所示,具体方案如下:
一种提升ATE设备中FPGA在线升级效率的升级***,其特征在于,适用于包括主控板、背板和业务板的ATE设备中,其中,每个业务板中包括配置有Flash0的第一FPGA和配置有Flash1的第二FPGA;
升级***包括如下,
数据获取单元1:用于获取待升级FPGA地址以及关于FPGA升级的版本数据;
数据解析单元2:用于从待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址,从版本数据中解析出需写入到Flash0的第一版本数据和需写入到Flash1的第二版本数据;
数据写入单元3:用于寻址第一地址对应的所有Flash0,将第一版本数据分别写入到每个Flash0中,得到第一写入数据;寻址第二地址对应的所有Flash1,将第二版本数据分别写入到每个Flash1中,得到第二写入数据;
数据校验单元4:用于通过读取每个Flash0中的第一写入数据,并与第一版本数据进行数据对比,以判断每个Flash0是否通过数据校验;通过读取每个Flash1中的第二写入数据,并与第二版本数据进行数据对比,以判断每个Flash1是否通过数据校验;
数据加载单元5:若某个Flash0通过数据校验,则相应的第一FPGA从该Flash0中加载第一写入数据,完成在线升级;若某个Flash1通过数据校验,则相应的第二FPGA从该Flash1中加载第二写入数据,完成在线升级。
其中,数据解析单元2具体包括:
从待升级FPGA地址中,解析出每个待升级FPGA对应的业务板地址和主板地址;
根据业务板地址总结出一个能够涵盖所有待升级FPGA的业务板地址的虚拟业务板地址,根据主板地址总结出一个能够涵盖所有待升级FPGA的主板地址的虚拟主板地址;
在虚拟业务板地址和虚拟主板地址的基础上,结合Flash0地址构建出一个能够涵盖所有第一FPGA的Flash0地址的第一地址,结合Flash1地址构建一个能够涵盖所有第二FPGA的Flash1地址的第二地址。
在本实施例中,第一地址和第二地址的大小均为4Byte。其中,Flash0地址的大小为1Byte,Flash1地址的大小为1Byte,虚拟业务板地址的大小为2Byte,虚拟主板地址的大小为1Byte。
其中,数据校验单元4具体包括:
读取每个第一写入数据在第一预设位置上的数据,与第一版本数据的在第一预设位置上的数据进行数据对比,若第一版本数据和某个第一写入数据在第一预设位置上的数据相同,则第一版本数据正确写入该Flash0中,该Flash0通过数据校验;
读取每个第二写入数据在第二预设位置上的数据,与第二版本数据的在第二预设位置上的数据进行数据对比,若第二版本数据和某个第二写入数据在第二预设位置上的数据相同,则第二版本数据正确写入该Flash1中,该Flash1通过数据校验。
本实施例公开了一种提升ATE设备中FPGA在线升级效率的升级***,将实施例1的加速方法***化,使其更具实用性。
本发明提出了一种提升ATE设备中FPGA在线升级效率的升级方法及***,将FPGA的版本数据通过并行的方式写入到Flash中,相较于传统的逐个Flash写入,能够实现了多个Flash同时写入,大幅缩短版本数据下载到Flash的时间,极大提高了ATE设备在FPGA在线升级上的效率。同时优化了数据校验的方法,将传统的校验全部数据改为随机校验部分数据,大大缩减了数据读取和数据对比的数据,在减少数据传输量的同时,提升了数据校验效率。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (8)
1.一种提升ATE设备中FPGA在线升级效率的升级方法,其特征在于,适用于包括主控板、背板和业务板的ATE设备中,其中,每个所述业务板包括配置有Flash0的第一FPGA和配置有Flash1的第二FPGA;
所述升级方法包括如下:
获取待升级FPGA地址以及关于FPGA升级的版本数据;
从所述待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址,从所述版本数据中解析出需写入到Flash0的第一版本数据和需写入到Flash1的第二版本数据;
寻址所述第一地址对应的所有Flash0,将所述第一版本数据分别写入到每个Flash0中,得到第一写入数据;寻址所述第二地址对应的所有Flash1,将所述第二版本数据分别写入到每个Flash1中,得到第二写入数据;
通过读取每个Flash0中的第一写入数据,并与所述第一版本数据进行数据对比,以判断每个Flash0是否通过数据校验;通过读取每个Flash1中的第二写入数据,并与所述第二版本数据进行数据对比,以判断每个Flash1是否通过数据校验;
若某个Flash0通过数据校验,则相应的第一FPGA从该Flash0中加载第一写入数据,完成在线升级;若某个Flash1通过数据校验,则相应的第二FPGA从该Flash1中加载第二写入数据,完成在线升级;
其中,“从所述待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址”具体包括:
从所述待升级FPGA地址中,解析出每个待升级FPGA对应的业务板地址和主板地址;所述待升级FPGA包括所述第一FPGA和所述第二FPGA;
根据所述业务板地址总结出一个虚拟业务板地址,所述虚拟业务板地址能够涵盖所有待升级FPGA的业务板地址,根据所述主板地址总结出一个虚拟主板地址,所述虚拟主板地址能够涵盖所有待升级FPGA的主板地址;
在所述虚拟业务板地址和所述虚拟主板地址的基础上,结合所述Flash0地址构建出一个第一地址,所述第一地址能够涵盖所有第一FPGA的Flash0地址,结合所述Flash1地址构建一个第二地址,所述第二地址能够涵盖所有第二FPGA的Flash1地址。
2.根据权利要求1所述的升级方法,其特征在于,所述第一地址和所述第二地址的大小均为4Byte;
其中,所述Flash0地址的大小为1Byte,所述Flash1地址的大小为1Byte,所述虚拟业务板地址的大小为2Byte,所述虚拟主板地址的大小为1Byte。
3.根据权利要求1所述的升级方法,其特征在于,所述数据校验具体包括:
读取每个第一写入数据在第一预设位置上的数据,与所述第一版本数据的在所述第一预设位置上的数据进行数据对比,若所述第一版本数据和某个第一写入数据在所述第一预设位置上的数据相同,则所述第一版本数据正确写入该Flash0中,该Flash0通过数据校验;
读取每个第二写入数据在第二预设位置上的数据,与所述第二版本数据的在所述第二预设位置上的数据进行数据对比,若所述第二版本数据和某个第二写入数据在所述第二预设位置上的数据相同,则所述第二版本数据正确写入该Flash1中,该Flash1通过数据校验。
4.根据权利要求3所述的升级方法,其特征在于,所述第一预设位置和所述第二预设位置均为随机设置;
每个第一写入数据在第一预设位置上的数据的总量为16Byte;
每个第二写入数据在第二预设位置上的数据的总量为16Byte。
5.根据权利要求1所述的升级方法,其特征在于,所述第一FPGA和所述第二FPGA在功能模式上不同,所述第一版本数据和所述第二版本数据不同;
根据所述第一FPGA的功能模式从所述版本数据中解析出需写入到Flash0的第一版本数据,根据所述第二FPGA的功能模式从所述第二版本数据中解析出需写入到Flash1的第二版本数据。
6.一种提升ATE设备中FPGA在线升级效率的升级***,其特征在于,适用于包括主控板、背板和业务板的ATE设备中,其中,每个所述业务板中包括配置有Flash0的第一FPGA和配置有Flash1的第二FPGA;
所述升级***包括如下,
数据获取单元:用于获取待升级FPGA地址以及关于FPGA升级的版本数据;
数据解析单元:用于从所述待升级FPGA地址中解析出所有Flash0对应的第一地址和所有Flash1对应的第二地址,从所述版本数据中解析出需写入到Flash0的第一版本数据和需写入到Flash1的第二版本数据;
数据写入单元:用于寻址所述第一地址对应的所有Flash0,将所述第一版本数据分别写入到每个Flash0中,得到第一写入数据;寻址所述第二地址对应的所有Flash1,将所述第二版本数据分别写入到每个Flash1中,得到第二写入数据;
数据校验单元:用于通过读取每个Flash0中的第一写入数据,并与所述第一版本数据进行数据对比,以判断每个Flash0是否通过数据校验;通过读取每个Flash1中的第二写入数据,并与所述第二版本数据进行数据对比,以判断每个Flash1是否通过数据校验;
数据加载单元:若某个Flash0通过数据校验,则相应的第一FPGA从该Flash0中加载第一写入数据,完成在线升级;若某个Flash1通过数据校验,则相应的第二FPGA从该Flash1中加载第二写入数据,完成在线升级;
所述数据解析单元具体包括:
从所述待升级FPGA地址中,解析出每个待升级FPGA对应的业务板地址和主板地址;所述待升级FPGA包括所述第一FPGA和所述第二FPGA;
根据所述业务板地址总结出一个虚拟业务板地址,所述虚拟业务板地址能够涵盖所有待升级FPGA的业务板地址,根据所述主板地址总结出一个虚拟主板地址,所述虚拟主板地址能够涵盖所有待升级FPGA的主板地址;
在所述虚拟业务板地址和所述虚拟主板地址的基础上,结合所述Flash0地址构建出一个第一地址,所述第一地址能够涵盖所有第一FPGA的Flash0地址,结合所述Flash1地址构建一个第二地址,所述第二地址能够涵盖所有第二FPGA的Flash1地址。
7.根据权利要求6所述的升级***,其特征在于,所述第一地址和所述第二地址的大小均为4Byte;
其中,所述Flash0地址的大小为1Byte,所述Flash1地址的大小为1Byte,所述虚拟业务板地址的大小为2Byte,所述虚拟主板地址的大小为1Byte。
8.根据权利要求6所述的升级***,其特征在于,所述数据校验单元具体包括:
读取每个第一写入数据在第一预设位置上的数据,与所述第一版本数据的在所述第一预设位置上的数据进行数据对比,若所述第一版本数据和某个第一写入数据在所述第一预设位置上的数据相同,则所述第一版本数据正确写入该Flash0中,该Flash0通过数据校验;
读取每个第二写入数据在第二预设位置上的数据,与所述第二版本数据的在所述第二预设位置上的数据进行数据对比,若所述第二版本数据和某个第二写入数据在所述第二预设位置上的数据相同,则所述第二版本数据正确写入该Flash1中,该Flash1通过数据校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111677571.5A CN114489742B (zh) | 2021-12-31 | 2021-12-31 | 一种提升ate设备中fpga在线升级效率的升级方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111677571.5A CN114489742B (zh) | 2021-12-31 | 2021-12-31 | 一种提升ate设备中fpga在线升级效率的升级方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114489742A CN114489742A (zh) | 2022-05-13 |
CN114489742B true CN114489742B (zh) | 2023-09-05 |
Family
ID=81509711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111677571.5A Active CN114489742B (zh) | 2021-12-31 | 2021-12-31 | 一种提升ate设备中fpga在线升级效率的升级方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114489742B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677375A (zh) * | 2014-11-18 | 2016-06-15 | 中兴通讯股份有限公司 | 升级控制设备、终端、终端升级方法及*** |
CN108107352A (zh) * | 2017-12-06 | 2018-06-01 | 中国电子产品可靠性与环境试验研究所 | Fpga器件测试***及方法 |
CN110737452A (zh) * | 2019-09-30 | 2020-01-31 | 清能德创电气技术(北京)有限公司 | 一种fpga固件在线升级方法及*** |
CN112631636A (zh) * | 2020-12-25 | 2021-04-09 | 成都九洲迪飞科技有限责任公司 | 一种基于gtx的fpga在线升级方法及fpga产品 |
CN113434162A (zh) * | 2021-03-30 | 2021-09-24 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 远程在线更新fpga多版本程序的方法 |
CN113448608A (zh) * | 2021-07-14 | 2021-09-28 | 浙江国利网安科技有限公司 | 一种基于区域切片技术的fpga增量升级方法及装置 |
CN113835735A (zh) * | 2021-08-19 | 2021-12-24 | 深圳市紫光同创电子有限公司 | 一种fpga远程升级方法、***和存储介质 |
-
2021
- 2021-12-31 CN CN202111677571.5A patent/CN114489742B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677375A (zh) * | 2014-11-18 | 2016-06-15 | 中兴通讯股份有限公司 | 升级控制设备、终端、终端升级方法及*** |
CN108107352A (zh) * | 2017-12-06 | 2018-06-01 | 中国电子产品可靠性与环境试验研究所 | Fpga器件测试***及方法 |
CN110737452A (zh) * | 2019-09-30 | 2020-01-31 | 清能德创电气技术(北京)有限公司 | 一种fpga固件在线升级方法及*** |
CN112631636A (zh) * | 2020-12-25 | 2021-04-09 | 成都九洲迪飞科技有限责任公司 | 一种基于gtx的fpga在线升级方法及fpga产品 |
CN113434162A (zh) * | 2021-03-30 | 2021-09-24 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 远程在线更新fpga多版本程序的方法 |
CN113448608A (zh) * | 2021-07-14 | 2021-09-28 | 浙江国利网安科技有限公司 | 一种基于区域切片技术的fpga增量升级方法及装置 |
CN113835735A (zh) * | 2021-08-19 | 2021-12-24 | 深圳市紫光同创电子有限公司 | 一种fpga远程升级方法、***和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114489742A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11862267B2 (en) | Multi mode memory module with data handlers | |
US8170828B2 (en) | Test method using memory programmed with tests and protocol to communicate between device under test and tester | |
US6622272B1 (en) | Automatic test equipment methods and apparatus for interfacing with an external device | |
US8201037B2 (en) | Semiconductor integrated circuit and method for controlling semiconductor integrated circuit | |
US20020042897A1 (en) | Method and system for distributed testing of electronic devices | |
US10209306B2 (en) | Methods and systems for generating functional test patterns for manufacture test | |
US20120198292A1 (en) | Test apparatus and test method | |
CN113721927B (zh) | 基于fpga的ate测试向量编译加速方法及ate*** | |
CN114266210A (zh) | 芯片ate测试中的wgl文件处理方法及应用 | |
CN112034330A (zh) | 一种soc芯片自动化qc方法及装置 | |
US20080165599A1 (en) | Design structure used for repairing embedded memory in an integrated circuit | |
CN114639439B (zh) | 芯片内部sram测试方法、装置、存储介质及ssd设备 | |
US7523367B2 (en) | Method and apparatus to verify non-deterministic results in an efficient random manner | |
CN114356820A (zh) | 基于ate设备芯片测试的加速方法、装置及测试机*** | |
CN113127283B (zh) | 芯片修复***、方法、装置、计算机设备和存储介质 | |
CN107704351B (zh) | 一种芯片的验证方法和装置 | |
CN114489742B (zh) | 一种提升ate设备中fpga在线升级效率的升级方法及*** | |
CN117608883A (zh) | 原型验证中计算机***启动故障的检测方法及*** | |
CN110956998B (zh) | 一种存储器测试装置与*** | |
CN117153230A (zh) | 闪存芯片老化测试方法、装置、设备及介质 | |
CN115422091B (zh) | 一种固件调试方法及装置、电子设备、存储介质 | |
US7168029B2 (en) | Method for testing a universal serial bus host controller | |
CN114492269B (zh) | 闪存控制器的验证*** | |
US6536020B2 (en) | Efficient generation of optimum test data | |
US6813751B2 (en) | Creating standard VHDL test environments |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |