CN112632882A - 一种基于形式验证对仲裁器验证的装置以及方法 - Google Patents
一种基于形式验证对仲裁器验证的装置以及方法 Download PDFInfo
- Publication number
- CN112632882A CN112632882A CN202011514078.7A CN202011514078A CN112632882A CN 112632882 A CN112632882 A CN 112632882A CN 202011514078 A CN202011514078 A CN 202011514078A CN 112632882 A CN112632882 A CN 112632882A
- Authority
- CN
- China
- Prior art keywords
- arbiter
- signal
- legal
- verified
- response signal
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本申请实施例提供一种基于形式验证对仲裁器验证的装置以及方法,所述装置包括:激励约束模块,被配置为对输入待验证仲裁器的激励信号进行约束,得到合法激励信号;辅助代码模块,被配置为基于所述合法激励信号,得到参考响应信号;断言检查模块,被配置为比较所述参考响应信号和实际响应信号,以完成对所述待验证仲裁器的逻辑验证,其中,所述实际响应信号是将所述合法激励信号输入所述待验证仲裁器得到的。本申请的一些实施例基于形式验证搭建验证仲裁器模型的速度更快,验证效率更高。
Description
技术领域
本申请涉及芯片验证领域,具体而言本申请实施例涉及一种基于形式验证对仲裁器验证的装置以及方法。
背景技术
随着集成电路技术的快速发展,芯片的设计方案变得越来越复杂,相应的对芯片验证方案得要求也越来越高。对于芯片中的单一子模块来说,对其得验证需要更加完备并且快速。比如对于仲裁器arbiter的验证来说,相关技术方案一般采用systemverilog语言,并基于uvm框架搭建验证环境。以单独搭建arbiter UVM验证环境为例,需要编写多个uvm_component(包括driver/monitor/checker等等)并实现他们之间的连接,然后编写随机测试sequence以提供激励,最后在testcase中启动sequence进行仿真验证,单独环境得搭建需要花费比较大得精力。而如果将仲裁器arbiter放在已有的子***验证环境或者SOC环境中,则无法对arbiter的内部功能在上层环境进行精准控制,从而无法进行快速且完备得验证。
因此如何高效的验证仲裁器成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种基于形式验证对仲裁器进行验证的装置以及方法,本申请的一些实施例基于形式验证vc formal即可完成测试模型的搭建,极大的缩减了搭建验证环境所需要的时间,并且当仿真(或称为验证)出现问题时,只需更改相关功能组件即可快速进行迭代,从而提高仿真的效率。
第一方面,本申请的一些实施例提供一种基于形式验证对仲裁器进行验证的装置,所述装置包括:激励约束模块,被配置为对输入待验证仲裁器的激励信号进行约束,得到合法激励信号;辅助代码模块,被配置为基于所述合法激励信号,得到参考响应信号;断言检查模块,被配置为比较所述参考响应信号和实际响应信号,以完成对所述待验证仲裁器的逻辑验证,其中,所述实际响应信号是将所述合法激励信号输入所述待验证仲裁器得到的。
本申请的一些实施例基于形式验证搭建验证仲裁器模型的速度更快,验证效率更高。
在一些实施例中,所述待验证仲裁器包括:轮询仲裁器、零优先级仲裁器和Qos仲裁器。
本申请的一些实施例可以对采用不同逻辑实现的多种仲裁器进行验证,具有较好的通用性。
在一些实施例中,所述辅助代码模块是根据所述待验证仲裁器的定义编写处理代码得到的。
本申请的一些实施例的辅助代码模块可以将复杂逻辑输出为简单的信号以用于断言检查模块的快速检查。
在一些实施例中,所述辅助代码模块被配置为:接收输入的合法激励信号,其中,所述合法激励信号包括多路合法信号;根据所述处理代码得到与所述多路合法信号中各路合法信号对应的期望输出信号,得到所述参考响应信号,其中,所述参考响应信号包括多路所述期望输出信号;将所述参考响应信号输入所述断言检查模块。
本申请的一些实施例通过预先编写的处理代码得到针对于各合法激励的正确的输出逻辑,以方便断言检查模块检查待验证仲裁器输出的逻辑是否准确。
在一些实施例中,所述断言检测模块是通过编写断言以检查所述待验证仲裁器的输出逻辑。
本申请的一些实施例通过预先编辑的断言来验证待验证仲裁器的输出逻辑是否与辅助代码模块的参考逻辑是否相同,进而验证仲裁器输出逻辑是否满足要求。
在一些实施例中,所述断言检测模块被配置为:接收所述实际响应信号,其中,所述合法激励信号包括多路合法信号,所述实际响应信号包括由所述待验证仲裁器输出的多路与所述各路合法信号对应的输出逻辑信号;接收多路所述期望输出信号;将所述多路期望输出信号中的各路信号与相应路的所述输出逻辑信号进行比较;确认所述多路期望输出信号与所述多路输出逻辑信号相同,则验证通过。
本申请的一些实施例通过预先编写的断言比较待验证仲裁器的输出逻辑是否准确,可以提高仿真效率。
在一些实施例中,所述装置还包括:覆盖率收集模块,被配置为收集设定的时序的逻辑是否被覆盖。
本申请的一些实施例。
第二方面,本申请的一些实施例提供一种基于形式验证对仲裁器验证的方法,所述方法包括:约束输入待验证仲裁器的激励信号,得到合法激励信号;将所述合法激励信号输入待验证仲裁器,得到与所述合法激励信号对应的实际响应信号;将所述合法激励信号输入辅助代码模块,得到与所述合法激励信号对应的参考响应信号;比较所述实际响应信号和所述参考响应信号,以完成对所述待验证仲裁器的验证。
在一些实施例中,所述约束输入待验证仲裁器的激励信号,得到合法激励信号之前,所述方法还包括:编写激励约束以将所述激励信号转化为所述合法激励信号。
在一些实施例中,所述比较所述实际响应信号和所述参考响应信号,以完成对所述待验证仲裁器的验证之前,所述方法还包括:编写断言以检查所述待验证仲裁器的输出逻辑。
在一些实施例中,所述方法还包括:当确认验证不通过时,修改所述激励约束或者修改所述所述待验证仲裁器。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的基于形式验证对仲裁器验证的装置的组成框图之一;
图2为本申请实施例提供的基于形式验证对轮询仲裁器验证的装置的组成框图;
图3为本申请实施例提供的基于形式验证对零优先级仲裁器验证的装置的组成框图;
图4为本申请实施例提供的基于形式验证对Qos仲裁器验证的装置的组成框图;
图5为本申请实施例提供的基于形式验证对仲裁器验证的方法流程图;
图6为本申请实施例提供的搭建验证模型并采用搭建的模型对待验证仲裁器进行验证的流程图;
图7为断言检查模块执行的验证过程流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
下面列举本申请一些实施例涉及相关英文单词或者词组的内容及含义。
formal,形式验证。
vc formal:形式验证的一种仿真工具。
arbiter:仲裁器。
DUT:design under test,设计的源代码,本申请的实施例指代仲裁器的源代码。
assumptions:假设,对源代码模块DUT的输入激励做约束,本申请的一些实施例指代激励约束模块的功能。
helper code:辅助代码模块,本申请实施例中指代用于生成参考输出信号的模块。
assertion:断言,一种时序检查语法。
checker:逻辑检查代码。
cover property:覆盖特性,收集特定得时序逻辑是否覆盖到。
uvm:Universal Verification Methodology,通用验证方法学
uvm component:组成uvm环境得组件。
driver:驱动器,用于驱动DUT输入信号。
monitor:监测器,用于监测DUT输出信号。
sequence:序列,用于定义驱动。
testcase:测试案例。
SOC:system on chip,片上***。
Round robin:轮询调度。
Qos:quality of service,服务质量,该仲裁器激励得带宽可以配置。
Zero priority:零优先级,第零个激励享有最高优先级。
Testbench:验证环境。
Fifo:先入先出。
本申请实施例的形式验证技术不需要测试向量,但是需要两个进行对比设计(即将参考对象和待验证对象的输出进行比较,具体指由本申请一些实施例的辅助代码模块实现的参考仲裁器的输出结果和由待验证仲裁器输出的实际响应结果),具体到本申请的一些实施例被比较的两个对象中的一个作为参考设计(即本申请实施例的辅助代码模块输出的参考响应信号),另一个作为待验证设计(即待验证仲裁器的逻辑输出信号)。在等价验证的过程中,参考设计被认为是已经经过验证的可以作为参考标准的设计,待验证设计与参考设计有任何不一致的地方都被视为待验证仲裁器的逻辑功能错误,或者是输入激励信号为非法值。
本申请的一些实施例提供一种基于形式验证formal的针对各类仲裁器arbiter进行快速仿真验证的方法。也就是说,本申请的一些实施例基于形式验证vc formal实现,能够快速搭建针对待验证仲裁器arbiter的验证环境并提高验证效率。本申请的一些实施例的验证装置包括:激励约束模块assumptions用于约束DUT(待验证仲裁器中的设计的源代码)的激励信号,使所有的输入激励为合法激励;辅助代码模块helper code为辅助逻辑,用于模拟已经验证通过的仲裁器对合法激励信号输出的参考逻辑,再将参考逻辑输入断言检查模块assertion进行检查;断言检查模块assertion checker用于检查DUT(即待验证仲裁器中设计的源代码)的输出逻辑是否正确(即验证参考逻辑输入与待验证仲裁器的实际输出逻辑是否一致);覆盖率收集模块cover property用于收集特定的信号逻辑序列,并用于查看该序列的波形。通过上述功能组件(即上述各模块),构建基于形式验证vc formal的验证模型,极大的缩减了搭建验证环境所需要的时间,并且当仿真或验证出现问题时,只需更改上述功能组件即可快速进行迭代,从而提高仿真的效率。
请参看图1,图1为本申请实施例一些实施例提供的一种基于形式验证对仲裁器进行验证的装置10,该装置10包括:激励约束模块100,被配置为对输入待验证仲裁器的激励信号进行约束,得到合法激励信号(即得到图1的req[0]、req[1],……,req[n],其中,n为合法激励信号的路数且n为大于1的自然数);辅助代码模块400,被配置为基于所述合法激励信号(即图1的req[0]、req[1],……,req[n]),得到参考响应信号(即图1的辅助代码模块400向断言检查模块300输出的信号);断言检查模块300,被配置为比较所述参考响应信号和实际响应信号(实际响应信号即图1的待验证仲裁器200输出的gnt[0]、gnt[1],……,gnt[n]),以完成对所述待验证仲裁器200的逻辑验证,其中,所述实际响应信号(即图1的待验证仲裁器200输出的gnt[0]、gnt[1],……,gnt[n])是将所述合法激励信号(即图1的req[0]、req[1],……,req[n])输入待验证仲裁器200得到的。
需要说明的是,图1的待验证仲裁器200包括:轮询仲裁器、零优先级仲裁器或者QOS仲裁器等,本申请的实施例并不限定待验证的仲裁器的类型。图1的待验证仲裁器200还用于接收时钟信号clk、复位信号reset以及使能信号en,其中,所述时钟信号clk用于为待验证的仲裁器提供时钟,复位信号reset用于将待验证的仲裁器复位到初始状态,使能信号用于定义待验证仲裁器的工作模式,当该信号有效时,则待验证仲裁器正常工作,否则待验证仲裁器不能正常工作。待验证仲裁器根据仲裁器定义,对输入的激励信号进行处理得到对应的响应信号,以轮询仲裁器为例,该仲裁器是在各个req之间进行轮询响应,即各req具有相同的优先级,若几个req同时有效,则轮流响应这几个req。
为了使得辅助代码模块400能够输出参考响应信号,需要根据待验证仲裁器的定义编写辅助代码模块400包括的处理代码,其中,仲裁器的定义是指描述了仲裁器的具体行为,即当输入某组特定激励时响应值也应当是确定的某个值。辅助代码模块400根据这些定义和输入的激励产生相应的参考值(以使断言检查模块300可以通过比较参考值与相同激励加载在待验证仲裁器得到的实际值进行比较,来验证待验证仲裁器的性能)。相应的辅助代码模块400被配置为:接收输入的合法激励信号(即图1的req[0]、req[1],……,req[n]),其中,所述合法激励信号(即图1的req[0]、req[1],……,req[n])包括多路合法信号(例如,图1的n路信号);根据所述处理代码得到与所述多路合法信号中各路合法信号对应的期望输出信号,得到所述参考响应信号,其中,所述参考响应信号包括多路所述期望输出信号(多路期望输出信号同一时刻最多只有一路是有效响应,其他路为无效响应值);将所述参考响应信号(包括n路期望输出逻辑信号,图1未示出)输入所述断言检查模块300。
为了使得断言检查模块300具有比较待验证仲裁器的输出逻辑是否与包含期望输出信号(或称为期望输出逻辑)的参考响应信号是否一致,需要为断言检查模块300预先编写断言以使断言检查模块300能够检查所述待验证仲裁器的输出逻辑与辅助代码模块400输出的期望输出逻辑是否一致。断言是一种语法,通过这种语法可以检查某个时刻的时序逻辑是否正确,即在每个时钟上升沿,将待验证仲裁器的输出逻辑信号(或称为实际响应值)与辅助代码模块的参考逻辑信号(或称为参考响应信号)进行比较,若一致则通过;不一致则报错。例如,在本申请的一些实施例中,断言检查模块300被配置为:接收所述实际响应信号(即图1的待验证仲裁器200输出的gnt[0]、gnt[1],……,gnt[n]),其中,所述合法激励信号包括多路合法信号,所述实际响应信号包括由所述待验证仲裁器200输出的多路与所述各路合法信号对应的输出逻辑信号;接收由辅助代码模块400输出的多路期望输出信号;将所述多路期望输出信号中的各路期望输出信号与相应路的所述输出逻辑信号进行比较;确认所述多路期望输出信号与所述多路输出逻辑信号相同,则验证通过。
为了确认验证模型是否覆盖了所有的合法激励,在本申请的一些实施例中,所述装置10还包括:覆盖率收集模块500,该覆盖率收集模块500被配置为收集设定的时序的逻辑是否被覆盖。需要说明的是,覆盖率收集模块500的输入信号为图1的合法激励信号req[0]、req[1],……,req[n]。例如,覆盖率收集模块500采用了使用了断言的cover property语法,工具会显示该cover property是否被覆盖到。
也就是说,本申请的实施例基于形式验证vc formal实现验证模型,能够快速搭建针对仲裁器arbiter的验证环境并提高验证效率。同时,对于类似的小型且与时序强相关得模块均可实现快速验证,比如fifo模块。本申请的一些实施例包括激励约束模块100用于约束待验证仲裁器的激励信号,激励约束模块100的功能包括使所有的输入激励为合法激励。例如,在激励约束模块100中编写很多特性property(即仲裁器定义中要求的合法激励特性,比如某一路req有效之后,需要一直保持有效值直到该路对应的响应信号有效,得到响应该路req之后可以变为无效值,也可以继续保持有效值),然后通过假设assume语法使这些特性property约束激励信号从而得到合法激励信号,再将合法激励信号输送给待验证仲裁器。辅助代码模块400为辅助逻辑,该模块的功能包括用于模拟已经验证通过的仲裁器对合法激励信号输出的参考逻辑,再将参考逻辑输入。例如,辅助代码模块根据待验证仲裁器的定义(前面已解释),对输入的多路激励信号进行相应处理,计算得到当前激励下期望的响应信号值;断言检查模块assertion checker的功能包括用于检查待验证仲裁器对合法激励的输出逻辑是否正确(例如,接收待验证仲裁器的响应信号和辅助代码模块的期望响应信号,将两者比较),该模块包含很多断言assertion语法(例如,检查各路响应信号与期望响应信号在每个时钟周期是否一致,若不一致则报错),若时序逻辑信号不满足预期,则会报出相应的错误信息。覆盖率收集模块cover property的功能包括用于收集特定的信号逻辑序列,并用于查看该序列的波形,以检查某些特定的时序逻辑是否出现过,也就是说可以在该模块中编写特定的激励信号时序逻辑,vc formal工具可显示仿真结束后该逻辑是否出现过,从而实现收集覆盖率的目的。在形式验证仿真工具vc formal中实现上述各功能模块对应的组件后即可完成验证环境的搭建,极大的缩减了搭建验证环境所需要的时间,并且当仿真出现问题时,只需更改上述功能模块对应组件即可快速进行迭代,从而提高仿真的效率。
下面分别以轮询仲裁器、零优先级仲裁器和Qos仲裁器作为待验证的仲裁器示例性阐述基于形式验证对仲裁器验证的装置的结构。
图1的待验证仲裁器200至少用于提供待验证的仲裁器的仲裁逻辑,本申请的一些实施例的待验证仲裁器包含:轮询仲裁器round robin,Qos(服务质量)仲裁器以及零优先级仲裁器zero priority三种。每种待验证仲裁器arbiter的具体描述参数和描述参见表1。针对这三种待验证的仲裁器分别搭建图1所示的验证环境(如图2、图3以及图4),再相应的配置好形式验证工具vc formal,则可以分别对这三种仲裁器arbiter进行仿真。在仿真时间上,一般在分钟级别即可完成对这三种仲裁器arbiter的完备验证,而传统验证方法至少需要小时级别以上才能进行较为全面的验证,从而极大的提高了验证效率。
如图1所示,验证环境包括激励约束模块assmuptions,辅助代码模块helpercode,覆盖率收集模块cover property以及断言检查模块assertion checker。其中,激励约束模块assumptions是对待验证仲裁器arbiter的输入信号进行约束,如果不添加该激励约束模块,则***默认遍历所有可能的激励;由于断言assertion语法较难检查复杂的逻辑,因此需要辅助代码模块helper code来对复杂逻辑进行处理,生成断言检查模块300能够检查的较为简单的逻辑;覆盖率收集模块cover propery用于收集某些特定的逻辑序列,并用于查看波形确认该逻辑序列是否真正出现过;断言检查模块300对待验证仲裁器的输出逻辑进行检查,比如检查轮询仲裁器round robin arbiter的输出结果是否是在几个输入合法激励req之间进行循环,而不存在某个合法激励req具有更高优先级的情况,一般检查的为辅助代码模块helper code处理过的逻辑,从而简化了断言检查模块assertionchecker的复杂度。
表1待验证仲裁器描述参数及含义
图2所示为本申请的一些实施例提供的基于形式验证对轮询仲裁器验证的装置的具体实现。图2的激励约束模块100产生合法得激励信号req,并将合法激励信号提供给待验证轮询仲裁器,其中,待验证轮询仲裁器的输出的实际响应信号gnt信号为对应各路合法激励信号req的响应信号。之后,再将各路实际响应信号gnt输入到断言检查模块,同时辅助代码模块helper code也会根据合法响应信号req相应得计算出参考响应信号(即得到与待验证仲裁器输出的各路gnt信号对应的期望值),将参考响应信号输入到断言检查模块300,然后断言检查模块300对gnt信号和其参考值进行逻辑检查(例如,采用断言语法进行检查,即在每个时钟检查两者是否一致),如果有错则会报告错误。此外,合法激励信号req输入到覆盖率收集模块500,该覆盖率收集模块500可以设定特定得逻辑序列以查看各合法激励序列是否均被覆盖。
图3所示为本申请的一些实施例提供的基于形式验证对待验证零优先权仲裁器验证的装置的具体实现。图3的***与图2***的实现类似,差异在于零优先权仲裁器220的合法激励req与相应gnt之间得逻辑关系与轮询仲裁器210不同,图3的合法激励req与相应gnt之间得逻辑关系满足零优先级仲裁器的逻辑,因此与图2相比图3的装置需根据不同仲裁器的定义进行修改,即对同样的激励信号来说,不同仲裁器的响应信号也是不同的,更改响应信号计算方式。
图4所示为本申请的一些实施例提供的基于形式验证对待验证Qos仲裁器230验证的装置的具体实现。图4***与图2***的实现类似,差异在于图4的Qos仲裁器的合法激励req与相应gnt之间得逻辑关系与轮询仲裁器210不同,图4的合法激励req与相应gnt之间得逻辑关系满足Qos仲裁器的逻辑,因此图4与图2相比只需根据不同仲裁器的定义进行修改,即对同样的激励信号来说,不同仲裁器的响应信号也是不同的,更改响应信号计算方式。另外,bw_ratio信号用于设定req[0]与其他req得响应带宽,该信号输入到helper code用于产生gnt信号对应的参考值,再将该参考值输入到assertion checker进行检查。
下面结合图5示例性阐述采用本申请实施例的基于形式验证对仲裁器验证的装置进行验证的方法。
如图5所示,本申请的一些实施例提供一种基于形式验证对仲裁器验证的方法,所述方法包括:S101,约束输入待验证仲裁器的激励信号,得到合法激励信号;S102,将所述合法激励信号输入待验证仲裁器,得到与所述合法激励信号对应的实际响应信号;S103,将所述合法激励信号输入辅助代码模块,得到与所述合法激励信号对应的参考响应信号;S104,比较所述实际响应信号和所述参考响应信号,以完成对所述待验证仲裁器的验证。其中,合法激励信号是激励信号的子集,仅包括合法的激励,剔除了不合法的激励。例如,某一路激励信号req变为有效值后没有得到对应的有效响应信号,则该激励信号req就变为了无效值,该激励就是非法的,则合法激励信号就不包括这种激励。需要说明的是,约束输入待验证仲裁器的激励信号,具体包括:当某一路合法激励信号req有效之后,需要一直保持有效值直到该路对应的响应信号有效,得到响应之后可以变为无效值,也可以继续保持有效值。例如,通过断言对应的相应语法实现约束。
在本申请的一些实施例中,所述约束输入待验证仲裁器的激励信号,得到合法激励信号之前,所述方法还包括:编写激励约束以控制所述激励信号转化为所述合法约束。
在本申请的一些实施例中,所述比较所述实际响应信号和所述参考响应信号,以完成对所述待验证仲裁器的验证之前,所述方法还包括:编写断言以检查所述待验证仲裁器的输出逻辑。
在本申请的一些实施例中,所述方法还包括:修改所述激励约束、修改所述断言。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的方法的具体工作过程,可以参考前述装置中的对应过程,在此不再过多赘述。
下面结合图6示例性阐述搭建验证模型并采用搭建的模型对待验证仲裁器进行验证的流程。
如图6所示,为了执行验证方法,本申请一些实施例的提供的方法包括:S201,准备寄存器转换级电路RTL文件,例如,RTL文件为设计人员根据仲裁器定义编写的verilog源代码;S202,采用tcl脚本配置形式验证环境(即配置vc formal),其中,Tcl脚本用于配置vcformal,基本为vc formal工具要求的固定格式。具体配置包括配置待测仲裁器的时钟,复位,指定vc formal工作模式,指定仲裁器的源代码rtl文件,以及vc formal的仿真启动命令;S203,编写激励约束以控制所有激励合法,即为激励约束模块编写特性;S204,编写断言assertion以检查仲裁器arbiter的输出逻辑,即编写断言检查模块中的断言,以使其能够检查待验证仲裁器输出的逻辑是否准确;S205,实例化RTL,也就是说,实例化RTL,并将激励约束模块和断言检查模块绑定到RTL实例上,即完成验证环境得搭建;S206,启动形式验证formal仿真,并根据仿真结果进行调试从而更改相应的功能模块对应的组件即可。S208,判断仿真是否失败,如果失败则Vc formal工具会报出错误,如果仿真成功,则执行S209仿真结束,否则执行S207,修改激励约束、修改断言或者修改RTL。
如图7所示,由断言检查模块执行的验证过程包括:S301,接收由待验证仲裁器输出的gnt信号;S302,接收由辅助代码模块输出的各gnt的期望信号;S303,比较期望信号和gnt信号;S304,判断期望信号和相应的gnt信号的结果是否相同,如果相同则执行S306仿真结束,如果结果不同则执行S305报告错误。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (11)
1.一种基于形式验证对仲裁器进行验证的装置,其特征在于,所述装置包括:
激励约束模块,被配置为对输入待验证仲裁器的激励信号进行约束,得到合法激励信号;
辅助代码模块,被配置为基于所述合法激励信号,得到参考响应信号;
断言检查模块,被配置为比较所述参考响应信号和实际响应信号,以完成对所述待验证仲裁器的逻辑验证,其中,所述实际响应信号是将所述合法激励信号输入所述待验证仲裁器得到的。
2.如权利要求1所述的装置,其特征在于,所述待验证仲裁器包括:轮询仲裁器、零优先级仲裁器和Qos仲裁器。
3.如权利要求1所述的装置,其特征在于,所述辅助代码模块是根据所述待验证仲裁器的定义编写处理代码得到的。
4.如权利要求3所述的装置,其特征在于,所述辅助代码模块被配置为:
接收输入的合法激励信号,其中,所述合法激励信号包括多路合法信号;
根据所述处理代码得到与所述多路合法信号中各路合法信号对应的期望输出信号,得到所述参考响应信号,其中,所述参考响应信号包括多路所述期望输出信号;
将所述参考响应信号输入所述断言检查模块。
5.如权利要求4所述的装置,其特征在于,所述断言检查模块是通过编写断言以检查所述待验证仲裁器的输出逻辑。
6.如权利要求5所述的装置,其特征在于,所述断言检查模块被配置为:
接收所述实际响应信号,其中,所述合法激励信号包括多路合法信号,所述实际响应信号包括由所述待验证仲裁器输出的多路与所述多路合法信号对应的输出逻辑信号;
接收多路所述期望输出信号;
将所述多路期望输出信号中的各路信号与相应路的所述输出逻辑信号进行比较;
确认所述多路期望输出信号与所述多路输出逻辑信号相同,则验证通过。
7.如权利要求1所述的装置,其特征在于,所述装置还包括:覆盖率收集模块,被配置为收集设定的时序的逻辑是否被覆盖。
8.一种基于形式验证对仲裁器验证的方法,其特征在于,所述方法包括:
约束输入待验证仲裁器的激励信号,得到合法激励信号;
将所述合法激励信号输入待验证仲裁器,得到与所述合法激励信号对应的实际响应信号;
将所述合法激励信号输入辅助代码模块,得到与所述合法激励信号对应的参考响应信号;
比较所述实际响应信号和所述参考响应信号,以完成对所述待验证仲裁器的验证。
9.如权利要求8所述的方法,其特征在于,所述约束输入待验证仲裁器的激励信号,得到合法激励信号之前,所述方法还包括:编写激励约束以将所述激励信号转化为所述合法激励信号。
10.如权利要求8所述的方法,其特征在于,所述比较所述实际响应信号和所述参考响应信号,以完成对所述待验证仲裁器的验证之前,所述方法还包括:编写断言以检查所述待验证仲裁器的输出逻辑。
11.如权利要求8所述的方法,其特征在于,所述方法还包括:当确认验证不通过时,修改激励约束或者修改所述待验证仲裁器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011514078.7A CN112632882A (zh) | 2020-12-18 | 2020-12-18 | 一种基于形式验证对仲裁器验证的装置以及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011514078.7A CN112632882A (zh) | 2020-12-18 | 2020-12-18 | 一种基于形式验证对仲裁器验证的装置以及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632882A true CN112632882A (zh) | 2021-04-09 |
Family
ID=75317783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011514078.7A Pending CN112632882A (zh) | 2020-12-18 | 2020-12-18 | 一种基于形式验证对仲裁器验证的装置以及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632882A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115062570A (zh) * | 2022-07-25 | 2022-09-16 | 阿里巴巴(中国)有限公司 | 一种形式验证方法、装置、设备及计算机存储介质 |
CN117435483A (zh) * | 2023-10-23 | 2024-01-23 | 合芯科技有限公司 | 基于Formal工具的仿真验证激励生成方法、装置、介质及终端 |
CN118114623A (zh) * | 2024-04-30 | 2024-05-31 | 沐曦集成电路(上海)有限公司 | 一种指令调度仲裁器的验证方法、电子设备及存储介质 |
CN118114623B (zh) * | 2024-04-30 | 2024-08-02 | 沐曦集成电路(上海)有限公司 | 一种指令调度仲裁器的验证方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147831A (zh) * | 2011-04-22 | 2011-08-10 | 青岛海信信芯科技有限公司 | 逻辑验证方法和装置 |
CN104408264A (zh) * | 2014-12-12 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于断言的嵌入式存储控制器验证***及方法 |
CN109857608A (zh) * | 2018-12-27 | 2019-06-07 | 深圳云天励飞技术有限公司 | 微处理器验证方法、装置、电子设备及计算机可读存储介质 |
-
2020
- 2020-12-18 CN CN202011514078.7A patent/CN112632882A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147831A (zh) * | 2011-04-22 | 2011-08-10 | 青岛海信信芯科技有限公司 | 逻辑验证方法和装置 |
CN104408264A (zh) * | 2014-12-12 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于断言的嵌入式存储控制器验证***及方法 |
CN109857608A (zh) * | 2018-12-27 | 2019-06-07 | 深圳云天励飞技术有限公司 | 微处理器验证方法、装置、电子设备及计算机可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115062570A (zh) * | 2022-07-25 | 2022-09-16 | 阿里巴巴(中国)有限公司 | 一种形式验证方法、装置、设备及计算机存储介质 |
CN117435483A (zh) * | 2023-10-23 | 2024-01-23 | 合芯科技有限公司 | 基于Formal工具的仿真验证激励生成方法、装置、介质及终端 |
CN118114623A (zh) * | 2024-04-30 | 2024-05-31 | 沐曦集成电路(上海)有限公司 | 一种指令调度仲裁器的验证方法、电子设备及存储介质 |
CN118114623B (zh) * | 2024-04-30 | 2024-08-02 | 沐曦集成电路(上海)有限公司 | 一种指令调度仲裁器的验证方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6083269A (en) | Digital integrated circuit design system and methodology with hardware | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
US7587690B1 (en) | Method and system for global coverage analysis | |
US7421668B1 (en) | Meaningful visualization of properties independent of a circuit design | |
US7437701B1 (en) | Simulation of a programming language specification of a circuit design | |
CN111936998B (zh) | 数据变换流水线的硬件设计的验证 | |
US20120253754A1 (en) | Method and apparatus for identifying inconsistent constraints | |
EP3557455A1 (en) | Verifying hardware design for a component that implements a permutation respecting function | |
CN112632882A (zh) | 一种基于形式验证对仲裁器验证的装置以及方法 | |
US20120198399A1 (en) | System, method and computer program for determining fixed value, fixed time, and stimulus hardware diagnosis | |
Chupilko et al. | A TLM-based approach to functional verification of hardware components at different abstraction levels | |
US8321825B2 (en) | Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification | |
Bombieri et al. | Incremental ABV for functional validation of TL-to-RTL design refinement | |
CN117094269B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
CN111624475B (zh) | 大规模集成电路的测试方法及*** | |
US20230297747A1 (en) | Verification of hardware design for data transformation component | |
US9104829B2 (en) | Method of validating timing issues in gate-level simulation | |
US20160063162A1 (en) | System and method using pass/fail test results to prioritize electronic design verification review | |
Bombieri et al. | Hybrid, incremental assertion-based verification for TLM design flows | |
US20050125757A1 (en) | Derivation of circuit block constraints | |
US7735035B1 (en) | Method and system for creating a boolean model of multi-path and multi-strength signals for verification | |
US7047173B1 (en) | Analog signal verification using digital signatures | |
US7277840B2 (en) | Method for detecting bus contention from RTL description | |
CN117725866B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
US20240176939A1 (en) | Verifying that a hardware design for a component is permutation respecting |
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 |