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

想转行数字IC验证,需要提前了解哪些内容?

很多IC企业在招聘的时候,验证的岗位需求都是远远高于其他岗位的,据统计,每招一名前端工程师,就会招聘两名验证工程师,可见这个岗位的需求量还是非常大的。所以对于想要转行验证岗位的同学,机会是很大。

验证介绍

1)验证概念
主要用来证明设计功能正确,并且符合设计功能描述的流程。

2)验证平台

在这里插入图片描述
激励发生器:对DUT创建测试序列,先易后难激励
检测器:观察DUT输入输出
比较器:对DUT输出与预期数据相比对
时钟/重置:提供时钟和复位信号
检查结果报告

3)验证工作内容
设计文件是否正确的按照功能描述文档去实施
硬件设计人员是否有漏掉的边界的情况(corner case)
检查设计是否能处理错误的情况(error response)

4)验证任务:
模块级(module level)
子系统级(sub-system level)
系统级(chip level)

5)验证目标:
按时,保质,保耗
按时:按照项目计划,考虑验证各个节点(milestone)
保质:流片前,尽可能发现所有的缺陷
性能,低耗:更短的时间,更少的人力完成工作

6)验证周期:
验证计划:针对设计的测试功能点,映射的覆盖率,验证环境结构,回归测试列表
验证环境:激励发生器,检测器,比较器
验证代码检查:遗漏的测试激励;不恰当的随机约束;代码结构缺陷,提升覆盖率
回归测试:将所有的测试序列都重复执行,随机测试可利用其来检查测试所覆盖的激励场景,提高覆盖率
流片前验证完备性检查:回归测试报告;覆盖率数据;验证流程检查清单
硅后测试:与测试人员一起测试流片,确认缺陷原因,补救方法
逃逸分析:总结错误和原因,经验积累

System Verilog介绍

1)背景
2002年Accelera标准的组织牵头发展,是Verilog的扩展的硬件描述语言和验证语言。

2)核心特性
接口(interface)
面向对象特性(class & package)
随机约束(constrained random)
线程控制和通信(process control and communication)
外部语言编程接口(direct programming interface)
断言(assertion)

UVM介绍

1)概念
基于SV的验证方法学库,是其抽象出来,构建验证环境的通用手段,并利用标准接口,使得验证环境更利于构建和复用,实用性广泛。

2)目的
提供一些可以重用的类,来减轻项目之间水平复用和垂直复用的工作量。

3)UVM的学习结构:
UVM的版图(类库),核心机制
核心的UVM组件和构建方法
UVM组件间的通信方式
UVM测试场景的构成
UVM的寄存器模型应用

4)验证平台:
SV
SV/C++/Verilog
C++/Verilog

5)验证工具:
Questa modelsim(mentor)
NC-sim(cadence)
VCS(synopsys)

6)验证工作:
灌激励
集响应
做比较(actual data & expected data(c++))

7)验证脚本
per/shell/python/makefile(用于设置环境变量)

数字IC验证岗位职业前景怎么样?

这个岗位之所以非常受关注,是因为相比于数字前端设计、模拟IC设计岗位,数字验证岗位的门槛没有那么高,硕士研究生即可,不限行业,包括一些本科生也在企业考虑的范围之内,专业技能要求也不是特别高。另一方面数字IC验证岗位薪资待遇高,年薪可达20-30万,这让不少人心动。

IC验证岗位的门槛还是比较高的,但随着不断学习,技能增加,项目经验变多,薪资待遇也会水涨船高。IC行业的优势一是人才比较稀缺,二是相对于没有那么内卷。这是因为这个行业属于高科技行业,对专业性,技术性要求极高,基本越老越吃香。

想要成为IC验证工程师,学好各种课程是必不可少的,只有掌握了相应的基础知识之后,才可以成为一名合格的IC验证工程师。

相关文章:

  • SignalR+FluentValidation实现mvc
  • 阿里大牛解析淘宝与Twitter 分布式系统案例与其架构设计原来源码
  • 融资租赁和经营租赁
  • 【JetPack Compose】列表和动画
  • 计基于安卓 Android 微信小程序的孕妇产后康复系统app
  • 钉钉扫码登陆第三方网站
  • Python 自动化测试(三): pytest 参数化测试用例构建
  • Java通过Zxing生成和解析二维码
  • 如何在手机浏览器中打开安卓APP
  • Postgresql 解决pg掉电后无法重启的问题
  • Git下载安装vue-antd-admin教程
  • dubbo服务暴露流程
  • 人老了才明白,走到最后,身边能依靠的不是老伴,也不是子女
  • PySpark SQL模块官方文档
  • 独立三方数据源!数据宝国有大数据为金融机构及物流企业提供双向赋能
  • @angular/forms 源码解析之双向绑定
  • Apache Zeppelin在Apache Trafodion上的可视化
  • github指令
  • iOS | NSProxy
  • javascript 总结(常用工具类的封装)
  • JS笔记四:作用域、变量(函数)提升
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • mongodb--安装和初步使用教程
  • QQ浏览器x5内核的兼容性问题
  • Vue.js源码(2):初探List Rendering
  • windows-nginx-https-本地配置
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 从setTimeout-setInterval看JS线程
  • 番外篇1:在Windows环境下安装JDK
  • 深度学习中的信息论知识详解
  • 思否第一天
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 正则学习笔记
  • 【云吞铺子】性能抖动剖析(二)
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 说说我为什么看好Spring Cloud Alibaba
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​一些不规范的GTID使用场景
  • # Java NIO(一)FileChannel
  • #ifdef 的技巧用法
  • (04)odoo视图操作
  • (3)nginx 配置(nginx.conf)
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (Oracle)SQL优化技巧(一):分页查询
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (六)vue-router+UI组件库
  • (未解决)macOS matplotlib 中文是方框
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)人的集合论——移山之道
  • .Net Remoting常用部署结构
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/C# 的字符串暂存池
  • .NET多线程执行函数