验证的方法

一、概述

  • 在开展验证时有一整套的工具箱,根据设计的特点选用不同的验证方法,最终取得满意的效果。
  • 实际的验证工作中,需要通过多种语言、方法、工具实现验证,比如仿真验证会协同形式验证一同来完善功能覆盖率,也有可能通过语言和脚本之间的整合来最终完成一项验证流程。
  • 目前的阶段,已经无法依赖单一的工具、语言或者方法来达到验证的完备性。

二、主要方法分类

1、动态仿真

  • 该方式是通过测试序列激励生成器给入待测设计适当的激励,伴随着仿真时间,进而判断输出是否符合预期。
  • 需要仿真器配合,比较结果和仿真波形,最终判定测试用例是否通过。
  • 按照激励生成方式和检查方法,可以将动态仿真进一步划分为定向测试随机测试参考模型检查断言检查

2、静态检查

不需要仿真、波形激励,通过工具的辅助即可发现设计中存在的问题。

语法检查:
  • 如大多数编译器自带的功能一样,验证工具一旦需要建立模型,无论是针对动态仿真还是静态检查,都需编译器对目标语言提供语法检查。
  • 仿真编译器会帮助检查语法错误,如拼写、声明、引用、例化、连接、定义等等常见的语法错误。
  • 不同的仿真工具对于语言标准的解释也可能存在偏差。
语义检查:
  • 语义检查是在设计可行性上做深入检查的。
  • 语义检查是通过专用的工具来协助完成的,语义检查包括的范围有常见的设计错误、影响覆盖率收敛的问题、可能会产生X值以及受其影响的设计部分。
  • 静态检查可以在早期发现一些功能实现以外的设计问题,而且有助于完善设计代码,以便提高有效覆盖率以及RTL与网表的逻辑一致性(例如寄存器未初始化或者固定赋值)。
跨时钟域检查:
  • 大多数复杂的设计都拥有不止一个时钟,多个时钟之间也常表现为异步地关系,对于设计中的不同功能模块如果被不同的时钟驱动,那么就会形成不同的时钟域
  • 对于单一时钟域的模块而言,它的设计方式和验证环境都较为简单。拥有多时钟域的硬件,它的跨时钟域的逻辑通讯就需要考虑同步的问题。
  • 之所以需要考虑到不同时钟域的信号采样问题,是因为当时钟域A的信号进入时钟域B被采样时,每个周期都会有相对时钟B不同的延迟,这种随机性可能会导致建立时间或者保持时间无法满足,进而导致不可预期的功能失败。
  • 跨时钟域问题无法通过常规的验证方法分析,例如动态仿真,也不能被静态时序分析判断出来。
  • 跨时钟域检查方法可以在早期的RTL阶段来识别出跨时钟域的通信电路上面是否有合适的同步处理,所以跨时钟域(CDC)就是为了保证所有CDC信号都能够得到正确的同步
形式验证:
  • 等价检查(EC):用来保证两个电路的行为是等价的,可以用来检查不同抽象级的电路是否一致,例如RTL级和网表。
  • 属性检查(PC):又称为模型检查(MC)。电路的行为通过验证语言来描述其属性,随后通过静态方式来证明在所有状态空间下都满足该条件,否则举出反例来证明设计行为不符合属性描述。

3、虚拟模型

  • 虚拟模型即高抽象级硬件模型软件模型可依赖虚拟模型在早期开发,并且将反馈交给硬件设计。
  • 通过虚拟模型,硬件可以更早地获取软件反馈对设计进行修改。这种硬件和软件更紧密的协作方式,可以贡献体现更多的优势,例如利用虚拟模型获取的性能数据可以对硬件早期结构提供参考意见,或者判断硬件和软件的协同任务是否可以满足功耗目标。
  • 在目前多核的手机移动平台上,一个增长的需求就是将不同的任务合理分配到多核上面来取得更好的性能,而这种软件层面的评估就可以在虚拟建模阶段完成。
  • 通过多项虚拟建模的技术,例如协同设计协同仿真和验证,在早期就可以发现设计缺陷,使得修改这些缺陷可以在相对容易实施的阶段完成。
    在这里插入图片描述

4、硬件加速

  • SoC的设计体量越来越大,仿真速度成为制约验证进度的重要障碍。
  • 由于仿真速度的限制,一些真实的用例也无法在RTL级仿真很快地呈现结果。硬件团队需要将耗时很长的软件进行分析。
  • 一般需要等到硬件设计初步稳定,进而将其映射到可配置的硬件加速平台上面,这种方式相比于RTL仿真速度已经有了质的提升
  • 目前硬件加速方式分为两种,即FPGA专用的模拟器
  • FPGA主要是为了软件开发提供平台,而模拟器是为了硬件和软件协同验证和整个系统的测试。

