一种FPGA通用IO接口测试的设备和方法与流程

文档序号:21280282发布日期:2020-06-26 23:33阅读:1027来源:国知局
一种FPGA通用IO接口测试的设备和方法与流程

本发明涉及接口测试技术领域,尤其涉及一种fpga通用io接口测试的设备和方法。



背景技术:

目前,fpga的通用io接口测试包括功能测试和性能测试,通用io口的功能测试包括:io口组合电路功能测试、三态门功能测试等。性能测试包括直流参数,交流参数的测试。

通常fpga芯片流片回来后需要对fpga芯片进行功能和性能的全覆盖测试,芯片的测试是fpga芯片设计生产中相当重要的环节,芯片的测试往往有多种方案,例如搭建电路板连接专项测试仪器进行特定方面的功能和性能测试,使用专业的自动测试仪ate进行测试,或者针对测试项目自行设计专用测试设备进行测试等。

规模化成品芯片的测试,如fpga片内常规资源(clb、bram、dsp、io等)的功能测试一般采用ate测试,这也是目前业界测试所采用的一种常规测试方法,但这种测试需要使用的测试机台的费用非常昂贵,而且主要是进行功能测试,并不能进行性能测试。如果要进行通用io的关键性能测试,如最大工作速率,频域方面的参数特性,io口模拟电平参数等则由于ate的性能指标不够,其无法实现。

尤其在fpga芯片前期研制阶段和筛选抽测阶段,实际是仅需对fpga芯片的功能进行全覆盖测试,关键性能参数进行测试,如最大工作速率,输入输出交直流电平参数等。现有的设备中,使用通用的专项测试仪器,对fpga芯片通用io接口进行测试时,可以完成这些测试,但上述测试也存在使用仪器种类过多,测试仪器价格昂贵,测试成本过高的问题。尤其是在整个研制和和筛选抽测阶段,均采用专项测试仪器,会导致测试过度的问题,而且此阶段测试的fpga加载通常是通过usbjtag重复下载,此下载方式和并行配置方式相比较而言,配置时间花费过多,而且工作处于串行工作方式,导致测试时间过长。

使用现有的测试装置对工厂流片回来的fpga芯片通用io接口参数进行测试时,使用ate测试机台进行测试时存在ate测试机台一般适用于低频段功能测试,对性能测试,尤其是交流参数测试时,测试精度较低,频率参数不能够覆盖通用io口参数的全频率段的问题。另外ate测试存在成本昂贵的问题,通常适用于批量化、规模化测试。在芯片试制摸底阶段,并不能够满足通用io模块快速摸底测试的需求。

因此需要设计一种专用的fpga通用io测试硬件平台,克服现有测试平台需要测试仪器数量多、测试成本高和测试效率低的问题。

本发明的目的在于通过专用软件、自行研发的fpga通用io测试硬件平台。在通用io测试硬件平台上包含电源模块、信号源模块、a/d数据采集模块、误码测试模块等功能模块,在pcb上完成专项测试仪器的主要测试功能,从而减少通用测试仪器的使用,降低成本,实现全自动化测试。采用软件控制方式,全自动的实现对常规io口芯片功能全覆盖测试,关键性能参数的测试,减少专项测试仪器的使用,缩短测试时间,大幅度提高在研制和抽测阶段fpga芯片通用io口的测试效率。



技术实现要素:

本发明的目的是提供一种fpga通用io接口测试的设备和方法,能够完成专项仪器的主要测试功能,从而减少通用测试仪器的使用,降低成本实现全自动化测试。

本发明采用的技术方案为:

一种fpga通用io接口测试的设备,包括工控机和用于fpga的io口测试的硬件平台,工控机与测试硬件平台之间通过rj-45网络接口进行连接,测试硬件平台上的cpu软件加载lightweightinternetprotoco1协议栈;

所述的测试硬件平台包括组成有提供各种电源的电源模块电路、用于产生系统时钟的信号源模块电路、用于固定连接待测试fpga2的夹具、激励fpga1,用于采样待测中io口输入输出电平参数的a/d采集模块电路、控制cpu(stm32f103rct6)、lan接口电路和用于测试io的模拟参数的io口性能测试接口电路;所述的lan接口电路通过控制cpu与激励fpga1连接,控制cpu分别通过pcb板上线路与信号源发生器模块、激励fpga1、待测试fpga2夹具直接相连;夹具上的待测试fpga2与io性能测试接口电路连接,io性能测试接口电路的输出端通过a/d采集模块电路与激励fpga1相连;控制cpu与工控机之间通信在lwip的udp层进行通信;

