CN113868046A - 一种pad控制单元的功能验证方法、系统及相关组件 - Google Patents
一种pad控制单元的功能验证方法、系统及相关组件 Download PDFInfo
- Publication number
- CN113868046A CN113868046A CN202111031354.9A CN202111031354A CN113868046A CN 113868046 A CN113868046 A CN 113868046A CN 202111031354 A CN202111031354 A CN 202111031354A CN 113868046 A CN113868046 A CN 113868046A
- Authority
- CN
- China
- Prior art keywords
- control unit
- pad control
- verification
- file
- checking mechanism
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 204
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000007246 mechanism Effects 0.000 claims abstract description 127
- 238000013461 design Methods 0.000 claims abstract description 74
- 238000007689 inspection Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 56
- 238000013515 script Methods 0.000 claims description 28
- 238000004088 simulation Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 8
- 230000005284 excitation Effects 0.000 claims description 5
- 238000011112 process operation Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001125929 Trisopterus luscus Species 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请公开了一种PAD控制单元的功能验证方法,所述方法包括:搭建形式验证环境,并确定PAD控制单元的设计文件和检查机制文件;从所述设计文件中读取所述PAD控制单元对应的设计代码,根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值,以便对所述PAD控制单元进行形式验证;根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果。本申请能够提高PAD控制单元的功能验证效率和完备性。本申请还公开了一种PAD控制单元的功能验证系统、一种电子设备及一种存储介质,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种PAD控制单元的功能验证方法、系统及相关组件。
背景技术
随着科技的高速发展,芯片行业也发展迅猛,对于一颗芯片来说GPIO(General-purpose input/output,通用输入/输出口)是必不可少的,既可以将外部信号经过处理通过GPIO送给芯片内部,又可以将芯片内部输出的信号经过处理送到GPIO,从而与外部模块进行交互。
GPIO作为芯片跟外部交互的双向通道,保证其功能正确是至关重要的。在整个芯片设计中,内部模块众多,绝大部分的GPIO都会被若干内部的功能模块所复用。对于一个GPIO的功能来说,既可以作为模块一的输出通道,也可以作为模块二的输入通道,但是在同一时刻GPIO只会有一种功能模式被选中,为了保证每种功能实现时不冲突,每个GPIO都需要有一个控制寄存器,可以通过配置这些控制寄存器来控制GPIO的每一种功能都可独立正常工作,连接控制寄存器和GPIO端口的选择单元是PAD控制单元(即PCL单元),因此保证PAD控制单元逻辑功能正确就尤为重要。
相关技术中,通常使用强制赋值(force)的方式对PAD控制单元的功能进行验证,但是PAD控制单元中包括大量的mux选择器,如果将所有输入信号的全部组合,使用传统强制赋值方式遍历进行功能验证的效率较低且无法保证验证的完备性。
因此,如何提高PAD控制单元的功能验证效率和完备性是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种PAD控制单元的功能验证方法、系统、一种电子设备及一种存储介质,能够提高PAD控制单元的功能验证效率和完备性。
为解决上述技术问题,本申请提供一种PAD控制单元的功能验证方法,该PAD控制单元的功能验证方法包括:
搭建形式验证环境,并确定PAD控制单元的设计文件和检查机制文件;其中,所述PAD控制单元为GPIO中连接控制寄存器和GPIO端口的选择单元,所述检查机制文件根据管脚列表生成;
从所述设计文件中读取所述PAD控制单元对应的设计代码,根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值,以便对所述PAD控制单元进行形式验证;
根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果。
可选的,所述搭建形式验证环境包括:
通过设置验证平台参数、脚本运行参数和基础配置参数搭建所述形式验证环境;
其中,所述验证平台部分的参数包括约束属性、检查属性和覆盖率属性,所述脚本运行参数包括形式验证过程运行的脚本和仿真参数,所述基础配置参数包括分析和编译命令、环境时钟和复位命令、检查机制命令、以及仿真报告生成命令。
可选的,在确定PAD控制单元的设计文件和检查机制文件之前,还包括:
从所述管脚列表中选取当前管脚;
判断所述当前管脚是否为GPIO复用功能对应的管脚;
若是,则根据所述当前管脚的选择控制接口生成断言检查机制,并将所述断言检查机制添加至所述检查机制文件。
可选的,在根据所述当前管脚的选择控制接口生成断言检查机制,并将所述断言检查机制添加至所述检查机制文件之后,还包括:
将所述检查机制文件中的所有所述断言检查机制集成至片上系统SOC的验证环境中,以便利用所述断言检查机制对片上所述系统SOC进行验证。
可选的,在根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果之后,还包括:
若所述功能验证结果为验证失败,则执行失败原因定位操作。
可选的,在根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值之前,还包括:
将形式验证的应用模式设置为形式化属性检查验证模式。
可选的,所述确定PAD控制单元的设计文件和检查机制文件包括:
在查询所述形式验证环境中设置的所述PAD控制单元的设计文件所在路径和所述检查机制文件所在路径;
根据所述PAD控制单元的设计文件所在路径读取所述PAD控制单元的设计文件;
根据所述检查机制文件所在路径读取所述检查机制文件。
本申请还提供了一种PAD控制单元的功能验证系统,该系统包括:
环境搭建模块,用于搭建形式验证环境,并确定PAD控制单元的设计文件和检查机制文件;其中,所述PAD控制单元为GPIO中连接控制寄存器和GPIO端口的选择单元,所述检查机制文件根据管脚列表生成;
激励输入模块,用于从所述设计文件中读取所述PAD控制单元对应的设计代码,根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值,以便对所述PAD控制单元进行形式验证;
验证模块,用于根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述PAD控制单元的功能验证方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述PAD控制单元的功能验证方法执行的步骤。
本申请提供了一种PAD控制单元的功能验证方法,包括:搭建形式验证环境,并确定PAD控制单元的设计文件和检查机制文件;其中,所述PAD控制单元为GPIO中连接控制寄存器和GPIO端口的选择单元,所述检查机制文件根据管脚列表生成;从所述设计文件中读取所述PAD控制单元对应的设计代码,根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值,以便对所述PAD控制单元进行形式验证;根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果。
本申请先搭建形式验证环境,并在形式验证环境中读取PAD控制单元对应的设计代码,通过对PAD控制单元的所有输入端口中输入随机值,进而对PAD控制单元进行形式验证。检查机制文件中包括PAD控制单元中各个引脚的检查规则,根据检查机制文件可以判断各个引脚的输入和输出逻辑是否正确,以便得到PAD控制单元的功能验证结果。本申请通过形式验证将输入信号在满足输入约束的条件下进行充分随机,整个验证环境结构简单,所有满足要求的输入信号的组合都可随机产生,不需要花费时间对每一个信号进行单独处理,能够提高PAD控制单元的功能验证效率和完备性。本申请同时还提供了一种PAD控制单元的功能验证系统、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种PAD控制单元的功能验证方法的流程图;
图2为本申请实施例所提供的一种PAD控制单元的逻辑图;
图3为本申请实施例所提供的一种检查机制文件生成方法的流程图;
图4为本申请实施例所提供的一种对PAD控制单元进行形式验证的方法的流程图;
图5为本申请实施例所提供的一种传统仿真验证和形式验证的区别示意图;
图6为本申请实施例所提供的一种PAD控制单元的功能验证系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种PAD控制单元的功能验证方法的流程图。
具体步骤可以包括:
S101:搭建形式验证环境,并确定PAD控制单元的设计文件和检查机制文件;
本实施例可以应用于形式验证平台,在使用形式验证平台对PAD控制单元进行形式验证之前,可以在形式验证平台中搭建PAD控制单元对应的形式验证环境。
具体的,本实施例可以通过以下方式搭建形式验证环境:通过设置验证平台参数、脚本运行参数和基础配置参数搭建所述形式验证环境。上述验证平台部分的参数包括约束属性、检查属性和覆盖率属性,所述脚本运行参数包括形式验证过程运行的脚本和仿真参数,所述基础配置参数包括分析和编译命令、环境时钟和复位命令、检查机制命令、以及仿真报告生成命令。
本实施例中的PAD控制单元为GPIO中连接控制寄存器和GPIO端口的选择单元,请参见图2,图2为本申请实施例所提供的一种PAD控制单元的逻辑图。以输出型的GPIO为例,在图2中输入in1~in4是芯片内部信号,sel[1:0]是PAD控制单元的选择控制,pcl_out是输出信号。sel的取值有四种分别为2`b00,2`b01,2`b10,2`b11,将sel信号强制赋值force不同的值,pcl_out根据sel不同的取值将四种输入信号的其中一种选择输出。假设sel为4bit变量,则共有16种取值,如果全部遍历所有取值再检查的话工作量将会剧增。并且对于验证GPIO这种多mux模块来说,整个设计的核心是PAD控制单元,PAD控制单元中都是mux选择器,如果将所有输入信号的全部组合使用传统的强制赋值的方式遍历不仅需要大量的人力物力还无法保证验证的完备性,本实施例可以通过S101~S103的相关操作解决上述问题。
在搭建形式验证环境之后,本实施例可以确定PAD控制单元的设计文件和检查机制文件,上述检查机制文件根据管脚列表生成,具体可以通过编写脚本将管脚列表转化为对应的检查机制,进而生成检查机制文件。上述管脚列表可以为excel文件中的内容,检查机制文件中包括多个引脚输入和输出逻辑的检查规则。
S102:从设计文件中读取PAD控制单元对应的设计代码,根据设计代码在PAD控制单元的所有输入端口中输入随机值,以便对所述PAD控制单元进行形式验证;
其中,在确定PAD控制单元的设计文件的基础上,本步骤可以:从所述设计文件中读取所述PAD控制单元对应的设计代码,以便在形式验证环境中创建PAD控制单元。根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值,以便对PAD控制单元进行形式验证。本实施例对PAD控制单元的所有输入端口中输入随机值,通过形式验证将输入信号在满足输入约束的条件下进行充分随机。
进一步的,在根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值之前,需要将形式验证的应用模式设置为形式化属性检查验证模式FPV(FormalProperty Verification)。
S103:根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果。
其中,在向PAD控制单元的所有输入端口中输入随机值之后,本实施例可以根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到PAD控制单元的功能验证结果。进一步的,在得到所述PAD控制单元的功能验证结果之后,若所述功能验证结果为验证失败,则执行失败原因定位操作。
本实施例先搭建形式验证环境,并在形式验证环境中读取PAD控制单元对应的设计代码,通过对PAD控制单元的所有输入端口中输入随机值,进而对PAD控制单元进行形式验证。检查机制文件中包括PAD控制单元中各个引脚的检查规则,根据检查机制文件可以判断各个引脚的输入和输出逻辑是否正确,以便得到PAD控制单元的功能验证结果。本实施例通过形式验证将输入信号在满足输入约束的条件下进行充分随机,整个验证环境结构简单,所有满足要求的输入信号的组合都可随机产生,不需要花费时间对每一个信号进行单独处理,能够提高PAD控制单元的功能验证效率和完备性。
作为对于图1对应实施例的进一步介绍,在确定PAD控制单元的设计文件和检查机制文件之前,还可以从所述管脚列表中选取当前管脚;判断所述当前管脚是否为GPIO复用功能对应的管脚;若是,则根据所述当前管脚的选择控制接口生成断言检查机制,并将所述断言检查机制添加至所述检查机制文件。在将所述断言检查机制添加至所述检查机制文件之后,还可以将所述检查机制文件中的所有所述断言检查机制集成至片上系统SOC的验证环境中,以便利用所述断言检查机制对片上所述系统SOC进行验证。
作为对于图1对应实施例的进一步介绍,确定PAD控制单元的设计文件和检查机制文件的过程包括:在查询所述形式验证环境中设置的所述PAD控制单元的设计文件所在路径和所述检查机制文件所在路径;根据所述PAD控制单元的设计文件所在路径读取所述PAD控制单元的设计文件;根据所述检查机制文件所在路径读取所述检查机制文件。
下面通过在实际应用中的实施例说明上述实施例描述的流程。本实施例提出了一种针对GPIO的PAD控制单元验证的方案,在模块级验证中摒弃传统force验证方式,使用形式验证更加充分保证GPIO的PAD控制单元功能正确性的同时,并且可根据GPIO的管脚列表pinlist自动提取相关断言assertion,使得GPIO的PAD控制单元验证自动化成为可能,同时可将生成的断言assertion集成到整个片上系统SOC验证环境中,作为整个片上系统SOC验证环境的检查机制,对模块真实的信号通路进行检查。本实施例包含如下三部分:
(1)形式验证方式:使用FPV(Formal Property Verification)应用模式进行验证,将整个PAD控制单元的所有端口信号使用模块例化的方式引出到验证环境中,验证环境可对输入信号进行随机输入。
(2)检查机制自动化:根据提供的管脚列表pinlist使用脚本处理可自动提取相关断言,实现模块级验证检查机制的自动化。
(3)检查机制集成到片上系统SOC环境:将模块级的检查机制集成到SOC级环境中,作为整个数字设计的检查机制。
本实施例以模块级验证为前提,将待验证设计中的全部输入端口接出到验证环境的顶层,然后在验证环境中给输入端口灌入激励之后在输出端口处检查输入和输出逻辑是否符合要求。使用形式验证的方法验证PAD控制单元首先需要搭建验证环境,需要从形式验证的多种应用模式中挑选出最适合验证PAD控制单元的应用模式,由于PAD控制单元内部是多选择器mux的组合逻辑,使用断言assertion作为检查机制更加适合,因此使用FPV(Formal Property Verification)模式对选择器mux功能进行验证。接着开发自动化脚本,根据提供的管脚列表pinlist使用脚本产生适合形式验证的断言assertion检查机制。脚本实现流程步骤如下图3所示,图3为本申请实施例所提供的一种检查机制文件生成方法的流程图,读取管脚列表pinlist数据,判断该数据是否为PAD复用功能对应的引脚;若是,则读取sel等相关数据并输出断言;若否,则读取PAD方向相关数据并输出断言。若PAD中的管脚未处理完成则重新判断下一引脚是否未PAD复用功能对应的引脚,若PAD中的管脚处理完成则结束流程。
脚本产生的检查机制格式如下:
#复位释放后在每个时钟的上升沿进行采样#
assert property(@(posedge clk)disable iff(rstn==0)
#当sel为零时,PAD控制单元将in1选择输出#
((sel[1:0]==2`b00)->(pcl_out==in1))
对于形式验证来说,上述sel信号和in1信号都是输入信号,验证环境会将这些输入信号随机,然后在每一个时钟的上升沿根据sel的值去判断输出pcl_out的值是否符合逻辑。
整个验证环境结构包含以下三部分:Tb,Run和Tcl,其中Tb是验证平台,主要包含对输入信号的约束属性(Assume property)、输出信号的检查属性(Assert property)以及覆盖率属性(Cover property);Run部分是指定需要运行的Tcl脚本并且设置仿真参数;Tcl部分是运行形式环境所需的基础配置,包括设置分析和编译命令Analyze and elaboratecommands、环境的时钟和复位Clock and reset commands、检查机制Execute commands以及产生仿真报告Report commands等。
请参见图4,图4为本申请实施例所提供的一种对PAD控制单元进行形式验证的方法的流程图,整个形式验证流程包括:设置环境基础设置,编译待验证设计代码,并在形式验证环境中加入时钟和复位。在产生复位状态后,可以运行检查机制,判断是否验证失败,若失败则分析失败原因并解决,若验证成功则结束流程。在上述过程中可以设置应用模式,如果需要收集覆盖率还需设置覆盖率相关参数,对于一些不需要检查的内部小模块可将其设置为black_box(黑盒模式),设置完毕后需要指定PAD控制单元的设计文件所在路径以及检查机制的文件路径,之后加入系统时钟和复位,等复位释放后输入信号会产生符合输入约束的输入随机值,然后进行形式检查机制,也就是运行环境中提前设置好的断言assertion,如果断言assertion断定失败则需去定位失败原因。
在完成模块PAD控制单元验证后,可继续将脚本产生的检查机制集成到片上系统SOC验证环境中,此时检查机制的输入信号就是对应模块的真实信号。比如上文中的in1信号的来源就是其他模块的输出,而不再是模块级验证中形式验证环境随机输入的信号了,这样不但可以实现检查机制的复用还可以检查其他模块信号经过PAD控制单元的通路是否正确。
本实施例使用形式验证策略和脚本产生检查机制来验证GPIO模块的PAD控制单元,可充分遍历所有输入信号的组合,整个验证环境结构简单,易于上手,验证工程师只需要了解形式验证中Tcl文件的写法后接着再根据管脚列表pinlist文件便可产生断言assertion检查机制,无需更多地了解断言语法,不仅在短时间内可充分保证验证质量,还减少了验证复杂度。本实施例能够对于GPIO模块的PAD控制单元这种多选择器的单元,提出使用形式验证方式进行验证,对输入信号可进行满足输入约束要求的各种随机组合。本实施例根据提供的pinlist文件,利用脚本自动产生断言assertion检查机制。上述脚本产生的assertion检查机制可继续在SOC级验证中复用。
GPIO模块作为芯片跟外部交互的通道,在整个芯片的交互功能中扮演着举足轻重的地位,芯片内部模块越多,GPIO的复用功能就越复杂,为了保证GPIO每一条通路都可独立正常工作,本实施例采用形式验证对GPIO的PAD控制单元逻辑中所有输入信号进行随机,这样可充分保证输入激励都全部遍历过,增加验证的可靠性,并且在检查机制方面摒弃传统手写断言的方式,全部采用自动化脚本产生断言检查机制,不仅减少了断言编写误差还大大缩短了验证时间。进一步的,以SOC级验证为前提,本实施例还可以使用形式验证的方式验证整个GPIO,此时GPIO包含两部分,一部分是PAD控制单元,另一部分是标准的输入输出库pad_frame,此时输出就不再是pcl_pout,而是gpio端口,接着使用脚本产生检查机制,完成验证。
本实施例使用的验证方式是采用形式验证。形式验证的含义是根据某个或者某些形式规范或属性,使用数学穷举的方式来证明其正确性或非正确性,它是一种的高性能、高容量的功能验证方案,形式验证与传统仿真验证的区别如下图5所示,图5为本申请实施例所提供的一种传统仿真验证和形式验证的区别示意图,图5中(a)为强制复制的传统仿真验证空间状态,(b)为本申请提供的Vc Formal验证空间状态。
图5中方框中Design代表待验证的设计代码,inputs代表输入信号端,outputs代表输出信号端,方框内黑色的圆点代表待验证的设计代码中所包含的验证功能点,连接所有验证功能点的连线代表测试用例。通过上图5对比,可以得出,传统的功能仿真使用UVM验证方法学通过开发半随机化的测试用例达成验证目标,此种方法很难发现设计中隐藏很深的bug,但是形式验证对全部输入信号进行符合逻辑的约束后采用全随机的方式对输入端口产生激励,并且形式验证还可根据不同的验证功能点选择不同的应用模式(FormalApplications)进行验证,其中包括等价性检查、属性检查以及覆盖率属性等数十种,可以更大程度地减少设计Bug。
根据以上分析可知,与传统PAD控制单元验证方式相比,本实施例提出了在模块级使用形式验证的方案,利用形式验证的优点将输入信号在满足输入约束的条件下进行充分随机,整个验证环境结构简单,所有满足要求的输入信号的组合都可随机产生,不需要花费时间对每一个信号进行单独处理,在保证验证可靠性的同时还可以节约大量时间。并且整个验证环境的检查机制都是使用脚本自动产生的,同时该脚本产生的检查机制还可复用到SOC级验证环境中,减少了工程师手动编写检查机制失误的可能性,并且也不需要工程师有更高的编写断言要求,其次工程师也不需要投入大量的精力开发检查机制,只需要提供固定格式的pinlist,之后使用自动化脚本就可以产生整个检查机制。对于有复用性要求的项目来说,自动化脚本产生检查机制的方式可大大提高GPIO模块验证方案的可复用性。
请参见图6,图6为本申请实施例所提供的一种PAD控制单元的功能验证系统的结构示意图;
该系统可以包括:
环境搭建模块601,用于搭建形式验证环境,并确定PAD控制单元的设计文件和检查机制文件;其中,所述PAD控制单元为GPIO中连接控制寄存器和GPIO端口的选择单元,所述检查机制文件根据管脚列表生成;
激励输入模块602,用于从所述设计文件中读取所述PAD控制单元对应的设计代码,根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值,以便对所述PAD控制单元进行形式验证;
验证模块603,用于根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果。
本实施例先搭建形式验证环境,并在形式验证环境中读取PAD控制单元对应的设计代码,通过对PAD控制单元的所有输入端口中输入随机值,进而对PAD控制单元进行形式验证。检查机制文件中包括PAD控制单元中各个引脚的检查规则,根据检查机制文件可以判断各个引脚的输入和输出逻辑是否正确,以便得到PAD控制单元的功能验证结果。本实施例通过形式验证将输入信号在满足输入约束的条件下进行充分随机,整个验证环境结构简单,所有满足要求的输入信号的组合都可随机产生,不需要花费时间对每一个信号进行单独处理,能够提高PAD控制单元的功能验证效率和完备性。
进一步的,环境搭建模块601用于通过设置验证平台参数、脚本运行参数和基础配置参数搭建所述形式验证环境;其中,所述验证平台部分的参数包括约束属性、检查属性和覆盖率属性,所述脚本运行参数包括形式验证过程运行的脚本和仿真参数,所述基础配置参数包括分析和编译命令、环境时钟和复位命令、检查机制命令、以及仿真报告生成命令。
进一步的,还包括:
检查机制文件生成模块,用于在确定PAD控制单元的设计文件和检查机制文件之前,从所述管脚列表中选取当前管脚;还用于判断所述当前管脚是否为GPIO复用功能对应的管脚;若是,则根据所述当前管脚的选择控制接口生成断言检查机制,并将所述断言检查机制添加至所述检查机制文件。
进一步的,还包括:
片上验证模块,用于在根据所述当前管脚的选择控制接口生成断言检查机制,并将所述断言检查机制添加至所述检查机制文件之后,将所述检查机制文件中的所有所述断言检查机制集成至片上系统SOC的验证环境中,以便利用所述断言检查机制对片上所述系统SOC进行验证。
进一步的,还包括:
失败定位模块,用于在根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果之后,若所述功能验证结果为验证失败,则执行失败原因定位操作。
进一步的,还包括:
模式设置模块,用于在根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值之前,将形式验证的应用模式设置为形式化属性检查验证模式。
进一步的,环境搭建模块601确定PAD控制单元的设计文件和检查机制文件的过程包括:在查询所述形式验证环境中设置的所述PAD控制单元的设计文件所在路径和所述检查机制文件所在路径;根据所述PAD控制单元的设计文件所在路径读取所述PAD控制单元的设计文件;根据所述检查机制文件所在路径读取所述检查机制文件。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种PAD控制单元的功能验证方法,其特征在于,包括:
搭建形式验证环境,并确定PAD控制单元的设计文件和检查机制文件;其中,所述PAD控制单元为GPIO中连接控制寄存器和GPIO端口的选择单元,所述检查机制文件根据管脚列表生成;
从所述设计文件中读取所述PAD控制单元对应的设计代码,根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值,以便对所述PAD控制单元进行形式验证;
根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果。
2.根据权利要求1所述PAD控制单元的功能验证方法,其特征在于,所述搭建形式验证环境包括:
通过设置验证平台参数、脚本运行参数和基础配置参数搭建所述形式验证环境;
其中,所述验证平台部分的参数包括约束属性、检查属性和覆盖率属性,所述脚本运行参数包括形式验证过程运行的脚本和仿真参数,所述基础配置参数包括分析和编译命令、环境时钟和复位命令、检查机制命令、以及仿真报告生成命令。
3.根据权利要求1所述PAD控制单元的功能验证方法,其特征在于,在确定PAD控制单元的设计文件和检查机制文件之前,还包括:
从所述管脚列表中选取当前管脚;
判断所述当前管脚是否为GPIO复用功能对应的管脚;
若是,则根据所述当前管脚的选择控制接口生成断言检查机制,并将所述断言检查机制添加至所述检查机制文件。
4.根据权利要求3所述PAD控制单元的功能验证方法,其特征在于,在根据所述当前管脚的选择控制接口生成断言检查机制,并将所述断言检查机制添加至所述检查机制文件之后,还包括:
将所述检查机制文件中的所有所述断言检查机制集成至片上系统SOC的验证环境中,以便利用所述断言检查机制对片上所述系统SOC进行验证。
5.根据权利要求1所述PAD控制单元的功能验证方法,其特征在于,在根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果之后,还包括:
若所述功能验证结果为验证失败,则执行失败原因定位操作。
6.根据权利要求1所述PAD控制单元的功能验证方法,其特征在于,在根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值之前,还包括:
将形式验证的应用模式设置为形式化属性检查验证模式。
7.根据权利要求1至6任一项所述PAD控制单元的功能验证方法,其特征在于,所述确定PAD控制单元的设计文件和检查机制文件包括:
在查询所述形式验证环境中设置的所述PAD控制单元的设计文件所在路径和所述检查机制文件所在路径;
根据所述PAD控制单元的设计文件所在路径读取所述PAD控制单元的设计文件;
根据所述检查机制文件所在路径读取所述检查机制文件。
8.一种PAD控制单元的功能验证系统,其特征在于,包括:
环境搭建模块,用于搭建形式验证环境,并确定PAD控制单元的设计文件和检查机制文件;其中,所述PAD控制单元为GPIO中连接控制寄存器和GPIO端口的选择单元,所述检查机制文件根据管脚列表生成;
激励输入模块,用于从所述设计文件中读取所述PAD控制单元对应的设计代码,根据所述设计代码在所述PAD控制单元的所有输入端口中输入随机值,以便对所述PAD控制单元进行形式验证;
验证模块,用于根据所述检查机制文件对所述PAD控制单元的输出结果进行检查,得到所述PAD控制单元的功能验证结果。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述PAD控制单元的功能验证方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述PAD控制单元的功能验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031354.9A CN113868046B (zh) | 2021-09-03 | 一种pad控制单元的功能验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031354.9A CN113868046B (zh) | 2021-09-03 | 一种pad控制单元的功能验证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113868046A true CN113868046A (zh) | 2021-12-31 |
CN113868046B CN113868046B (zh) | 2024-08-02 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116227427A (zh) * | 2023-03-03 | 2023-06-06 | 南京金阵微电子技术有限公司 | 验证方法、验证装置、介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408264A (zh) * | 2014-12-12 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于断言的嵌入式存储控制器验证系统及方法 |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408264A (zh) * | 2014-12-12 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于断言的嵌入式存储控制器验证系统及方法 |
Non-Patent Citations (1)
Title |
---|
左丰国等: "适用于PAD控制逻辑电路验证的一种高效的形式验证方法", 《中国集成电路》, no. 05, pages 1 - 6 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116227427A (zh) * | 2023-03-03 | 2023-06-06 | 南京金阵微电子技术有限公司 | 验证方法、验证装置、介质及电子设备 |
CN116227427B (zh) * | 2023-03-03 | 2024-05-07 | 南京金阵微电子技术有限公司 | 验证方法、验证装置、介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189479B (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
Ott et al. | A designer's guide to VHDL synthesis | |
CN112232006B (zh) | 一种标准单元库验证方法、装置、电子设备及存储介质 | |
KR20210149045A (ko) | 인공 지능 칩 검증 | |
US20110054875A1 (en) | Design Specifications-Driven Platform for Analog, Mixed-signal, and Radio Frequency Verification | |
EP3185027B1 (en) | Information processing method and device and computer storage medium | |
CN112100949A (zh) | 集成电路芯片的自动开发方法及装置、电子设备 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
US6339837B1 (en) | Hybrid method for design verification | |
CN116663462B (zh) | 断言验证方法、断言验证平台、电子设备及可读存储介质 | |
CN115952758A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
US8265918B1 (en) | Simulation and emulation of a circuit design | |
US7823101B2 (en) | Device, method, and storage for verification scenario generation, and verification device | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
CN117350208A (zh) | 时序逻辑元件性能检查方法及设备 | |
CN112860587B (zh) | Ui自动测试方法和装置 | |
CN117094269B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
CN116227398B (zh) | 一种自动化生成ip核测试激励的方法及系统 | |
CN112731117A (zh) | 芯片的自动验证方法和系统,及存储介质 | |
US7290174B1 (en) | Methods and apparatus for generating test instruction sequences | |
CN113868046B (zh) | 一种pad控制单元的功能验证方法及系统 | |
CN115577673A (zh) | 一种面向5g基带芯片系统管脚的高效验证方法 | |
CN115687108A (zh) | 基于uvm与fpv相结合的验证方法、平台、终端及存储介质 | |
CN113868046A (zh) | 一种pad控制单元的功能验证方法、系统及相关组件 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 |
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 |