SystemVerilog与功能验证功能验证技术和方法学概要为什么需要IC验证IC设计复杂度巨大,规模已达上亿门级。70%验证,30%设计。验证是IC设计的关键部分。功能验证技术和方法学概要功能验证技术和方法学概要什么是验证验证是确保设计和预定的设计期望一致(吻合)的过程。功能验证技术和方法学概要IC设计不同阶段验证形式1)寄存器传输级(RTL)的功能验证。2)门级的仿真,为了验证综合后网表和期望的功能是否一致。3)形式验证(等价性检查)来确保门级网表和RTL代码的一致性。4)时序验证,为了验证设计能否在特定的频率上运行,通常采用静态验证工具功能验证技术和方法学概要功能验证平台验证平台的主要功能如下:1)产生激励。2)把激励应用到被测设计中。3)检查结果和验证测试是否通过,也就是确保被测设计的输出和期望一致。功能验证技术和方法学概要功能验证技术和方法学概要激励产生形式1)用户直接输入,即直接测试(directtest)。2)种子随机生成,即随机测试(randomtest)。3)用户可控的随机输入,即约束随机测试(constraintrandomtest)功能验证技术和方法学概要激励的驱动激励由验证平台生成并且通过对应的接口发送到被测设计中。验证平台通常称之为BFM(Busfunctionmodel)或者driver模块功能验证技术和方法学概要结果检查1)通过视图(波形)检查。2)通过自动化的后处理比较。运用脚本工具进行比对。3)做一个实时的监控器(monitor)比较。实际项目中我们通常三者结合着去检查比对结果。功能验证技术和方法学概要功能验证流程验证过程可以被分解成三个主要阶段:1)制定验证策略和验证计划;2)创建验证平台,运行和调试;3)覆盖率分析和回归测试。功能验证技术和方法学概要制定验证策略和验证计划功能验证技术和方法学概要创建验证平台,运行和调试;功能验证技术和方法学概要覆盖率分析和回归测试功能验证技术和方法学概要验证技术和验证方法学三种常用验证手段:白盒、黑盒和灰盒验证功能验证技术和方法学概要黒盒验证功能验证技术和方法学概要白盒验证功能验证技术和方法学概要灰盒验证功能验证技术和方法学概要验证存在的挑战1)完备性;2)可重用性;3)可靠性(减少项目中的手工操作);4)效率(重用和提高抽象层次);5)性能。功能验证技术和方法学概要验证方法学验证需要解决2个问题:1)DoesDUTwork?2)Canwedone?功能验证技术和方法学概要设计验证交互流程功能验证技术和方法学概要验证方法学目前验证只要方法有2中:1)断言验证;2)覆盖率驱动验证;功能验证技术和方法学概要功能验证技术和方法学概要断言验证一般来说,断言是一个必须验证的,关于设计期望行为(也就是属性:property)的声明或者描述。断言验证(AssertionBasedVerification,ABV)主要的目的是保证设计和设计期望之间是一致的.主要保证RTL时序与设计一致。功能验证技术和方法学概要覆盖率驱动验证覆盖率驱动验证(CoverageDrivenVerification,CDV)是一个基于仿真的验证方法,专门被开发用来解决当前功能验证项目面临的效率和完备性挑战.功能验证技术和方法学概要覆盖率驱动验证覆盖率驱动验证方法学涉及以下技术:事务级验证、约束随机激励产生、自动化结果比较、覆盖率统计分析和直接测试。功能验证技术和方法学概要事务级验证事务级验证允许在一个更高的抽象层次来创建验证场景。信号级VS事物级:低效VS高效,简单VS复杂。功能验证技术和方法学概要事务级验证遵循原则1)数据和数据流在较高的抽象层次定义(例如,帧、包);2)验证场景在较高的抽象层次描述(例如,写存储器、执行指令);3)事务处理器把这些抽象层次的数据和活动转换成低层次的操作和信号,以便应用到被测设计中。功能验证技术和方法学概要约束随机激励生成(ConstrainedRandomGeneration)随机激励生成指的是利用随机生成技术来产生一个事务交易中所有的数据内容,同样产生一系列事务交易来形成一个特定的验证场景。随机生成提高了验证效率和验证的完备性。功能验证技术和方法学概要约束随机激励生成随机验证环境是不可以完全随机的,生成的数据和参数必须保持在一个合法的数值集合中。功能验证技术和方法学概要约束随机VS直接测试功能验证技术和方法学概要自动化比较自动化结果比较可以采用监控器(monitor)和积分板(scoreboard)等技术。监控器是常常用来做协议检查和搜集设计数据流,然而积分板是用来做端到端的行为和数据比较的。功能验证技术和方法学概要覆盖率统计和分析1)哪些场景在验证计划列出的,在一个仿真生成运行。2)哪些没有在验证计划中列出的特定场景被生成了。3)每次仿真运行对整个验证过程的贡献。4)为了生成遗漏的场景,约束修改是必须的。