本发明涉及一种集成电路技术领域,尤其是涉及一种提高报文解析测试覆盖率的方法及系统。
背景技术:
网络芯片用于对报文头部进行解析并根据报文头部信息决定该报文的路由与转发。在解析过程中,由于报文头部包含多个信息,每个信息都决定报文不同的功能,不同的功能在设计代码中走不同的分支,因此,网络芯片在解析过程中会产生多个数据流的分支。
在验证网络芯片的过程中,为了满足验证的完备性,需要验证解析结果的每一条数据分支及其对应的功能是否正确。只有数据流分支的代码被执行到才能验证对应功能是否正确。现有技术中,通过在输入端发送随机化激励到待测设计模块中和验证模型中,概率性的覆盖数据流分支,通过足够多的测试激励去覆盖尽可能多的代码分支。此方法不能确保每一条数据流分支都会被执行到。当足够多的测试激励覆盖代码分支时,需要浪费大量的时间成本,更多的服务器资源,但是依然存在不确定的结果,效率低下。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种提高报文解析测试覆盖率的方法及系统。
为实现上述目的,本发明提出如下技术方案:一种提高报文解析测试覆盖率的方法,包括如下步骤:
S1,将初始化测试激励输入至验证模块中,同时将初始化测试激励存储至激励池中;
S2,验证模块根据初始化测试激励获得匹配报文解析数据流路径的配置信息,并将配置信息存储至配置池中;
S3,从配置池中选取配置信息初始化至待测试的报文解析模块中;
S4,从激励池中选取初始化测试激励输入至待测试的报文解析模块和验证模块中,并对两者输出结果进行匹配。
优选地,在步骤S2中,所述配置信息为报文解析模块中寄存器和存储器的表项配置。
优选地,步骤S3还包括选择随机的配置信息初始化至报文解析模块中。
优选地,步骤S4还包括选择随机的测试激励输入至验证模块和报文解析模块中,并对两者输出结果进行匹配。
一种提高报文解析测试覆盖率的系统,包括
激励池,用于存储初始化测试激励;
验证模块,用于对待测试的报文解析模块进行验证和根据输入的初始化测试激励获得匹配报文解析数据流路径的配置信息;
配置池,用于存储匹配报文解析数据流路径的配置信息;
第一选择器,用于从配置池中选择配置信息初始化至报文解析模块中;
第二选择器,用于从激励池中选择初始化测试激励输入至报文解析模块和验证模块中;以及
比较模块,用于对报文解析模块和验证模块的输出结果进行匹配。
优选地,所述配置信息为报文解析模块中寄存器和存储器的表项配置。
优选地,所述系统还包括随机配置池,所述随机配置池用于存储随机的配置信息,所述第一选择器还从随机配置池中选择配置信息初始化至报文解析模块中。
优选地,所述系统还包括随机激励池,所述随机激励池用于存储随机的测试激励,所述第二选择器还从随机激励池中选择随机的测试激励输入至报文解析模块和验证模块中。
本发明的有益效果是:
与现有技术相比,本发明通过将初始化测试激励先输入验证模型获得匹配报文解析数据流路径的配置信息,并将该配置信息初始化报文解析模块中,测试时选择初始化测试激励或选择随机的测试激励输入至报文解析模块和验证模块进行验证,一方面能够确保匹配到报文解析的每一条数据流路径,提高了设计代码的测试覆盖率,便于发现设计代码缺陷,另一方面还能够确保报文解析测试的随机性。
附图说明
图1是本发明的流程图示意图;
图2是本发明的系统结构框图示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
代码覆盖率是衡量设计代码已被验证代码测试过的一个重要指标。例如以太网报文解析设计模块的地址解析协议(ARP,Address Resolution Protocol)功能,只有该功能有被覆盖到,才能确保对应功能有验证过。设计模块中,ARP协议的功能经过一系列的逻辑变化,需要覆盖到其功能,往往需要特定的激励和配置,传统对该类型设计模块的验证激励是随机的,很难也无法保证能覆盖到对应功能。本发明中可通过验证代码提前获取能够覆盖特定ARP功能的激励和配置,然后再以这些进化过的激励和配置正式进行验证,从而能够确保覆盖到对应功能。
本发明所揭示的一种提高报文解析测试覆盖率的方法及系统,在报文解析测试过程中提高设计代码测试覆盖率的同时确保报文解析测试的随机性,快速发现存在设计缺陷的代码,适用于解析报文的芯片或模块。
如图1所示,一种提高报文解析测试覆盖率的方法,包括如下步骤:
S1,将初始化测试激励输入至验证模块中,同时将初始化测试激励存储至激励池中;
S2,验证模块根据初始化测试激励获得匹配报文解析数据流路径的配置信息,并将配置信息存储至配置池中。
具体地,本实施例中,以包含寄存器和存储器的报文解析模块为例进行详细的说明,当然,本发明不限于本实施例中所述的报文解析模块,还可适用于其他能够解析报文的芯片或模块。其中,寄存器和存储器用于存储匹配报文的表项。
为了对待测试的报文解析模块进行验证,需要构建与报文解析模块功能相一致、用于报文解析的验证模块。所述验证模块不仅能够对待测试的报文解析模块进行代码验证,还能够根据输入的初始化测试激励获得匹配报文解析数据流路径的配置信息。本实施例中,验证模块基于仿真环境构建,具有抽象层次高、仿真速度快、消耗资源少的优点,并且测试激励输入验证模块后可获得匹配解析数据流路径的寄存器和存储器表项配置信息。
为了确保待测的报文解析模块能够匹配报文解析的每一条数据流路径,本发明通过对输入至验证模块中的初始化测试激励进行备份,将其存储至激励池中。激励池中的初始化测试激励在测试报文解析模块时可作为测试激励输入至报文解析模块中,可保证待测试的报文解析模块匹配到预期的数据流路径,提高设计代码的测试覆盖率。
S3,从配置池中选取配置信息初始化至待测试的报文解析模块中;
S4,从激励池中选取初始化测试激励输入至待测试的报文解析模块和验证模块中并对两者输出结果进行匹配。
具体地,在待测试的报文解析模块中寄存器和存储器的配置信息可以从配置池中获取,配置池中的配置信息可保证待测试的报文解析模块的配置是可预期的。当从配置池中将配置信息初始化至报文解析模块中的寄存器和存储器后,从激励池中选择初始化测试激励输入至报文解析模块和验证模块中,并通过比较模块对两者的输出结果进行匹配。由于报文解析模块与验证模块的配置信息相同,初始化测试激励也从激励池中选择,因此,报文解析模块可以匹配到预期的数据流解析路径,提高了设计代码的测试覆盖率。
进一步地,为了保证报文解析模块测试的完备性,还需在报文解析模块中初始化随机的配置信息,并输入随机的测试激励,随机的配置信息和随机的测试激励可以确保验证流程的随机性,使报文解析模块的测试更具完备性。
与现有技术相比,本发明通过将激励池、配置池、随机的测试激励、随机的配置信息进行组合使用,一方面保证了报文解析模块能够匹配到每一条数据流路径,提高了测试过程中设计代码覆的测试覆盖率,另一方面保证了测试的随机性。
如图2所示,一种提高报文解析测试覆盖率的系统,包括激励池、验证模块、配置池、第一选择器、第二选择器,以及比较模块。其中,激励池用于存储初始化测试激励;验证模块用于对待测试的报文解析模块进行验证和根据输入的初始化测试激励获得匹配报文解析数据流路径的配置信息;配置池用于存储匹配报文解析数据流路径的配置信息;第一选择器用于从配置池中选择配置信息初始化至报文解析模块中;第二选择器用于从激励池中选择初始化测试激励输入至报文解析模块和验证模块中,比较模块用于对报文解析模块和验证模块的输出结果进行匹配。
具体地,验证模块不仅能够对待测试的报文解析模块进行代码验证,还能够根据输入的初始化测试激励获得匹配报文解析数据流路径的配置信息。本实施例中,初始化测试激励是测试人员自己设定的测试激励,其输入至验证模型后,验证模型输出的结果是可以匹配报文解析数据流路径的寄存器和存储器表项配置信息。获得的配置信息被存入至配置池中。当进行报文解析模块的代码验证时,首先,第一选择器从配置池中获取配置信息,该配置信息被初始化至报文解析模块的寄存器和存储器中。其次,第二选择器从激励池中选择初始化测试激励输入至报文解析模块和验证模块中,两者的输出结果至比较模块中。与现有技术相比,本发明通过将初始化测试激励先输入至验证模块中获得匹配数据流的配置信息,并将配置信息初始化报文解析模块中,测试时将初始化激励输入至报文解析模块和验证模块中。由于报文解析模块此时的配置信息跟初始化测试激励是相关联的,因此,报文解析模块可以匹配到预期的数据流解析路径,提高了报文解析过程中设计代码的测试覆盖率。
进一步地,为了保证验证的随机性,系统还包括随机激励池和随机配置池,随机激励池用于存储随机的测试激励,随机配置池用于存储随机的配置信息。在验证时,第一选择器可以选择随机配置池中的配置信息初始化至报文解析模块中。配置信息初始化完成后,第二选择器从随机化激励池中选择随机的测试激励输入至报文解析模块和验证模块中。通过测试激励池与随机激励池、配置池与随机配置池的组合使用,保证匹配到报文解析的每一条数据流路径,同时还保证验证流程的随机性。
本发明通过将初始化测试激励先输入验证模块,预先处理得到匹配报文解析数据流路径的配置信息,并将该配置信息初始化报文解析模块中,测试时从测试激励池中选择测试激励或选择随机激励输入至报文解析模块中,一方面提高了报文解析模块的测试覆盖率,便于发现设计代码缺陷,另一方面确保报文解析测试的随机性。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。