第1章 Verilog HDL数字集成电路设计方法概述 1
1.1 数字集成电路的发展和设计方法的演变 1
1.2 硬件描述语言 3
1.3 Verilog HDL的发展和国际标准 3
1.4 Verilog HDL和VHDL 5
1.5 Verilog HDL在数字集成电路设计中的优点 7
1.6 功能模块的可重用性 9
1.7 IP核和知识产权保护 9
1.8 Verilog HDL在数字集成电路设计流程中的作用 10
本章小结 11
思考题和习题 11
第2章 Verilog HDL基础知识 13
2.1 Verilog HDL的语言要素 13
2.1.1 空白符 13
2.1.2 注释符 13
2.1.3 标识符和转义标识符 14
2.1.4 关键字 14
2.1.5 数值 15
2.2 数据类型 17
2.2.1 物理数据类型 18
2.2.2 连线型和寄存器型数据类型的声明 21
2.2.3 存储器型 22
2.2.4 抽象数据类型 22
2.3 运算符 24
2.3.1 算术运算符 24
2.3.2 关系运算符 25
2.3.3 相等关系运算符 26
2.3.4 逻辑运算符 27
2.3.5 按位运算符 27
2.3.6 归约运算符 28
2.3.7 移位运算符 29
2.3.8 条件运算符 30
2.3.9 连接和复制运算符 30
2.4 模块 31
2.4.1 模块的基本概念 31
2.4.2 端口 33
本章小结 33
思考题和习题 34
第3章 Verilog HDL程序设计语句和描述方式 35
3.1 数据流建模 35
3.2 行为级建模 37
3.2.1 过程语句 38
3.2.2 语句块 41
3.2.3 过程赋值语句 44
3.2.4 连续赋值语句 47
3.2.5 条件分支语句 49
3.2.6 循环语句 53
3.3 结构化建模 57
3.3.1 模块级建模 57
3.3.2 门级建模 64
3.3.3 开关级建模 66
本章小结 68
思考题和习题 68
第4章 Verilog HDL数字逻辑电路设计方法 71
4.1 Verilog HDL语言的设计思想和可综合特性 71
4.2 组合电路的设计 74
4.2.1 数字加法器 77
4.2.2 数据比较器 80
4.2.3 数据选择器 81
4.2.4 数字编码器 82
4.2.5 数字译码器 87
4.2.6 奇偶校验器 89
4.3 时序电路的设计 91
4.3.1 触发器 96
4.3.2 计数器 99
4.3.3 移位寄存器 100
4.3.4 序列信号发生器 101
4.4 有限同步状态机 105
本章小结 115
思考题和习题 115
第5章 仿真验证与Testbench编写 119
5.1 Verilog HDL电路仿真和验证概述 119
5.2 Verilog HDL测试程序设计基础 120
5.2.1 Testbench及其结构 120
5.2.2 测试平台举例 123
5.2.3 Verilog HDL仿真结果确认 126
5.2.4 Verilog HDL仿真效率 128
5.3 与仿真相关的系统任务 129
5.3.1 $display和$write 129
5.3.2 $monitor和$strobe 131
5.3.3 $time和$realtime 133
5.3.4 $finish和$stop 134
5.3.5 $readmemh和$readmemb 136
5.3.6 $random 137
5.3.7 值变转储文件系统任务 138
5.4 信号时间赋值语句 142
5.4.1 时间延迟的语法说明 142
5.4.2 时间延迟的描述形式 143
5.4.3 边沿触发事件控制 147
5.4.4 电平敏感事件控制 151
5.5 任务和函数 152
5.5.1 任务 152
5.5.2 函数 156
5.5.3 任务与函数的区别 159
5.6 典型测试向量的设计 160
5.6.1 变量初始化 160
5.6.2 数据信号测试向量的产生 161
5.6.3 时钟信号测试向量的产生 162
5.6.4 总线信号测试向量的产生 164
5.7 用户自定义元件模型 166
5.7.1 UDP的定义与调用 166
5.7.2 UDP应用实例 167
5.8 基本门级元件和模块的延迟建模 170
5.8.1 门级延迟建模 170
5.8.2 模块延迟建模 174
5.8.3 与时序检查相关的系统任务 177
5.9 编译预处理语句 178
5.9.1 宏定义 178
5.9.2 文件包含处理 180
5.9.3 仿真时间标度 181
5.9.4 条件编译 182
5.9.5 其它语句 183
5.10 Verilog HDL测试方法简介 183
本章小结 184
思考题和习题 184
第6章 Verilog HDL高级程序设计举例 188
6.1 数字电路系统设计的层次化描述方法 188
6.2 典型电路设计 192
6.2.1 加法器树乘法器 192
6.2.2 Wallace树乘法器 196
6.2.3 复数乘法器 198
6.2.4 FIR滤波器的设计 199
6.2.5 片内存储器的设计 203
6.2.6 FIFO设计 208
6.2.7 键盘扫描和编码器 212
6.2.8 log函数的Verilog HDL设计 219
6.2.9 CORDIC算法的Verilog HDL实现 223
6.3 总线控制器设计 231
6.3.1 UART接口控制器 231
6.3.2 SPI接口控制器 236
本章小结 240
思考题和习题 240
第7章 仿真测试工具和综合工具 242
7.1 数字集成电路设计流程简介 242
7.1.1 设计规范 242
7.1.2 设计划分 243
7.1.3 设计输入 243
7.1.4 仿真 243
7.1.5 综合 244
7.1.6 适配布线 244
7.1.7 时序分析 244
7.1.8 物理验证 245
7.1.9 设计结束 245
7.2 测试和仿真工具 245
7.2.1 ModelSim的使用 246
7.2.2 NC-Verilog的使用 254
7.3 综合工具 257
7.3.1 Synplify的使用 257
7.3.2 Design Compiler的使用 262
7.4 测试和综合举例 265
7.4.1 自动布局布线 265
7.4.2 后仿真 266
7.4.3 在ModelSim中加入仿真库 268
本章小结 270
思考题和习题 270
第8章 设计与验证语言的发展趋势 272
本章小结 276
思考题和习题 276
参考文献 277