EDA技术与Verilog HDL(第3版) / 高等院校电子信息科学与工程规划教材
¥52.00定价
作者: 潘松、陈龙等
出版时间:2017年12月
出版社:清华大学出版社
- 清华大学出版社
- 9787302486657
- 3-1
- 64146
- 45189462-0
- 平装
- 16开
- 2017年12月
- 554
- 工学
- 电子科学与技术
- TN702.2
- 程序设计
- 本专科
内容简介
本书系统地介绍了EDA技术和Verilog HDL硬件描述语言,将Verilog HDL的基础知识、编程技巧和实用方法与实际工程开发技术在先进的EDA设计平台——Quartus II上很好地结合起来,使读者通过本书的学习能迅速了解并掌握EDA技术的基本理论和工程开发实用技术,为后续的深入学习和发展打下坚实的理论与实践基础。
目录
第 1 章概述 1
1.1 EDA 技术 1
1.2 EDA 技术应用对象 2
1.3 常用的硬件描述语言 4
1.4 EDA 技术的优势 6
1.5 面向FPGA 和CPLD 的开发流程 7
1.5.1 设计输入 7
1.5.2 综合 8
1.5.3 适配(布线布局) 10
1.5.4 仿真 10
1.5.5 RTL 描述 11
1.6 可编程逻辑器件 11
1.6.1 PLD 的分类 11
1.6.2 PROM 可编程原理 12
1.6.3 GAL
14
1.7 CPLD 的结构与可编程原理 16
1.8 FPGA 的结构与工作原理 18
1.8.1 查找表逻辑结构 18
1.8.2 Cyclone 4E 系列器件的结构原理 19
1.8.3 内嵌Flash 的FPGA 器件 22
1.9 硬件测试技术 22
1.9.1 内部逻辑测试 22
1.9.2 JTAG 边界扫描测试 23
1.10 编程与配置 23
1.11 Quartus II 25
1.12 IP 核 26
1.13 EDA 的发展趋势 27
习题 28
第2 章程序结构与数据类型 29
2.1 Verilog 程序结构 29
2.1.1 Verilog 模块的表达方式 30 2.1.2 Verilog 模块的端口信号名和端
口模式 30
2.1.3 Verilog 信号类型定义 31
2.1.4 Verilog 模块功能描述 32
2.2 Verilog 的数据类型 32
2.2.1 net 网线类型 33
2.2.2 wire 网线型变量的定义方法 33
2.2.3 register 寄存器类型 34
2.2.4 reg 寄存器型变量的定义方法 34
2.2.5 integer 类型变量的定义方法 35
2.2.6 存储器类型 35
2.3 Verilog 文字规则 37
2.3.1 Verilog 的4 种逻辑状态 37
2.3.2 Verilog 的数字表达形式 37
2.3.3 数据类型表示方式 38
2.3.4 常量 . 38
2.3.5 标识符、关键词及其他文字规则 . 40
2.3.6 参数定义关键词parameter 和localparam 的用法 41
习题 42
第3 章行为语句 43
3.1 过程语句 43
3.1.1 always 语句 43
3.1.2 always 语句在D 触发器设计中的应用 45
3.1.3 多过程应用与异步时序电路设计 45
3.1.4 简单加法计数器的Verilog 表述 46
3.1.5 initial 语句 47
3.2 块语句 49
3.3 case 条件语句 49
3.4 if 条件语句 51
3.4.1 if 语句的一般表述形式 51
3.4.2 基于if 语句的组合电路设计 52
3.4.3 基于if 语句的时序电路设计 53
3.4.4 含异步复位和时钟使能的D 触发器的设计 55
3.4.5 含同步复位控制的D 触发器的设计 56
3.4.6 含清零控制的锁存器的设计 57
3.4.7 时钟过程表述的特点和规律 58
3.4.8 实用加法计数器设计 59
3.4.9 含同步预置功能的移位寄存器设计 61 3.4.10 关注if 语句中的条件
指示 62
3.5 过程赋值语句 63
3.6 循环语句 64
3.6.1 for 语句 64
3.6.2 while 语句 65
3.6.3 repeat 语句 66
3.6.4 forever 语句 67
3.7 任务与函数语句 67
习题 69
第4 章 FPGA 硬件实现 71
4.1 代码编辑输入和系统编译 71
4.1.1 编辑和输入设计文件 71
4.1.2 创建工程 72
4.1.3 约束项目设置 73
4.1.4 全程综合与编译 75
4.1.5 RTL 图观察器应用 76
4.2 时序仿真测试 77
4.3 硬件测试 80
4.3.1 引脚锁定 80
4.3.2 编译文件下载 82
4.3.3 通过JTAG 口对配置芯片进行间接编程 83
4.3.4 USB-Blaster 驱动程序安装方法 84
4.4 电路原理图设计流程 85
4.4.1 设计一个半加器 85
4.4.2 完成全加器顶层设计 87
4.4.3 对全加器进行时序仿真和硬件测试 87
4.5 利用属性表述实现引脚锁定 88
4.6 SignalTap II 的用法 90
4.7 编辑SignalTap II 的触发信号 95
4.8 安装Quartus II 13.1 说明 95
习题 100
实验与设计 100
实验4-1 多路选择器设计实验 100
实验4-2 十六进制7 段数码显示译码器设计 101
实验4-3 8 位硬件乘法器设计实验 102
实验4-4 应用宏模块设计数字频率计 103
实验4-5 计数器设计实验 . 107实验4-6 数码扫描显示电路设计 107
实验4-7 半整数与奇数分频器设计 108
第5 章运算符与结构描述语句 110
5.1 运算操作符 110
5.1.1 按位逻辑操作符 110
5.1.2 逻辑运算操作符 111
5.1.3 算术运算操作符 111
5.1.4 关系运算操作符 112
5.1.5 BCD 码加法器设计示例 113
5.1.6 缩位操作符 114
5.1.7 并位操作符 114
5.1.8 移位操作符用法 115
5.1.9 移位操作符用法示例 115
5.1.10 条件操作符 116
5.2 连续赋值语句 117
5.3 例化语句 118
5.3.1 半加器设计 118
5.3.2 全加器设计 119
5.3.3 Verilog 例化语句及其用法 119
5.4 参数传递语句应用 121
5.5 用库元件实现结构描述 122
5.6 编译指示语句 124
5.6.1 宏定义命令语句 124
5.6.2 文件包含语句 'include 125
5.6.3 条件编译命令语句'ifdef、'else、'endif 125
5.7 keep 属性应用 126
5.8 SignalProbe 使用方法 128
习题 130
实验与设计 131
实验5-1 高速硬件除法器设计实验 131
实验5-2 不同类型的移位寄存器设计实验 132
实验5-3 基于Verilog 代码的频率计设计 132
实验5-4 8 位加法器设计实验 133
实验5-5 VGA 彩条信号显示控制电路设计 134
第6 章 LPM宏模块用法 138
6.1 调用计数器宏
1.1 EDA 技术 1
1.2 EDA 技术应用对象 2
1.3 常用的硬件描述语言 4
1.4 EDA 技术的优势 6
1.5 面向FPGA 和CPLD 的开发流程 7
1.5.1 设计输入 7
1.5.2 综合 8
1.5.3 适配(布线布局) 10
1.5.4 仿真 10
1.5.5 RTL 描述 11
1.6 可编程逻辑器件 11
1.6.1 PLD 的分类 11
1.6.2 PROM 可编程原理 12
1.6.3 GAL
14
1.7 CPLD 的结构与可编程原理 16
1.8 FPGA 的结构与工作原理 18
1.8.1 查找表逻辑结构 18
1.8.2 Cyclone 4E 系列器件的结构原理 19
1.8.3 内嵌Flash 的FPGA 器件 22
1.9 硬件测试技术 22
1.9.1 内部逻辑测试 22
1.9.2 JTAG 边界扫描测试 23
1.10 编程与配置 23
1.11 Quartus II 25
1.12 IP 核 26
1.13 EDA 的发展趋势 27
习题 28
第2 章程序结构与数据类型 29
2.1 Verilog 程序结构 29
2.1.1 Verilog 模块的表达方式 30 2.1.2 Verilog 模块的端口信号名和端
口模式 30
2.1.3 Verilog 信号类型定义 31
2.1.4 Verilog 模块功能描述 32
2.2 Verilog 的数据类型 32
2.2.1 net 网线类型 33
2.2.2 wire 网线型变量的定义方法 33
2.2.3 register 寄存器类型 34
2.2.4 reg 寄存器型变量的定义方法 34
2.2.5 integer 类型变量的定义方法 35
2.2.6 存储器类型 35
2.3 Verilog 文字规则 37
2.3.1 Verilog 的4 种逻辑状态 37
2.3.2 Verilog 的数字表达形式 37
2.3.3 数据类型表示方式 38
2.3.4 常量 . 38
2.3.5 标识符、关键词及其他文字规则 . 40
2.3.6 参数定义关键词parameter 和localparam 的用法 41
习题 42
第3 章行为语句 43
3.1 过程语句 43
3.1.1 always 语句 43
3.1.2 always 语句在D 触发器设计中的应用 45
3.1.3 多过程应用与异步时序电路设计 45
3.1.4 简单加法计数器的Verilog 表述 46
3.1.5 initial 语句 47
3.2 块语句 49
3.3 case 条件语句 49
3.4 if 条件语句 51
3.4.1 if 语句的一般表述形式 51
3.4.2 基于if 语句的组合电路设计 52
3.4.3 基于if 语句的时序电路设计 53
3.4.4 含异步复位和时钟使能的D 触发器的设计 55
3.4.5 含同步复位控制的D 触发器的设计 56
3.4.6 含清零控制的锁存器的设计 57
3.4.7 时钟过程表述的特点和规律 58
3.4.8 实用加法计数器设计 59
3.4.9 含同步预置功能的移位寄存器设计 61 3.4.10 关注if 语句中的条件
指示 62
3.5 过程赋值语句 63
3.6 循环语句 64
3.6.1 for 语句 64
3.6.2 while 语句 65
3.6.3 repeat 语句 66
3.6.4 forever 语句 67
3.7 任务与函数语句 67
习题 69
第4 章 FPGA 硬件实现 71
4.1 代码编辑输入和系统编译 71
4.1.1 编辑和输入设计文件 71
4.1.2 创建工程 72
4.1.3 约束项目设置 73
4.1.4 全程综合与编译 75
4.1.5 RTL 图观察器应用 76
4.2 时序仿真测试 77
4.3 硬件测试 80
4.3.1 引脚锁定 80
4.3.2 编译文件下载 82
4.3.3 通过JTAG 口对配置芯片进行间接编程 83
4.3.4 USB-Blaster 驱动程序安装方法 84
4.4 电路原理图设计流程 85
4.4.1 设计一个半加器 85
4.4.2 完成全加器顶层设计 87
4.4.3 对全加器进行时序仿真和硬件测试 87
4.5 利用属性表述实现引脚锁定 88
4.6 SignalTap II 的用法 90
4.7 编辑SignalTap II 的触发信号 95
4.8 安装Quartus II 13.1 说明 95
习题 100
实验与设计 100
实验4-1 多路选择器设计实验 100
实验4-2 十六进制7 段数码显示译码器设计 101
实验4-3 8 位硬件乘法器设计实验 102
实验4-4 应用宏模块设计数字频率计 103
实验4-5 计数器设计实验 . 107实验4-6 数码扫描显示电路设计 107
实验4-7 半整数与奇数分频器设计 108
第5 章运算符与结构描述语句 110
5.1 运算操作符 110
5.1.1 按位逻辑操作符 110
5.1.2 逻辑运算操作符 111
5.1.3 算术运算操作符 111
5.1.4 关系运算操作符 112
5.1.5 BCD 码加法器设计示例 113
5.1.6 缩位操作符 114
5.1.7 并位操作符 114
5.1.8 移位操作符用法 115
5.1.9 移位操作符用法示例 115
5.1.10 条件操作符 116
5.2 连续赋值语句 117
5.3 例化语句 118
5.3.1 半加器设计 118
5.3.2 全加器设计 119
5.3.3 Verilog 例化语句及其用法 119
5.4 参数传递语句应用 121
5.5 用库元件实现结构描述 122
5.6 编译指示语句 124
5.6.1 宏定义命令语句 124
5.6.2 文件包含语句 'include 125
5.6.3 条件编译命令语句'ifdef、'else、'endif 125
5.7 keep 属性应用 126
5.8 SignalProbe 使用方法 128
习题 130
实验与设计 131
实验5-1 高速硬件除法器设计实验 131
实验5-2 不同类型的移位寄存器设计实验 132
实验5-3 基于Verilog 代码的频率计设计 132
实验5-4 8 位加法器设计实验 133
实验5-5 VGA 彩条信号显示控制电路设计 134
第6 章 LPM宏模块用法 138
6.1 调用计数器宏