一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种FPGA芯片测试平台和FPGA芯片测试方法与流程

2021-11-22 13:57:00 来源:中国专利 TAG:

一种fpga芯片测试平台和fpga芯片测试方法
技术领域
1.本发明涉及测试技术领域,尤其涉及一种fpga芯片测试平台和fpga芯片测试方法。


背景技术:

2.fpga(field

programmable gate array,现场可编程门阵列)是ic(integrated circuit,集成电路)中相对asic(application specific integrated circuit,专用集成电路)而言的一种可定制芯片,相对于asic适用面广,更新换代更快。
3.fpga芯片研发的测试过程相对繁琐,由于其为可编程芯片,结构复杂度往往比asic更高,而且激励点多,变化范围大。同时,fpga的设计公司极为稀少,设计方法不透明。因此造成了fpga测试工作量大,复杂度高,复用性差。
4.现有的fpga测试为手动定向测试,需要测试人员根据fpga中待测模块的需求手动编写测试激励,然后使用驱动模块通过jtag(joint test action group,联合测试行动小组)向fpga发送激励,收集输出进行测试。
5.现有技术的缺点包括:编写激励效率低,手工编写速度慢,而且对于激励的产生需要测试者去逐条考虑;失误率高,由于是靠人工操作逐条判断,难免有笔误或者考虑不全的地方;测试平台维护复杂,手动编写测试激励代码量大,维护和修改相对复杂;复用率低,由于定向编写,测试激励为固定模式,因此应用到相似模块的测试复用性不好。


技术实现要素:

