第1章 Verilog HDL入门简介 1
1.1 集成电路设计流程简介 1
1.2 数字电路设计范例 3
1.3 Verilog HDL建模范例 5
1.4 两种硬件描述语言 9
第2章 Verilog HDL门级建模 10
2.1 门级建模范例 10
2.2 门级建模基本语法 12
2.2.1 模块定义 12
2.2.2 端口声明 13
2.2.3 门级调用 14
2.2.4 模块实例化 17
2.2.5 内部连线声明 20
2.3 MOS开关与UDP 21
2.4 层次化设计 22
2.5 应用实例 22
实例2-1——4位全加器的门级建模 22
实例2-2——2-4译码器的门级建模 25
实例2-3——主从D触发器的门级建模 27
实例2-4——1位比较器的门级建模 28
2.6 习题 30
第3章 Verilog HDL数据流级建模 31
3.1 数据流级建模范例 31
3.2 数据流级建模基本语法 32
3.3 操作数 33
3.3.1 数字 33
3.3.2 参数 35
3.3.3 线网 37
3.3.4 寄存器 38
3.4 操作符 39
3.4.1 算术操作符 39
3.4.2 按位操作符 39
3.4.3 逻辑操作符 40
3.4.4 关系操作符 41
3.4.5 等式操作符 41
3.4.6 移位操作符 42
3.4.7 拼接操作符 42
3.4.8 缩减操作符 43
3.4.9 条件操作符 43
3.4.10 操作符优先级 44
3.5 应用实例 45
实例3-1——4位全加器的数据流级建模 45
实例3-2——2-4译码器的数据流级建模 47
实例3-3——主从D触发器的数据流级建模 49
实例3-4-——4位比较器的数据流级建模 50
3.6 习题 51
第4章 Verilog HDL行为级建模 53
4.1 行为级建模范例 53
4.2 initial结构和always结构 56
4.2.1 initial结构 56
4.2.2 always结构 58
4.3 顺序块和并行块 61
4.3.1 顺序块 61
4.3.2 并行块 62
4.3.3 块的嵌套 63
4.4 if语句 64
4.5 case语句 67
4.6 循环语句 69
4.6.1 while循环 69
4.6.2 for循环 70
4.6.3 repeat循环 71
4.6.4 forever循环 71
4.7 过程性赋值语句 72
4.7.1 阻塞性赋值语句 72
4.7.2 非阻塞性赋值语句 72
4.8 应用实例 74
实例4-1——4位全加器的行为级建模 74
实例4-2——简易ALU电路的行为级建模 75
实例4-3——下降沿触发D触发器的行为级建模 77
实例4-4——十进制计数器的行为级建模 78
4.9 习题 80
第5章 任务、函数与编译指令 81
5.1 任务 81
5.1.1 任务的声明和调用 82
5.1.2 自动任务 84
5.2 函数 86
5.2.1 函数的声明和调用 87
5.2.2 任务与函数的比较 89
5.3 系统任务和系统函数 89
5.3.1 显示任务 90
5.3.2 监视任务 93
5.3.3 仿真控制任务 94
5.3.4 随机函数 95
5.3.5 文件控制任务 96
5.3.6 值变转储任务 100
5.4 编译指令 102
5.4.1 define 102
5.4.2 include 104
5.4.3 timescale 105
5.5 完整的module参考模型 108
5.6 应用实例 109
实例5-1——信号同步任务 109
实例5-2——阶乘任务 110
实例5-3——可控移位函数 111
实例5-4——偶校验任务 112
实例5-5——算术逻辑函数 114
5.7 习题 115
第6章 Verilog HDL测试模块 117
6.1 测试模块范例 117
6.2 时钟信号 119
6.3 复位信号 120
6.4 测试向量 122
6.5 响应监控 123
6.6 仿真中对信号的控制 127
6.7 代码覆盖 129
6.8 应用实例 130
实例6-1——组合逻辑的测试模块 130
实例6-2——时序逻辑的测试模块 132
实例6-3——除法器的测试模块 135
6.9 习题 138
第7章 可综合模型设计 139
7.1 逻辑综合过程 139
7.2 延迟 142
7.3 再谈阻塞赋值与非阻塞赋值 148
7.4 可综合语法 155
7.5 代码风格 157
7.5.1 多重驱动问题 157
7.5.2 敏感列表不完整 158
7.5.3 分支情况不全 158
7.5.4 组合和时序混合设计 159
7.5.5 逻辑简化 160
7.5.6 流水线思想 160
7.6 应用实例 164
实例7-1——SR锁存器延迟模型 164
实例7-2——超前进位加法器 165
实例7-3——移位除法器模型 169
7.7 习题 174
第8章 有限状态机设计 175
8.1 有限状态机简介 175
8.2 两种红绿灯电路的状态机模型 176
8.2.1 moore型红绿灯 176
8.2.2 mealy型红绿灯 181
8.3 深入理解状态机 183
8.3.1 一段式状态机 184
8.3.2 两段式状态机 188
8.3.3 三段式状态机 190
8.3.4 状态编码的选择 198
8.4 应用实例 199
实例8-1——独热码状态机 199
实例8-2——格雷码状态机 203
实例8-3——序列检测模块 207
8.5 习题 211
第9章 常见功能电路的HDL模型 212
9.1 锁存器与触发器 212
9.2 编码器与译码器 220
9.3 寄存器 223
9.4 计数器 228
9.5 分频器 232
9.6 乘法器 238
9.7 存储单元 246
9.8 习题 250
第10章 完整的设计实例 251
10.1 异步FIFO 251
10.1.1 异步FIFO的介绍与整体结构 251
10.1.2 亚稳态的处理 253
10.1.3 空满状态的判断 254
10.1.4 子模块设计 257
10.1.5 整体仿真结果 265
10.2 三角函数计算器 268
10.2.1 设计要求的提出 268
10.2.2 数据格式 268
10.2.3 算法的选择与原理结构 269
10.2.4 确定总体模块 272
10.2.5 内部结构的划分 272
10.2.6 分频器模块 274
10.2.7 控制模块 274
10.2.8 迭代设计模块 279
10.2.9 功能仿真与时序仿真 293
10.3 简易CPU模型 296
10.3.1 教学模型的要求 296
10.3.2 指令格式的确定 297
10.3.3 整体结构划分 298
10.3.4 控制模块设计 299
10.3.5 其余子模块设计 304
10.3.6 功能仿真与时序仿真 308
第11章 实验 312
实验一 简单组合逻辑电路设计(学生版) 312
实验一 辅导版 314
实验二 行为级模型设计(学生版) 319
实验二 辅导版 321
实验三 利用FPGA验证设计功能(学生版) 326
实验三 辅导版 327
实验四 任务与函数的设计(学生版) 332
实验四 辅导版 334
实验五 流水线的使用(学生版) 337
实验五 辅导版 339
实验六 信号发生器设计(学生版) 342
实验六 辅导版 344
实验七 有限状态机的设计(学生版) 347
实验七 辅导版 348
第12章 课程设计 356
选题一 出租车计费器 356
选题二 智力抢答器 362
选题三 点阵显示 369
选题四 自动售货机 373
选题五 篮球24秒计时 379
选题六 乒乓球游戏电路 384
选题七 CRC检测 398
选题八 堆栈设计 404
选题九 数字闹钟 410
选题十 汉明码编译码器 418
附录A 课程测试样卷 424
附录B 习题及样卷答案 429