Verilog HDL数字系统设计及仿真(含DVD光盘1张) / 工程设计与分析系列
¥65.00定价
作者: 于斌
出版时间:2014-03
出版社:电子工业出版社
- 电子工业出版社
- 9787121222849
- 1-1
- 124298
- 47151520-5
- 平装
- 16开
- 2014-03
- 725
- 456
- 工学
- 软件工程
- TP312VH
- 电子科学与技术
- 本科 研究生(硕士、EMBA、MBA、MPA、博士)
内容简介
Verilog HDL是一种使用广泛的硬件描述语言,目前在国内无论是集成电路还是嵌入式设计的相关专业郜会使用到这种硬件描述语言。
市面上介绍Verilog HDL的教材非常广泛,各有不同的偏重。于斌编著的《Verilog HDL数字系统设计及仿真(附光盘)》着重从设计角度入手,每章都力求让读者掌握一种设计方法,能够利用本章知识进行完整的设计,从模块的角度逐步完成对Verilog HDL语法的学习,从而在整体上掌握Verilog HDL语法。
为了达到这个目的,每章中都会给出使用本章知识完成的实例,按照门级、数据流级、行为级、任务和函数、测试模块、可综合设计和完整实例的顺序向读者介绍Verilog HDL的语法和使用方式。书中出现的所有代码均经过仿真,力求准确,配书光盘中有书中所有实例源文件和实例操作的视频讲解。
《Verilog HDL数字系统设计及仿真(附光盘)》可作为电子、通信、计算机及集成电路设计相关专业的本科生的教材,同时也适合对Verilog HDL感兴趣的爱好者或专业人士阅读。
市面上介绍Verilog HDL的教材非常广泛,各有不同的偏重。于斌编著的《Verilog HDL数字系统设计及仿真(附光盘)》着重从设计角度入手,每章都力求让读者掌握一种设计方法,能够利用本章知识进行完整的设计,从模块的角度逐步完成对Verilog HDL语法的学习,从而在整体上掌握Verilog HDL语法。
为了达到这个目的,每章中都会给出使用本章知识完成的实例,按照门级、数据流级、行为级、任务和函数、测试模块、可综合设计和完整实例的顺序向读者介绍Verilog HDL的语法和使用方式。书中出现的所有代码均经过仿真,力求准确,配书光盘中有书中所有实例源文件和实例操作的视频讲解。
《Verilog HDL数字系统设计及仿真(附光盘)》可作为电子、通信、计算机及集成电路设计相关专业的本科生的教材,同时也适合对Verilog HDL感兴趣的爱好者或专业人士阅读。
目录
第1章 Verilog HDL入门简介\t1
1.1 从数字电路讲开来\t1
1.2 设计一个七进制计数器\t2
1.3 Verilog HDL建模\t4
1.4 集成电路设计流程简介\t6
1.5 编写测试代码并仿真\t7
1.6 两种硬件描述语言\t9
第2章 Verilog HDL门级建模\t10
2.1 门级建模范例\t10
2.2 门级建模基本语法\t12
2.2.1 模块定义\t12
2.2.2 端口声明\t13
2.2.3 门级调用\t15
2.2.4 模块实例化\t19
2.2.5 内部连线声明\t21
2.3 MOS开关\t22
2.4 用户自定义原语UDP\t25
2.4.1 UDP基本规则\t25
2.4.2 组合电路UDP\t26
2.4.3 时序电路UDP\t29
2.5 层次化设计\t31
2.6 应用实例\t32
实例2-1——4位全加器的门级建模\t32
实例2-2——2-4译码器的门级建模\t35
实例2-3——主从D触发器的门级建模\t36
实例2-4——1位比较器的门级建模\t38
2.7 习题\t39
第3章 Verilog HDL数据流级建模\t41
3.1 数据流级建模范例\t41
3.2 数据流级建模基本语法\t42
3.3 操作数\t43
3.3.1 数字\t43
3.3.2 参数\t45
3.3.3 线网\t47
3.3.4 寄存器\t48
3.3.5 时间\t49
3.4 操作符\t49
3.4.1 算术操作符\t49
3.4.2 按位操作符\t49
3.4.3 逻辑操作符\t50
3.4.4 关系操作符\t51
3.4.5 等式操作符\t52
3.4.6 移位操作符\t52
3.4.7 拼接操作符\t53
3.4.8 缩减操作符\t53
3.4.9 条件操作符\t53
3.4.10 操作符优先级\t54
3.5 应用实例\t56
实例3-1——四位全加器的数据流建模\t56
实例3-2——主从D触发器的数据流建模\t58
实例3-3——4位比较器的数据流建模\t59
3.6 习题\t60
第4章 Verilog HDL行为级建模\t61
4.1 行为级建模范例\t61
4.2 initial结构和always结构\t64
4.2.1 initial结构\t64
4.2.2 always结构\t66
4.3 顺序块和并行块\t69
4.3.1 顺序块\t69
4.3.2 并行块\t70
4.3.3 块的嵌套\t72
4.3.4 块的命名与禁用\t72
4.4 if语句\t73
4.5 case语句\t76
4.6 循环语句\t78
4.6.1 while循环\t78
4.6.2 for循环\t79
4.6.3 repeat循环\t80
4.6.4 forever循环\t80
4.7 过程性赋值语句\t81
4.7.1 阻塞性赋值语句\t81
4.7.2 非阻塞性赋值语句\t81
4.8 应用实例\t83
实例4-1——4位全加器的行为级建模\t83
实例4-2——简易ALU电路的行为级建模\t84
实例4-3——下降沿触发D触发器的行为级建模\t86
4.9 习题\t87
第5章 任务、函数与编译指令\t88
5.1 任务\t88
5.1.1 任务的声明和调用\t89
5.1.2 自动任务\t91
5.2 函数\t93
5.2.1 函数的声明和调用\t94
5.2.2 自动函数\t96
5.2.3 常量函数\t97
5.2.4 任务与函数的比较\t98
5.3 系统任务和系统函数\t98
5.3.1 显示任务$display和$write\t98
5.3.2 探测任务$strobe\t101
5.3.3 监视任务$monitor\t101
5.3.4 仿真控制任务$stop和$finish\t103
5.3.5 仿真时间函数$time\t103
5.3.6 随机函数$random\t104
5.3.7 文件控制任务\t105
5.3.8 时间检验任务\t109
5.3.9 值变转储任务\t109
5.4 编译指令\t112
5.4.1 `define\t112
5.4.2 `include\t113
5.4.3 `timescale\t115
5.4.4 `ifdef、`else和`endif\t117
5.5 完整的module参考模型\t118
5.6 应用实例\t119
实例5-1——信号同步任务\t119
实例5-2——阶乘任务\t120
实例5-3——可控移位函数\t121
实例5-4——偶校验任务\t123
实例5-5——算术逻辑函数\t124
5.7 习题\t125
第6章 Verilog HDL测试模块\t127
6.1 测试模块范例\t127
6.2 时钟信号\t129
6.3 复位信号\t131
6.4 测试向量\t133
6.5 响应监控\t135
6.6 仿真中对信号的控制\t138
6.7 代码覆盖\t140
6.8 应用实例\t141
实例6-1——组合逻辑的测试模块\t141
实例6-2——时序逻辑的测试模块\t143
实例6-3——除法器的测试模块\t146
6.9 习题\t149
第7章 可综合模型设计\t150
7.1 逻辑综合过程\t150
7.2 延迟\t153
7.3 再谈阻塞赋值与非阻塞赋值\t162
7.4 可综合语法\t169
7.5 代码风格\t170
7.5.1 多重驱动问题\t170
7.5.2 敏感列表不完整\t171
7.5.3 if与else不成对出现\t171
7.5.4 case语句缺少default\t172
7.5.5 组合和时序混合设计\t172
7.5.6 逻辑简化\t173
7.5.7 流水线思想\t174
7.6 应用实例\t177
实例7-1——SR锁存器延迟模型\t177
实例7-2——超前进位加法器\t179
实例7-3——移位除法器模型\t182
7.7 习题\t187
第8章 有限状态机的设计\t188
8.1 有限状态机简介\t188
8.2 两种红绿灯电路的状态机模型\t189
8.2.1 moore型红绿灯\t189
8.2.2 mealy型红绿灯\t194
8.3 深入理解状态机\t196
8.3.1 一段式状态机\t197
8.3.2 两段式状态机\t201
8.3.3 三段式状态机\t203
8.3.4 状态编码的选择\t211
8.4 应用实例\t212
实例8-1——独热码状态机\t212
实例8-2——格雷码状态机\t216
8.5 习题\t220
第9章 常见功能电路的HDL模型\t221
9.1 锁存器与触发器\t221
9.2 编码器与译码器\t229
9.3 寄存器\t232
9.4 计数器\t237
9.5 分频器\t241
9.6 乘法器\t247
9.7 存储单元\t255
9.8 习题\t259
第10章 完整的设计实例\t260
10.1 异步FIFO\t260
10.1.1 异步FIFO的介绍与整体结构\t260
10.1.2 亚稳态的处理\t262
10.1.3 空满状态的判断\t263
10.1.4 子模块设计\t266
10.1.5 整体仿真结果\t274
10.2 三角函数计算器\t277
10.2.1 设计要求的提出\t277
10.2.2 数据格式\t277
10.2.3 算法的选择与原理结构\t278
10.2.4 确定总体模块\t281
10.2.5 内部结构的划分\t281
10.2.6 分频器模块\t283
10.2.7 控制模块\t283
10.2.8 迭代设计模块\t288
10.2.9 功能仿真与时序仿真\t302
10.3 简易CPU模型\t305
10.3.1 教学模型的要求\t305
10.3.2 指令格式的确定\t306
10.3.3 整体结构划分\t307
10.3.4 控制模块设计\t308
10.3.5 其余子模块设计\t313
10.3.6 功能仿真与时序仿真\t317
第11章 实验\t321
实验一 简单组合逻辑电路设计\t321
实验二 行为级模型设计\t328
实验三 任务与函数的设计\t335
实验四 流水线的使用\t339
实验五 信号发生器设计\t344
实验六 有限状态机的设计\t350
第12章 课程设计\t356
选题一——出租车计费器\t356
选题二——智力抢答器\t362
1.1 从数字电路讲开来\t1
1.2 设计一个七进制计数器\t2
1.3 Verilog HDL建模\t4
1.4 集成电路设计流程简介\t6
1.5 编写测试代码并仿真\t7
1.6 两种硬件描述语言\t9
第2章 Verilog HDL门级建模\t10
2.1 门级建模范例\t10
2.2 门级建模基本语法\t12
2.2.1 模块定义\t12
2.2.2 端口声明\t13
2.2.3 门级调用\t15
2.2.4 模块实例化\t19
2.2.5 内部连线声明\t21
2.3 MOS开关\t22
2.4 用户自定义原语UDP\t25
2.4.1 UDP基本规则\t25
2.4.2 组合电路UDP\t26
2.4.3 时序电路UDP\t29
2.5 层次化设计\t31
2.6 应用实例\t32
实例2-1——4位全加器的门级建模\t32
实例2-2——2-4译码器的门级建模\t35
实例2-3——主从D触发器的门级建模\t36
实例2-4——1位比较器的门级建模\t38
2.7 习题\t39
第3章 Verilog HDL数据流级建模\t41
3.1 数据流级建模范例\t41
3.2 数据流级建模基本语法\t42
3.3 操作数\t43
3.3.1 数字\t43
3.3.2 参数\t45
3.3.3 线网\t47
3.3.4 寄存器\t48
3.3.5 时间\t49
3.4 操作符\t49
3.4.1 算术操作符\t49
3.4.2 按位操作符\t49
3.4.3 逻辑操作符\t50
3.4.4 关系操作符\t51
3.4.5 等式操作符\t52
3.4.6 移位操作符\t52
3.4.7 拼接操作符\t53
3.4.8 缩减操作符\t53
3.4.9 条件操作符\t53
3.4.10 操作符优先级\t54
3.5 应用实例\t56
实例3-1——四位全加器的数据流建模\t56
实例3-2——主从D触发器的数据流建模\t58
实例3-3——4位比较器的数据流建模\t59
3.6 习题\t60
第4章 Verilog HDL行为级建模\t61
4.1 行为级建模范例\t61
4.2 initial结构和always结构\t64
4.2.1 initial结构\t64
4.2.2 always结构\t66
4.3 顺序块和并行块\t69
4.3.1 顺序块\t69
4.3.2 并行块\t70
4.3.3 块的嵌套\t72
4.3.4 块的命名与禁用\t72
4.4 if语句\t73
4.5 case语句\t76
4.6 循环语句\t78
4.6.1 while循环\t78
4.6.2 for循环\t79
4.6.3 repeat循环\t80
4.6.4 forever循环\t80
4.7 过程性赋值语句\t81
4.7.1 阻塞性赋值语句\t81
4.7.2 非阻塞性赋值语句\t81
4.8 应用实例\t83
实例4-1——4位全加器的行为级建模\t83
实例4-2——简易ALU电路的行为级建模\t84
实例4-3——下降沿触发D触发器的行为级建模\t86
4.9 习题\t87
第5章 任务、函数与编译指令\t88
5.1 任务\t88
5.1.1 任务的声明和调用\t89
5.1.2 自动任务\t91
5.2 函数\t93
5.2.1 函数的声明和调用\t94
5.2.2 自动函数\t96
5.2.3 常量函数\t97
5.2.4 任务与函数的比较\t98
5.3 系统任务和系统函数\t98
5.3.1 显示任务$display和$write\t98
5.3.2 探测任务$strobe\t101
5.3.3 监视任务$monitor\t101
5.3.4 仿真控制任务$stop和$finish\t103
5.3.5 仿真时间函数$time\t103
5.3.6 随机函数$random\t104
5.3.7 文件控制任务\t105
5.3.8 时间检验任务\t109
5.3.9 值变转储任务\t109
5.4 编译指令\t112
5.4.1 `define\t112
5.4.2 `include\t113
5.4.3 `timescale\t115
5.4.4 `ifdef、`else和`endif\t117
5.5 完整的module参考模型\t118
5.6 应用实例\t119
实例5-1——信号同步任务\t119
实例5-2——阶乘任务\t120
实例5-3——可控移位函数\t121
实例5-4——偶校验任务\t123
实例5-5——算术逻辑函数\t124
5.7 习题\t125
第6章 Verilog HDL测试模块\t127
6.1 测试模块范例\t127
6.2 时钟信号\t129
6.3 复位信号\t131
6.4 测试向量\t133
6.5 响应监控\t135
6.6 仿真中对信号的控制\t138
6.7 代码覆盖\t140
6.8 应用实例\t141
实例6-1——组合逻辑的测试模块\t141
实例6-2——时序逻辑的测试模块\t143
实例6-3——除法器的测试模块\t146
6.9 习题\t149
第7章 可综合模型设计\t150
7.1 逻辑综合过程\t150
7.2 延迟\t153
7.3 再谈阻塞赋值与非阻塞赋值\t162
7.4 可综合语法\t169
7.5 代码风格\t170
7.5.1 多重驱动问题\t170
7.5.2 敏感列表不完整\t171
7.5.3 if与else不成对出现\t171
7.5.4 case语句缺少default\t172
7.5.5 组合和时序混合设计\t172
7.5.6 逻辑简化\t173
7.5.7 流水线思想\t174
7.6 应用实例\t177
实例7-1——SR锁存器延迟模型\t177
实例7-2——超前进位加法器\t179
实例7-3——移位除法器模型\t182
7.7 习题\t187
第8章 有限状态机的设计\t188
8.1 有限状态机简介\t188
8.2 两种红绿灯电路的状态机模型\t189
8.2.1 moore型红绿灯\t189
8.2.2 mealy型红绿灯\t194
8.3 深入理解状态机\t196
8.3.1 一段式状态机\t197
8.3.2 两段式状态机\t201
8.3.3 三段式状态机\t203
8.3.4 状态编码的选择\t211
8.4 应用实例\t212
实例8-1——独热码状态机\t212
实例8-2——格雷码状态机\t216
8.5 习题\t220
第9章 常见功能电路的HDL模型\t221
9.1 锁存器与触发器\t221
9.2 编码器与译码器\t229
9.3 寄存器\t232
9.4 计数器\t237
9.5 分频器\t241
9.6 乘法器\t247
9.7 存储单元\t255
9.8 习题\t259
第10章 完整的设计实例\t260
10.1 异步FIFO\t260
10.1.1 异步FIFO的介绍与整体结构\t260
10.1.2 亚稳态的处理\t262
10.1.3 空满状态的判断\t263
10.1.4 子模块设计\t266
10.1.5 整体仿真结果\t274
10.2 三角函数计算器\t277
10.2.1 设计要求的提出\t277
10.2.2 数据格式\t277
10.2.3 算法的选择与原理结构\t278
10.2.4 确定总体模块\t281
10.2.5 内部结构的划分\t281
10.2.6 分频器模块\t283
10.2.7 控制模块\t283
10.2.8 迭代设计模块\t288
10.2.9 功能仿真与时序仿真\t302
10.3 简易CPU模型\t305
10.3.1 教学模型的要求\t305
10.3.2 指令格式的确定\t306
10.3.3 整体结构划分\t307
10.3.4 控制模块设计\t308
10.3.5 其余子模块设计\t313
10.3.6 功能仿真与时序仿真\t317
第11章 实验\t321
实验一 简单组合逻辑电路设计\t321
实验二 行为级模型设计\t328
实验三 任务与函数的设计\t335
实验四 流水线的使用\t339
实验五 信号发生器设计\t344
实验六 有限状态机的设计\t350
第12章 课程设计\t356
选题一——出租车计费器\t356
选题二——智力抢答器\t362