所述的io性能测试接口电路用于测试io的模拟参数,在待测试fpga的每个bank引出一对脚连接到a/d用于测试模拟参数;

所述的激励fpga1包括cpu总线接口电路,io测试fpga状态机模块,地址译码模块,测试用例下载缓存区控制模块,数据采集模块,主并配置控制器模块和误码测试模块;所述主并配置控制器模块、误码测试模块、地址译码模块,测试用例下载缓存区控制模块分别与io测试fpga状态机模块连接,所述地址译码模块和io测试fpga状态机模块分别通过cpu总线接口模块与控制cpu连接,主并配置控制器模块与待测fpga连接,数据采集模块用于与a/d采集模块电路连接。

所述电源模块为包括芯片tps56121_dqp_22、芯片tps54231dr、芯片tps54620rgy和芯片tps54231dr以及其分别对应的外围电路构成,分别用于提供1.0v,1.5v,2.5v,3.3v的电压。

cpu总线接口电路在激励fpga1内部对控制cpu的地址和数据及io总线进行重整,产生单脉冲rd读信号,单脉冲wr写信号,高电平有效,产生三态数据总线输出信号,用于控制cpu读取激励fpga1中不同的寄存器和ram空间内数据。

所述的地址译码模块根据地址总线进行译码,产生不同的地址片选信号,所述的地址译码模块采用双字节方式进行地址译码,即地址总线的a1位为译码最低位,控制寄存器数据单元为16bits。

所述的测试用例下载缓存区控制模块用于控制外部ddr3颗粒,实现对待测试fpga2用例的缓存。

所述的数据采集处理模块,采集a/d采集模块电路输入的并行数据,并进行干扰处理。

主并配置控制器模块用于产生待测试fpga2的并行配置时序电路,将配置缓存区中的测试用例并行下载到待测试fpga2中,并判断待测试fpga2配置的状态成功与否。

所述的信号源发生器模块采用ad9858芯片并搭配pll电路;用于提供给激励fpga1和待测试fpga2作为同源时钟,用于测试fpga2的极限工作频率,完成io全频段的功能测试。

所述的a/d采集模块电路由多输入端口a/d变换器采样io口的输入输出交直流信号,采样后的数据送到激励fpga1中进行处理,实现io口的模拟参数方面的测试。

一种基于fpga通用io接口测试的设备的测试方法,包括如下步骤:

第1步,下位机cpu进行初始化,配置下位机cpu的系统时钟,下位机cpu通用io口属性等,初始化配置ar8032-bl1b接口芯片;

第2步,初始化信号源模块,设置ad9858的控制功能寄存器(cfr)为0x00,设置频率控制字为0x00,设置相位偏移量为0x00;

第3步,初始化a/d采集模块电路,配置a/d采集模块电路工作模式,设定满刻度单极性工作方式,输出数据位宽为12bits,选择测试通道为1通道;

第4步,加载lwip协议栈,上位机即工控机和下位机的控制cpu通信在lwip的udp层进行通信;

第5步,下位机cpu进入单循环状态,查询网络中断是否发生。如果没有中断发生,则跳到第8步,继续查询测试完成标志;如果有中断发生,则进行第6步流程;

第6步,控制cpu解析上位工控机下发的数据帧,解析出数据帧内容;

第7步,根据数据帧内容执行相应的动作,如配置待测试fpga2,待测试fpga2的io通断,待测试fpga2io电平高低,待测试fpga2io的最大工作频率;

其中,如接收的控制命令是待测试fpga2io通断,则控制cpu首先解析出待测试fpga2的配置数据,放到激励fpga1的测试用例缓存区,待一个测试用例完整后,通过激励fpga1内部的主并行配置控制器对待测试fpga2进行配置;然后在激励fpga1中产生测试向量,用于激励待测试fpga2,回读待测试fpga2的输出结果,判断测试是否正确,并记录数据;

第8步,控制cpu读取激励fpga1内部的结果寄存器标识位,查询测试完成标志测试,判断测试过程是否继续,如异常,直接退出,反之忽略继续第9步测试;