5、效能验证

移动时代,硬件提升性能的方式:

  • 提升原有处理器性能、存储器空间、数据总线带宽或者采取多核处理方式。
  • 增加额外的协处理器,或者新的功能模块(例如Video/GPU单元)。
  • 在后端允许的情况下提高工作时钟频率。
  • 提升工艺流程。

随着性能的提升,能耗也会逐步提高。主要针对硅前设计阶段进行效能验证,涉及的流程可分为两个部分:

  • 功能验证:主要采用PA(主要包括有UPF或者CPF)方式,提高与仿真器结合模拟电源域的开关进行设计检查。
  • 功耗预测与优化:通过第三方功耗分析工具结合仿真数据,进行功耗预测,并且给出分析结果

技能技术
在这里插入图片描述

6、性能验证

  • 性能验证中离不开大量的运算或者数据传输
  • 在产品定义过程中,对于系统的运算和数据传输都有要求,如果可以在产品实现阶段尽早地得出一些性能有关数据,不但可以帮助提前验证硬件性能是否满足要求,在进度允许的情况下还可以修改硬件设计完善其性能。
  • 这种将性能测试提前的方式也可以使得硅前验证硅后测试采用一致的测试用例,从而得出可比对的性能数据
  • 性能验证是用来衡量一个系统在特定工作负载下它的响应能力稳定性,同时性能报告也可以用来分析和优化系统的质量标准,例如可靠性和资源使用能力。
  • 性能验证是一门实用的计算机科学工程方法,在软件工程测试中分类较多,譬如有负载测试、压力测试、浸泡测试、尖峰冲击测试、配置测试、隔断测试等。
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
avm是一个基于system verilog和systemc编程环境。它是为了开发复杂验证平台而设计的。就如学习c语言一样(或者system verilog或者systemc),它会需要一段时间去学习avm,从而知道如何更有效地去应用所有的概念。这本书的目的就是给你一个信心。如果这本书的作者把工作做得相当好,那么当你阅读这本书并且按里面的例子进行练习,肯定会有惊喜的体验。这个比喻性的概念在你的思想形成之后,你就会掌握avm中所有的结构并且知道如何应用。 目录 绪论 第1章 验证原理 1.1 验证基础 1.2 第一个验证平台 1.3 第二个验证平台 1.4 总结 第2章 avm综述 2.1 重用 2.2 验证组件和接口 2.3 层次化结构的验证平台 2.4 两个域 2.5 基于systemverilog avm概述 2.6 总结 第3章 面向对象程序设计的基本原理 3.1 面向过程vs.面向对象 3.2 类和对象 3.3 对象间关系 3.4 虚函数和多态 3.5 通用程序设计 3.6 作为组件的对象 . 3.7 oop和验证 第4章 tlm介绍 4.1 抽象(abstraction) 4.2 事务的定义(definilion of a transaction) 4.3 组件间的通信(communicating comf)onents) 4.4 使用通道(channel)来隔离组件 4.5 事务级连接(forming a transation—level connection) 4.6 小结 第5章 sustem vererilog中的avm机制 5.1 接口 5.2 连接组件 5.3 创建环境 5.4 连接硬件 5.5 报告 5.6 总结 第6章 验证平台基础 6.1 一个简单的存储器设计 6.2 激励产生器 6.3 监视器 6.4 三类状态机 6.5 驱动器 6.6 总结 第7章 完整的验证平台 7.1 分析端口和分析组件 7.2 记分板 7.3 覆盖率 7.4 注入错误 7.5 总结 第8章 逐步优化 8.1 事务级设计 8.2 riil替换 8.3 fpu作为黄金模型 8.4 小结 第9章 验证平台中的模块 9.1 非流水型总线实例 9.2 基于模块的断言监视器 9.3 总线功能模型(bfm) 9.4 总结 第10章 随机验证 10.1 crv方法概述 10.2 对类加入随机 10.3 用继承来实现层次约束 10.4 动态修改约束 10.5 过度约束 10.6 设定成员 10.7 动态数组 10.8 每个设计/每个测试配置 10.9 约束设计 10.10 类工厂 10.11 状态决定约束实例 10.12 avm随机激励生成器 第11章 avm与system verilog和sustemc 11.1 对象模型 11.2 对象的支持 11.3 封装行为 11.4 随机化 11.5 实例化与细节构建 11.6 事务级连接 11.7 执行阶段 11.8 创建完整的验证平台架构 11.9 选择systemverilog或systemc 附录a 符号说明 附录b 命名约定 附录c avm百科全书 附录d apache许可证 参考书目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值