简介
通过对芯片设计验证行业以及芯片设计验证工程师的工作内容做出梳理,引导大家树立对芯片设计验证领域正确的认识,通过System Verilog基本知识点的讲解,引入数字芯片验证平台搭建流程,对验证平台中Driver、Monitor、Reference Model、Checker、Scoreboard等验证组件的功能以及搭建方法进行讲解。在此基础上,对当下最流行的通用验证方法学(UVM)的各种组件搭建方式进行讲解。课程讲解过程中,通过一个个的example对这些内容进行加深理解。项目实践环节通过中科院青岛EDA中心云平台+VCS正版工具等进行实操,整个实操通过一个完整的实例搭建,包括测试点分解、前端设计代码的书写、验证平台的搭建,以及每个阶段一系列研发文档的输出,实操环节,让学员掌握数字芯片流程中的每个环节,最终通过覆盖率的收集,检查项目验证的完备性。最终达到对芯片验证入门上手的效果。
理论阶段大纲:
|
课程大纲 |
内容简介 |
课时 |
1 |
功能验证与验证平台总述 |
什么是数字芯片验证,验证在芯片研发中的角色以及如何全方位开展验证,包含数字设计全流程介绍,数字电路Verilog HDL设计入门以及常见语句简介,Verilog HDL设计搭建最简单的验证平台,查看波形验证设计,介绍常用EDA工具 |
4课时 |
2 |
Unix操作系统常用操作练习 |
Unix开发环境操作系统练习;GVIM常用快捷键以及指令 |
2课时 |
3 |
Verilog HDL入门 |
学习Verilog HDL语言,语言元素,表达式,组合逻辑实现,时许逻辑实现,建模练习 |
3(2课时讲解,1课时实验) |
4 |
Verilog HDL验证平台 |
众多简易设计实现,以及其验证平台搭建,熟悉设计与验证的关系,掌握EDA工具debug流程 |
8课时 |
5 |
System Verilog数据结构 |
验证平台中常用的数据类型以及函数介绍,以实操题目快速掌握知识点,结构体,枚举,以及logic,wire,reg等数据介绍,队列以及数组的操作。 |
3(2课时讲解,1课时实验) |
6 |
面向对象编程在验证中的应用 |
掌握System Verilog中面向对象在各个组件中的应用,配以实操题目。包含面向对象最重要的封装、继承、多态的知识点。 |
3(2课时讲解,1课时实验) |
7 |
验证平台中的约束与随机 |
随机、约束在验证平台中的作用,掌握如何随机,如何约束。 |
3(2课时讲解,1课时实验) |
8 |
验证平台中的断言和覆盖率 |
学习断言以及覆盖率相关的知识点,掌握断言的语法以及写法,掌握功能覆盖率的写法 |
3(2课时讲解,1课时实验) |
9 |
线程间的通信 |
了解验证平台和DUT的通信方式,掌握阻塞和非阻塞的概念 |
3(2课时讲解,1课时实验) |
10 |
System Verilog验证平台实例 |
通过一个System Verilog的验证实例,掌握验证平台结构,一个完整的验证平台包含了HDL、HVL以及包含clk、reset的TOP层。 |
3(2课时讲解,1课时实验) |
11 |
从System Verilog到UVM验证平台 |
通过上一章的System Verilog验证平台,切入UVM验证平台,介绍什么是UVM,UVM与SV的关系,为什么要用UVM,UVM的便利性。UVM的phase机制。 |
3(2课时讲解,1课时实验) |
12 |
Transaction与Sequence |
Transaction和Sequence在验证平台中的作用和基本思路。解释UVM中刺激的产生,创建UVM序列项(事务),学习如何构造简单的UVM序列,描述序列和驱动程序之间的握手。 |
3(2课时讲解,1课时实验) |
13 |
Sequencer、Drivers与TLM |
Sequencer、Driver和TLM在验证平台中的作用和基本思路;解释UVM排序器和驱动程序; 描述如何创建仿真友好的驱动程序;学习如何开发UVM排序器和驱动程序,如何将事务转移到DUT;解释事务级建模传输(TLM);描述事务端口和导出。 |
3(2课时讲解,1课时实验) |
14 |
Monitor与Agent |
Monitor和Agent在UVM验证平台中的作用和基本思路。创建采样DUT输出的UVM Monitor;解释如何使用UVM分析端口发送事务;学习创建和使用UVM Agent; 配置UVM Agent为ActiveAgent或Passive Agent。 |
3(2课时讲解,1课时实验) |
15 |
覆盖率收集 |
覆盖率收集注意点,如何收集覆盖率。 回顾SystemVerilog功能覆盖;演示构建和抽样覆盖组;查看报告覆盖率;学习在UVM中应该在哪里收集覆盖信息;演示如何将覆盖收集器连接到监视器/代理 |
3(2课时讲解,1课时实验) |
16 |
Scorboard与Enviroment |
Scoreboard和Env在UVM验证平台中的作用以及基本思路和写法。 解释TLM分析连接;解释记分牌概念;学习如何预测预期的DUT输出。构建一个UVM计分板,将预测结果与实际输出值进行比较。 |
3(2课时讲解,1课时实验) |
17 |
Configuration与Factory |
验证平台配置和工厂模式。描述UVM配置数据库;解释组件配置;学习如何在组件和序列之间传递配置信息;学习如何描述UVM工厂;学习如何使用工厂创建组件和事务;演示工厂覆盖如何改变测试台的行为。 |
3(2课时讲解,1课时实验) |
18 |
芯片验证流程综述 |
芯片验证流程综述。总结完整的芯片验证流程。包括验证策略,验证过程中的时间分配等。 |
2课时 |
19 |
小作业:实验训练总结 |
小作业:验证项目实训。从0开始,写一个小I2C设计,并对此设计进行UVM验证平台编写。 |
8课时 |
项目实战阶段大纲:
项目实训为期1-2个月,借鉴国内著名公司实训项目,包含项目规格解读,验证计划,验证策略,测试点分解,环境搭建,测试用例的开发,以及功能覆盖率的收集和分析,验证报告的书写。
阶段 |
内容简介 |
开工指导 |
数字芯片仿真验证知识回顾学习,芯片验证全流程介绍,实训项目介绍,项目方案(芯片规格)学习。 |
开工准备 |
学习如何进行验证测试点的分解,指导学员入手进行测试点验证 |
提取测试点 |
自行提取测试点,组织review,答疑,教师提取测试点分享 |
初步运行 |
初步运行验证环境,跑通example testcase,答疑 |
完善验证环境 |
补全验证环境缺失组件,完成测试点对应TC,完成所有点测试点测试 |
覆盖率收集 |
功能覆盖率模型学习以及编码, |
验证报告写作 |
完成芯片验证报告以及checklist自检, |