设备规范与设备行为的一致性检测系统的制作方法

文档序号:6439745阅读:350来源:国知局
专利名称:设备规范与设备行为的一致性检测系统的制作方法
技术领域
本发明涉及设备规范及设备行为的可靠性技术领域,尤其涉及一种设备规范与设备行为的一致性检测系统。
背景技术
可靠性是操作系统的一个重要目标。Windows XP操作系统85%的失效是由设备驱动造成的。Linux操作系统设备驱动失效的频率是其它部分的3-7倍以上。驱动编写人员根据设备规范进行设备驱动的编写,因此,设备规范和硬件设备行为的一致性对于设备驱动的可靠性具有重要意义。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是提供一种设备规范与设备行为的一致性检测系统, 其能够检测设备规范与设备行为的一致性,从而可以提高设备规范和设备驱动的可靠性。( 二 )技术方案为解决上述问题,本发明提供了一种设备规范与设备行为的一致性检测系统,包括设备规范转化模块,用于将Termite语言描述的设备规范转化为模型检测工具能够识别的UCLID语言描述的设备规范;设备行为转化模块,用于将Verilog语言描述的硬件设备行为转化为UCLID语言描述的硬件设备行为;一致性检测模块,用于将所述UCLID语言描述的设备规范和硬件设备行为输入模型检测工具得出检测结果。优选地,所述设备规范转化模块包括变量转化模块,用于将使用的Termite语言的变量转化为UCLID语言的变量;常数转化模块,用于将使用的Termite语言的常数转化为UCLID语言的常数;操作命令转化模块,用于将使用的Termite语言的操作命令转化为UCLID语言的 FUNC和PRED操作命令函数。优选地,所述变量转化模块包括枚举类型转化模块,用于将Termite语言的枚举类型转化为UCLID语言的枚举类型;指针类型转化模块,用于将Termite语言的指针类型转化为UCLID语言的TERM类型的变量和参数为1的FUNC函数。优选地,所述常数转化模块包括大常数转化模块,用于将Termite语言的大常数转化为UCLID语言的CONST TERM ;
小常数转化模块,用于使用succ函数和pred函数对Termite语言的小常数进行处理。优选地,所述操作命令转化模块包括TRUTH变量转化模块,用于使用布尔演算符操作将Termite语言的操作命令转化为UCLID语言的TRUTH变量;TERM变量转化模块,用于将Termite语言的操作命令转化为UCLID语言的TERM变量。如果进行比较运算,则转换成PRED函数,如果不进行比较运算,则转换成FUNC函数。优选地,所述一致性检测模块包括变量添加模块,用于在模型检测工具中控制模块的变量定义部分添加两个变量,分别用于存储由Termite代码转化的UCLID代码执行预定状态时所有寄存器的值,以及由Verilog代码转化的UCLID代码转移到上述状态时所有寄存器的值。优选地,所述一致性检测模块包括匹配模块,用于判断两变量存储的所有寄存器的值是否完全相等。(三)有益效果本发明通过将设备规范语言和设备行为语言均转化为模型检测工具能够识别的语言,并比较设备执行同一状态情况下,设备规范语言和设备行为语言转化为模型检测工具的UCLID语言时设备所有寄存器变量的值,来检测设备规范与设备行为的一致性,可以提高设备规范和设备驱动的可靠性。


