展开全部

主编推荐语

芯片验证全面指南:理论、SystemVerilog、UVM技术

内容简介

资深验证专家刘斌(路桑)向您全面介绍芯片验证,从验证的理论,到SystemVerilog语言和UVM验证方法学,再到高级验证项目话题。这本综合性、实用性的验证理论和编程方面的图书,针对芯片验证领域不同级别的验证工程师,给出由浅入深的技术指南:学习验证理论来认识验证流程和标准,学习SystemVerilog语言和UVM方法学来掌握目前主流的动态验证技术,了解高级验证话题在今后遇到相关问题时可以参考。

目录

  • 版权信息
  • 作者简介
  • 内容简介
  • 序(一)
  • 序(二)
  • 前言
  • 行业人士评语
  • 第1章 芯片验证全视
  • 1.1 功能验证简介
  • 1.2 验证的处境
  • 1.2.1 验证语言的发展
  • 1.2.2 验证面临的挑战
  • 1.3 验证能力的5个维度
  • 1.3.1 完备性
  • 1.3.2 复用性
  • 1.3.3 高效性
  • 1.3.4 高产出
  • 1.3.5 代码性能
  • 1.4 验证的任务和目标
  • 1.4.1 按时保质低耗
  • 1.4.2 芯片研发与客户反馈
  • 1.4.3 缺陷增长曲线
  • 1.5 验证的周期
  • 1.5.1 验证周期中的检查点
  • 1.5.2 功能详述
  • 1.5.3 制定验证计划
  • 1.5.4 开发验证环境
  • 1.5.5 调试环境和HDL文件
  • 1.5.6 回归测试
  • 1.5.7 芯片生产
  • 1.5.8 硅后系统测试
  • 1.5.9 逃逸分析
  • 1.6 本章结束语
  • 第2章 验证的策略
  • 2.1 设计的流程
  • 2.1.1 TLM模型的需求和ESL开发
  • 2.1.2 传统的系统设计流程
  • 2.1.3 ESL系统设计流程
  • 2.1.4 语言的抽象级比较
  • 2.1.5 传统的系统集成视角
  • 2.1.6 ESL系统集成视角
  • 2.2 验证的层次
  • 2.2.1 模块级
  • 2.2.2 子系统级
  • 2.2.3 芯片系统级
  • 2.2.4 硅后系统级
  • 2.3 验证的透明度
  • 2.3.1 黑盒验证
  • 2.3.2 白盒验证
  • 2.3.3 灰盒验证
  • 2.4 激励的原则
  • 2.4.1 接口类型
  • 2.4.2 序列颗粒度
  • 2.4.3 可控性
  • 2.4.4 组件独立性
  • 2.4.5 组合自由度
  • 2.5 检查的方法
  • 2.6 集成的环境
  • 2.6.1 验证平台
  • 2.6.2 待验设计
  • 2.6.3 运行环境
  • 2.6.4 验证管理
  • 2.7 本章结束语
  • 第3章 验证的方法
  • 3.1 动态仿真
  • 3.1.1 定向测试
  • 3.1.2 随机测试
  • 3.1.3 基于覆盖率驱动的随机验证
  • 3.1.4 基于TLM的随机验证
  • 3.1.5 断言检查
  • 3.2 静态检查
  • 3.2.1 语法检查
  • 3.2.2 语义检查
  • 3.2.3 跨时钟域检查
  • 3.2.4 形式验证
  • 3.3 开发环境
  • 3.3.1 Vim开发环境
  • 3.3.2 商业SV开发环境——DVT
  • 3.4 虚拟模型
  • 3.5 硬件加速
  • 3.6 效能验证
  • 3.6.1 功率和能量
  • 3.6.2 静态功耗和动态功耗
  • 3.6.3 节能技术
  • 3.6.4 效能验证
  • 3.6.5 功耗预测与优化
  • 3.7 性能验证
  • 3.7.1 设定目标
  • 3.7.2 测试环境
  • 3.7.3 验证方法
  • 3.8 趋势展望
  • 3.8.1 技术之间的横向跨越
  • 3.8.2 层次之间的纵向复用
  • 3.9 本章结束语
  • 第4章 验证的计划
  • 4.1 计划概述
  • 4.2 计划的内容
  • 4.2.1 技术的视角
  • 4.2.2 项目的视角
  • 4.3 计划的实现
  • 4.3.1 邀请相关人员
  • 4.3.2 开会讨论
  • 4.3.3 确定测试场景
  • 4.3.4 创建验证环境
  • 4.4 计划的进程评估
  • 4.4.1 回归测试通过率
  • 4.4.2 代码覆盖率
  • 4.4.3 断言覆盖率
  • 4.4.4 功能覆盖率
  • 4.4.5 缺陷曲线
  • 4.5 本章结束语
  • 第5章 验证的管理
  • 5.1 验证周期的检查清单
  • 5.2 验证管理的三要素
  • 5.2.1 时间管理
  • 5.2.2 人力资源安排
  • 5.2.3 任务拆分和重组
  • 5.3 验证的收敛
  • 5.3.1 回归流程
  • 5.3.2 回归质量
  • 5.3.3 回归效率
  • 5.4 让漏洞无处可逃
  • 5.5 团队建设
  • 5.6 验证师的培养
  • 5.6.1 全硅能力
  • 5.6.2 不做假设
  • 5.6.3 专注力
  • 5.6.4 逻辑性
  • 5.6.5 “战鼓光环”
  • 5.6.6 降低复杂度
  • 5.7 验证的专业化
  • 5.7.1 对验证的偏见
  • 5.7.2 验证面临的现状
  • 5.7.3 验证标准化
  • 5.7.4 验证经验的积累和突破
  • 5.8 本章结束语
  • 第6章 验证的结构
  • 6.1 测试平台概述
  • 6.2 硬件设计描述
  • 6.2.1 功能描述
  • 6.2.2 设计结构
  • 6.2.3 接口描述
  • 6.2.4 接口时序
  • 6.2.5 寄存器描述
  • 6.3 激励发生器
  • 6.4 监测器
  • 6.5 比较器
  • 6.6 验证结构
  • 6.6.1 项目背景
  • 6.6.2 MCDF验证进度安排
  • 6.7 本章结束语
  • 第7章 SV环境构建
  • 7.1 数据类型
  • 7.2 模块定义与例化
  • 7.2.1 模块定义
  • 7.2.2 模块例化
  • 7.2.3 参数使用
  • 7.2.4 参数修改
  • 7.2.5 宏定义
  • 7.3 接口
  • 7.3.1 接口连接方式1
  • 7.3.2 接口连接方式2
  • 7.3.3 接口的其他应用
  • 7.4 程序和模块
  • 7.4.1 Verilog设计竞争问题
  • 7.4.2 SV的仿真调度机制
  • 7.4.3 module数据采样示例1
  • 7.4.4 module数据采样示例2
  • 7.4.5 program数据采样示例
  • 7.5 测试的始终
  • 7.5.1 系统函数调用方式结束
  • 7.5.2 program隐式结束
  • 7.5.3 program显式结束
  • 7.6 本章结束语
  • 第8章 SV组件实现
  • 8.1 激励发生器的驱动
  • 8.1.1 激励驱动的方法
  • 8.1.2 任务和函数
  • 8.1.3 数据生命周期
  • 8.1.4 通过接口驱动
  • 8.1.5 测试向量产生
  • 8.1.6 仿真结束控制
  • 8.2 激励发生器的封装
  • 8.2.1 类的封装
  • 8.2.2 类的继承
  • 8.2.3 成员覆盖
  • 8.2.4 虚方法
  • 8.2.5 句柄使用
  • 8.2.6 对象复制
  • 8.2.7 对象回收
  • 8.3 激励发生器的随机化
  • 8.3.1 可随机的激励种类
  • 8.3.2 约束求解器
  • 8.3.3 随机变量和数组
  • 8.3.4 约束块
  • 8.3.5 随机化控制
  • 8.3.6 随机化的稳定性
  • 8.3.7 随机化的流程控制
  • 8.3.8 随机化的系统函数
  • 8.4 监测器的采样
  • 8.4.1 Interface clocking简介
  • 8.4.2 利用clocking事件同步
  • 8.4.3 利用clocking采样数据
  • 8.4.4 利用clocking产生激励
  • 8.4.5 monitor的采样功能
  • 8.5 组件间的通信
  • 8.5.1 通知的需求
  • 8.5.2 资源共享的需求
  • 8.5.3 数据通信的需求
  • 8.5.4 进程同步的需求
  • 8.5.5 进程通信要素的比较和应用
  • 8.6 比较器和参考模型
  • 8.6.1 异常检查
  • 8.6.2 常规检查
  • 8.6.3 时序检查
  • 8.6.4 组件连接
  • 8.7 测试环境的报告规范
  • 8.7.1 信息报告库
  • 8.7.2 信息库使用场景
  • 8.8 本章结束语
  • 第9章 SV系统集成
  • 9.1 包的意义
  • 9.2 验证环境的组装
  • 9.2.1 封装验证环境的方式
  • 9.2.2 模块环境的复用考量
  • 9.2.3 比较器的复用考量
  • 9.2.4 顶层环境的实现
  • 9.3 测试场景的生成
  • 9.3.1 动态控制激励
  • 9.3.2 调度多个激励器
  • 9.3.3 线程的精细控制
  • 9.3.4 动态测试向量
  • 9.3.5 向量群落的并发控制
  • 9.4 灵活化的配置
  • 9.4.1 Agent的两面性
  • 9.4.2 各个组件的模式配置
  • 9.4.3 验证结构的集成顺序
  • 9.5 初论环境的复用性
  • 9.5.1 复用的策略
  • 9.5.2 水平复用的应用
  • 9.5.3 垂直复用的应用
  • 9.6 本章结束语
  • 第10章 UVM世界观
  • 10.1 我们所处的验证时代
  • 10.2 类库地图
  • 10.3 工厂机制
  • 10.3.1 工厂的意义
  • 10.3.2 工厂提供的便利
  • 10.3.3 覆盖方法
  • 10.3.4 确保正确覆盖的代码要求
  • 10.4 核心基类
  • 10.4.1 域的自动化
  • 10.4.2 复制
  • 10.4.3 比较
  • 10.4.4 打印
  • 10.4.5 打包和解包
  • 10.5 phase机制
  • 10.5.1 phase执行机制
  • 10.5.2 如何开始UVM仿真
  • 10.5.3 如何结束UVM仿真
  • 10.6 config机制
  • 10.6.1 interface传递
  • 10.6.2 变量设置
  • 10.6.3 config object传递
  • 10.6.4 config机制
  • 10.6.5 其他配置方法
  • 10.6.6 uvm_resource_db的使用
  • 10.7 消息管理
  • 10.7.1 消息方法
  • 10.7.2 消息处理
  • 10.7.3 消息机制
  • 10.8 宏的优劣探讨
  • 10.9 本章结束语
  • 第11章 UVM结构
  • 11.1 组件家族
  • 11.1.1 uvm_driver
  • 11.1.2 uvm_monitor
  • 11.1.3 uvm_sequencer
  • 11.1.4 uvm_agent
  • 11.1.5 uvm_scoreboard
  • 11.1.6 uvm_env
  • 11.1.7 uvm_test
  • 11.2 把DUT装进TB分几步
  • 11.2.1 MCDF顶层验证环境方案1
  • 11.2.2 MCDF顶层验证环境方案2
  • 11.3 构建环境的内经
  • 11.3.1 环境构建的四要素
  • 11.3.2 环境元素分类
  • 11.4 本章结束语
  • 第12章 UVM通信
  • 12.1 TLM通信概论
  • 12.2 单向、双向及多向通信
  • 12.2.1 单向通信
  • 12.2.2 双向通信
  • 12.2.3 多向通信
  • 12.3 通信管道应用
  • 12.3.1 TLM FIFO
  • 12.3.2 Analysis Port
  • 12.3.3 Analysis TLM FIFO
  • 12.3.4 Request&Response通信管道
  • 12.4 TLM2通信
  • 12.4.1 接口实现
  • 12.4.2 传送数据
  • 12.4.3 时间标记
  • 12.4.4 典型使用
  • 12.5 同步通信元件
  • 12.5.1 uvm_event应用
  • 12.5.2 uvm_barrier应用
  • 12.5.3 uvm_callback应用
  • 12.6 本章结束语
  • 第13章 UVM序列
  • 13.1 新手上路
  • 13.2 Sequence和Item
  • 13.2.1 Sequence Item
  • 13.2.2 Flat Sequence
  • 13.2.3 Hierarchical Sequence
  • 13.3 Sequencer和Driver
  • 13.3.1 双方的TLM端口和方法
  • 13.3.2 事务传输实例
  • 13.3.3 通信时序
  • 13.4 Sequencer和Sequence
  • 13.4.1 发送sequence及item的方法和宏
  • 13.4.2 sequencer的仲裁特性及应用
  • 13.5 Sequence的层次化
  • 13.5.1 Hierarchical Sequence
  • 13.5.2 Virtual Sequence
  • 13.5.3 Layering Sequence
  • 13.6 本章结束语
  • 第14章 UVM寄存器
  • 14.1 寄存器模型概览
  • 14.2 寄存器模型的集成
  • 14.2.1 总线UVC的实现
  • 14.2.2 MCDF寄存器模块代码
  • 14.2.3 Adapter的实现
  • 14.2.4 Adapter的集成
  • 14.2.5 前门访问
  • 14.2.6 后门访问
  • 14.2.7 前门访问和后门访问的比较
  • 14.3 寄存器模型的常规方法
  • 14.3.1 mirrored、desired和actual value
  • 14.3.2 prediction的分类
  • 14.3.3 uvm_reg的访问方法
  • 14.3.4 mem与reg的联系和差别
  • 14.3.5 内建sequences
  • 14.4 寄存器模型的场景应用
  • 14.4.1 如何检查寄存器模型
  • 14.4.2 功能覆盖率的实现
  • 14.5 本章结束语
  • 第15章 验证平台自动化
  • 15.1 为什么需要一款代码生成器
  • 15.2 UVM Framework
  • 15.3 如何定制一款TB自动化工具
  • 15.3.1 验证环境的自动化创建
  • 15.3.2 测试框架和测试用例的垂直复用
  • 15.3.3 中心化的功能覆盖率管理
  • 15.4 本章结束语
  • 第16章 跨平台移植复用
  • 16.1 便携激励标准(PSS)
  • 16.2 PSS工具集概览
  • 16.2.1 inFact
  • 16.2.2 Perspec
  • 16.2.3 Breker Trek系列
  • 16.3 跨平台的验证结构考量
  • 16.3.1 virtual prototyping与simulation的混合仿真
  • 16.3.2 virtual prototyping与FPGA prototyping的混合仿真
  • 16.3.3 simulation与emulation的混合仿真
  • 16.3.4 virtual prototyping与emulation的混合仿真
  • 16.4 本章结束语
  • 第17章 SV及UVM接口应用
  • 17.1 DPI接口和C测试
  • 17.1.1 总线接口的读写实现
  • 17.1.2 virtual_core类的定义
  • 17.1.3 DPI方法的实现
  • 17.1.4 多核并行处理实现
  • 17.1.5 中断响应的实现
  • 17.2 SystemC与UVM的TLM2通信
  • 17.2.1 UVMC连接
  • 17.2.2 UVM指令API
  • 17.3 MATLAB及Simulink模型与UVM的混合仿真
  • 17.4 脚本语言与UVM的交互
  • 17.4.1 线上控制和线下激励的交互应用
  • 17.4.2 线上控制和线上激励的交互应用
  • 17.5 本章结束语
  • 第18章 SV及UVM高级话题
  • 18.1 SystemVerilog开源公共库
  • 18.1.1 SV开源库之一:svlib
  • 18.1.2 SV开源库之二:cluelib
  • 18.2 SV单元测试方法SVUnit
  • 18.3 OVM到UVM的移植
  • 18.3.1 OVM代码检视
  • 18.3.2 OVM到UVM的代码自动转换
  • 18.3.3 替换OVM phase方法
  • 18.3.4 替换OVM objection方法
  • 18.3.5 替换OVM configuration方法
  • 18.3.6 添加UVM的新特性
  • 18.4 OVM与UVM的混合仿真
  • 18.4.1 UVM-ML验证框架
  • 18.4.2 OVM兼容层
  • 18.4.3 XVM
  • 18.5 本章结束语
  • 参考文献
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。