CN113721927A - 基于fpga的ate测试向量编译加速方法及ate系统 - Google Patents
基于fpga的ate测试向量编译加速方法及ate系统 Download PDFInfo
- Publication number
- CN113721927A CN113721927A CN202111290327.3A CN202111290327A CN113721927A CN 113721927 A CN113721927 A CN 113721927A CN 202111290327 A CN202111290327 A CN 202111290327A CN 113721927 A CN113721927 A CN 113721927A
- Authority
- CN
- China
- Prior art keywords
- waveform
- edge
- acceleration
- format
- fpga
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提出了一种基于FPGA的ATE测试向量编译加速方法及ATE系统,编译加速方法包括:根据预设的测试机指令和基本波形编写Pattern程序文件;构建波形周期表、边沿时刻表、边沿格式表、微指令表;将Pattern程序文件下载到加速FPGA中。加速FPGA并行查表并记录表格地址,将Pattern程序文件编译成测试机可识别的可执行向量。本发明将Pattern程序编译的执行过程转移到加速FPGA中,实现用户程序的快速编译。相较于传统的借助主控板CPU来执行测试程序编译,本发明的编译加速方案,不仅可以对单条测试向量中的多字段进行并行编译,而且可以同时对多条测试向量并行编译,极大提升测试向量的编译速度,大大缩短了芯片测试的调测时间。
Description
技术领域
本发明涉及半导体芯片测试领域,特别涉及一种基于FPGA的ATE测试向量编译加速方法及ATE系统。
背景技术
ATE(Automatic Test Equipment)是自动测试设备,它是一种由高性能计算机控制的测试仪器的集合体,是由测试仪和计算机组合而成的测试系统,计算机通过运行测试程序的指令来控制测试硬件。半导体芯片ATE用于检测集成电路的功能和性能的完整性,是集成电路生产制造流程中确保集成电路品质的重要设备,其对集成电路测试通常需经过测试程序设计、程序编译、向量加载、测试执行四个过程。
其中,程序编译就是对用户设计的测试程序和测试向量进行编译的过程,最耗时的是测试向量的编译。测试向量的编译时间根据测试向量的大小和复杂度不同,往往在几分钟到几个小时不等。由于用户在开发阶段需要反复的对测试程序和向量本身进行修改和正确性验证,这就使得测试工程师需要反复的对测试程序和向量进行修改、编译、加载、测试。因此,测试向量的编译时间长短直接影响用户程序开发迭代的效率。
在当前ATE测试设备中,测试程序编译的执行主要是通过主控系统中的CPU来进行的,其有以下弊端:
(1)CPU只能根据CPU指令集结构逐条编译每一条用户编程向量,无法进行大规模并行化编译,效率较低,严重影响编译时间;
(2)CPU编译向量过程所需的大量查表动作,且只能在外部内存中完成,其编译速度受内存访问带宽和延时限制较大;
(3)CPU编译向量需要缓存大量的中间数据,在编译复杂程序时,很容易造成因内存不足而使得编译时间过长甚至导致编译软件奔溃的情况。
因此,急需一种高性能的ATE测试向量的编译加速方案来解决上述问题。
发明内容
有鉴于此,本发明提出了一种基于FPGA的ATE测试向量编译加速方法及ATE系统,具体方案如下:
一种基于FPGA的ATE测试向量编译加速方法,包括如下:
用户基于预设测试机指令和预定义的基本波形进行编程,得到ASCII码格式的Pattern程序文件;
基于所述Pattern程序文件构建波形周期表、边沿时刻表、边沿格式表和微指令表;
将所述Pattern程序文件从主控板的CPU加载到预设的加速FPGA中;
所述加速FPGA编译所述Pattern程序文件,通过查阅所述波形周期表、所述边沿时刻表、所述边沿格式表和所述微指令表并记录相应的表格地址,将所述Pattern程序文件编译为可执行向量;
所述加速FPGA将所述可执行向量上传至所述CPU中。
在一个具体实施例中,“用户基于预设测试机指令和预定义的基本波形进行编程,得到ASCII码格式的Pattern程序文件”具体包括:
预定义每个引脚在预设周期下的多个基本波形,所述基本波形为在多个不同边沿时刻发生边沿格式数据跳变的波形;
根据预设的测试机指令和所述基本波形进行编程,得到ASCII码格式的Pattern程序文件,所述Pattern程序文件包括周期ASCII码、波形ASCII码、指令ASCII码、操作数ASCII码。
在一个具体实施例中,“基于所述Pattern程序文件构建波形周期表、边沿时刻表、边沿格式表和微指令表”具体包括:
统计所述基本波形的周期数值,构建关于所述周期ASCII码和所述周期数值所对应的波形周期表,每个所述周期ASCII码对应一个所述周期数值;
统计每个引脚对应的基本波形的边沿时刻数据,构建关于所述波形ASCII码和边沿时刻数据的边沿时刻表,每个所述波形ASCII码对应一个所述边沿时刻数据;
统计每个引脚对应的基本波形的边沿格式数据,构建关于所述波形ASCII码和边沿格式数据的边沿格式表,每个所述波形ASCII码对应一个所述边沿格式数据;
将所述指令ASCII码和相对应的操作数ASCII码合并,构建关于指令ASCII码、指令编码、操作数ASCII码和操作数值的微指令表,每个所述指令ASCII码对应一个指令编码、对应一个操作数ASCII码、对应一个操作数值。
在一个具体实施例中,“所述加速FPGA编译所述Pattern程序文件,通过查阅所述波形周期表、所述边沿时刻表、所述边沿格式表和所述微指令表并记录相应的表格地址,将所述Pattern程序文件编译为可执行向量”具体包括:
通过加速FPGA在所述Pattern程序文件中查找所述周期ASCII码、所述波形ASCII码、所述指令ASCII码;
查找并记录所述周期ASCII码对应的周期数值在所述波形周期表中的表格地址,并将其作为周期地址,将所述周期ASCII码编译为所述周期地址;
查找并记录所述波形ASCII码对应的边沿时刻数据在所述边沿时刻表中的表格地址,并将其作为边沿时刻地址;
查找并记录所述波形ASCII码对应的边沿格式数据在所述边沿格式表中的表格地址,并将其作为波形格式地址,将所述波形ASCII码编译为所述波形格式地址和所述边沿时刻地址;
查找并记录所述指令ASCII码对应的指令编码在所述微指令表中的表格地址,并将其作为微指令地址,将所述指令ASCII码编译为所述微指令地址;
将编译后的Pattern程序文件作为测试机可识别、可执行的可执行向量。
在一个具体实施例中,单个引脚在各个周期的所有基本波形构成一个所述边沿时刻表和一个所述边沿格式表;
每个引脚在单个周期包括8个所述基本波形,每个所述基本波形对应一个基本波形序号;
所述波形ASCII码包括周期和所述基本波形序号。
在一个具体实施例中,所述边沿格式数据包括输出高电平、输出低电平、输出高阻态、输出保持、比较高电平、比较低电平、比较高阻态和比较中间电平。
在一个具体实施例中,每个所述基本波形可包括至多4个边沿时刻、至多8个边沿时刻或至多16个边沿时刻;
所述边沿格式数据为3bit的格式编码。
在一个具体实施例中,通过PCIE接口以直接存储器访问的方式,将所述Pattern程序文件从主控板的CPU下载到所述加速FPGA中;
通过PCIE接口以直接存储器访问的方式,将所述可执行向量从所述加速FPGA加载到主控板的CPU中。
一种ATE系统,包括编译加速装置、主控板、背板和至少一个业务板,所述背板分别连接所述主控板和所述业务板,所述编译加速装置接入所述主控板的CPU上;
在所述主控板的CPU中,用户基于预设测试机指令和预定义的基本波形进行编程,得到ASCII码格式的Pattern程序文件,并根据所述Pattern程序文件构建每个引脚的波形周期表、边沿时刻表、边沿格式表和微指令表;
在所述编译加速装置中,获取所述Pattern程序文件,并将所述Pattern程序文件加载到预设的加速FPGA中;
所述加速FPGA编译所述Pattern程序文件,通过查阅所述波形周期表、所述边沿时刻表、所述边沿格式表和所述微指令表并记录相应的表格地址,将所述Pattern程序文件编译为可执行向量;
所述加速FPGA将所述可执行向量上传至所述CPU中。
在一个具体实施例中,所述主控板上配置有PCIE接口;
所述编译加速装置通过所述PCIE接口接入所述主控板的CPU,与所述主控板上的CPU建立数据连接;
所述编译加速装置通过所述PCIE接口以直接存储器访问的方式,将所述Pattern程序文件从主控板的CPU下载到所述加速FPGA中;并通过所述PCIE接口以直接存储器访问的方式,将所述可执行向量从所述加速FPGA加载到所述主控板的CPU中。
有益效果:
本发明提出了一种基于FPGA的ATE测试向量编译加速方法及ATE系统,将程序编译的执行过程转移到加速FPGA中,实现用户程序的编译。通过查阅波形周期表、边沿时刻表、边沿格式表和微指令表,并记录地址的方式,将用户编译的测试向量转换为测试机可识别、可执行的向量格式。相较于传统的借助主控板CPU来执行测试程序编译,本发明的编译加速方案,不仅可以对单条测试向量中的多字段进行并行编译,而且可以同时对多条测试向量并行编译,且不受内存访问带宽和延时的限制,能够随时执行大量的查表动作,且借助加速FPGA对BRAM的高速访问特性,能够极大提升测试向量的编译速度,大大提升了编译效率,极大缩短了芯片测试的调测时间。
附图说明
图1为本发明的ATE测试环境图;
图2为本发明实施例的编译加速方法流程示意图;
图3为本发明实施例的基本波形示意图;
图4为本发明实施例的Pattern程序文件示例;
图5为本发明实施例的可执行向量格式示意图;
图6为本发明实施例的可执行向量格式说明图;
图7为本发明实施例的波形周期表示例图;
图8为本发明实施例的边沿时刻表示例图;
图9为本发明实施例的边沿格式表示例图;
图10为本发明实施例的边沿格式含义示意图;
图11为本发明实施例的指令编码表示例图;
图12为本发明实施例的微指令表示例图;
图13为本发明实施例的加速FPGA的设计架构示意图;
图14为本发明实施例的ATE系统结构示意图。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
附图标记:1-主控板;2-背板;3-业务板;4-编译加速装置;5-PCIE接口;11-CPU;41-加速FPGA。
具体实施方式
在下文中,将更全面地描述本发明公开的各种实施例。本发明公开可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本发明公开的各种实施例限于在此公开的特定实施例的意图,而是应将本发明公开理解为涵盖落入本发明公开的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。本发明提供的一种基于FPGA的ATE测试向量编译加速方法及ATE系统,针对集成电路测试过程中的程序编译部分。其中,ATE设备的测试环境如说明书附图1所示。
在本发明公开的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本发明公开的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明公开的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明公开的各种实施例中被清楚地限定。
实施例1
本发明实施例1公开了一种基于FPGA的ATE测试向量编译加速方法,通过外部的FPGA实现测试向量的并行编译,极大提升了测试向量的编译效率,编译加速方法流程框图说明书附图2所示,具体方案如下:
一种基于FPGA的ATE测试向量编译加速方法,应用于ATE设备中,方法包括如下:
101、用户基于预设测试机指令和预定义的基本波形进行编程,得到ASCII码格式的Pattern程序文件;
102、基于Pattern程序文件构建波形周期表、边沿时刻表、边沿格式表和微指令表;
103、将Pattern程序文件从主控板的CPU加载到预设的加速FPGA中;
104、加速FPGA编译Pattern程序文件,通过查阅波形周期表、边沿时刻表、边沿格式表和微指令表并记录相应的表格地址,将Pattern程序文件编译为可执行向量;
105、加速FPGA将可执行向量上传至CPU中。
具体地,预定义每个引脚在预设周期下的多个基本波形。用户在进行测试向量程序编写之前首先需要定义基本波形。定义波形需确定波形周期。在本实施例中,每个引脚以预设周期为单位定义基本波形,每个引脚的预设周期相同,以避免周期不同导致的触发不同步。预设周期可根据实际测试进行调整。例如,预设周期为5ns,包括10个预设周期,则每个引脚的总的周期长度为50ns。
其中,每个引脚在每个周期下包括多个基本波形,本实施例以8个基本波形为例。基本波形为在各个边沿时刻发生边沿格式数据跳变的波形,每个基本波形包括一个或多个边沿时刻。由于在波形定义时引入了周期,即引入了时间的概念,因此在基本波形中,横坐标为时间,纵坐标为边沿格式数据,将波形发生跳变的时刻定义为边沿时刻,波形发生跳变即为边沿格式数据跳变。在本实施例中,每个基本波形包括至多4个边沿时刻、至多8个边沿时刻或至多16个边沿时刻,基本波形能包括多种边沿时刻的组合。优选地,每个基本波形包括至多4个边沿时刻,边沿时刻过多会使基本波形复杂化,增加数据量。而至多4个边沿时刻在实际应用中能够满足绝大多数的测试。基本波形示意图如说明书附图3所示。在说明书附图3中,包括m+1个引脚,n+1个周期,每个引脚在每个周期包括8个基本波形。例如,PIN_0(引脚0)在T0(周期0)下,包括wfc0-wfc7,共8个基本波形,wfc0和wfc1包括1个边沿时刻t0,在t0时刻的边沿格式为fmt0,wfc7包括3个边沿时刻,分别为t0、t1、t2。
具体地,根据预设的测试机指令和基本波形进行编程,得到ASCII码格式的Pattern程序文件。测试向量也被称为测试图形(Pattern),是一种按照某种模式排列的向量序列。在ATE测试机中,测试向量是重要的命令格式,Pattern程序文件的加载性能是测试机一项重要指标。
Pattern的每一行被称为一个行向量(Vector),有多个行向量组成一个测试向量。Pattern存储容量指的是可以存储多少个行向量。Pattern的本质就是常见的真值表(TruthTable),其包含的主要内容是输入电平与期望输出电平的符号组合,也包含了用于实现某些复杂功能的微指令(MicroInstruction)。Pattern中详细描述了不同的输入组合会产生不同预期的输出,通过解读真值表可得到相应的测试数据。Pattern程序文件为ASCII码格式,包括周期ASCII码、波形ASCII码、指令ASCII码和操作数ASCII码。说明书附图4提供了Pattern程序文件的示例图,在说明书附图4中,每一行为行向量,包括微指令、操作数、周期以及各引脚基本波形。
在基本单元定义完成后,用户即可根据测试机指令和定义好的基本波形单元进行编程。某个测试向量测试机指令需要包括一个或多个测试机指令,获取需要执行的测试机指令,结合基本波形进行编程。而Pattern程序文件为ASCII码格式,用户编写的测试程序向量无法被ATE测试机中所识别,无法直接被执行,需要通过测试机厂商提供的编译工具对其进行编译,生成测试机可识别、可执行的可执行向量。用户将Pattern程序文件编译为设备可执行向量的过程,就是将字符型程序翻译为各信息查找地址集合的过程,其分为各引脚向量格式查找地址、各引脚边沿时刻信息查找地址、向量周期查找地址、指令查找地址。可执行向量的格式如说明书附图5所示,可执行向量的格式说明如说明书附图6所示,在附图5和附图6中,ASCII码格式都已转换为地址的格式,测试机可直接识别并查找地址,实现指令执行。
基于Pattern程序文件构建波形周期表、边沿时刻表、边沿格式表和微指令表。
具体地,统计基本波形的周期数值,构建关于周期ASCII码和周期数值的波形周期表,每个周期ASCII码对应一个周期数值。根据预定义的基本波形,可以统计出所有基本波形的周期。波形周期表包括周期ASCII码和周期数值,周期数值即为周期的大小。波形周期表的格式如说明书附图7所示,其中,每个周期ASCII码对应一个周期数值,且对应有一个周期地址。需要说明的是,说明书附图7所提供的波形周期表中,地址一栏的设置是为方便理解,在实际应用中波形周期表并不包括周期地址。
具体地,统计基本波形的边沿时刻数据,构建关于波形ASCII码和边沿时刻数据的边沿时刻表,每个波形ASCII码对应一个边沿时刻数据。在本实施例中,单个引脚在各个周期的边沿时刻构成一个边沿时刻表,当包括m个引脚时,则包括m个边沿时刻表。
说明书附图8提供了边沿时刻表的示例图。在附图8中,包括m个PIN,即m个管脚,每个管脚对应一个边沿时刻表。每个ASCII码对应有相应的边沿时刻地址,ASCII码包括周期和基本波形的序号。由于每个引脚在每个周期包括多个基本波形,设置基本波形序号来予以区分。其中,“T0 WFC0”代表某个管脚在T0周期下的第一个基本波形的边沿时刻,t0、t1、t2、t3表示边沿时刻。需要说明的是,说明书附图8所提供的边沿时刻表中,地址一栏的设置是为方便理解,在实际应用中边沿时刻表并不包括边沿时刻地址。
具体地,统计基本波形的边沿格式数据,构建关于波形ASCII码和边沿格式数据的边沿格式表,每个波形ASCII码对应一个边沿格式数据。根据每个引脚定义的基本波形,可以统计出每个引脚所有基本波形的边沿格式信息。边沿格式表与边沿时刻表对应,单个引脚在各个周期的边沿格式数据构成一个边沿格式表,当包括m个引脚时,则包括m个边沿格式表。
说明书附图9提供了边沿格式表的示例图。在附图9中,包括m个PIN,即m个管脚,每个管脚对应一个边沿格式表。每个ASCII码对应有波形格式地址,ASCII码包括周期和基本波形的序号。其中,fmt0、fmt1、fmt2、fmt3表示边沿格式数据,在边沿时刻波形发生变化,发生何种变化即为边沿格式数据的内容。需要说明的是,说明书附图9所提供的边沿格式表中,地址一栏的设置是为方便理解,在实际应用中边沿格式表并不包括波形格式地址。
优选地,边沿格式数据的大小为3bit,共包括8种边沿格式数据,即包括8种状态,分别为输出高电平、输出低电平、输出高阻态、输出保持、比较高电平、比较低电平、比较高阻态和比较中间电平。具体地,fmt0、fmt1、fmt2、fmt3都为3bit的数据,包括000、001、010、011、100、101、110、111。边沿格式数据的含义如说明书附图10所示。
具体地,将指令ASCII码和相对应的操作数ASCII码合并,构建关于指令ASCII码、指令编码、操作数ASCII码和操作数值的微指令表,每个所述指令ASCII码对应一个指令编码、对应一个操作数ASCII码、对应一个操作数值。
每个指令编码对映一个指令ASCII码,指令编码表的示例图如说明书附图11所示,包括指令ASCII码和指令编码。在实际应用中,指令编码表可从ATE测试机的指令集单元中获取。
微指令表的示例图如说明书附图12所示,包括指令ASCII码、指令编码、操作数ASCII码和操作数值,指令ASCII码和操作数ASCII码一一对应,每个指令ASCII码对应一个指令编码,每个操作数ASCII码对应一个操作数值。相应的,在微指令表中,也对应有相应的表格地址,为微指令地址。同理,微指令地址在实际的微指令表中也不存在。
具体地,将Pattern程序文件下载到加速FPGA中,基于波形周期表、边沿时刻表、边沿格式表和微指令表,加速FPGA查表并记录表格地址,将Pattern程序文件编译成测试机可执行的可执行向量格式。已知波形周期表、波形格式表、边沿时刻表、微指令表,程序编译的过程就只需将ASCII码形式的Pattern程序文件通过查表并记录表格地址的方式逐条翻译成测试机可执行、可识别的可执行向量格式。
具体包括:通过加速FPGA在Pattern程序文件中查找周期ASCII码、波形ASCII码、指令ASCII码;查找并记录周期ASCII码对应的周期数值在波形周期表中的表格地址,并将其作为周期地址,将周期ASCII码编译为周期地址;查找并记录波形ASCII码对应的边沿时刻在边沿时刻表中的表格地址,并将其作为边沿时刻地址;查找并记录波形ASCII码对应的边沿格式数据在边沿格式表中的表格地址,并将其作为波形格式地址,将波形ASCII码编译为波形格式地址和边沿时刻地址;查找并记录指令ASCII码对应的指令编码在微指令表中的表格地址,并将其作为微指令地址,将指令ASCII码编译为微指令地址;将编译后的Pattern程序文件作为测试机可识别、可执行的可执行向量。
在现有技术中,测试程序设计、程序编译、向量加载、测试执行四个过程都发生在主控板的CPU中。而在本实施例中,将程序编译的过程转移到了外部的加速FPGA中。加速FPGA内可集成数个到数十个向量编译引擎,同时对用户程序进行并行向量编译,不仅可以对单条测试向量中的多字段进行并行编译,而且可以同时对多条测试向量并行编译,大大提升编译效率程序编译。优选地,加速FPGA与主控板CPU通过PCIE接口进行数据传输,PCIE属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽。具体地,通过PCIE接口以直接存储器访问的方式,将Pattern程序文件从主控板的CPU下载到加速FPGA中;通过PCIE接口以直接存储器访问的方式,将可执行向量从加速FPGA加载到主控板的CPU中。加速FPGA的具体硬件框架如说明书附图13所示。在附图13中,加速FPGA上包括存储控制器、PCIE接口;PCIE接口连接主控板上的CPU,存储控制器与外部的存储介质建立数据连接,存储介质中存储有用户程序缓存和可执行向量缓存;存储器分别连接PCIE接口、外部存储介质和多个程序编译加速系统,用于将可执行向量传递至存储介质和PCIE接口,以及将用户程序缓存传递至程序编译加速系统。
在向量编译引擎中,单独配置了ASCII查找匹配单元来进行ASCII码的匹配,极大提升访问速度。在实际应用中,向量编译引擎的核心单元ASCII查找匹配单元访问的是加速FPGA内部的BRAM,其访问延时为1个时钟周期,访问效率远远大于CPU结构的外部DDR存储器。加速FPGA内BRAM访问速度高达几个到几十个TByte每秒,而CPU结构的外部DDR存储器访问速度往往仅为几个GByte每秒,加速FPGA加速效率高达上千倍。此外,现有技术中通过CPU执行程序编译时,只能根据CPU指令集结构逐条编译每一条用户编程向量,即需要一行一行的编译,而本实施例的编译加速方法不仅可以对单条测试向量中的多字段进行并行编译,而且可以同时对多条测试向量并行编译。理论上,假定ASCII匹配查找平均次数为8次,加速FPGA工作频率为250MHz,则单条向量编译时间仅为32ns,单引擎每秒可以编译3125万行向量。而加速FPGA中可集成数个到数十个向量编译引擎,同时对用户程序进行并行向量编译,编译速度极快,极大的提升编译效率。
本实施例提供了一种基于FPGA的ATE测试向量编译加速方法,将程序编译的执行过程转移到加速FPGA中,实现用户程序的编译。通过查阅波形周期表、边沿时刻表、边沿格式表和微指令表,并记录地址的方式,将用户编译的测试向量转换为测试机可识别、可执行的向量格式。相较于传统的借助主控板CPU来执行测试程序编译,本实施例的编译加速方法,不仅可以对单条测试向量中的多字段进行并行编译,而且可以同时对多条测试向量并行编译,不受内存访问带宽和延时的限制,能够随时执行大量的查表动作,且借助加速FPGA对BRAM的高速访问特性,能够极大提升测试向量的编译速度,大大提升了编译效率,极大缩短了芯片测试的调测时间。
实施例2
本实施例提出了一种ATE系统,ATE系统设置有编译加速装置,编译加速装置能够执行实施例1所提出的一种基于FPGA的ATE测试向量编译加速方法。ATE系统的硬件结构如说明书附图14所示,具体方案如下:
一种ATE系统,包括编译加速装置4、主控板1、背板2和至少一个业务板3,背板2分别连接主控板1和业务板3;主控板1包括CPU11和PCIE接口5;编译加速装置4通过PCIE接口5接入主控板1,与CPU11建立数据连接。ATE系统的结构如说明书附图14所示。
编译加速装置4上配置有加速FPGA,编译加速装置4能够执行实施例1的一种基于FPGA的ATE测试向量编译加速方法。
在主控板1的CPU11中,用户基于预设测试机指令和预定义的基本波形进行编程,得到ASCII码格式的Pattern程序文件,并根据Pattern程序文件构建每个引脚的波形周期表、边沿时刻表、边沿格式表和微指令表;
统计基本波形的周期数值,构建关于周期ASCII码和周期数值所对应的波形周期表,每个周期ASCII码对应一个周期数值;
统计每个引脚对应的基本波形的边沿时刻数据,构建关于波形ASCII码和边沿时刻数据的边沿时刻表,每个波形ASCII码对应一个边沿时刻数据;
统计每个引脚对应的基本波形的边沿格式数据,构建关于波形ASCII码和边沿格式数据的边沿格式表,每个波形ASCII码对应一个边沿格式数据;
将指令ASCII码和相对应的操作数ASCII码合并,构建关于指令ASCII码、指令编码、操作数ASCII码和操作数值的微指令表,每个指令ASCII码对应一个指令编码、对应一个操作数ASCII码、对应一个操作数值。
在编译加速装置4中,获取Pattern程序文件,并将Pattern程序文件加载到预设的加速FPGA41中;加速FPGA41编译Pattern程序文件,通过查阅波形周期表、边沿时刻表、边沿格式表和微指令表并记录相应的表格地址,将Pattern程序文件编译为可执行向量;
具体的编译过程为:加速FPGA41查找并记录周期ASCII码对应的周期数值在波形周期表中的表格地址,并将其作为周期地址,将周期ASCII码编译为周期地址;加速FPGA41查找并记录波形ASCII码对应的边沿时刻在边沿时刻表中的表格地址,并将其作为边沿时刻地址;加速FPGA41查找并记录波形ASCII码对应的边沿格式数据在边沿格式表中的表格地址,并将其作为波形格式地址,将波形ASCII码编译为波形格式地址和边沿时刻地址;加速FPGA41查找并记录指令ASCII码对应的指令编码在微指令表中的表格地址,并将其作为微指令地址,将指令ASCII码编译为微指令地址。
加速FPGA41将可执行向量上传至主控板1的CPU11中。
其中,主控板1上配置有PCIE接口5;编译加速装置4通过PCIE接口5接入主控板1的CPU11,与主控板1上的CPU11建立数据连接;编译加速装置4通过PCIE接口5以直接存储器访问的方式,将Pattern程序文件从主控板1的CPU11下载到加速FPGA41中;并通过PCIE接口5以直接存储器访问的方式,将可执行向量从加速FPGA41加载到主控板1的CPU11中。
本实施例提供了一种ATE系统,将实施例1的编译加速方法集成到外部的编译加速装置中,通过PCIE接口与主控板的CPU建立数据连接,无需展开CPU资源即可实现测试向量的编译,编译加速装置的集成度高,便于安装。
本发明提出了一种基于FPGA的ATE测试向量编译加速方法及ATE系统,将程序编译的执行过程转移到加速FPGA中,实现用户程序的编译。通过查阅波形周期表、边沿时刻表、边沿格式表和微指令表,并记录地址的方式,将用户编译的测试向量转换为测试机可识别、可执行的向量格式。相较于传统的借助主控板CPU来执行测试程序编译,本发明的编译加速方案,不仅可以对单条测试向量中的多字段进行并行编译,而且可以同时对多条测试向量并行编译,且不受内存访问带宽和延时的限制,能够随时执行大量的查表动作,且借助加速FPGA对BRAM的高速访问特性,能够极大提升测试向量的编译速度,大大提升了编译效率,极大缩短了芯片测试的调测时间。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种基于FPGA的ATE测试向量编译加速方法,其特征在于,包括如下:
用户基于预设测试机指令和预定义的基本波形进行编程,得到ASCII码格式的Pattern程序文件;
基于所述Pattern程序文件构建波形周期表、边沿时刻表、边沿格式表和微指令表;
将所述Pattern程序文件从主控板的CPU加载到预设的加速FPGA中;
所述加速FPGA编译所述Pattern程序文件,通过查阅所述波形周期表、所述边沿时刻表、所述边沿格式表和所述微指令表并记录相应的表格地址,将所述Pattern程序文件编译为可执行向量;
所述加速FPGA将所述可执行向量上传至所述主控板的CPU中。
2.根据权利要求1所述的ATE测试向量编译加速方法,其特征在于,“用户基于预设测试机指令和预定义的基本波形进行编程,得到ASCII码格式的Pattern程序文件”具体包括:
预定义每个引脚在预设周期下的多个基本波形,所述基本波形为在多个不同边沿时刻发生边沿格式数据跳变的波形;
根据预设的测试机指令和所述基本波形进行编程,得到ASCII码格式的Pattern程序文件,所述Pattern程序文件包括周期ASCII码、波形ASCII码、指令ASCII码、操作数ASCII码。
3.根据权利要求2所述的ATE测试向量编译加速方法,其特征在于,“基于所述Pattern程序文件构建波形周期表、边沿时刻表、边沿格式表和微指令表”具体包括:
统计所述基本波形的周期数值,构建关于所述周期ASCII码和所述周期数值所对应的波形周期表,每个所述周期ASCII码对应一个所述周期数值;
统计每个引脚对应的基本波形的边沿时刻数据,构建关于所述波形ASCII码和边沿时刻数据的边沿时刻表,每个所述波形ASCII码对应一个所述边沿时刻数据;
统计每个引脚对应的基本波形的边沿格式数据,构建关于所述波形ASCII码和边沿格式数据的边沿格式表,每个所述波形ASCII码对应一个所述边沿格式数据;
将所述指令ASCII码和相对应的操作数ASCII码合并,构建关于指令ASCII码、指令编码、操作数ASCII码和操作数值的微指令表,每个所述指令ASCII码对应一个指令编码、对应一个操作数ASCII码、对应一个操作数值。
4.根据权利要求3所述的ATE测试向量编译加速方法,其特征在于,“所述加速FPGA编译所述Pattern程序文件,通过查阅所述波形周期表、所述边沿时刻表、所述边沿格式表和所述微指令表并记录相应的表格地址,将所述Pattern程序文件编译为可执行向量”具体包括:
所述加速FPGA在所述Pattern程序文件中查找所述周期ASCII码、所述波形ASCII码、所述指令ASCII码;
查找并记录所述周期ASCII码对应的周期数值在所述波形周期表中的表格地址,并将其作为周期地址,将所述周期ASCII码编译为所述周期地址;
查找并记录所述波形ASCII码对应的边沿时刻数据在所述边沿时刻表中的表格地址,并将其作为边沿时刻地址;
查找并记录所述波形ASCII码对应的边沿格式数据在所述边沿格式表中的表格地址,并将其作为波形格式地址,将所述波形ASCII码编译为所述波形格式地址和所述边沿时刻地址;
查找并记录所述指令ASCII码对应的指令编码在所述微指令表中的表格地址,并将其作为微指令地址,将所述指令ASCII码编译为所述微指令地址;
将编译后的Pattern程序文件作为测试机可识别、可执行的可执行向量。
5.根据权利要求2所述的ATE测试向量编译加速方法,其特征在于,单个引脚在各个周期的所有基本波形构成一个所述边沿时刻表和一个所述边沿格式表;
每个引脚在单个周期包括8个所述基本波形,每个所述基本波形对应一个基本波形序号;
所述波形ASCII码包括周期和所述基本波形序号。
6.根据权利要求2所述的ATE测试向量编译加速方法,其特征在于,所述边沿格式数据包括输出高电平、输出低电平、输出高阻态、输出保持、比较高电平、比较低电平、比较高阻态和比较中间电平。
7.根据权利要求2所述的ATE测试向量编译加速方法,其特征在于,每个所述基本波形可包括至多4个边沿时刻、至多8个边沿时刻或至多16个边沿时刻;
所述边沿格式数据为3bit的格式编码。
8.根据权利要求1所述的ATE测试向量编译加速方法,其特征在于,通过PCIE接口以直接存储器访问的方式,将所述Pattern程序文件从主控板的CPU下载到所述加速FPGA中;
通过PCIE接口以直接存储器访问的方式,将所述可执行向量从所述加速FPGA加载到主控板的CPU中。
9.一种ATE系统,其特征在于,包括编译加速装置、主控板、背板和至少一个业务板,所述背板分别连接所述主控板和所述业务板,所述编译加速装置接入所述主控板的CPU上;
在所述主控板的CPU中,用户基于预设测试机指令和预定义的基本波形进行编程,得到ASCII码格式的Pattern程序文件,并根据所述Pattern程序文件构建每个引脚的波形周期表、边沿时刻表、边沿格式表和微指令表;
在所述编译加速装置中,获取所述Pattern程序文件,并将所述Pattern程序文件加载到预设的加速FPGA中;
所述加速FPGA编译所述Pattern程序文件,通过查阅所述波形周期表、所述边沿时刻表、所述边沿格式表和所述微指令表并记录相应的表格地址,将所述Pattern程序文件编译为可执行向量;
所述加速FPGA将所述可执行向量上传至所述CPU中。
10.根据权利要求9所述的ATE系统,其特征在于,所述主控板上配置有PCIE接口;
所述编译加速装置通过所述PCIE接口接入所述主控板的CPU,与所述主控板上的CPU建立数据连接;
所述编译加速装置通过所述PCIE接口以直接存储器访问的方式,将所述Pattern程序文件从主控板的CPU下载到所述加速FPGA中;并通过所述PCIE接口以直接存储器访问的方式,将所述可执行向量从所述加速FPGA加载到所述主控板的CPU中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111290327.3A CN113721927B (zh) | 2021-11-02 | 2021-11-02 | 基于fpga的ate测试向量编译加速方法及ate系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111290327.3A CN113721927B (zh) | 2021-11-02 | 2021-11-02 | 基于fpga的ate测试向量编译加速方法及ate系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113721927A true CN113721927A (zh) | 2021-11-30 |
CN113721927B CN113721927B (zh) | 2022-03-18 |
Family
ID=78686502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111290327.3A Active CN113721927B (zh) | 2021-11-02 | 2021-11-02 | 基于fpga的ate测试向量编译加速方法及ate系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113721927B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490501A (zh) * | 2021-12-31 | 2022-05-13 | 杭州加速科技有限公司 | 一种基于FPGA的Pattern文件下发加速方法及系统 |
CN115630594A (zh) * | 2022-12-19 | 2023-01-20 | 杭州加速科技有限公司 | 一种芯片设计仿真文件到Pattern文件的转换方法及其系统 |
CN116910160A (zh) * | 2023-09-13 | 2023-10-20 | 天津普智芯网络测控技术有限公司 | 一种老练测试一体机用的pattern文件快速下发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103969574A (zh) * | 2013-01-28 | 2014-08-06 | 上海华虹宏力半导体制造有限公司 | 应用FPGA实现ATE测试波形的Verilog编码方法 |
CN113189479A (zh) * | 2021-06-28 | 2021-07-30 | 杭州加速科技有限公司 | 一种提升ate芯片测试速度的方法、装置及测试系统 |
CN113377591A (zh) * | 2021-06-18 | 2021-09-10 | 杭州加速科技有限公司 | 一种提升ate设备芯片测试速度的方法、装置 |
CN113391859A (zh) * | 2021-08-17 | 2021-09-14 | 杭州加速科技有限公司 | 一种提升Pattern文件加载性能的加载方法、加载系统及测试机 |
-
2021
- 2021-11-02 CN CN202111290327.3A patent/CN113721927B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103969574A (zh) * | 2013-01-28 | 2014-08-06 | 上海华虹宏力半导体制造有限公司 | 应用FPGA实现ATE测试波形的Verilog编码方法 |
CN113377591A (zh) * | 2021-06-18 | 2021-09-10 | 杭州加速科技有限公司 | 一种提升ate设备芯片测试速度的方法、装置 |
CN113189479A (zh) * | 2021-06-28 | 2021-07-30 | 杭州加速科技有限公司 | 一种提升ate芯片测试速度的方法、装置及测试系统 |
CN113391859A (zh) * | 2021-08-17 | 2021-09-14 | 杭州加速科技有限公司 | 一种提升Pattern文件加载性能的加载方法、加载系统及测试机 |
Non-Patent Citations (3)
Title |
---|
KUNPENG ZENG: ""Exploiting Boundary Scan functions of FPGA on ATE"", 《WEB OF SCIENCE》 * |
苏力人: ""基于ATE 的FPGA 软件自动化测试技术开发研究"", 《信息与电脑》 * |
韩晓晶: ""基于ATE的FPGA软件自动化测试技术探析"", 《科技创新导报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490501A (zh) * | 2021-12-31 | 2022-05-13 | 杭州加速科技有限公司 | 一种基于FPGA的Pattern文件下发加速方法及系统 |
CN115630594A (zh) * | 2022-12-19 | 2023-01-20 | 杭州加速科技有限公司 | 一种芯片设计仿真文件到Pattern文件的转换方法及其系统 |
CN116910160A (zh) * | 2023-09-13 | 2023-10-20 | 天津普智芯网络测控技术有限公司 | 一种老练测试一体机用的pattern文件快速下发方法 |
CN116910160B (zh) * | 2023-09-13 | 2023-11-14 | 天津普智芯网络测控技术有限公司 | 一种老练测试一体机用的pattern文件快速下发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113721927B (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113721927B (zh) | 基于fpga的ate测试向量编译加速方法及ate系统 | |
JPS6063644A (ja) | デイジタル装置の動作のモデリング方法及び装置 | |
TW594513B (en) | Apparatus and method for in-circuit emulation using high-level programming language | |
CN110632499B (zh) | 基于测试对象的测试向量生成方法及存储介质 | |
CN113514759B (zh) | 一种多核测试处理器及集成电路测试系统与方法 | |
CN112630622B (zh) | ATE设备的pattern编译下载测试的方法及系统 | |
US11520968B2 (en) | Verification platform for system on chip and verification method thereof | |
CN112287569B (zh) | 用于仿真逻辑系统设计的方法、电子设备及存储介质 | |
CN114637638B (zh) | 一种模板化的存储器测试图形发生器及方法 | |
CN115017845A (zh) | 用于ip单元级别验证的总线驱动式芯片仿真激励模型 | |
CN111176926A (zh) | 一种基于双口sram的ip核仿真系统及仿真方法 | |
CN114610549A (zh) | 一种串口闪存芯片测试系统和测试方法 | |
CN117234831B (zh) | 一种基于多核cpu的芯片功能测试方法及系统 | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
JP2013113665A (ja) | 試験パターン生成装置、試験プログラム生成装置、生成方法、プログラム、および試験装置 | |
CN112434478B (zh) | 仿真逻辑系统设计的虚拟接口的方法及相关设备 | |
US20100198548A1 (en) | Diagnostic apparatus, diagnostic method and test apparatus | |
CN115684895B (zh) | 芯片可测性设计测试方法、测试平台及其生成方法及装置 | |
CN112731117A (zh) | 芯片的自动验证方法和系统,及存储介质 | |
CN116956801A (zh) | 芯片验证方法、装置、计算机设备和存储介质 | |
US6170071B1 (en) | Method for optimizing test fixtures to minimize vector load time for automated test equipment | |
CN114490501B (zh) | 一种基于FPGA的Pattern文件下发加速方法及系统 | |
CN108335720B (zh) | 使用存储器测试机编写个性化数据的方法 | |
US6536020B2 (en) | Efficient generation of optimum test data | |
US9823305B1 (en) | Method and system for generating post-silicon validation tests |
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 |