一种基于静态分析的RTL设计错误检测方法和系统技术方案

技术编号:5439446 阅读:277 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于静态分析的RTL设计错误检测方法和系统。所述方法包括下列步骤:接收一个RTL设计源代码和相应的设计规范文件,根据待检测错误的类型并结合所述设计规范文件,构建对待测错误的检测标准并存储;针对待检测错误的类型,分模块遍历整个所述RTL设计源代码,通过词法分析、语法分析和静态语义分析提取待测错误的特征信息,对特征信息进行存储;判断所述待测错误的检测标准与特征信息是否匹配,若是,则结束待测设计的错误检测;否则,发送错误报告。

【技术实现步骤摘要】

本专利技术涉及大规模集成电路设计验证领域,特别是涉及一种基于静态分析的寄存 器传输级(Register Transfer Level, RTL)设计错误检测方法和系统。
技术介绍
随着集成电路(IC)工艺的发展,芯片集成度进一步提高,电路规模变得越来越 大,复杂度也越来越高,为保证设计实现(implementation)与设计规范(specification) 的一致性,设计验证(design verification)成为IC设计中面临的最大挑战。在实际集成 电路设计流程里,功能验证(functional verification)已经成为其中的关键因素,也是时 间耗费最大的环节,并且其处理规模和效率的增长落后于设计规模的增长。因此如何自动 化实现重复繁琐的验证过程,进一步提高功能验证的效率,使其能够快速准确的对目标设 计进行充分的验证,是一个值得研究的问题。目前,集成电路的功能验证主要分为形式化验证和模拟验证两大类方法。形式 化验证通过严格的数学推理来证明系统的正确性,主要包括等价性检验(equivalence checking)、定理证明(theorem proving)和模型检验(model checking)三类方法。其中, 等价性检验主要用于检查不同层次的设计间的功能等价性,已被业界广泛应用。定理证明 方法主要通过数学定理推演来证明特定的设计属性,但该方法需要验证人员具有深厚的数 学功底来引导定理证明的过程,一般只用于验证设计阶段的程序规范而非实际代码。而模 型检验方法将设计抽象为一个有限状态机模型,用状态迁移系统描述设计的行为,用时序 逻辑描述目标属性,通过遍历系统所有状态空间,完成对系统的自动验证。模型检验技术具 有规范化、易于自动化等优点,但其状态空间大小会随着设计中寄存器数目呈指数级增长, 造成“状态爆炸”,限制了其在大规模设计中的应用。模拟验证方法因其具有良好的可扩展性,成为大规模设计的主要验证方法。但模 拟验证方法是一种不完全的验证方法,通过给设计输入测试向量进行模拟,并且将模拟的 结果和一个功能正确的黄金模型(golden model)进行对比,以验证设计在不同的测试向量 下的功能正确性。针对特定功能的验证需要工程师手工写出特定的测试向量,这将耗费大 量的专家时间,并且测试向量难以在不同设计间重用。另外模拟验证对于设计本身存在的 一些深层次逻辑结构方面的错误或者一些比较特殊的错误的检测能力较差,如在动态运行 时状态机的不可达路径中潜在的死锁,管脚配置错误。由于集成电路设计复杂度的增长,功能验证面临的难题主要包括以下两点1)待测设计的功能逻辑的复杂度急剧增加,凭借工程师的经验或利用传统的验证 方法已经很难发现所有的设计错误;2)待测设计包含的寄存器数目的急剧增加,导致动态的模拟验证的速度越来越 慢,并且使得形式化的验证方法更加难以处理。为了缓解以上两个问题,集成电路功能验证方法应该尽量减少需要的人工参与, 并且尽量避免动态的模拟待测设计的开销。利用静态分析方法对设计实现进行分析,不直接模拟待测设计而完成特定设计错误的静态检测,从而可以提高功能验证的效率。静态错误检测技术起源于软件领域。在软件领域中,静态错误检测关注程序的代 码,从程序代码的内部结构和特性上检测漏洞。早期的静态检测主要指静态分析,随着形式 化验证方法的引入,静态错误检测被扩展为静态分析和程序验证。静态错误检测的目标不 是证明程序完全正确,而是在程序运行前尽可能多的发现其中潜在的错误,方便测试人员 较早的发现并消除程序代码的缺陷。现有技术中用于集成电路设计验证的静态错误检测方法主要是形式化验证,该方 法主要通过严格的数学推理证明系统的正确性,但通常需要专家参与,并且其状态空间大 小会随着设计中寄存器数目呈指数增长,存在“状态爆炸”问题,处理规模较小,限制了其在 大规模设计验证中的应用。
技术实现思路
本专利技术的目的在于提供一种基于静态分析的RTL设计错误检测方法和系统。其能 够根据RTL设计代码自动提取待检测错误的特征信息并给予验证,其既能够有效的检测设 计中的常见错误,又能够节省时间,提高设计验证的效率,缩短设计验证周期。为实现本专利技术的目的而提供的一种基于静态分析的RTL设计错误检测方法,包括 下列步骤步骤100.接收一个RTL设计源代码和相应的设计规范文件,根据待检测错误的类 型并结合所述设计规范文件,构建对待测错误的检测标准并存储;步骤200.针对待检测错误的类型,分模块遍历整个所述RTL设计源代码,通过词 法分析、语法分析和静态语义分析提取待测错误的特征信息,对特征信息进行存储;步骤300.判断所述待测错误的检测标准与特征信息是否匹配,若是,则结束待测 设计的错误检测;否则,发送错误报告。所述步骤100,包括下列步骤步骤110.根据开发方提供的所述设计规范文件确定设计中容易出现的错误类 型,并根据待测错误类型的代码特征提取其检测标准,把待测错误类型的检测标准描述为 一定格式的配置文件;步骤120.根据待检测错误的类型,遍历所述配置文件提取并存储待测错误类型 的检测标准。所述步骤200,包括下列步骤步骤210.分析待测错误的错误类型的代码特征,确定需要提取的特征信息;步骤220.根据所述需要提取的特征信息,遍历RTL设计源代码,对所述RTL设计 源代码进行词法分析、语法分析和静态语义分析,以得到设计实现的特征信息,将所述特征 信息存储于特定数据结构中。所述步骤220,包括下列步骤步骤221.将所述RTL设计源代码以字符流的形式读入,通过从左至右逐个扫描, 产生包含关键字、标识符、常数、运算符或者界符的单词序列;步骤222.根据所述单词序列和程序语言的语法规则识别出所述单词序列的语法 结构,确定当前语句是否与待检测错误的特征信息相关,从而记录与待检测错误的特征信息相关的结构信息;步骤223.根据所述结构信息进行静态语义处理,确定设计实现的特征信息。所述步骤300,包括下列步骤步骤310.遍历所述特征信息,判断特征信息和检测标准是否匹配,若是,则结束 待测设计的错误检测;否则,执行步骤320 ;步骤320.将不匹配的特征信息存储于特定的数据结构中;步骤330.判断是否所有特征信息遍历完毕,若是,则将不匹配的特征信息输出到 指定文件中生成错误报告;否则,返回步骤310。为实现本专利技术的目的还提供一种基于静态分析的RTL设计错误检测系统,所述系 统,包括检测标准构建模块,用于接收一个RTL设计源代码和相应的设计规范文件,根据 待检测错误的类型并结合所述设计规范文件,构建对待测错误的检测标准并存储;特征信息提取模块,用于针对待检测错误的类型,分模块遍历整个所述RTL设计 源代码,通过词法分析、语法分析和静态语义分析提取待测错误的特征信息,对特征信息进 行存储;错误检测模块,用于判断所述待测错误的检测标准与特征信息是否匹配,若是,则 结束待测设计的错误检测;否则,发送错误报告。所述检测标准构建模块,包括配置文件生成模块,用于根据开发方提供的所述设计规范文件确定设计中容易出 现的错误类型,并根据待测错误类型的代码特征提取其检测标准,把待测错误类型的监测 标准描述为一定格式的配置文件;检索模块,用于根据待检测错误的类型,本文档来自技高网
...