6.有鉴于此,本发明实施例的目的在于提出一种fpga芯片测试平台和fpga芯片测试方法,搭建针对fpga芯片的测试平台,可以降低测试工作量,提高测试效率,降低失误率,并且其复用的特点,可以在极少改动的情况下,适应不同测试模块的激励产生,大大减少了重复性劳动。
7.基于上述目的,本发明实施例的一方面提供了一种fpga芯片测试平台,包括:激励产生发送的代理模块,配置用于产生随机激励序列;参考模型,配置用于接收所述激励产生发送的代理模块产生的所述随机激励序列,并基于所述随机激励序列生成目标数据;以及计分板,配置用于将所述参考模型生成的所述目标数据和fpga芯片的输出数据进行对比,以得到测试结果;其中,所述激励产生发送的代理模块与所述fpga芯片通过串行协议接口相连,所述激励产生发送的代理模块向所述fpga芯片发送所述随机激励序列,并接收所述fpga芯片的输出数据。
8.在一些实施方式中,平台还包括:激励产生环境的配置模块,配置用于基于不同的fpga芯片改变测试的参数值。
9.在一些实施方式中,平台还包括:覆盖率统计模块,配置用于统计所述随机激励序列的覆盖率以判断所述随机激励序列是否完备。
10.在一些实施方式中,所述激励产生发送的代理模块进一步配置用于:将产生的所
述随机激励序列发送给所述参考模型;将接收的所述fpga芯片的所述输出数据发送给所述计分板。
11.在一些实施方式中,所述激励产生发送的代理模块包括:激励包模块,配置用于定义激励包,所述激励包包含变量个数和激励随机范围;激励序列产生模块,配置用于调用所述激励包模块以产生不同的随机激励序列;驱动,配置用于将所述激励序列产生模块生成的所述随机激励序列发送给fpga芯片,并接收所述fpga芯片的输出数据。
12.在一些实施方式中,所述激励序列产生模块进一步配置用于:将产生的所述随机激励序列发送给所述参考模型。
13.在一些实施方式中,所述驱动进一步配置用于:将接收到的所述fpga芯片的所述输出数据发送给所述计分板。
14.在一些实施方式中,所述参考模型进一步配置用于:将生成的所述目标数据发送给所述计分板。
15.本发明实施例的另一方面,还提供了一种fpga芯片测试方法,所述测试方法应用于上述所述的测试平台,所述测试方法包括以下步骤:由激励产生发送的代理模块产生随机激励序列,并将所述随机激励序列分别发送给参考模型和fpga芯片;由所述参考模型接收所述随机激励序列,并基于所述随机激励序列生成目标数据,并将所述目标数据发送给计分板;由所述激励产生发送的代理模块接收所述fpga芯片的输出数据,并将所述输出数据发送给所述计分板;由所述计分板将所述目标数据和所述输出数据进行对比,以得到测试结果。
16.本发明至少具有以下有益技术效果:搭建针对fpga芯片的测试平台,可以降低测试工作量,提高测试效率,降低失误率,并且其复用的特点,可以在极少改动的情况下,适应不同测试模块的激励产生,大大减少了重复性劳动。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
18.图1为本发明提供的fpga芯片测试平台的实施例的示意图;
19.图2为本发明提供的fpga芯片测试平台的实施例的示意图;
20.图3为本发明提供的fpga芯片测试方法的实施例的示意图。
具体实施方式
21.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
22.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
23.基于上述目的,本发明实施例的第一个方面,提出了fpga芯片测试平台。图1示出
的是本发明提供的fpga芯片测试平台的实施例的示意图。
24.如图1所示,本发明实施例的fpga芯片测试平台包括:
25.激励产生发送的代理模块s100,配置用于产生随机激励序列;
26.参考模型s200,配置用于接收激励产生发送的代理模块s100产生的随机激励序列,并基于随机激励序列生成目标数据;以及
27.计分板s300,配置用于将参考模型s200生成的目标数据和fpga芯片的输出数据进行对比,以得到测试结果;
28.其中,激励产生发送的代理模块s100与fpga芯片通过串行协议接口相连,激励产生发送的代理模块s100向fpga芯片发送随机激励序列,并接收fpga芯片的输出数据。
29.在本实施例中,fpga芯片测试平台采用基于sv(system verilog)的uvm(universal verification methodology,通用验证方法学)形式搭建,测试平台重用性高,激励产生灵活。其中,sv是一种硬件描述语言,结合verlilg和c 的各自优点,在当今ic设计验证中是应用最为广泛的语言,其既可在行为级描述电路,又可以在逻辑级描述模块功能,由于是面向对象的语言,其具有继承和重用特性,并且其自带的功能覆盖率语法,为本文在逻辑级产生测试激励的完备性提供了保障。uvm是当今ic验证最为功能强大,应用最广泛的方法学,在asic领域已经充分验证了其强大通用的结构,由于fpga与asic同为ic设计,因此其验证测试领域的方法具有很大通用性,本文所用的激励产生平台架构,就是基于uvm搭建。
30.在本实施例中,图2示出的是本发明提供的fpga芯片测试平台的实施例的示意图。如图2所示,env为环境顶层,其内部例化了config(激励产生环境的配置模块),agent(激励产生发送的代理模块),coverage(覆盖率统计模块),reference model(参考模型),scoreboard(计分板)。
31.reference model为参考模型,其描述了与被测模块相同的功能模型,激励在sequencer中产生后,会发送到reference model,在其内部产生目标数据,这一目标数据送给scoerboard,与driver从fpga芯片接收的实际数据进行对比,从而得到验证结果。
32.scoreboard为计分板,实现了数据对比的功能,其将reference model产生的目标数据与fpga输出的实际数据进行对比,从而得到验证结果。
33.在本实施例中,reference model为针对fpga中数模混合的全定制设计,使用primitive model代替需要使用spice仿真的模拟模块,产生基于ate输入格式带有覆盖率特性的manu pattern激励包,此激励包可以通过特定的转化模块转化为jtag输入格式,通过drv进行前端工具仿真。也可以通过ate设备对晶元或封装后的芯片进行ate测试。
34.在本实施例中,针对于不同管脚数目的封装形式,采用自适应管脚的转化方案,可以通过脚本语言对产生的二进制激励文件进行打包,打包的端口分为data0~2,clk,rst,out。将除clk.rst外的控制信号压缩为data0~2,在fpga内部实现软核解包模块,对压缩数据进行解包,释放到不同封装的io管脚上,从而实现带有覆盖率的fpga芯片ate测试和前端仿真。
35.在本发明的一些实施例中,平台还包括:激励产生环境的配置模块,配置用于基于不同的fpga芯片改变测试的参数值。
36.在本实施例中,继续参考图2,config为激励产生环境的配置模块,可以通过改变
参数值来匹配不同fpga芯片的测试。
37.在本发明的一些实施例中,平台还包括:覆盖率统计模块,配置用于统计随机激励序列的覆盖率以判断随机激励序列是否完备。
38.在本实施例中,继续参考图2,coverage模块为覆盖率统计模块,采用sv描述产生随机激励,为了保证随机激励的完备性,需要进行覆盖率统计,覆盖率为100%时,说明激励产生已经覆盖全部情况,是完备的。
39.在本发明的一些实施例中,激励产生发送的代理模块进一步配置用于:将产生的随机激励序列发送给参考模型;将接收的fpga芯片的输出数据发送给计分板。
40.在本发明的一些实施例中,激励产生发送的代理模块包括:激励包模块,配置用于定义激励包,激励包包含变量个数和激励随机范围;激励序列产生模块,配置用于调用激励包模块以产生不同的随机激励序列;驱动,配置用于将激励序列产生模块生成的随机激励序列发送给fpga芯片,并接收fpga芯片的输出数据。
41.在本实施例中,继续参考图2,agent为激励产生发送的代理模块,其内部包含sequence(激励序列),sequencer(激励序列产生模块),driver(驱动)。seq_item为激励包模块,其内部定义了一个激励包,包含变量个数和激励随机范围。sequence为激励序列,其由多个seq_item组成。sequencer通过调用sequence来产生不同的随机激励序列,产生完的序列会发送给driver。driver为与fpga芯片进行物理通信的模块,激励序列最终通过driver发动给fpga芯片,同样fpga的输出也会被driver采样,进一步通过agent与scoreboard的接口传送给scoreboard,fpga芯片与driver的通信协议为jtag。
42.在本发明的一些实施例中,激励序列产生模块进一步配置用于:将产生的随机激励序列发送给参考模型。
43.在本发明的一些实施例中,驱动进一步配置用于:将接收到的fpga芯片的输出数据发送给计分板。
44.在本发明的一些实施例中,参考模型进一步配置用于:将生成的目标数据发送给计分板。
45.基于上述目的,本发明实施例的第二个方面,提出了一种fpga芯片测试方法。图3示出的是本发明提供的fpga芯片测试方法的实施例的示意图。如图3所示,本发明实施例的fpga芯片测试方法包括:s01、由激励产生发送的代理模块产生随机激励序列,并将随机激励序列分别发送给参考模型和fpga芯片;s02、由参考模型接收随机激励序列,并基于随机激励序列生成目标数据,并将目标数据发送给计分板;s03、由激励产生发送的代理模块接收fpga芯片的输出数据,并将输出数据发送给计分板;s04、由计分板将目标数据和输出数据进行对比,以得到测试结果。
46.在本发明的一些实施例中,方法还包括:统计随机激励序列的覆盖率以判断随机激励序列是否完备。
47.需要特别指出的是,上述fpga芯片测试方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于fpga芯片测试方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
48.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,fpga芯片测试方法的程序可存
储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
49.此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
50.此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
51.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
52.在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd

rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、dsl或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
53.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
54.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
55.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
56.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介
质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
57.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献