CN111290954B - 一种基于uvm的fpga构件可视化测试框架和方法 - Google Patents
一种基于uvm的fpga构件可视化测试框架和方法 Download PDFInfo
- Publication number
- CN111290954B CN111290954B CN202010083836.8A CN202010083836A CN111290954B CN 111290954 B CN111290954 B CN 111290954B CN 202010083836 A CN202010083836 A CN 202010083836A CN 111290954 B CN111290954 B CN 111290954B
- Authority
- CN
- China
- Prior art keywords
- test
- visual
- module
- component
- project
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于UVM的FPGA构件可视化测试框架和方法,为用户提供可视化方式快速搭建用于完成具体FPGA构件测试验证的UVM验证平台,以可视化建立和执行测试用例、查看测试结果,达到快速完成FPGA构件测试验证过程的目的。
Description
技术领域
本发明属于信号处理技术领域,具体涉及一种FPGA构件测试框架和方法。
背景技术
近年来,在信号处理领域,长期作为信号处理核心芯片的数字信号处理芯片(DSP)和中央处理器(CPU),由于主频很难进一步提升,且并行处理能力不足,已经无法适应信号处理的发展要求。
大规模可编程门阵列(FPGA)由于其并行处理能力强,以及集成度高、功耗低的特点,逐渐替代DSP和CPU芯片成为信号处理算法实现的主力,CPU+FPGA的异构处理架构成为信号处理机的典型实现架构。
FPGA程序的测试验证一直是FPGA程序开发过程中的一个瓶颈,传统的FPGA测试验证手段,采用手工编写测试激励数据、测试驱动代码和测试结果收集代码,并采用人工比对方式判断测试结果是否正确,自动化程度低,测试过程不仅耗时长,而且可靠性差,无法达到理想的测试验证效果。
Universal Verification Methodology(UVM)是Accellera公司于2010年推出的基于SystemVerilog语言的一套验证方法学,它将验证平台分为序列发生器、驱动器、监视器、记分板、参考模型、输入代理器、输出代理器等基础组件,并分别为这些组件提供了可以继承和扩展的基类,用户可以在这些基类的基础上定制所需的验证组件,搭建特定的验证平台。
UVM验证平台相对于传统测试验证方式,结构严谨、功能齐全、可靠性高,可以达到相对理想的测试验证效果,然而,由于用户开发的FPGA构件形式不一,每测试一个新的FPGA构件都需要重新设计一套UVM验证组件,搭建一个新的UVM验证平台,这使得测试验证周期大大拉长。
UVM验证平台是基于事务级传输模型的高层次验证平台,即,UVM验证平台能否通用的一个关键点是,构件能否建立统一的事务级传输模型,一个构件一般都包括若干个输入接口和输出接口,一次事务级传输由这些输入接口和输出接口的一次或多次传输构成,因此,事务级传输模型的底层是这些接口的总线传输模型。
一些大型的FPGA芯片生产厂商例如Xilinx公司、Altera公司,都对其提供的FPGA内部资源如ram、fifo、常用计算IP等都提供了标准接口,目前为axi4-stream、axi4、axi4_lite三种标准接口,FPGA的各种外部接口资源如Serial RAPIDIO高速串行传输通道、DDR3SDRAM、DDR2 SDRAM、LPDDR2 SDRAM、QDRII+SRAM等存储器接口也都提供了转为这三种标准接口的转换逻辑,因此,对于用户自行开发的FPGA构件,我们仅需要建立这三种标准接口的总线传输模型,并在其之上建立构件的事务级传输模型,就可以覆盖大多数FPGA构件的测试需求,对于具有非标准接口形式的构件,由于不符合开发通用化测试框架的条件,不在本发明所覆盖的测试对象范围内。
发明内容
本发明为了解决现有技术存在的问题,提出了一种基于UVM的FPGA构件可视化测试框架和方法,为了实现上述目的,本发明采用了以下技术方案。
测试框架包括:可视化界面层、后台计算层、数据库存储层。
可视化界面层包括:可视化项目管理菜单模块、可视化被测源代码管理模块、可视化事务级传输模型选择模块、可视化构件接口设置模块、可视化配置参数设置模块、可视化基础约束设置模块、可视化测试用例管理和定制模块、可视化测试结果查看模块。
后台计算层包括:测试工程文件自动生成模块、验证组件自动生成模块、基础测试用例及自动生成模块。
数据库存储层包括:被测构件源代码文件夹、测试工程文件、参考模型文件夹、验证组件代码模板文件夹、验证组件文件夹、测试项目基础信息数据库、被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库、测试结果文件夹。
可视化界面层提供人机交互界面,针对具体被测构件,完成各种设置,传递至后台计算层,启动测试,查看测试进度和测试结果。
后台计算层根据可视化界面层传递的设置,完成各项自动化计算,提供验证组件和测试用例,自动生成测试工程,传递数据至数据库存储层。
数据库存储层存储可视化界面层和后台计算层传递的验证平台所需的基础数据,以及测试执行产生的结果数据。
可视化项目管理菜单模块,提供测试项目管理有关的基本功能,包括创建测试项目、打开测试项目、关闭测试项目、启动测试进程。
可视化被测源代码管理模块,用于增加、删除被测构件的源代码文件,提供文件信息至测试工程文件自动生成模块,生成适用于测试软件能执行的测试工程文件。
可视化事务级传输模型选择模块,选择被测构件对应的事务级传输模型。
可视化构件接口设置模块,设置被测构件的输入接口、输出接口的个数,以及每个接口的类型。
可视化配置参数设置模块,设置配置接口输入的配置参数个数,以及每个配置参数的位置、位宽、数据类型。
可视化基础约束设置模块,设置每个配置参数的最大值和最小值,以及每次事务中各输入输出接口的数据包个数。
可视化测试用例管理和定制模块,管理和定制测试用例,后台计算层的基础测试用例集自动产生模块自动产生典型测试用例、边界测试用例、随机测试用例分别对应的约束,包括配置参数约束、各输入输出接口的数据包个数约束,由可视化测试用例管理和定制模块显示,通过可视化测试用例管理和定制模块对这些约束进行修改,或增加新的测试用例,在新的测试用例中输入用户所需的约束,所有测试用例的约束存入数据库存储层的测试用例信息数据库。
可视化测试结果查看模块,根据测试用例执行过程中在数据库存储层的测试结果文件夹中放置的测试结果数据文件,判断测试进度,采用进度条显示,判断测试是否成功并显示,显示测试结果数据文件列表,若指定查看某数据文件内容,以文本形式显示,并调用图形显示引擎将数据以图形化显示。
测试工程文件自动生成模块,根据可视化被测源代码管理模块提供的源代码文件清单,自动生成适用于测试软件能执行的测试工程文件。
验证组件自动生成模块,调用数据库存储层的验证组件代码模板文件夹的各验证组件代码模板,结合可视化事务级传输模型选择模块和可视化构件接口设置模块的相关设置,生成适用于被测构件的验证平台的各验证组件,放入数据库存储层的验证组件文件夹。
基础测试用例集自动生成模块,根据可视化基础约束设置模块的相关设置,保存每个配置参数的取值范围,自动产生典型测试用例、边界测试用例、随机测试用例分别对应的配置参数约束,构成基础测试用例集,存入数据库存储层的测试用例信息数据库,由可视化测试用例管理和定制模块显示。
被测构件源代码文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置被测构件的源代码。
测试工程文件,由测试工程文件自动生成模块自动产生,是适用于测试软件能执行的测试工程文件。
参考模型文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置被测构件的参考模型文件,参考模型文件的调用函数名与被测构件名一致,调用函数的输入输出数据接口的个数和数据类型与被测构件各输入输出接口的数据口个数和数据类型一致。
验证组件代码模板文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,同时产生放置在该文件夹下的各验证组件的代码模板,供验证组件自动生成模块使用。
验证组件文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置验证组件自动生成模块产生的各验证组件,作为组成可执行测试工程的主体。
测试项目基础信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存创建测试项目时用户输入的测试项目的基础信息,包括测试项目的名称、测试项目的存放路径、被测构件的名称。
被测构件接口信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存通过可视化事务级传输模型选择模块、可视化构件接口设置模块、可视化配置参数设置模块输入的被测构件的接口信息,包括构件的事务级传输模型类型、输入输出接口个数和类型、配置参数个数和数据类型。
被测构件基础约束信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存通过可视化基础约束设置模块设置的被测构件的基础约束信息,包括每个配置参数的最大值和最小值,以及每次事务中各输入输出接口的数据包个数。
测试用例信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存基础测试用例集自动生成模块产生的基础测试用例集的测试用例约束,以及通过可视化测试用例管理和定制模块对基础测试用例集的测试用例约束所作的修改,或添加的自定义测试用例的约束。
测试结果文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,保存测试工程在执行过程中产生的各测试用例的测试结果数据文件,传递至可视化测试结果查看模块。
执行方法包括:创建测试项目,生成测试所需的各文件夹和各数据库,输入被测构件的源代码文件和参考模型文件,生成测试工程文件,选择被测构件的事务级传输模型,设置被测构件的输入接口信息和配置参数信息,生成各验证组件的代码文件,生成测试结果文件,查看测试结果,关闭测试项目。
在可视化项目管理菜单模块中,创建测试项目,生成数据库存储层中的各文件夹和各数据库,包括被测构件源代码文件夹、参考模型文件夹、验证组件代码模板文件夹、验证组件文件夹、测试结果文件夹,和测试项目基础信息数据库、被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库,并将测试项目的名称、路径以及被测构件的名称信息保存到测试项目基础信息数据库。
向被测构件源代码文件夹中,放入被测构件的源代码文件,向参考模型文件夹中,放入与被测构件同名的参考模型文件。
向可视化被测源代码管理模块中,导入被测构件的各个源代码文件,将各个源代码文件的名称、路径信息传递至测试工程文件自动生成模块,自动生成测试工程文件。
在可视化事务级传输模型选择模块中,选择被测构件对应的事务级传输模型,将事务级传输模型类型信息存入被测构件接口信息数据库,并根据选择的事务级传输模型选择是否显示可视化配置参数设置模块。
在可视化构件接口设置模块中,设置被测构件对应的输入接口个数、类型、数据位宽、数据类型等信息,在可视化配置参数设置模块中,设置被测构件对应的配置参数个数、每个配置参数的位置、位宽、数据类型等信息,存储至被测构件接口信息数据库。
在可视化基础约束设置模块中,设置各配置参数的最大值和最小值、以及各输入接口的各个数值,存储至被测构件基础约束信息数据库,基础测试用例自动生成模块根据这些信息自动生成基础测试用例集,包括典型测试用例、边界测试用例、随机测试用例,存入测试用例信息数据库,通过可视化测试用例管理和定制模块显示各测试用例的设置。
在可视化测试用例管理和定制模块中,根据需要,修改自动生成的基础测试用例集中的约束设置,也可以增加自定义测试用例并设置其约束,可视化测试用例管理和定制模块将修改的约束设置和新增的约束设置存储至测试用例信息数据库。
在可视化项目管理菜单模块中,生成验证平台,验证组件自动生成模块读取被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库中的信息,读取验证组件代码模板文件夹中的各验证组件的代码模板,自动生成各验证组件的代码文件。
在可视化项目管理菜单模块中,启动测试进程,可视化项目管理菜单模块启动FPGA测试软件,如Modelsim,并执行测试项目,直到各测试用例执行结束,生成测试结果文件,在测试用例执行过程中,可视化测试结果查看模块自动显示测试进度条和各测试用例执行结果是否正确。
在可视化测试结果查看模块中,可查看测试结果数据文件列表,可选择测试结果数据文件进行图形化或纯文本查看。
在可视化项目管理菜单模块中,选择关闭测试项目,测试过程结束。
本发明采用可视化测试框架,快速获得适用于被测FPGA构件的UVM验证平台,无需手动开发适用于被测FPGA构件的各UVM验证组件;快速获得测试所需的基础测试用例集,无需手动开发测试用例;提供了方便快捷的人机界面和强大的后台计算层面,大大提高了FPGA构件测试过程的可视化和自动化程度;采用构件事务级传输模型的设计,适用于大多数采用标准接口的FPGA构件,具有良好的通用性。
附图说明
图1是框架的整体框图,图2是无配置不流水事务级传输模型,图3是无配置流水事务级传输模型,图4是有配置不流水事务级传输模型,图5是有配置流水事务级传输模型,图6是验证组件代码模板,图7是验证平台架构。
附图标记1-事先开发好的总线级验证组件,2-事务级验证组件,3-被测构件源代码文件。
具体实施方式
以下结合附图对本发明的技术方案做具体的说明。
测试框架如图1所示,包括:可视化界面层,提供人机界面,通过该层完成各种针对具体被测构件的设置,启动测试、查看测试进度和测试结果;后台计算层,根据可视化界面层传递的用户设置,完成各项自动化计算,提供验证组件、测试用例和,自动生成测试工程;数据库存储层,存储可视化界面层和后台计算层传递的验证平台所需的各项基础数据,以及测试执行产生的结果数据。
可视化界面层包括:可视化项目管理模块、可视化被测源代码管理模块、可视化事务级传输模型选择模块、可视化构件接口设置模块、可视化配置参数设置模块、可视化基础约束设置模块、可视化测试用例管理和定制模块和可视化测试结果查看模块。
后台计算层包括:测试工程文件自动生成模块、验证组件自动生成模块和基础测试用例及自动生成模块。
数据库存储层包括:被测构件源代码文件夹、测试工程文件、参考模型文件夹、验证组件代码模板文件夹、验证组件文件夹、测试项目基础信息数据库、被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库和测试结果文件夹。
可视化项目管理菜单模块,提供测试项目管理有关的基本功能,包括创建测试项目、打开测试项目、关闭测试项目、启动测试进程。
可视化被测源代码管理模块,用于增加、删除被测构件的源代码文件,这些文件信息传递至测试工程文件自动生成模块,生成测试软件,如modelsim能执行的测试工程文件。
可视化事务级传输模型选择模块,选择被测构件对应的事务级传输模型。
UVM验证平台是基于事务的高层次验证平台,将被测构件完成一次功能称为一次事务,若完成一次事务所需的传输模式不同,则需要的验证平台也不同,为了实现验证平台的通用化,定义常见的构件事务级传输模型,可覆盖大多数FPGA构件所具有的传输模式,其中的构件类型可以分为无配置接口和有配置接口,以及不流水模式和流水模式。
无配置接口的构件,每次事务中构件的各输入输出接口的数据包个数都是固定的,输入一个数据包即产生一个输出数据包。
有配置接口的构件,所有输入接口中有一个是用于输入配置参数的接口,每次事务发生之初,配置接口首先发生一个数据包的输入,构件从这次输入中接收若干配置参数,这些配置参数将在构件对输入数据进行处理时被使用,有配置接口时,每次事务中各输入输出接口的数据包个数可以是固定的,也可以和配置参数值成固定关系。
是否流水模式,即事务间是否可以流水,当前事务的所有输出数据包输出结束之前,根据是否允许下一次事务的输入数据包进行输入,分为流水模式和不流水模式。
根据上述构件类型,建立四种事务级传输模型:分别为无配置流水事务级传输模型,如图2所示,无配置不流水事务级传输模型,如图3所示,有配置流水模式事务级传输模型,如图4所示,有配置流水模式事务级传输模型,如图5所示。
为简单起见,图2至图5中的构件,以具有两个输入接口和两个输出接口为例,实际情况中,输入接口和输出接口个数可以不同于附图所示,每次事务中的输入数据包个数和输出数据包个数也可以不同于附图所示。
可视化构件接口设置模块,设置被测构件的输入接口、输出接口的个数,以及每个接口的类型,接口的类型必须是FPGA生产厂商支持的标准接口形式,如axi4-stream、axi4、axi4_lite。
可视化配置参数设置模块,设置配置接口输入的配置参数个数,以及每个配置参数的位置、位宽、数据类型。
可视化基础约束设置模块,设置每个配置参数的最大值和最小值,以及每次事务中各输入输出接口的数据包个数,若构件有配置接口,每次事务中各输入输出接口的数据包个数必须是具体数值,若构件无配置接口,每次事务中各输入输出接口的数据包个数可以是具体数值,也可以是包含配置参数值的算式。
可视化测试用例管理和定制模块,管理和定制测试用例,后台计算层的基础测试用例集自动产生模块自动产生典型测试用例、边界测试用例、随机测试用例分别对应的约束,包括配置参数约束、各输入输出接口的数据包个数约束,通过可视化测试用例管理和定制模块显示,通过可视化测试用例管理和定制模块,对这些约束进行修改,或增加新的测试用例,在新的测试用例中输入用户所需的约束,随后所有测试用例的约束将存入数据库存储层的测试用例信息数据库,验证平台将采用UVM中的随机约束技术,根据这些约束产生所需的测试场景,形成具体的测试用例。
可视化测试结果查看模块,根据测试用例执行过程中在数据库存储层的测试结果文件夹中放置的测试结果数据文件,判断测试进度,用进度条显示,判断测试是否成功,并予以显示,当指定查看某数据文件内容时,显示测试结果数据文件列表以文本形式将其显示,并调用图形显示引擎,如matlab,对数据进行图形化显示。
测试工程文件自动生成模块,根据可视化被测源代码管理模块提供的源代码文件清单,自动生成测试软件,如modelsim能执行的测试工程文件。
验证组件自动生成模块,调用数据库存储层的验证组件代码模板文件夹下的各验证组件代码模板,结合可视化事务级传输模型选择模块、可视化构件接口设置模块中的相关设置,生成专用于被测构件的验证平台的各验证组件,放入数据库存储层的验证组件文件夹。
产生的验证平台架构实例如图6所示,实例的构件的事务级传输模型为有配置不流水事务级传输模型,具有一个axi4-stream类型的配置接口、一个axi4-stream类型的输入接口和一个axi4-stream类型的输出接口。
1-事先开发好的总线级验证组件,仅需直接拷贝,无需修改,各标准接口,如axi4-stream、axi4、axi4_lite的总线级验证组件模型的开发方法为:继承UVM提供的uvm_agent、uvm_sequence_item、uvm_driver、uvm_monitor基类,根据标准接口,如axi4-stream、axi4、axi4_lite的总线传输协议以及接口的类型,包括配置接口、输入接口、输出接口,进行扩展设计,得到各标准接口的代理器、序列发生器、驱动器、监视器组件。
2-事务级验证组件,需要由验证组件自动生成模块,根据事务级传输模型类型、输入输出接口个数、构件基础约束、测试用例约束,结合验证组件代码模板修改产生,各事务级验证组件的开发方法为:继承UVM提供的uvm_sequence、uvm_component、uvm_scoreboard、uvm_test、uvm_env基类,根据事务级传输模型的定义进行扩展设计,并在代码中预留自动生成代码植入位置标签,得到各事务级传输模型的测试场景发生器、参考模型挂接器、测试结果比较器、验证平台顶层文件、验证工程顶层文件代码模板,其中,参考模型挂接器采用SystemVerilog语言的C语言接口调用C函数,如DPI接口,再通过C函数调用参考模型文件,如matlab文件。
3-被测构件源代码文件,在本实施例中由一个顶层文件和三个底层文件构成,实际情况中源代码底层文件数可以不同。
基础测试用例集自动生成模块,根据可视化基础约束设置模块中的相关设置,保存每个配置参数的取值范围,自动计算各配置参数的典型值、边界值和随机值约束,随后产生典型测试用例、边界测试用例、随机测试用例分别对应的配置参数约束。
典型值约束是各配置参数设为取值范围内的中间值,边界值约束是各配置参数设为取值范围内的最大值和最小值,随机值约束是各配置参数设为在取值范围内随机抽取。
典型测试用例、边界测试用例、随机测试用例,构成基础测试用例集,存入数据库存储层的测试用例信息数据库,通过可视化测试用例管理和定制模块显示。
被测构件源代码文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置被测构件的源代码。
测试工程文件,由测试工程文件自动生成模块自动产生,是测试软件,如modelsim能执行的测试工程文件。
参考模型文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置被测构件的参考模型文件,调用函数名与被测构件名一致,调用函数的输入输出数据接口的个数和数据类型与被测构件各输入输出接口的数据口个数和数据类型一致。
验证组件代码模板文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,同时产生放置在该文件夹下的各验证组件的代码模板,如图7所示,供验证组件自动生成模块在产生各验证组件的过程中使用。
验证组件文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置验证组件自动生成模块产生的各验证组件,验证组件是组成可执行的测试工程的主体。
测试项目基础信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存创建测试项目时用户输入的测试项目的基础信息,包括测试项目的名称、测试项目的存放路径、被测构件的名称。
被测构件接口信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存可视化事务级传输模型选择模块、可视化构件接口设置模块、可视化配置参数设置模块输入的被测构件的接口信息,包括构件的事务级传输模型类型、输入输出接口个数和类型、配置参数个数和数据类型等。
被测构件基础约束信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存可视化基础约束设置模块设置的被测构件的基础约束信息,包括每个配置参数的最大值和最小值,以及每次事务中各输入输出接口的数据包个数。
测试用例信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存基础测试用例集自动生成模块产生的基础测试用例集的测试用例约束,以及可视化测试用例管理和定制模块对基础测试用例集的测试用例约束所作的修改,或者添加的自定义测试用例的约束。
测试结果文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,保存测试工程在执行过程中产生的各测试用例的测试结果数据文件,并提供给可视化测试结果查看模块查看。
测试方法需要用到可视化项目管理模块、可视化被测源代码管理模块、可视化事务级传输模型选择模块、可视化构件接口设置模块、可视化配置参数设置模块、可视化基础约束设置模块、可视化测试用例管理和定制模块、可视化测试结果查看模块、测试工程文件自动生成模块、验证组件自动生成模块、基础测试用例及自动生成模块、被测构件源代码文件夹、测试工程文件、参考模型文件夹、验证组件代码模板文件夹、验证组件文件夹、测试项目基础信息数据库、被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库、测试结果文件夹。
在可视化项目管理菜单模块中,创建测试项目,可视化项目管理模块创建数据库存储层中的各文件夹和各数据库,包括被测构件源代码文件夹、参考模型文件夹、验证组件代码模板文件夹、验证组件文件夹、测试结果文件夹、测试项目基础信息数据库、被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库,将测试项目的名称、路径以及被测构件的名称信息保存到所述测试项目基础信息数据库中。
向被测构件源代码文件夹中,放入被测构件的源代码文件,如后缀名为.v的文件,向用户在所述参考模型文件夹中,放入与被测构件同名的参考模型文件,如matlab文件。
向可视化被测源代码管理模块中,导入被测构件的各个源代码文件,可视化被测源代码管理模块将各个源代码文件的名称、路径信息传递给测试工程文件自动生成模块,自动生成测试工程文件。
在可视化事务级传输模型选择模块中,选择被测构件对应的事务级传输模型,可视化事务级传输模型选择模块将事务级传输模型类型信息存入被测构件接口信息数据库,并根据选择的事务级传输模型,选择是否显示可视化配置参数设置模块。
在可视化构件接口设置模块中,设置被测构件对应的输入接口个数、类型、数据位宽、数据类型等信息,可视化构件接口设置模块将这些信息存入被测构件接口信息数据库。
在所述可视化配置参数设置模块中,设置被测构件对应的配置参数个数、每个配置参数的位置、位宽、数据类型等信息,可视化配置参数设置模块将这些信息存入所述被测构件接口信息数据库。
在可视化基础约束设置模块中,设置各配置参数的最大值和最小值、以及各输入接口的包个数值,可视化配置参数设置模块将这些信息存入被测构件基础约束信息数据库,基础测试用例自动生成模块根据这些信息,自动生成基础测试用例集,包括典型测试用例、边界测试用例、随机测试用例,存入测试用例信息数据库,并通过可视化测试用例管理和定制模块显示各测试用例的设置。
在可视化测试用例管理和定制模块中,根据需要,修改自动生成的基础测试用例集中的约束设置,或不作修改,也可以增加自定义测试用例,并设置其约束,可视化测试用例管理和定制模块将修改和新增的的约束设置存入测试用例信息数据库。
在可视化项目管理菜单模块中,选择生成验证平台,验证组件自动生成模块读取被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库中的信息,读取验证组件代码模板文件夹中的各验证组件的代码模板,自动生成各验证组件的代码文件。
在可视化项目管理菜单模块中,选择启动测试进程,可视化项目管理菜单模块启动FPGA测试软件,如Modelsim执行测试项目,直到各测试用例执行结束,生成测试结果文件。
在测试用例执行过程中,可视化测试结果查看模块自动显示测试进度条和各测试用例执行结果是否正确。
在可视化测试结果查看模块中,查看测试结果数据文件列表,可选择测试结果数据文件进行图形化或纯文本查看。
在可视化项目管理菜单模块中,选择关闭测试项目,测试过程结束。
上述作为本发明的实施例,并不限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (7)
1.一种基于UVM的FPGA构件可视化测试框架,包括可视化界面层、后台计算层、数据库存储层;可视化界面层包括可视化项目管理菜单模块、可视化被测源代码管理模块、可视化事务级传输模型选择模块、可视化构件接口设置模块、可视化配置参数设置模块、可视化基础约束设置模块、可视化测试用例管理和定制模块、可视化测试结果查看模块;后台计算层包括测试工程文件自动生成模块、验证组件自动生成模块、基础测试用例集自动生成模块;测试工程文件自动生成模块,根据可视化被测源代码管理模块提供的源代码文件清单,自动生成适用于测试软件能执行的测试工程文件;验证组件自动生成模块,调用数据库存储层的验证组件代码模板文件夹的各验证组件代码模板,结合可视化事务级传输模型选择模块和可视化构件接口设置模块的相关设置,生成适用于被测构件的验证平台的各验证组件,放入数据库存储层的验证组件文件夹;基础测试用例集自动生成模块,根据可视化基础约束设置模块的相关设置,保存每个配置参数的取值范围,自动产生典型测试用例、边界测试用例、随机测试用例分别对应的配置参数约束,构成基础测试用例集,存入数据库存储层的测试用例信息数据库,由可视化测试用例管理和定制模块显示;数据库存储层包括被测构件源代码文件夹、测试工程文件、参考模型文件夹、验证组件代码模板文件夹、验证组件文件夹、测试项目基础信息数据库、被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库、测试结果文件夹;可视化界面层提供人机交互界面,针对具体被测构件完成设置,传递设置数据至后台计算层,启动测试,查看测试进度和测试结果;后台计算层由可视化界面层传递的设置数据,完成自动化计算,提供验证组件和测试用例,自动生成测试工程,传递数据至数据库存储层;数据库存储层接收可视化界面层和后台计算层传递的验证平台所需的基础数据,存储测试执行产生的结果数据;其特征在于,可视化项目管理菜单模块,提供测试项目管理有关的基本功能,包括创建测试项目、打开测试项目、关闭测试项目、启动测试进程;所述可视化被测源代码管理模块,用于增加、删除被测构件的源代码文件,提供文件信息至测试工程文件自动生成模块,生成适用于测试软件能执行的测试工程文件;所述可视化事务级传输模型选择模块,选择被测构件对应的事务级传输模型;所述可视化构件接口设置模块,设置被测构件的输入接口、输出接口的个数,以及每个接口的类型;所述可视化配置参数设置模块,设置配置接口输入的配置参数个数,以及每个配置参数的位置、位宽、数据类型;所述可视化基础约束设置模块,设置每个配置参数的最大值和最小值,以及每次事务中各输入输出接口的数据包个数;所述可视化测试用例管理和定制模块,管理和定制测试用例,后台计算层的基础测试用例集自动产生模块产生典型测试用例、边界测试用例、随机测试用例分别对应的约束,包括配置参数约束、各输入输出接口的数据包个数约束,由可视化测试用例管理和定制模块显示,通过可视化测试用例管理和定制模块修改约束,或增加新的测试用例,在新的测试用例中输入约束,所有测试用例的约束存入数据库存储层的测试用例信息数据库;所述可视化测试结果查看模块,根据测试用例执行过程中在数据库存储层的测试结果文件夹中放置的测试结果数据文件,判断测试进度,采用进度条显示,判断测试是否成功并显示,显示测试结果数据文件列表,若指定查看某数据文件内容,以文本形式显示,并调用图形显示引擎将数据以图形化显示。
2.根据权利要求1所述的基于UVM的FPGA构件可视化测试框架,其特征在于,所述被测构件源代码文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置被测构件的源代码;所述测试工程文件,由测试工程文件自动生成模块自动产生,是适用于测试软件能执行的测试工程文件;所述参考模型文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置被测构件的参考模型文件,参考模型文件的调用函数名与被测构件名一致,调用函数的输入输出数据接口个数、数据类型与被测构件各输入输出接口的数据口个数、数据类型分别一致;所述验证组件代码模板文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,同时产生放置各验证组件的代码模板,供验证组件自动生成模块使用;所述验证组件文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,放置验证组件自动生成模块产生的各验证组件,作为组成可执行测试工程的主体;所述测试项目基础信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存创建测试项目时用户输入的测试项目的基础信息,包括测试项目的名称、测试项目的存放路径、被测构件的名称;所述被测构件接口信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存通过可视化事务级传输模型选择模块、可视化构件接口设置模块、可视化配置参数设置模块输入的被测构件的接口信息,包括构件的事务级传输模型类型、输入输出接口个数和类型、配置参数个数和数据类型;所述被测构件基础约束信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存通过可视化基础约束设置模块设置的被测构件的基础约束信息,包括每个配置参数的最大值和最小值,以及每次事务中各输入输出接口的数据包个数;所述测试用例信息数据库,由可视化项目管理菜单模块执行创建测试项目时产生,保存基础测试用例集自动生成模块产生的基础测试用例集的测试用例约束,以及通过可视化测试用例管理和定制模块对基础测试用例集的测试用例约束所作的修改,或添加的自定义测试用例的约束;所述测试结果文件夹,由可视化项目管理菜单模块执行创建测试项目时产生,保存测试工程在执行过程中产生的各测试用例的测试结果数据文件,传递至可视化测试结果查看模块。
3.一种基于UVM的FPGA构件可视化测试方法,其特征在于,包括:在可视化项目管理菜单模块中创建测试项目,在数据库存储层中生成测试所需的各文件夹和各数据库,将测试项目的名称、路径和被测构件的名称信息存储至测试项目基础信息数据库,向参考模型文件夹中放入与被测构件同名的参考模型文件,向被测构件源代码文件夹中放入被测构件的源代码文件,导入可视化被测源代码管理模块,将各源代码文件的名称、路径信息传递至测试工程文件自动生成模块,生成测试工程文件,在可视化事务级传输模型选择模块中选择被测构件的事务级传输模型,将事务级传输模型类型信息存入被测构件接口信息数据库,设置被测构件的输入接口信息和配置参数信息,将输入接口信息和配置参数信息存储至被测构件接口信息数据库,在可视化项目管理菜单模块中生成验证平台,通过验证组件自动生成模块读取被测构件接口信息数据库、被测构件基础约束信息数据库、测试用例信息数据库中的信息和验证组件代码模板文件夹中的各验证组件的代码模板,生成各验证组件的代码文件,在可视化项目管理菜单模块中启动测试进程,通过可视化项目管理菜单模块启动FPGA测试软件,执行测试项目,生成测试结果文件,在可视化测试结果查看模块中查看测试结果,在可视化项目管理菜单模块中关闭测试项目。
4.根据权利要求3所述的基于UVM的FPGA构件可视化测试方法,其特征在于,所述设置被测构件的输入接口信息和配置参数信息,包括:在可视化构件接口设置模块中设置被测构件对应的输入接口个数、类型、数据位宽、数据类型,在可视化配置参数设置模块中设置被测构件对应的配置参数个数、每个配置参数的位置、位宽、数据类型。
5.根据权利要求4所述的基于UVM的FPGA构件可视化测试方法,其特征在于,所述设置被测构件的输入接口信息和配置参数信息,包括:在可视化基础约束设置模块中设置各配置参数的最大值、最小值、各输入接口的各个数值,存储至被测构件基础约束信息数据库,基础测试用例自动生成模块生成基础测试用例集,存储至测试用例信息数据库。
6.根据权利要求4所述的基于UVM的FPGA构件可视化测试方法,其特征在于,所述设置被测构件的输入接口信息和配置参数信息,包括:在可视化测试用例管理和定制模块中修改基础测试用例集中的约束设置,和/或增加自定义测试用例,设置约束,通过可视化测试用例管理和定制模块,将修改和/或新增的约束设置存储至测试用例信息数据库。
7.根据权利要求3所述的基于UVM的FPGA构件可视化测试方法,其特征在于,所述生成测试结果文件,包括:通过可视化测试结果查看模块显示测试进度和各测试用例执行结果的正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010083836.8A CN111290954B (zh) | 2020-02-10 | 2020-02-10 | 一种基于uvm的fpga构件可视化测试框架和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010083836.8A CN111290954B (zh) | 2020-02-10 | 2020-02-10 | 一种基于uvm的fpga构件可视化测试框架和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111290954A CN111290954A (zh) | 2020-06-16 |
CN111290954B true CN111290954B (zh) | 2023-04-14 |
Family
ID=71023594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010083836.8A Active CN111290954B (zh) | 2020-02-10 | 2020-02-10 | 一种基于uvm的fpga构件可视化测试框架和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290954B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112630563B (zh) * | 2020-12-07 | 2024-05-14 | 北京博电新力电气股份有限公司 | 电力二次设备的智能测试***及测试方法 |
CN112559264B (zh) * | 2020-12-08 | 2021-08-06 | 北京京航计算通讯研究所 | 基于uvm的验证平台实现fpga通用串口的仿真测试方法 |
CN114355171B (zh) * | 2022-03-15 | 2022-12-23 | 江苏清微智能科技有限公司 | 一种可重构芯片性能瓶颈检测平台、检测方法及电子设备 |
CN117389818B (zh) * | 2023-12-12 | 2024-03-29 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268310A (zh) * | 2014-09-05 | 2015-01-07 | 浪潮集团有限公司 | 使用专用图形界面调用uvm验证环境的方法 |
CN105718344A (zh) * | 2016-01-19 | 2016-06-29 | 中国电子科技集团公司第三十八研究所 | 一种基于uvm的fpga通用可配置uart协议的验证方法 |
CN110096441A (zh) * | 2019-04-26 | 2019-08-06 | 北京航空航天大学 | 一种基于uvm方法下fpga软件仿真测试环境建立方法 |
-
2020
- 2020-02-10 CN CN202010083836.8A patent/CN111290954B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268310A (zh) * | 2014-09-05 | 2015-01-07 | 浪潮集团有限公司 | 使用专用图形界面调用uvm验证环境的方法 |
CN105718344A (zh) * | 2016-01-19 | 2016-06-29 | 中国电子科技集团公司第三十八研究所 | 一种基于uvm的fpga通用可配置uart协议的验证方法 |
CN110096441A (zh) * | 2019-04-26 | 2019-08-06 | 北京航空航天大学 | 一种基于uvm方法下fpga软件仿真测试环境建立方法 |
Non-Patent Citations (2)
Title |
---|
曾清乐 ; 宋文强 ; 李敬磊 ; .基于UVM的FPGA测试技术的研究.电脑与电信.2016,(05),全文. * |
邓庆勇 ; 夏际金 ; ***台代码自动生成方法研究.电子科学技术.2017,(04),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111290954A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290954B (zh) | 一种基于uvm的fpga构件可视化测试框架和方法 | |
Sangiovanni-Vincentelli | Quo vadis, SLD? Reasoning about the trends and challenges of system level design | |
Apvrille et al. | A UML-based environment for system design space exploration | |
De Caso et al. | Automated abstractions for contract validation | |
US20080109780A1 (en) | Method of and apparatus for optimal placement and validation of i/o blocks within an asic | |
US10002218B2 (en) | Verification of a multichip coherence protocol | |
US7213230B2 (en) | Playing scenarios of system behavior | |
US7194726B2 (en) | Method for automatically decomposing dynamic system models into submodels | |
Lima et al. | An integrated semantics for reasoning about SysML design models using refinement | |
US7275231B2 (en) | High level validation of designs and products | |
CN111209203A (zh) | 一种基于源代码的模型验证方法 | |
CN115935872A (zh) | 一种可扩展的fpga仿真验证自动化方法 | |
Goli et al. | Automated design understanding of SystemC-based virtual prototypes: Data extraction, analysis and visualization | |
Dillon et al. | Inference graphs: A computational structure supporting generation of customizable and correct analysis components | |
Bunker et al. | Formal hardware specification languages for protocol compliance verification | |
Huggi et al. | Design and verification of memory elements using python | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理*** | |
CN111240972B (zh) | 一种基于源代码的模型验证装置 | |
CN111274750B (zh) | 一种基于可视化建模的fpga仿真验证***和方法 | |
Milicev | Domain mapping using extended UML object diagrams | |
Kallel et al. | Monitoring transaction level SystemC models using a generic and aspect-oriented framework | |
US20230267253A1 (en) | Automated synthesis of virtual system-on-chip environments | |
US20230205969A1 (en) | Techniques for modeling and verification of convergence for hierarchical domain crossings | |
Rath et al. | Declarative specification of domain specific visual languages | |
KR100456631B1 (ko) | 객체지향 프로그래밍 시스템의 설계 모델 적용장치와 그적용방법 및 이에 관련된 프로그램의 기록매체 |
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 |