当前位置: 首页 > news >正文

【芯片验证方法】

术语——中文术语

大陆与台湾的一些术语存在差别:
在这里插入图片描述

验证常用的英语术语:

在这里插入图片描述
验证:尽量模拟实际应用场景,比对芯片的所需要的目标功能和实现的功能
影响验证的要素:应用场景、目标功能、比对应用场景、目标功能:来源于产品需求、系统方案、设计实现;准确、完备、清晰、异常。
比对:设计与验证的隔离、独立性;比对效率
验证与测试:关注点的区别
验证类型:EDA验证、FPGA验证、芯片验证、软硬件结合验证

验证流程

在这里插入图片描述
在这里插入图片描述

测试点:

在这里插入图片描述
例如:芯片可以处理包长为64Bytes~1500Bytes的数据包,则验证时则可以划分成哪几个测试区间呢?(假设包长为16Bit位宽)。

在这里插入图片描述

测试点——分解测试点的方法

1,SPEC
文档上所有明确写出的SPEC
2,输入、配置、输出
所有合理的输入
所有合理的配置
所有合理的输出
所有合理的输入、配置的不同组合
3,场景
多个功能在同一时间段内的不同组合
多个功能在前后顺序之间的不同组合
4,异常

验证用例——定向验证

在这里插入图片描述

验证用例——随机验证

在这里插入图片描述

rand bit [15:0] pkt_len;
constraint c_pkt_len {pkt_len dist {[1:61]	    	:/ 10,[62:63]     	:/ 10,[64:65]   	:/ 10,[66:1498]	    :/ 10,[1499:1500]  	:/ 10,[1501:1502]  	:/ 10,[1502:65535]	:/ 10,};
}

利用System Verilog的比例约束,可以灵活地设置每个区间的概率。
通过上述方法,发送同样的包个数,就能覆盖到所有的测试点。

覆盖率——Code Coverage

在这里插入图片描述

发送三个数据包,包长分别为10、100、2000字节,就可以达到100%的
Code Coverage(如:Line Coverage、Conditon Coverage)

在这里插入图片描述
如果RTL不小心写成上面这样,而没有验证到,我们能发现吗?

覆盖率——Function Coverage

通过定义功能覆盖率,就可以发现上述的问题。
在这里插入图片描述
在这里插入图片描述
从需求,到测试点,到用例:总->分->总
测试点要求细而不漏。
测试点的交叉。例如不同类型包文有不同的长度范围和处理。变量越多组合
越多,测试向量就越多。
测试用例:随机为主定向为辅,还是随机为主定向为辅

验证用例——脚本化

传统的用例设计方法:
根据测试点编写大量的TestCase来覆盖所列的测试点
用例脚本化:
设计一个通用用例模版,通过脚本,传递不同的参数配置。
一个TestCase生出大量TestCase,减少大量用例的编写、维护工作。
在这里插入图片描述

验证平台——架构

在这里插入图片描述

验证平台——集成

在这里插入图片描述

验证的模块化、完整性思维

模块化与完整性
结构上的模块化
数据类型上的模块化:配置、数据
流程上的模块化:

在这里插入图片描述

验证自动化——工具

1,Makefile
(1)支持批量仿真;
(2)每个TC单独生成一个LOG,一个波形,一组对应图像信息
(3)自动检查所有TC的LOG,生成所有TC的Pass or Fail的记录
(4)自动本地化
(5)在当前目录下,编辑打开其他目录的文件

2,Excell提取脚本
(1)寄存器信息列表
(2)数模接口连线复位值
(3)数模混仿Vector信息
3,自动连线脚本
(1) 连接各个module的verilog
4,其他Tcl、Perl脚本

验证自动化

1,Regression自动化
2,寄存器测试自动化
3,Log检查自动化
4,数据比对自动化
5,时序比对自动化
6,Co-SIM的Vector自动化
7,数字模拟接口连线检查自动化

服务自己的人机交互:
表格与仿真环境之间自动化
EXCEL+VBA
XML PARSER

验证语言——System Verilog

HDVL:Hardware Description And Verification Language
完全兼容Verilog语言
支持Behaviour Level建模
支持面向对象编程,容易扩展、移植
支持各种随机方式:权重比例等
支持功能覆盖率

在这里插入图片描述

验证语言——SVA

System Verilog Assertions:简称SVA
用途:用来检查Timing的正确性。(区别:Reference Model用来检查Data的正确性)。如果Timing不正确会输出Fail信息。
SVA代码示例:
在这里插入图片描述
以上代码是检测check_en有效的时候, 每次lcd_busy_bfm 的上升沿之后
两个clk,必须有gate_lcd_busy 的上升沿。

UVM

UVM:Universal Verification Methodology
来源:兼容VMM和OVM的优点
内容:验证方法学+验证平台模版+验证代码库
举例:盖房子
很早很早以前没有建筑学,大家的房子也是千奇百怪,各不相同,有在树上,有在地下,也有在树上。后来,慢慢开始有人归纳这些房子的特点,发现:大部分都有“门”、“窗户”,“房间”,“屋顶”等。所以,慢慢开始把房子分成这几个部分来研究,逐渐就形成一套房子的方法学。后来再总结各个部分优秀的建造方法,提供给大家做参考,或者直接做好各个部分,给大家用,就形成组件、模版。

相关文章:

  • 大数据技术分享 | Kylin入门系列:基础介绍篇
  • MindSpore实践图神经网络之环境篇
  • Nacos 2.x 系列【12】配置加密插件
  • 【二叉树】:LeetCode:100.相同的数(分治)
  • Spring-注解
  • vue 打印、自定义打印、页面打印、隐藏页眉页脚
  • kotlin基础之协程
  • 【5.基础知识和程序编译及调试】
  • 第十三章 进程与线程
  • 探秘URL的奥义:JavaScript中轻松获取页面参数值的N种姿势【含代码示例】
  • 基于文本来推荐相似酒店
  • 最新文章合集
  • 前端加密的方式汇总
  • 【OpenCV 基础知识 13】高斯平滑处理图像
  • vue实现页面渲染时候执行某需求
  • ES6指北【2】—— 箭头函数
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • ECMAScript6(0):ES6简明参考手册
  • exports和module.exports
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Spring声明式事务管理之一:五大属性分析
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • ⭐ Unity + OpenCV 实现实时图像识别与叠加效果
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • Zsh 开发指南(第十四篇 文件读写)
  • 前端之Sass/Scss实战笔记
  • 因为阿里,他们成了“杭漂”
  • 用Visual Studio开发以太坊智能合约
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​ubuntu下安装kvm虚拟机
  • ## 基础知识
  • #pragma multi_compile #pragma shader_feature
  • (145)光线追踪距离场柔和阴影
  • (21)起落架/可伸缩相机支架
  • (done) 两个矩阵 “相似” 是什么意思?
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (Oracle)SQL优化技巧(一):分页查询
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (层次遍历)104. 二叉树的最大深度
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (面试必看!)锁策略
  • (算法)硬币问题
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)关于多人操作数据的处理策略
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net网站发布-允许更新此预编译站点
  • .net中生成excel后调整宽度
  • @Autowired注解的实现原理
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——