【技术保护点】
一种基于静态分析的RTL设计错误检测方法,其特征在于,所述方法,包括下列步骤:步骤100.接收一个RTL设计源代码和相应的设计规范文件,根据待检测错误的类型并结合所述设计规范文件,构建对待测错误的检测标准并存储;步骤200.针对待检测错误的类型,分模块遍历整个所述RTL设计源代码,通过词法分析、语法分析和静态语义分析提取待测错误的特征信息,对特征信息进行存储;步骤300.判断所述待测错误的检测标准与特征信息是否匹配,若是,则结束待测设计的错误检测;否则,发送错误报告。

【技术特征摘要】
1.一种基于静态分析的RTL设计错误检测方法,其特征在于,所述方法,包括下列步骤步骤100.接收一个RTL设计源代码和相应的设计规范文件,根据待检测错误的类型并 结合所述设计规范文件,构建对待测错误的检测标准并存储;步骤200.针对待检测错误的类型,分模块遍历整个所述RTL设计源代码,通过词法分 析、语法分析和静态语义分析提取待测错误的特征信息,对特征信息进行存储;步骤300.判断所述待测错误的检测标准与特征信息是否匹配,若是,则结束待测设计 的错误检测;否则,发送错误报告。2.根据权利要求1所述的基于静态分析的RTL设计错误检测方法,其特征在于,所述步 骤100,包括下列步骤步骤110.根据开发方提供的所述设计规范文件确定设计中容易出现的错误类型,并 根据待测错误类型的代码特征提取其检测标准,把待测错误类型的检测标准描述为一定格 式的配置文件;步骤120.根据待检测错误的类型,遍历所述配置文件提取并存储待测错误类型的检 测标准。3.根据权利要求1所述的基于静态分析的RTL设计错误检测方法,其特征在于,所述步 骤200,包括下列步骤步骤210.分析待测错误的错误类型的代码特征,确定需要提取的特征信息; 步骤220.根据所述需要提取的特征信息,遍历RTL设计源代码,对所述RTL设计源代 码进行词法分析、语法分析和静态语义分析,以得到设计实现的特征信息,将所述特征信息 存储于特定数据结构中。4.根据权利要求3所述的基于静态分析的RTL设计错误检测方法,其特征在于,所述步 骤220,包括下列步骤步骤221.将所述RTL设计源代码以字符流的形式读入,通过从左至右逐个扫描,产生 包含关键字、标识符、常数、运算符或者界符的单词序列;步骤222.根据所述单词序列和程序语言的语法规则识别出所述单词序列的语法结 构,确定当前语句是否与待检测错误的特征信息相关,从而记录与待检测错误的特征信息 相关的结构信息;步骤223.根据所述结构信息进行静态语义处理,确定设计实现的特征信息。5.根据权利要求1所述的基于静态分析的RTL设计错误检测方法,其特征在于,所述步 骤300,包括下列步骤步骤310.遍历所述特征信息,判断特征信息和检测标准是否匹配,若是,则结束待测 设计的错误检测;否则,执行步骤320 ;步骤320.将不匹配的特征信息存储于特定的数据结构中;步骤330.判断是否所有特征信息遍历完毕,若是,则将不匹配的特征信息输出到指定 文件中生成错误报告;否则,返回步骤310。6.一种基于静...

【专利技术属性】
技术研发人员:马丽丽吕涛李华伟李晓维段永颢张金巍
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

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

1