第9步,测试完成,控制cpu打包测试记录数据,形成完整udp帧,上传测试数据给上位机的控制pc,跳回第5步;测试未完成,直接跳回第5步。

本发明通过工控机作为系统上位机,实现测试控制命令的输入,测试结果的保存和输出,同时在下位机上的控制cpu芯片(stm32f103rct6)采用16位并行方式对激励fpga1进行配置,激励fpga中的并行配置器模块对待测试fpga2进行配置,通过下位机cpu芯片实现信号源电路模块的控制,产生电平可编程的可变差分时钟,提供给激励fpga1和待测试fpga2作为同源系统时钟,用于测试待测试fpga2的极限工作频率。进一步的激励fpga1中的并行配置控制器模块加载待测试fpga2测试用例。待测试fpga2中的测试用例依据待测试fpga2中io的功能和位置不同而进行设计,激励fpga1中的测试向量随待测试fpga2测试用例而变化,从而实现fpga芯片通用io口研制和筛选抽测阶段的一种全功能,关键性能参数测试的低成本且有效的测试。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的结构原理框图;

图2为本发明所述的激励fpga1的结构原理框图;

图3为本发明所述信号源发生器模块电路框图;

图4为本发明的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,对于方位词,如有术语“中心”,“横向”、“纵向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示方位和位置关系为基于附图所示的方位或位置关系,仅是为了便于叙述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定方位构造和操作,不能理解为限制本发明的具体保护范围。

需要说明的是,本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

如图1本发明包括工控机和用于fpga的io口测试的测试设备硬件平台,工控机与测试硬件平台之间通过rj-45网络接口进行连接,测试设备硬件平台上的cpu芯片中的软件加载lightweightinternetprotoco1协议栈用于与工控机进行通信;

所述的测试设备硬件平台包括提供各种电源的电源模块电路、用于系统时钟的信号源模块电路、用于固定连接待测试fpga2的夹具、激励fpga1,用于采集采样待测fpga2io口输入输出电平参数的a/d采集模块电路、控制cpu、lan接口电路和用于测试io的模拟参数的io性能测试接口电路;所述的lan接口电路通过控制cpu与激励fpga1连接,控制cpu分别通过pcb板上线路与信号源发生器模块、激励fpga1、待测试fpga2夹具直接相连;夹具上的待测试fpga2与io性能测试接口电路连接,io性能测试接口电路的输出端通过a/d采集模块电路与激励fpga1相连;控制cpu与工控机之间通信在lwip的udp层进行通信;

所述的io性能测试接口电路用于测试io的模拟参数,在待测试fpga2的每个bank引出一对脚连接到a/d采集模块电路用于测试模拟参数;

所述的激励fpga1内部电路包括cpu总线接口模块,io测试fpga状态机模块,地址译码模块,测试用例下载缓存区控制模块,数据采集模块,主并配置控制器模块和误码测试模块;所述主并配置控制器模块、误码测试模块、地址译码模块,测试用例下载缓存区控制模块分别与io测试fpga状态机模块连接,所述地址译码模块和io测试fpga状态机模块分别通过cpu总线接口模块与控制cpu芯片连接,主并配置控制器模块与待测fpga2的并行配置口连接,数据采集模块用于与外部a/d采集模块电路连接。

所述电源模块为包括芯片tps56121_dqp_22、芯片tps54231dr、芯片tps54620rgy和芯片tps54231dr以及其分别对应的外围电路构成,分别用于提供1.0v,1.5v,2.5v,3.3v的电压。

所述的cpu总线接口模块在激励fpga1内部对控制cpu的地址和数据及io总线进行重整,产生单脉冲rd读信号,单脉冲wr写信号,高电平有效,产生三态数据总线输出信号,用于控制cpu读取激励fpga1中不同的寄存器和ram空间内数据。

所述的地址译码模块根据地址总线进行译码,产生不同的地址片选信号,所述的地址译码模块采用双字节方式进行地址译码,即地址总线的a1位为译码最低位,控制寄存器数据单元为16bits。

所述的测试用例下载缓存区控制模块用于控制外部ddr3颗粒,实现对待测试fpga2用例的缓存。

所述的数据采集处理模块,采集a/d采集模块电路输入的并行数据,并进行干扰处理。

主并配置控制器模块用于产生待测试fpga2的并行配置时序电路,将配置缓存区中的测试用例并行下载到待测试fpga2中,并判断待测试fpga2配置的状态成功与否。