图1为本发明实施方式中所述设备规范与设备行为的一致性检测系统的结构示意图。其中,1 设备规范转化模块,2 设备行为转化模块,3 —致性检测模块,4 变量转化模块,5 常数转化模块,6 操作命令转化模块,7 枚举类型转化模块,8 指针类型转化模块,9 大常数转化模块,10 小常数转化模块,11 =TRUTH变量转化模块,12 :TERM变量转化模块,13 变量添加模块,14 匹配模块。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。本发明所述的设备规范与设备行为的一致性检测系统是基于一种设备规范与设备行为的一致性检测方法提出的,该包括以下步骤首先,将设备规范的Termite语言描述代码转化为模型检测工具能够识别的 UCLID规范语言。转化分为三个部分将使用的Termite语言的变量转化为UCLID语言的变量;转化使用的Termite语言的常数;将使用的Termite语言的操作命令转化为UCLID语言的FUNC和PRED函数。将使用的Termite语言的变量转化为UCLID语言的变量采用如下方法将 Termite语言的枚举类型转化为UCLID语言的枚举类型;将Termite语言的指针类型转化为UCLID语言的一个TERM类型的变量和一个参数为1的FUNC函数,其中,UCLID语言中的变量用于存储Termite语言的指针值,即其指向变量的内存地址,FUNC函数根据上述TERM 类型的变量获得指针指向的变量的值;如果Termite语言整型变量的数据宽度为1,则转化为UCLID语言的TRUTH类型的变量;如果Termite语言整型变量的数据宽度不为1,则转化为UCLID语言的TERM类型的变量;如果在Termite代码中存在一个结构体类型的变量,则在UCLID代码中为该结构体类型变量的每一个数据项创建一个变量。转化使用的Termite语言的常数采用如下方法将Termite语言的大常数转化为 UCLID语言的CONST TERM ;对TERM语言的小常数,使用succ函数和pred函数进行处理。将使用的Termite语言的操作命令转化为UCLID语言的FUNC和PRED函数采用如下方法使用布尔演算符操作转化成UCLID规范语言的TRUTH变量;转化成UCLID规范语言的TERM类型变量时,如果进行比较运算,则转换成PRED函数,如果不进行比较运算,则转换成FUNC函数。MM,MM《Automatic Abstraction and Verification of Verilog Models》it 文所述方法将描述硬件设备的Verilog语言代码转化为UCLID语言的代码。最后,将设备规范、硬件设备行为、一致性目标的UCLID描述语言输入UCLID模型检测工具得出检测结果。在UCLID模型检测代码中控制模块的变量定义部分添加两份设备所有寄存器变量,一份用于存储由Termite代码转化的UCLID代码在执行某状态时所有寄存器的值,另一份用于存储由Verilog代码转化的UCLID代码执行某状态时所有寄存器的值。对待检测代码进行初始化,然后使由Termite代码转化的UCLID代码转移到某状态并存储此时所有寄存器的值,完成后再次进行初始化,使由Verilog代码转化的UCLID代码转移到上述由Termite代码转化的UCLID代码运行的状态,并存储此时所有寄存器的值。 一致性目标就是判断两次存储的所有寄存器的值是否完全相等。如果两份所有寄存器变量的值在各种状态转移条件下都分别相等,则说明设备规范和硬件设备行为是一致的。如图1所示,基于上述方法本发明提出的设备规范与设备行为的一致性检测系统,包括设备规范转化模块1,用于将Termite语言描述的设备规范转化为模型检测工具能够识别的UCLID语言描述的设备规范;设备行为转化模块2,用于将Verilog语言描述的硬件设备行为转化为UCLID语言描述的硬件设备行为;设备行为转化可采用《Automatic Abstraction and Verification of Verilog Models》论文所述方法。一致性检测模块3,用于将所述UCLID语言描述的设备规范和硬件设备行为输入模型检测工具得出检测结果。此处,还需要向模型检测工具输入UCLID语言描述的一致性目标。其中,所述设备规范转化模块1包括变量转化模块4,用于将使用的Termite语言的变量转化为UCLID语言的变量;常数转化模块5,用于将使用的Termite语言的常数转化为UCLID语言的常数;操作命令转化模块6,用于将使用的Termite语言的操作命令转化为UCLID语言的 FUNC和PRED操作命令函数。所述变量转化模块4包括
枚举类型转化模块7,用于将Termite语言的枚举类型转化为UCLID语言的枚举类型;指针类型转化模块8,用于将Termite语言的指针类型转化为UCLID语言的TERM 类型的变量和参数为1的FUNC函数。UCLID语言中的变量用于存储Termite语言的指针的值,即其指向变量的内存地址,FUNC函数根据上述TERM类型的变量获得指针指向变量的值;如果Termite语言整型变量的数据宽度为1,则转化为UCLID语言的TRUTH类型的变量;如果Termite语言整形变量的数据宽度不为1,则转化为UCLID语言的TERM类型的变量;如果在Termite代码中存在一个结构体类型的变量,在UCLID代码中为该结构体类型变量的每一个数据项创建一个变量。所述常数转化模块5包括大常数转化模块9,用于将Termite语言的大常数转化为UCLID语言的CONST TERM ;小常数转化模块10,用于使用succ函数和pred函数对Termite语言的小常数进行处理。所述操作命令转化模块6包括TRUTH变量转化模块11,用于使用布尔演算符操作将Termite语言的操作命令转化为UCLID语言的TRUTH变量;TERM变量转化模块12,用于将1Termite语言的操作命令转化为UCLID语言的TERM 变量。如果进行比较运算,则转换成PRED函数,如果不进行比较运算,则转换成FUNC函数。所述一致性检测模块3包括变量添加模块13,用于在模型检测工具中控制模块的变量定义部分添加两个变量,分别用于存储由Termite代码转化的UCLID代码执行预定状态时所有寄存器的值,以及由Verilog代码转化的UCLID代码转移到上述状态时所有寄存器的值。所述一致性检测模块包括匹配模块14,用于判断两变量存储的所有寄存器的值是否完全相等。通过对设备规范和设备行为进行一致性检测,可以有效提高设备规范和设备驱动的可靠性。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种设备规范与设备行为的一致性检测系统,其特征在于,包括设备规范转化模块(1),用于将Termite语言描述的设备规范转化为模型检测工具能够识别的UCLID语言描述的设备规范;设备行为转化模块O),用于将Verilog语言描述的硬件设备行为转化为UCLID语言描述的硬件设备行为;一致性检测模块(3),用于将所述UCLID语言描述的设备规范和硬件设备行为输入模型检测工具得出检测结果。
2.如权利要求1所述的设备规范与设备行为的一致性检测系统,其特征在于,所述设备规范转化模块(1)包括变量转化模块,用于将使用的Termite语言的变量转化为UCLID语言的变量;常数转化模块(5),用于将使用的Termite语言的常数转化为UCLID语言的常数;操作命令转化模块(6),用于将使用的Termite语言的操作命令转化为UCLID语言的 FUNC和PRED操作命令函数。
3.如权利要求2所述的设备规范与设备行为的一致性检测系统,其特征在于,所述变量转化模块(4)包括枚举类型转化模块(7),用于将Termite语言的枚举类型转化为UCLID语言的枚举类型;指针类型转化模块(8),用于将Termite语言的指针类型转化为UCLID语言的TERM类型的变量和参数为1的FUNC函数。
4.如权利要求2所述的设备规范与设备行为的一致性检测系统,其特征在于,所述常数转化模块( 包括大常数转化模块(9),用于将Termite语言的大常数转化为UCLID语言的CONST TERM;小常数转化模块(10),用于使用succ函数和pred函数对Termite语言的小常数进行处理。
5.如权利要求2所述的设备规范与设备行为的一致性检测系统,其特征在于,所述操作命令转化模块(6)包括TRUTH变量转化模块(11),用于使用布尔演算符操作将Termite语言的操作命令转化为UCLID语言的TRUTH变量;TERM变量转化模块(1 ,用于将Termite语言的操作命令转化为UCLID语言的TERM 变量。
6.如权利要求1所述的设备规范与设备行为的一致性检测系统,其特征在于,所述一致性检测模块C3)包括变量添加模块(13),用于在模型检测工具中控制模块的变量定义部分添加两个变量,分别用于存储由Termite代码转化的UCLID代码执行预定状态时所有寄存器的值,以及由Verilog代码转化的UCLID代码转移到上述状态时所有寄存器的值。
7.如权利要求6所述的设备规范与设备行为的一致性检测系统,其特征在于,所述一致性检测模块C3)包括匹配模块(14),用于判断两变量存储的所有寄存器的值是否完全相等。
全文摘要
本发明公开了一种设备规范与设备行为的一致性检测系统,包括设备规范转化模块,用于将Termite语言描述的设备规范转化为模型检测工具能够识别的UCLID语言描述的设备规范;设备行为转化模块,用于将Verilog语言描述的硬件设备行为转化为UCLID语言描述的硬件设备行为;一致性检测模块,用于将所述UCLID语言描述的设备规范和硬件设备行为输入模型检测工具得出检测结果。本发明通过将设备规范语言和设备行为语言均转化为模型检测工具能够识别的语言,并比较设备执行同一状态情况下,设备规范语言和设备行为语言转化为模型检测工具的UCLID语言时设备所有寄存器变量的值,来检测设备规范与设备行为的一致性,可以提高设备规范和设备驱动的可靠性。
文档编号G06F11/00GK102495766SQ20111039120
公开日2012年6月13日 申请日期2011年11月30日 优先权日2011年11月30日
发明者汤茂杰, 胡事民, 马超 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1