Verilog HDL数字集成电路设计原理与应用(第三版)
¥57.00定价
作者: 汤华莲
出版时间:2024-08
出版社:西安电子科技大学出版社
“十二五”普通高等教育本科国家级规划教材
- 西安电子科技大学出版社
- 9787560667843
- 3-1
- 531108
- 16开
- 2024-08
- 自动化技术、计算机技术
- 本科
目录
第1章 Verilog HDL数字集成电路
设计方法概述 1
1.1 数字集成电路的发展和
设计方法的演变 1
1.2 硬件描述语言 3
1.3 功能模块的可重用性与IP核 5
1.4 Verilog HDL的发展和国际标准 6
1.5 Verilog HDL在数字集成电路
设计中的优点 8
1.6 Verilog HDL在数字集成电路
设计流程中的作用 10
本章小结 11
思考题和习题 11
第2章 Verilog HDL基础知识 12
2.1 Verilog HDL的语言要素 12
2.1.1 符号 12
2.1.2 数据类型 16
2.1.3 运算符 22
2.2 模块 30
2.3 端口 31
本章小结 32
思考题和习题 32
第3章 Verilog HDL程序设计
语句和描述方式 34
3.1 数据流建模 34
3.2 行为级建模 36
3.2.1 过程语句 37
3.2.2 语句块 40
3.2.3 过程赋值语句 42
3.2.4 过程连续赋值语句 45
3.2.5 条件分支语句 47
3.2.6 循环语句 52
3.3 结构化建模 55
3.3.1 模块级建模 56
3.3.2 门级建模 63
3.3.3 开关级建模 65
本章小结 67
思考题和习题 67
第4章 Verilog HDL数字逻辑电路
设计方法 70
4.1 Verilog HDL的设计思想和
可综合特性 70
4.2 组合电路的设计 74
4.2.1 数字加法器 77
4.2.2 数据比较器 79
4.2.3 数据选择器 81
4.2.4 数字编码器 82
4.2.5 数字译码器 87
4.2.6 奇偶校验器 88
4.3 时序电路的设计 90
4.3.1 触发器 96
4.3.2 计数器 98
4.3.3 移位寄存器 99
4.3.4 序列信号发生器 100
4.4 有限同步状态机 104
本章小结 114
思考题和习题 114
第5章 仿真验证与Testbench编写 117
5.1 Verilog HDL电路仿真和验证概述 117
5.2 Verilog HDL测试程序设计基础 120
5.2.1 Testbench及其结构 120
5.2.2 测试平台举例 123
5.2.3 Verilog HDL仿真结果确认 125
5.2.4 Verilog HDL仿真效率 127
5.3 与仿真相关的系统任务 128
5.3.1 $display和 $write 128
5.3.2 $monitor和 $strobe 130
5.3.3 $time和 $realtime 132
5.3.4 $finish和 $stop 134
5.3.5 $readmemb和 $readmemh 135
5.3.6 $random 137
5.4 信号时间赋值语句 137
5.4.1 时间延迟的语法说明 138
5.4.2 时间延迟的描述形式 139
5.4.3 边沿触发事件控制 143
5.4.4 电平敏感事件控制 146
5.5 任务和函数 147
5.5.1 任务 148
5.5.2 函数 152
5.5.3 任务与函数的区别 155
5.6 典型测试向量的设计 156
5.6.1 变量初始化 156
5.6.2 数据信号测试向量的产生 156
5.6.3 时钟信号测试向量的产生 157
5.6.4 数据的同步产生和输出 160
5.6.5 数据缓存的应用 160
5.6.6 总线信号测试向量的产生 161
5.7 基本门级元件和模块的延时建模 163
5.7.1 门级延时建模 163
5.7.2 模块延时建模 167
5.7.3 与时序检查相关的系统任务 170
5.8 编译预处理语句 171
5.8.1 宏定义 172
5.8.2 文件包含处理 173
5.8.3 仿真时间标度 174
5.8.4 条件编译 175
5.8.5 其他语句 176
本章小结 177
思考题和习题 177
第6章 Verilog HDL高级程序
设计举例 181
6.1 数字电路系统设计的层次化
描述方法 181
6.2 典型电路设计 185
6.2.1 加法器树乘法器 185
6.2.2 Wallace树乘法器 188
6.2.3 复数乘法器 191
6.2.4 FIR滤波器的设计 192
6.2.5 片内存储器的设计 196
6.2.6 FIFO设计 201
6.2.7 键盘扫描和编码器 205
6.2.8 log函数的Verilog HDL设计 212
6.3 总线控制器设计 215
6.3.1 UART接口控制器 216
6.3.2 SPI接口控制器 220
本章小结 223
思考题和习题 223
第7章 仿真测试工具和综合工具 225
7.1 数字集成电路设计流程简介 225
7.2 测试和仿真工具 228
7.2.1 ModelSim的使用 229
7.2.2 NC-Verilog的使用 239
7.3 综合工具 243
7.3.1 Synplify的使用 243
7.3.2 Design Compiler的使用 249
7.4 布局布线工具及后仿真 254
7.4.1 工具简介 254
7.4.2 布局布线 256
7.4.3 后仿真 260
7.4.4 添加仿真库 263
本章小结 265
思考题和习题 266
第8章 System Verilog设计与验证 267
8.1 概述 267
8.1.1 System Verilog语言的发展 267
8.1.2 System Verilog语言架构 268
8.2 System Verilog程序设计语句 270
8.2.1 数据类型 270
8.2.2 操作符 274
8.2.3 模块的定义及调用 275
8.2.4 过程块 276
8.2.5 分支语句 279
8.2.6 循环语句 281
8.2.7 任务和函数 282
8.2.8 包 283
8.2.9 接口 284
8.3 基于System Verilog的仿真验证 290
8.3.1 面向对象的编程 291
8.3.2 随机约束 297
8.3.3 覆盖率 301
8.3.4 System Verilog断言 313
8.4 System Verilog与C语言接口 327
8.4.1 DPI导入C函数和任务 327
8.4.2 DPI导出Verilog函数和任务 329
本章小结 331
思考题和习题 331
参考文献 332
设计方法概述 1
1.1 数字集成电路的发展和
设计方法的演变 1
1.2 硬件描述语言 3
1.3 功能模块的可重用性与IP核 5
1.4 Verilog HDL的发展和国际标准 6
1.5 Verilog HDL在数字集成电路
设计中的优点 8
1.6 Verilog HDL在数字集成电路
设计流程中的作用 10
本章小结 11
思考题和习题 11
第2章 Verilog HDL基础知识 12
2.1 Verilog HDL的语言要素 12
2.1.1 符号 12
2.1.2 数据类型 16
2.1.3 运算符 22
2.2 模块 30
2.3 端口 31
本章小结 32
思考题和习题 32
第3章 Verilog HDL程序设计
语句和描述方式 34
3.1 数据流建模 34
3.2 行为级建模 36
3.2.1 过程语句 37
3.2.2 语句块 40
3.2.3 过程赋值语句 42
3.2.4 过程连续赋值语句 45
3.2.5 条件分支语句 47
3.2.6 循环语句 52
3.3 结构化建模 55
3.3.1 模块级建模 56
3.3.2 门级建模 63
3.3.3 开关级建模 65
本章小结 67
思考题和习题 67
第4章 Verilog HDL数字逻辑电路
设计方法 70
4.1 Verilog HDL的设计思想和
可综合特性 70
4.2 组合电路的设计 74
4.2.1 数字加法器 77
4.2.2 数据比较器 79
4.2.3 数据选择器 81
4.2.4 数字编码器 82
4.2.5 数字译码器 87
4.2.6 奇偶校验器 88
4.3 时序电路的设计 90
4.3.1 触发器 96
4.3.2 计数器 98
4.3.3 移位寄存器 99
4.3.4 序列信号发生器 100
4.4 有限同步状态机 104
本章小结 114
思考题和习题 114
第5章 仿真验证与Testbench编写 117
5.1 Verilog HDL电路仿真和验证概述 117
5.2 Verilog HDL测试程序设计基础 120
5.2.1 Testbench及其结构 120
5.2.2 测试平台举例 123
5.2.3 Verilog HDL仿真结果确认 125
5.2.4 Verilog HDL仿真效率 127
5.3 与仿真相关的系统任务 128
5.3.1 $display和 $write 128
5.3.2 $monitor和 $strobe 130
5.3.3 $time和 $realtime 132
5.3.4 $finish和 $stop 134
5.3.5 $readmemb和 $readmemh 135
5.3.6 $random 137
5.4 信号时间赋值语句 137
5.4.1 时间延迟的语法说明 138
5.4.2 时间延迟的描述形式 139
5.4.3 边沿触发事件控制 143
5.4.4 电平敏感事件控制 146
5.5 任务和函数 147
5.5.1 任务 148
5.5.2 函数 152
5.5.3 任务与函数的区别 155
5.6 典型测试向量的设计 156
5.6.1 变量初始化 156
5.6.2 数据信号测试向量的产生 156
5.6.3 时钟信号测试向量的产生 157
5.6.4 数据的同步产生和输出 160
5.6.5 数据缓存的应用 160
5.6.6 总线信号测试向量的产生 161
5.7 基本门级元件和模块的延时建模 163
5.7.1 门级延时建模 163
5.7.2 模块延时建模 167
5.7.3 与时序检查相关的系统任务 170
5.8 编译预处理语句 171
5.8.1 宏定义 172
5.8.2 文件包含处理 173
5.8.3 仿真时间标度 174
5.8.4 条件编译 175
5.8.5 其他语句 176
本章小结 177
思考题和习题 177
第6章 Verilog HDL高级程序
设计举例 181
6.1 数字电路系统设计的层次化
描述方法 181
6.2 典型电路设计 185
6.2.1 加法器树乘法器 185
6.2.2 Wallace树乘法器 188
6.2.3 复数乘法器 191
6.2.4 FIR滤波器的设计 192
6.2.5 片内存储器的设计 196
6.2.6 FIFO设计 201
6.2.7 键盘扫描和编码器 205
6.2.8 log函数的Verilog HDL设计 212
6.3 总线控制器设计 215
6.3.1 UART接口控制器 216
6.3.2 SPI接口控制器 220
本章小结 223
思考题和习题 223
第7章 仿真测试工具和综合工具 225
7.1 数字集成电路设计流程简介 225
7.2 测试和仿真工具 228
7.2.1 ModelSim的使用 229
7.2.2 NC-Verilog的使用 239
7.3 综合工具 243
7.3.1 Synplify的使用 243
7.3.2 Design Compiler的使用 249
7.4 布局布线工具及后仿真 254
7.4.1 工具简介 254
7.4.2 布局布线 256
7.4.3 后仿真 260
7.4.4 添加仿真库 263
本章小结 265
思考题和习题 266
第8章 System Verilog设计与验证 267
8.1 概述 267
8.1.1 System Verilog语言的发展 267
8.1.2 System Verilog语言架构 268
8.2 System Verilog程序设计语句 270
8.2.1 数据类型 270
8.2.2 操作符 274
8.2.3 模块的定义及调用 275
8.2.4 过程块 276
8.2.5 分支语句 279
8.2.6 循环语句 281
8.2.7 任务和函数 282
8.2.8 包 283
8.2.9 接口 284
8.3 基于System Verilog的仿真验证 290
8.3.1 面向对象的编程 291
8.3.2 随机约束 297
8.3.3 覆盖率 301
8.3.4 System Verilog断言 313
8.4 System Verilog与C语言接口 327
8.4.1 DPI导入C函数和任务 327
8.4.2 DPI导出Verilog函数和任务 329
本章小结 331
思考题和习题 331
参考文献 332