所述的信号源发生器模块采用ad9858芯片并搭配pll电路;用于提供给激励fpga1和待测试fpga2作为同源时钟,用于测试fpga2的极限工作频率,完成io全频段的功能测试。

所述的a/d采集模块电路由多输入端口a/d变换器(max197)采样io口的输入输出交直流信号,采样后的数据送到激励fpga1中进行处理,实现io口的模拟参数方面的测试。

用于固定连接待测试fpga2的夹具在实际使用中可以由多个构成采用fpga测试夹具组,从而可以根据需要进行同时或者先后进行测试。

一种基于fpga通用io接口测试的设备的测试方法,包括如下步骤:

第1步,下位机cpu进行初始化,配置下位机cpu的系统时钟,下位机cpu通用io口属性等,初始化配置ar8032-bl1b接口芯片;

第2步,初始化信号源模块,设置ad9858的控制功能寄存器(cfr)为0x00,设置频率控制字(ftw0)为0x00,设置相位偏移量(pow0)为0x00;

第3步,初始化a/d采集模块电路,配置a/d采集模块电路工作模式,设定满刻度单极性工作方式,输出数据位宽为12bits,选择测试通道为1通道;

第4步,加载lwip协议栈,上位机即工控机和下位机的控制cpu通信在lwip的udp层进行通信;

第5步,下位机cpu进入单循环状态,查询网络中断是否发生。如果没有中断发生,则跳到第8步,继续查询测试完成标志;如果有中断发生,则进行第6步流程;

第6步,控制cpu解析上位工控机下发的数据帧,解析出数据帧内容;

第7步,根据数据帧内容执行相应的动作,如配置待测试fpga2,待测试fpga2的io通断,待测试fpga2io电平高低,待测试fpga2io的最大工作频率;

其中,如接收的控制命令是待测试fpga2io通断,则控制cpu首先解析出待测试fpga2的配置数据,放到激励fpga1的测试用例缓存区,待一个测试用例完整后,通过激励fpga1内部的主并行配置控制器对待测试fpga2进行配置;然后在激励fpga1中产生测试向量,用于激励待测试fpga2,回读待测试fpga2的输出结果,判断测试是否正确,并记录数据;

第8步,控制cpu读取激励fpga1内部的结果寄存器标识位,查询测试完成标志测试,判断测试过程是否继续,如异常,直接退出,反之忽略继续测试;

第9步,测试完成,控制cpu打包测试记录数据,形成完整udp帧,上传测试数据给上位机的控制pc,跳回第5步;测试未完成,直接跳回第5步

图2所示为本发明的系统框图,整个系统由工控机和fpga常规io口测试设备硬件平台组成,工控机与测试硬件平台之间通过rj-45网络接口进行连接,测试设备硬件平台上的cpu软件加载lwip(lightweightinternetprotoco1)协议栈。下位机与工控机之间通信在lwip的udp层进行通信。

工控机的主要用途是进行测试命令的输入;测试命令的udp成帧;成帧控制帧下发到下位机,解析下位机上传的测试记录帧,实现与下位机的交互通信;保存测试记录,判断测试异常,测试是否通过。工控机软件采用java进行设计,其原因在于增加测试设备的通用性,保证上位机测试软件可以工作在不同的测试平台上。

测试硬件平台pcb采用16层fr4基材制造。主要由电源模块电路、信号源模块电路、待测试fpga2夹具、激励fpga1(xc7k325tffg900),a/d采集模块电路、控制cpu、lan接口电路(ar8032-bl1b)、io性能测试接口电路和pcb组成。

电源模块为整个硬件平台提供所需要的各种电源,包括1.0v,1.5v,2.5v,3.3v。由tps56121_dqp_22提供1.0v电源,tps54231dr提供1.5v电源,tps54620rgy提供2.5v电源,tps54231dr提供3.3v电源。io性能测试接口电路用于测试io的模拟参数,在测试pcb上,待测试fpga2的每个bank引出一对;

a/d采集模块电路由多输入端口a/d变换器(max197)采样io口的输入输出交直流信号,采样后的数据送到激励fpga1中进行处理,实现io口的模拟参数方面的测试。

lan接口核心电路选用ar8032-bl1b,提供百兆的以太网通信接口,实现上位机与板上cpu的通信,下位机选用stm32f103rct6,采用单线程方式,在完成初始化后,进入循环方式,依据上位机下发测试命令而进行下位机板上系统的操作。

