第1章 可编程逻辑器件 1
1.1 可编程逻辑器件(PLD)基本结构 1
1.1.1 可编程逻辑器件概述 1
1.1.2 可编程逻辑器件基本结构 1
1.1.3 可编程逻辑器件编程技术 6
1.2 PAL和GAL器件 8
1.2.1 PAL器件的基本结构 8
1.2.2 GAL器件的基本结构 8
1.3 CPLD基本结构 9
1.3.1 Xilinx公司XC7300系列器件结构 10
1.3.2 Altera公司MAX7000系列器件结构 11
1.3.3 Altera公司FLEX10K系列器件结构 12
1.4 FPGA基本结构 13
本章小结 16
习题 17
第2章 Quartus Ⅱ软件基本设计流程 18
2.1 可编程逻辑器件设计流程 18
2.2 硬件描述语言逻辑设计流程 20
2.2.1 建立新工程 20
2.2.2 建立硬件描述语言逻辑设计源文件 21
2.2.3 编译器选项设置 22
2.2.4 器件引脚配置 24
2.2.5 设计编译 25
2.2.6 查看编译后结果 27
2.2.7 逻辑功能仿真分析 30
2.2.8 时序分析 33
2.2.9 器件编程 34
2.2.10 硬件描述语言逻辑设计流程实训题目 36
2.3 原理图逻辑设计流程 37
2.3.1 建立新工程 37
2.3.2 创建新原理图文件 38
2.3.3 放置元器件符号 38
2.3.4 定义输入和输出引线 40
2.3.5 逻辑符号之间的连接 40
2.3.6 建立默认逻辑符号 42
2.3.7 原理图逻辑设计流程实训题目 42
本章小结 43
第3章 VHDL硬件描述语言初阶 44
3.1 VHDL基本结构 44
3.1.1 VHDL最小结构 44
3.1.2 VHDL基本结构 45
3.1.3 VHDL基本语句 46
3.2 VHDL语言数据类型及运算操作符 49
3.2.1 VHDL数据对象 49
3.2.2 VHDL基本数据类型 52
3.2.3 VHDL预定义属性 64
3.2.4 VHDL逻辑运算符 67
3.2.5 VHDL关系运算符 68
3.2.6 VHDL算术运算符 69
3.2.7 VHDL并置运算符 70
3.2.8 VHDL符号运算符 70
3.2.9 VHDL省略赋值操作符 71
3.2.10 VHDL并列符 71
3.3 VHDL顺序处理语句 72
3.3.1 信号代入语句 72
3.3.2 变量赋值语句 74
3.3.3 case语句 75
3.3.4 if语句 77
3.3.5 loop语句 78
3.3.6 next语句 80
3.3.7 exit语句 81
3.3.8 wait语句 82
3.3.9 null语句 83
3.4 VHDL并行处理语句 83
3.4.1 进程(process)语句 83
3.4.2 并发信号代入语句 85
3.4.3 条件信号代入语句 85
3.4.4 选择信号代入语句 86
3.4.5 块(block)语句 87
3.4.6 元件声明/元件例化(component)语句 88
3.4.7 生成(generate)语句 91
3.5 VHDL库和程序包 93
3.5.1 VHDL库 93
3.5.2 VHDL程序包 93
3.6 VHDL子程序 95
3.6.1 函数语句 95
3.6.2 过程语句 96
3.7 组合逻辑电路设计示例 98
3.7.1 逻辑门电路设计示例 98
3.7.2 编码器设计示例 99
3.7.3 译码器设计示例 101
3.7.4 数据选择器设计示例 103
3.7.5 运算器设计示例 104
3.7.6 奇偶校验电路设计示例 105
3.8 时序逻辑电路设计示例 106
3.8.1 基本触发器示例 106
3.8.2 寄存器示例 107
3.8.3 计数器示例 108
3.8.4 序列信号发生器示例 110
本章小结 111
习题 112
第4章 硬件描述语言逻辑设计进阶 118
4.1 状态机设计 118
4.1.1 Moore型状态机设计方法 118
4.1.2 Mealy型状态机设计方法 120
4.1.3 MDS图设计方法 122
4.1.4 ASM图设计方法 125
4.2 硬件描述语言层次化设计 128
4.2.1 “自上而下”层次化设计概述 128
4.2.2 VHDL层次化设计方法 129
本章小结 131
习题 132
第5章 Quartus Ⅱ软件混合设计流程 133
5.1 LPM参数化宏模块逻辑设计流程 133
5.1.1 建立新工程 133
5.1.2 创建加法器宏模块符号 134
5.1.3 创建减法器宏模块符号 136
5.1.4 创建乘法器宏模块符号 136
5.1.5 创建除法器宏模块符号 137
5.1.6 创建数据选择器宏模块符号 137
5.1.7 顶层逻辑设计 138
5.1.8 LPM参数化宏模块逻辑设计流程实训题目 138
5.2 层次化设计流程 140
5.2.1 建立新工程 141
5.2.2 创建4位加法器模块符号 141
5.2.3 创建4位减法器模块符号 142
5.2.4 创建2选1数据选择器模块符号 142
5.2.5 创建七段显示译码器模块符号 144
5.2.6 顶层逻辑设计 144
5.2.7 层次逻辑设计浏览 147
5.2.8 层次化设计流程实训题目 147
5.3 存储器逻辑设计流程 148
5.3.1 建立新工程 148
5.3.2 创建存储器初始化文件 148
5.3.3 创建存储器模块符号 149
5.3.4 创建正弦波信号发生器原理图 150
5.3.5 正弦波信号发生器逻辑功能仿真 151
5.3.6 使用嵌入式逻辑分析仪SignalTap Ⅱ 152
5.3.7 使用在系统嵌入式寄存器数据编辑器 156
5.3.8 移出嵌入式逻辑分析仪SignalTap Ⅱ 160
5.3.9 存储器逻辑设计流程实训题目 160
5.4 嵌入式锁相环PLL模块设计流程 161
5.4.1 建立新工程 161
5.4.2 创建锁相环PLL模块 161
5.4.3 锁相环分频输出时序仿真 164
5.4.4 嵌入式锁相环PLL模块设计流程实训题目 165
本章小结 165
第6章 Nios Ⅱ嵌入式系统软硬件设计流程 166
6.1 典型Nios Ⅱ嵌入式系统开发流程 166
6.2 生成可调试的Nios Ⅱ系统 167
6.3 生成Nios Ⅱ系统顶层原理图 173
6.4 Nios Ⅱ系统下载 175
6.5 Nios Ⅱ系统软件编写 177
6.6 Nios Ⅱ系统软件调试 183
6.7 Nios Ⅱ嵌入式系统开发流程实训题目 186
本章小结 187
第7章 数字系统设计实训 188
7.1 数字系统设计实训1 188
7.1.1 数字钟系统总体设计 188
7.1.2 数字钟系统底层模块设计流程 191
7.1.3 数字钟系统中层模块设计流程 204
7.1.4 数字钟系统顶层模块设计流程 212
7.1.5 数字钟系统顶层模块层次结构与设计下载验证 214
7.1.6 数字钟实训题目 216
7.2 数字系统设计实训2 217
7.2.1 可调低频正弦波信号发生器总体设计 217
7.2.2 可调低频正弦波信号发生器底层模块设计流程 220
7.2.3 可调低频正弦波信号发生器顶层模块设计流程 227
7.2.4 可调低频正弦波信号发生器设计验证 228
7.2.5 可调低频正弦波信号发生器设计实训题目 231
7.3 数字系统设计实训3 231
7.3.1 Nios Ⅱ嵌入式软核基本硬件环境的建立 231
7.3.2 Nios Ⅱ嵌入式系统软件开发 240
本章小结 243
参考书目 245