本书基于企业实际需求,理论结合实例,由易到难讲解了数字集成电路常用验证方法、流程规范和UVM高级验证方法。
主要内容包括:数字集成电路验证技术的发展、数字集成电路验证基础、数字集成电路验证的常用Verilog编程语法、被测电路功能点Case抽取、断言、带有约束条件的随机激励、覆盖率、结果自动对比、UVM验证、仿真验证EDA工具、实例解析、综合项目实例。
本书可供集成电路验证的入门级读者,以及集成电路、芯片、半导体及相关行业的工程技术人员使用,还可作为教材供高校相关专业师生学习参考。
丛国涛:1、松下电器软件开发(大连)有限公司从事集成电路设计与验证工作8年,开发过数码相机芯片、数字电视芯片、车载摄像头处理芯片等10+颗芯片,并且具有带领10人左右团队进行集成电路开发的经验。 2、大连东软信息学院集成电路设计与集成电路系统专业担任专业课教师,已执教5年,讲授《数字集成电路验证》《数字系统设计实践》等多门集成电路专业课程。作为课程负责人的《数字集成电路验证》获得辽宁省虚拟仿真实验项目(2020年),获得校级“专创融合”课程(2020年),获得校级线上线下混合式课程(2021年)。 3、参加《全国电子信息类专业课程实验案例设计竞赛》等教学竞赛,获得全国三等奖、辽宁省一等奖、二等奖、三等奖各1次。 4、参与集成电路设计与集成系统专业的辽宁省本科专业建设,参与辽宁省教育厅的教改项目建设《产学研融合背景下集成电路创新创业人才培养模式的探索与实践》。 5、作为负责学生实践工作的系副主任,组织学生参加学科竞赛活动,集成系学生在《大学生集成电路创新创业大赛》等重要赛事多次获得国家一等奖等奖项,学校获得东北赛区优秀组织奖,本人获得辽宁省组织工作先进个人。大创指导教师1次,省级大创指导教师3次,企业横向项目10项,发明专利1项(2021年),软件著作权1项(2018年),参与发表论文期刊8篇。
第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.3 随机激励应用实例解析 142
11.4 覆盖率应用实例解析 147
11.5 结果自动对比应用实例解析 155
11.6 UVM验证实例解析 166
第12章 综合项目实例 183
12.1 UART传输电路的功能验证项目 183
12.2 图像JPEG编码DCT模块的功能验证项目 206
参考文献 222