图2为本发明测试pcb上信号源模块电路框图,利用ad9858芯片与外部pll电路相结合,设计出高分辨率、宽带、转换时间短、功耗低的信号源模块,产生电平可编程的可变差分时钟,提供给激励fpga1和待测试fpga2作为同源时钟,用于测试fpga2的极限工作频率,完成io全频段的功能测试。信号源模块基于频段不同,而采用高低频分段输出的方式提供给板上fpga1,fpga2作为系统时钟。控制cpu通过串行方式实现对ad9858的控制。外部参考信号选用25m晶振。ad9858输出波形通过低通滤波器lpf2送回ad9858作为鉴相信号产生误差电压送出,送出信号经过低通滤波器lpf1得到控制电压,施加到vco上产生高频段输出信号,低频段信号直接由ad9858产生,不使用外部环路。

图3为本发明测试pcb上激励fpga1内部框图;激励fpga1内部电路设计是实现io功能测试的关键电路设计所在,内部电路包括:cpu总线接口模块,io测试fpga状态机模块,地址编码模块,测试用例下载缓存区控制模块,数据采集模块,主并配置控制器模块,误码测试模块。

cpu总线接口模块,在fpga1内部对控制cpu的地址和数据及io总线进行重整,产生单脉冲rd读信号,单脉冲wr写信号,高电平有效,产生三态数据总线输出信号,用于控制cpu读取fpga1中不同的寄存器和ram空间内数据。

地址译码模块,根据地址总线进行译码,产生不同的地址片选信号,在本发明中,采用双字节方式进行地址译码,即地址总线的a1位为译码最低位,控制寄存器数据单元为16bits。

io测试fpga状态机模块,解析cpu控制命令,根据当前fpga状态,fpga进入相应工作状态,包括:复位,频率逼近,读下载历程,配置下载历程,空闲等状态。激励fpga1配置成功后缺省处于空闲工作状态。

测试用例下载缓存区控制模块,控制外部ddr3颗粒,实现对待测试fpga2用例的缓存,测试用例通常在几十兆大小,通过在测试时候,将下几个测试用例缓存到ddr3中,上一个测试完成后即可以通过并行测试控制器配置fpga2,节约下载配置时间,提高测试效率。

数据采集模块,采集a/d输入并行数据,并进行处理,采用数字滤波方式,对高频噪声进行滤除,得到真实的io电平模拟参数,移除干扰。

主并配置控制器模块,产生待测试fpga2的并行配置时序电路,将配置缓存区中的测试用例并行下载到fpga2中,并判断配置状态成功与否。

误码测试模块,包括误码发生和误码接收模块。发生模块产生不同速率prbs序列,用户设定模态作为待测试fpga2芯片io口激励输入,该序列在待测试fpga2芯片组内部进行环回,然后输出到误码接收的输入端,在用户定义时间段内误码接收模块无误码,则认为该io口通过该频率测试,通过这种测试方式可以实现io口基本功能,最大工作速率,正常工作频段的测试。

图4是本发明的下位机软件流程图;第1步,下位机cpu进行初始化,配置cpu的系统时钟,cpu通用io口属性等,初始化配置ar8032-bl1b接口芯片;第2步,初始化信号源模块,设置ad9858的控制功能寄存器(cfr)为0x00,设置频率控制字(ftw0)为0x00,设置相位偏移量(pow0)为0x00;第3步,初始化a/d采集电路,配置a/d工作模式,设定满刻度单极性工作方式,输出数据位宽为12bits,选择测试通道为1通道;第4步,加载lwip协议栈,上位机和下位机通信在lwip的udp层进行通信;第5步,下位机cpu进入单循环状态,查询网络中断是否发生。如果没有中断发生,则跳到第8步,继续查询测试完成标志;如果有中断发生,则进行第6步流程;第6步,解析上位机下发的数据帧,解析出数据帧内容;第7步,根据数据帧内容执行相应的动作,如配置fpga1,测试fpga2io通断,测试fpga2io电平,测试fpga2io最大工作频率等;第8步,查询测试完成标志,判断测试过程是否继续,如异常,是否退出或者忽略;第9步,测试完成,控制cpu打包测试记录数据,形成完整udp帧,上传测试数据给上位机的控制pc,跳回第5步;测试未完成,直接跳回第5步

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1