内容简介
本书基于企业实际需求,理论结合实例,由易到难讲解了数字集成电路常用验证方法、流程规范和UVM高级验证方法。
主要内容包括:数字集成电路验证技术的发展、数字集成电路验证基础、数字集成电路验证的常用Verilog编程语法、被测电路功能点Case抽取、断言、带有约束条件的随机激励、覆盖率、结果自动对比、UVM验证、仿真验证EDA工具、实例解析、综合项目实例。
本书可供集成电路验证的入门级读者,以及集成电路、芯片、半导体及相关行业的工程技术人员使用,还可作为教材供高校相关专业师生学习参考。
目录
第1章 数字集成电路验证技术的发展 001
1.1 数字集成电路验证的概念及地位 001
1.1.1 验证的概念 001
1.1.2 验证在设计流程中的地位 002
1.2 功能验证 003
1.2.1 功能验证过程 003
1.2.2 功能验证相关技术 004
1.2.3 功能验证相关语言 006
1.2.4 功能验证相关方法 007
1.2.5 功能验证相关研究热点 008
1.3 验证的历史、现在与将来 009
习题 011
第2章 数字集成电路验证基础 012
2.1 集成电路芯片开发流程 012
2.1.1 系统设计 012
2.1.2 功能设计 013
2.1.3 功能验证 016
2.1.4 DFT设计/逻辑综合 016
2.1.5 版图设计验证 017
2.1.6 时序验证 017
2.1.7 芯片试做与芯片测试 017
2.2 验证的概念和分类 018
2.3 验证与设计、测试的区别 019
2.4 验证环境的基本结构 019
2.4.1 验证环境的概念 019
2.4.2 验证环境的结构框图 019
2.4.3 简单验证环境的书写结构 021
2.5 验证流程 023
习题 024
第3章 数字集成电路验证的常用Verilog编程语法 025
3.1 验证常用Verilog语法 026
3.1.1 assign语法 026
3.1.2 always语法 027
3.1.3 initial、`timescale、#语法 027
3.1.4 `define、parameter语法 029
3.1.5 `include语法 031
3.1.6 wait、@语法 032
3.1.7 for、repeat、while、forever语法 034
3.1.8 fork…join语法 035
3.1.9 task语法 037
3.1.10 event语法 039
3.2 验证常用Verilog系统函数 040
3.2.1 $display、$write、$time、$finish系统函数 040
3.2.2 文件操作系统函数 041
3.2.3 $random系统函数 046
习题 047
第4章 被测电路功能点Case抽取 048
4.1 Case抽取原则 049
4.2 Case表的制作方法 050
习题 051
第5章 断言 052
5.1 断言的基本概念和应用 053
5.2 断言的SVA语法结构 053
5.2.1 SVA基本结构 053
5.2.2 SVA与设计的连接 054
5.3 断言中常用的SVA语法 056
5.3.1 SVA基本语法 056
5.3.2 系统函数 058
5.3.3 覆盖率属性 059
5.3.4 断言验证库 059
习题 060
第6章 带有约束条件的随机激励 061
6.1 随机激励的概念和应用 061
6.2 随机激励的约束条件 062
习题 066
第7章 覆盖率 067
7.1 覆盖率的概念和应用 067
7.2 覆盖率的种类 068
7.2.1 代码覆盖率 068
7.2.2 断言覆盖率 070
7.2.3 功能覆盖率 070
7.3 代码覆盖率的实现方法 071
7.3.1 Modelsim仿真工具运行代码覆盖率 071
7.3.2 VCS仿真工具运行代码覆盖率 073
7.4 功能覆盖率的实现方法 074
7.4.1 通过Verilog编程实现功能覆盖率 074
7.4.2 通过SystemVerilog编程实现功能覆盖率 077
习题 082
第8章 结果自动对比 083
8.1 结果自动对比的概念和应用 083
8.2 期待值模型的构建方法 084
8.3 结果自动对比的实现 084
8.3.1 构造期待值模型的方式 085
8.3.2 读取期待值数据的方式 087
8.3.3 将被测电路输出打印结果文件与期待值结果文件直接比较的方式 089
习题 090
第9章 UVM验证 091
9.1 事务级验证的概念 092
9.2 UVM验证环境的特点和结构 092
9.2.1 UVM验证平台的结构 092
9.2.2 被测电路 093
9.2.3 interface 094
9.2.4 driver 094
9.2.5 monitor 096
9.2.6 sequence与sequencer 098
9.2.7 agent 099
9.2.8 reference model 101
9.2.9 scoreboard 102
9.2.10 env 104
9.2.11 测试用例 105
9.2.12 tb_top 107
9.2.13 UVM环境的启动 108
9.3 UVM基础 109
9.3.1 uvm_component, uvm_object派生关系 109
9.3.2 UVM的树形结构 112
9.3.3 field automation机制 113
9.3.4 config_db机制 115
9.4 UVM验证环境的运行 116
9.4.1 phase机制 116
9.4.2 objection机制 118
习题 119
第10章 仿真验证EDA工具 120
10.1 常用仿真验证EDA工具 120
10.2 Modelsim工具简介 121
10.3 Modelsim的使用方法 121
10.3.1 【方式二】的使用方法 122
10.3.2 【方式三】的使用方法 124
10.4 Modelsim中UVM验证环境的运行方法 125
习题 127
第11章 实例解析 128
11.1 被测电路功能点Case抽取实例解析 128
11.2 断言应用实例解析 134
11.
前言/序言
随着集成电路制造工艺水平的提升,集成电路设计规模不断增大,其功能多样性和复杂度大幅度上升。验证作为集成电路设计整体流程中不可或缺的一部分,工作难度也日益加大。
目前市场上集成电路验证的图书大多是关于UVM高级验证方法的,侧重于语法和编程实现,系统讲解验证方法的图书较少,对于初学者而言起点过高。本书讲解了企业中一些常用验证方法和流程规范,例如:验证流程以及验证环境框架,被测电路的功能点抽取方法,随机激励方法,结果自动对比方法,时序自动检查方法等,让初学者了解验证的基础概念和验证方法理论。在此基础上,从基础验证方法到UVM高级验证方法,从理论方法到实例解析,进一步阐述数字集成电路验证的进阶知识,帮助读者快速掌握验证方法、应用实例并加以提高。
本书共分为12章。每章先讲解企业中常用验证方法的理论知识和应用场景,再通过实例解析,阐述该理论在实际项目中的应用。
第1章介绍数字集成电路验证技术的发展。
第2章介绍验证基础,包括验证概念和分类、通用验证环境结构等,可以帮助读者对验证环境有大致了解。
第3章介绍验证环境中的常用Verilog语法及其编程基础。
第4章介绍企业常用验证方法中的Case抽取方法,包括理论方法讲解和案例分析。
第5章介绍企业常用验证方法中的断言时序检查方法,包括理论方法讲解和案例分析。
第6章介绍企业常用验证方法中的随机激励方法,包括理论方法讲解和案例分析。
第7章介绍企业常用验证方法中的覆盖率方法,包括理论方法讲解和案例分析。
第8章介绍企业常用验证方法中的结果自动对比方法,包括理论方法讲解和案例分析。
第9章介绍高级验证方法UVM验证的方法理论,包括理论方法讲解和案例分析。UVM验证方法目前是企业最流行的验证方法。
第10章介绍仿真验证中常用的EDA工具,并详细介绍Modelsim仿真验证工具的使用方法。
第11章是项目实例解析,前几章讲解的常用验证方法理论,在本章通过项目案例讲解其实践应用,可以帮助读者更深入地掌握各种验证方法以及验证环境的实现。
第12章是综合项目实例,通过完整实例,讲解如何综合运用所有验证方法,按照验证项目流程,制定验证方案、编写验证环境、分析验证结果和覆盖率报告等内容。
本书由丛国涛、李鹤楠、王森编著。特别感谢杭州士兰集成电路有限公司提供了行业前沿发展情况和应用实例。书中既有理论讲述,又有实例解析,内容贴近生产实际,可以作为集成电路验证的入门书籍,也可以作为高校集成电路、微电子、半导体、芯片等相关专业的教材。
由于作者水平所限,书中不足之处在所难免,敬请广大读者批评指正。
编著者