转行芯片验证自学模块一、验证导论

 

1.1验证流程
    目的:确保设备能够成功完成预定的任务
        不同层次上的测试
        验证计划:定向或随机测试、断言、软硬件协同验证、硬件仿真、形式验证、验证IP的使用

1.2验证方法学

1.3基本测试平台的功能
    步骤1、产生激励
    步骤2、把激励施加到DUT(被测器件)上
    步骤3、捕捉响应
    步骤4、检验正确性
    步骤5、对照整个验证目标测算进展情况

1.4定向测试
    描述:按照计划,编写出待测设计具体特性的激励向量,然后使用这些向量对待测设计进行仿真。
    优点:容易取得稳步的进展,可以找出测试中的预期漏洞
    缺点:耗费时间和人力

1.5方法学基础
    原则1、受约束的随机激励
        找到预料不到的漏洞
    原则2、功能覆盖率
        评估验证的进展情况
    原则3、使用事务处理器的分层测试平台
        问题分解为容易处理的小块,有助于控制复杂度
        事务处理器(也叫代理)能够为构建这些小块提供模式
    原则4、对所有测试通用的测试平台
        建立通用的基础设施,在某些地方放置“钩子”,便于在这些地方执行调整激励或注入错误
    原则5、独立于测试平台之外的个性化测试代码
        针对单一测试

1.6受约束的随机激励
    覆盖率收敛示意图:P7
        添加约束->受约束的随机测试->使用不同的种子多次运行->功能覆盖率
        通过功能覆盖率->识别覆盖盲区->最小的代码修改->定向测试案例->功能覆盖率
通过循环最终达到覆盖率的收敛

1.7你的随机化对象是什么
    设备和环境配置
    输入数据
    协议异常、错误和违例
    时延和同步
    并行的随机测试

1.8功能覆盖率
    步骤1、测试平台加入代码,监视进入设备中的激励,以及设备对激励的反应,据此确定哪些功能已经被验证过;
    步骤2、使用不同的种子运行几次仿真
    步骤3、仿真结果合并到一个报告中
    步骤4、结果分析,决定如何采用新的激励来达到尚未被测试到的条件和逻辑。

1.9测试平台构件P11
    总线功能模型BFM
    实际:设备连接到AMBA、USB、PCI和SPI总线上,那么就必须在测试平台中建立能够产生激励并校验响应的等效构件。
    含义:存在于测试平台中的部分

1.10分层的测试平台
    1.10.1不分层的测试平台
        把通用的操作,例如复位、总线读出和总线写入放到一个子程序,可以提高工作效率并减少出错
        物理和命令层的建立
    1.10.2信号和命令层(示意图P14)
        底部-信号层:包含把待测设计连接到测试平台的信号
        上层-命令层
            驱动器:执行总线读或写命令的驱动器驱动了待测设计的输入;
            监视器:待测设计的输出和与监视器相连,监视器负责检测信号的变化,并把这些变化按照命令分组;
            断言:穿过命令层和信号层,负责监视独立的信号以寻找穿越整个命令的信号变化。
    1.10.3功能层
        功能层向下为命令层
        代理(事务处理器),接收上层事务,例如DMA读或写,把他们分解为独立的命令
        这些命令将送往用于预测事务结果的记分板,检验器则负责比较来自监视器和记分板的命令。
    1.10.4场景层
        负责组织协调操作步骤的,采用受约束的随机值
        受约束的块对于每个独立的测试都是不应该改变的,通过“钩子”,利用工厂模式和回调函数来创建。
    1.10.5测试的层次和功能覆盖率

1.11建立一个分层的测试平台

1.12仿真环境阶段
    阶段1、建立
        1、生成配置:把待测设计的配置和周围的环境随机化
        2、建立环境:基于配置来分配和连接测试平台构件。
        3、对待测设计进行复位
        4、配置待测设计:基于第一步中生成的配置,载入待测设计的命令寄存器
    阶段2、运行
        1、启动环境:运行测试平台构件
        2、运行测试:启动测试然后等待测试完成
    阶段3、收尾
        1、清空:在最下层完成之后,需要等待待测设计清空最后的事务
        2、报告: 一旦待测设计空闲下来,就可以清空遗留在测试平台中的数据了。

1.13最大限度的代码重用
    定向测试:不具有通用性
    受约束的随机测试:前期需要构件测试平台,包含所有较低的层(场景、功能、命令以及信号),该测试平台能够被所有的测试使用,通用性很强

1.14测试平台的性能
    验证瓶颈:创建测试需要的时间
    创建随机测试步骤
        1、建立分层的测试平台
        2、按照验证计划中列举的目标创建激励
        3、功能覆盖率
        4、分析

缩略语
    HVL(Hardware Verification Language) 硬件验证语言 典型性质
        受约束的随机激励生成
        功能覆盖率
        更高层次的结构,尤其是面向对象的编程
        多线程及线程间通信
        支持HDL数据类型,例如verilog的四种状态数值
        集成了事件仿真器,便于对设计施加控制
    HDL硬件描述语言
    RTL寄存器传输级
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值