本书是介绍SystemVerilog(Verilog-2005)的实用图书。书中深入浅出地介绍SystemVerilog相比于Verilog新增加的特性,包括新的数据类型、操作符、过程块语句以及适于SoC设计的接口结构,这些新增加的特性大大提高Verilog的高层抽象能力,弥补Verilog底层描述能力强但系统级描述能力弱的缺点。为了进一步说明这些新的数据类型、操作符和过程语句,本书对Verilog语句中的数据类型、操作符以及过程语句的仿真行为进行深入的分析,以便于读者加深对Verilog的理解。此外,本书还介绍Sys-temVerilog增加的一些系统连接描述方法,相对于Verilog-2001,这些方法可以进一步简化系统连接,提高设计效率。本书提供许多代码例子,这些例子可以从网上下载,有助于读者对SystemVerilog的学习。
本书可供具有一定Verilog基础的电路设计工程技术人员使用,同时可作为高等院校相关专业学生参考书。
样章试读
目录
- 第1章 SystemVerilog介绍
1.1 SystemVerilog起源
1.2 SystemVerilog针对硬件设计的关键增强
1.3 小结
第2章 SystemVerilog声明的位置
2.1 包(package)
2.2 $unit编译单元声明
2.3 未命名语句块中的声明
2.4 仿真时间单位和精度
2.5 小结
第3章 SystemVerilog文本值和数据类型
3.1 加强的文本值赋值
3.2 `define增强
3.3 SystemVerilog变量
3.4 在RTL模型中使用两态类型
3.5 数据类型规则的放宽
3.6 有符号和无符号修饰符
3.7 静态和自动变量
3.8 变量初始化的确定性
3.9 强制类型转换
3.10 常数
3.11 小结
第4章 用户自定义和枚举数据类型
4.1 用户自定义类型
4.2 枚举数据类型
4.3 小结
第5章 数组、结构体和联合体
5.1 结构体
5.2 联合体
5.3 数组
5.4 foreach数组循环结构体
5.5 用于数组查询的系统函数
5.6 $bits位宽系统函数
5.7 动态数组、联合数组、稀疏数组和字符串
5.8 小结
第6章 SystemVerilog过程块、任务和函数
6.1 Verilog通用目的always过程块
6.2 SystemVerilog特有的过程块
6.3 对任务和函数的改进
6.4 小结
第7章 过程语句
7.1 新操作符
7.2 操作数改进
7.3 改进的for循环
7.4 底部检测的do…while循环
7.5 foreach数组循环结构
7.6 新的跳转语句——break、continue、return
7.7 改进的块名
7.8 语句标号
7.9 改进的case语句
7.10 改进的if…else判断语句
7.11 小结
第8章 有限状态机建模
8.1 使用枚举类型建立状态机模型
8.2 在FSM模型中使用两态数据类型
8.3 小结
第9章 层次化设计
9.1 模块原型
9.2 命名的结束语句
9.3 嵌套(局部)模块的声明
9.4 简化的模块实例网表
9.5 线网别名化
9.6 在模块端口间传递数值
9.7 端口引用
9.8 增强的端口声明
9.9 参数化类型
9.10 小结
第10章 接口
10.1 接口的概念
10.2 接口声明
10.3 将接口用作模块端口
10.4 接口的实例化和连接
10.5 接口内部信号的引用
10.6 接口的modport
10.7 在接口中使用任务和函数
10.8 接口中的过程块
10.9 可重构接口
10.10 接口验证
10.11 小结
第11章 一个完整设计的建模
11.1 ATM实例
11.2 数据抽象
11.3 接口封装
11.4 设计顶层模块:squat
11.5 接收机和发射机
11.6 测试平台
11.7 小结
第12章 行为级和交易级建模
12.1 行为建模
12.2 什么是交易
12.3 SystemVerilog的交易级建模
12.4 使用接口的交易级建模
12.5 总线仲裁
12.6 交易器、适配器和总线功能模型
12.7 更复杂的交易
12.8 小结
附录A SystemVerilog形式定义(BNF)
附录B Verilog和SystemVerilog保留关键字
附录C SUPERLOG的历史,即SystemVerilog的开端