内容推荐 SystemVerilog是当前国内外被广泛使用的数字集成电路验证语言,它可以高效地对被测设计进行受约束的随机测试,从而在尽可能短的时间内达到令人满意的代码和功能覆盖率。熟练掌握Systemverilog语言是进一步学习UVM验证方法学的基础。 本书讲解了SystemVerilog的基本语法和工作原理,同时结合了UVM验证方法学中的验证技术知识。讲述的内容主要包括:基本数据类型、接口、类、随机化、约束、进程同步、功能覆盖和DPI技术。书中使用了约270个完整实例,详细说明了每个知识点在实际项目中的应用。最后使用学过的验证技术搭建一个基于SystemVerilog的简单验证平台。书中还介绍了UVM中的一些关键技术,主要包括:继承和派生,拷贝函数、单例类、测试登记表、代理类和工厂机制。为接下来系统学习UVM验证方法学打下坚实的基础。 为了方便读者学习和练习,本书的配套资源中提供了书中全部完整实例。第9章是本书的精华内容,这一章仿照UVM的工作过程,从零开始逐步搭建出一个支持工厂机制、带有覆盖收集和回调功能的受约束测试平台。读者通过反复阅读、改写和调试这个测试平台,可以更全面地理解面向对象编程的关键技术和UVM的常用机制。 本书适合作为高等院校集成电路、微电子、计算机相关专业的教材,同时适用于具有一定Verilog编程基础的人员参考使用,也可以作为数字集成电路验证工程师的语法参考手册。 目录 前言 第1章 验证导论 1.1 芯片设计流程 1.2 功能验证与测试平台 1.3 验证流程 1.4 验证语言和验证方法学 1.5 定向测试和受约束随机测试 1.6 层次化测试平台 1.7 层次化测试平台的执行 1.8 练习题 第2章 测试平台和数据类型 2.1 测试平台 2.1.1 被测设计 2.1.2 测试模块 2.1.3 测试平台顶层模块 2.2 基本数据类型 2.2.1 reg和wire类型 2.2.2 四值logic类型 2.2.3 二值数据类型 2.2.4 常量和字符串 2.3 时间值 2.3.1 时间常量 2.3.2 时间变量 2.4 压缩和非压缩数组 2.4.1 压缩数组 2.4.2 非压缩数组 2.4.3 数组直接量 2.4.4 数组的遍历 2.4.5 数组的赋值和比较 2.5 动态数组 2.6 关联数组 2.7 队列 2.8 数组的内置方法 2.8.1 数组缩减方法 2.8.2 数组定位方法 2.8.3 数组排序方法 2.9 自定义数据类型 2.10 结构和联合 2.10.1 结构 2.10.2 联合 2.11 枚举 2.11.1 定义枚举类型 2.11.2 枚举的方法 2.11.3 枚举变量和类型转换 2.12 流操作符 2.13 包 2.14 练习题 第3章 结构化过程 3.1 initial和always过程 3.2 运算符和过程语句 3.3 任务和函数 3.3.1 任务和函数的特点 3.3.2 例程声明的简化 3.3.3 例程参数的引用传递 3.3.4 例程参数的默认值 3.4 静态例程和自动例程 3.5 练习题 第4章 接口和断言 4.1 接口的定义和使用 4.1.1 使用接口简化连接 4.1.2 modport 4.2 同步信号的驱动与采样 4.2.1 时钟块 4.2.2 时钟偏移 4.2.3 采样同步输入信号 4.2.4 驱动同步输出信号 4.2.5 接口信号同步 4.2.6 接口中的双向信号 4.3 断言 …… 第5章 面向对象编程 第6章 随机化 第7章 进程间通信 第8章 功能覆盖 第9章 编写层次化测试平台 第10章 直接编程接口 附录 测试平台Makefile 参考文献 |