一、岗位介绍
数字验证主要负责对前端设计的模块以及SoC进行充分的功能性验证,保证其功能正确。对于模块级验证,现在主流方式是采用UVM方法学进行充分性验证;对于SoC级验证,则更多采用软硬件协同仿真的方式进行验证。因此,工程师需要掌握SystemVerilog以及UVM验证方法学,除此之外,验证工程师还需要掌握更多的系统级知识,比如CPU、总线协议等;
二、知识点列表
系统化学习,打造阶梯学习模式
1、入门
掌握基础
- 1-1 熟悉基本的linux操作,可以在linux环境下工作
- 1-2 熟悉Verilog/SystemVerilog等数字芯片设计与验证语言
- 1-3 熟练掌握并运用SystemVerilog数据类型、OOP等编写基本的sv模型与验证环境
- 1-4 最好掌握一门或多门脚本语言,如Perl/Python/Tcl等
- 1-5 最好掌握一门或多门建模语言,如C/C++/SystemC等
- 1-6 熟悉常用的总线协议,如AMBA总线协议
- 1-7 EDA工具的掌握,如VCS/Verdi等
- 1-8 熟悉基本的验证流程,熟悉基本的验证平台结构
- 1-9 熟悉基于UVM验证框架,可以熟练编写基于UVM的验证环境
- 1-10 理解各个模块的功能,阅读设计spec,可以根据spec搭建UVM验证环境
2、进阶
Assertion断言验证 提取验证场景,验证功能点 可以编写复杂的constraint,实现基于constraint的random验证 收集、并且分析代码覆盖率、功能覆盖率 分析、定位问题,debug的能力
- 2-1 Assertion断言验证
- 2-2 提取验证场景,验证功能点
- 2-3 可以编写复杂的constraint,实现基于constraint的random验证
- 2-4 收集、并且分析代码覆盖率、功能覆盖率
- 2-5 分析、定位问题,debug的能力
3、高级
可以对中型、大型module或者芯片,规划验证方案 能够将验证方案,验证功能点进一步分解,形成可执行的验证步骤 搭建系统级验证平台,搭建系统级regression验证平台 基于upf的芯片低功耗验证 把控验证周期,保证验证质量与项目节点
- 3-1 可以对中型、大型module或者芯片,规划验证方案
- 3-2 能够将验证方案,验证功能点进一步分解,形成可执行的验证步骤
- 3-3 搭建系统级验证平台,搭建系统级regression验证平台
- 3-4 基于upf的芯片低功耗验证
- 3-5 把控验证周期,保证验证质量与项目节点
三、学习路径
课程根据企业对初级数字验证工程师的要求而精心设计,通过理论+实验+项目的学习模式,让每一个零基础学员可以由浅入深地理解及掌握数字验证相关知识点。
课程囊括了成为一个合格的初级数字验证工程师所需要的知识点和技能,并以企业原型的实战项目进行学以致用的场景演练,,围绕“就业必需”开展针对性教学,难度适宜,适合零基础学员或者基础薄弱学员学习。
01、适合人群
希望可以转岗成为数字验证工程师的人群
缺少系统性教学体系、没有实战简历项目的学生(课程完美匹配秋招时间)
02、学习收获
掌握芯片数字验证的流程及思维方式
掌握SystemVerilog语言和UVM验证方法学
学会验证项目的测试点分解以及验证计划的制定
学会IP级项目的UVM验证代码编写
独立运行过1-2种UVM验证项目(加分项)