当前位置: 首页 > 专利查询>清华大学专利>正文

设备规范与设备行为的一致性检测系统技术方案

技术编号:7444056 阅读:297 留言:0更新日期:2012-06-17 00:00
本发明专利技术公开了一种设备规范与设备行为的一致性检测系统,包括:设备规范转化模块,用于将Termite语言描述的设备规范转化为模型检测工具能够识别的UCLID语言描述的设备规范;设备行为转化模块,用于将Verilog语言描述的硬件设备行为转化为UCLID语言描述的硬件设备行为;一致性检测模块,用于将所述UCLID语言描述的设备规范和硬件设备行为输入模型检测工具得出检测结果。本发明专利技术通过将设备规范语言和设备行为语言均转化为模型检测工具能够识别的语言,并比较设备执行同一状态情况下,设备规范语言和设备行为语言转化为模型检测工具的UCLID语言时设备所有寄存器变量的值,来检测设备规范与设备行为的一致性,可以提高设备规范和设备驱动的可靠性。

【技术实现步骤摘要】

本专利技术涉及设备规范及设备行为的可靠性
,尤其涉及一种设备规范与设备行为的一致性检测系统
技术介绍
可靠性是操作系统的一个重要目标。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语言描述的硬件设备行为;设备行为转化可采用《本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:胡事民马超汤茂杰
申请(专利权)人:清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术