第1章 VHDL语言简介 1
1.1 VHDL语言的常用结构和语法 1
1.1.1 VHDL语言的基本结构 1
1.1.2 VHDL语言构造体的子结构 5
1.1.3 包集合及库 6
1.1.4 VHDL语言的主要描述语句 9
1.1.5 VHDL语言的数据类型和运算符 16
1.2 VHDL语言编程概述 23
1.2.1 VHDL程序的总体结构 23
1.2.2 实体(ENTITY)设计概述 24
1.2.3 构造体(ARCHITECTURE)设计概述 25
1.3 本章小结 27
第2章 MAX+plusII编程环境 29
2.1 MAX+plusII简介 29
2.1.1 MAX+plusII的功能 29
2.1.2 系统要求 30
2.2 MAX+plusII中的VHDL设计 30
2.2.1 项目建立与文本输入 31
2.2.2 项目编译 34
2.2.3 项目校验 35
2.2.4 管脚锁定 39
2.2.5 器件编程/配置 41
2.2.6 工具条和常用菜单选项说明 43
2.3 在MAX+plusII中使用VHDL语言提要 45
2.3.1 编码提要 45
2.3.2 设计要点 47
2.4 本章小结 48
第3章 VHDL语言中的状态机应用 49
3.1 状态机在VHDL语言中的应用 49
3.1.1 关于状态机 49
3.1.2 数字电路中的状态机 50
3.1.3 状态机在VHDL语言中的实现 50
3.2.2 状态机设计的思路 53
3.2.1 数字乒乓游戏机的要求 53
3.2 状态机应用实例一:数字乒乓游戏机的状态机 53
3.2.3 乒乓游戏机实体的设计 54
3.2.4 状态机编程实现 55
3.2.5 记分译码器的设计 59
3.2.6 构造体的设计 62
3.2.7 编译和波形仿真 63
3.2.8 项目编程 66
3.2.9 实际电路实现 70
3.2.10 乒乓游戏机小结 71
3.3.3 三层电梯实体的设计 72
3.3.2 状态机设计的思路 72
3.3.1 三层电梯模型的要求 72
3.3 状态机应用实例二:三层电梯模型 72
3.3.4 构造体的设计 74
3.3.5 波形仿真 81
3.3.6 项目编程和实际电路实现 83
3.3.7 设计的扩展性 84
3.4 本章小结 84
第4章 VHDL语言中的多进程使用 86
4.1 VHDL语言中进程的特点 86
4.1.1 进程(PROCESS)语句的结构 86
4.1.3 进程(PROCESS)中语句的顺序性 88
4.1.2 进程的启动 88
4.1.4 进程(PROCESS)的同步描述 89
4.2 进程间通信的概念 91
4.2.1 进程通信的方式 91
4.3 多进程设计的优缺点 96
4.3.1 多进程设计的优点 96
4.3.2 多进程设计的缺点 101
4.4 本章小结 102
第5章 VHDL语言中构造体的描述方式 103
5.1 构造体的行为描述方式 103
5.1.1 不能进行逻辑综合的行为描述方式 103
5.1.2 可以进行逻辑综合的行为描述方式 104
5.2 构造体的寄存器传输描述方式 106
5.2.1 使用RTL描述方式应注意的几个问题 107
5.3 构造体的结构化描述方式 108
5.3.1 构造体描述的基本框架结构 109
5.3.2 COMPONENT语句 110
5.3.3 COMPONENT_INSTANT语句 111
5.3.4 3种描述方式的结合 112
5.4 3种描述方式结合的实例:数字频率计 112
5.4.1 数字频率计的要求 112
5.4.2 设计思路 113
5.4.3 数字频率计中的计数器设计 114
5.4.4 七段译码器的设计 117
5.4.5 数字频率计的实体设计 118
5.4.6 构造体的设计 118
5.4.7 波形仿真 125
5.4.8 所需要的改进之处 128
5.5 本章小结 129
第6章 VHDL语言实现简单的CPU 130
6.1 简单CPU的结构和功能简介 130
6.1.1 微机中的CPU 130
6.1.2 简单CPU的组成 134
6.1.3 简单CPU的功能 135
6.2 指令系统简介 136
6.2.1 指令格式 136
6.2.2 寻址方式 137
6.2.3 指令的分类 138
6.2.4 简单CPU的指令及寻址方法 139
6.3 16×8ROM的设计 140
6.4 简单CPU的指令周期 142
6.4.1 指令读取周期 142
6.4.2 指令执行周期 143
6.5 VHDL实现简单CPU 145
6.5.1 VHDL程序 145
6.5.2 简单CPU的功能仿真 152
6.5.3 简单CPU设计的不足之处 158
6.6 本章小结 159
第7章 VHDL语言在通信中的应用 160
7.1 简单异步通信接口的要求 160
7.1.1 异步通信接口的接收机 160
7.1.2 异步通信接口的发送机 164
7.2 VHDL语言实现简单异步通信接口 164
7.2.1 简单异步通信接口的实体设计 164
7.2.2 简单异步通信接口的构造体设计 165
7.2.3 仿真波形图 174
7.3 本章小结 176
7.2.4 设计总结 176
8.1 通用计算器的功能要求 177
8.1.1 要求实现的计算功能 177
8.1.2 计算器的输入以及输出 177
第8章 VHDL语言的综合应用 177
8.2 通用计算器的设计分析 178
8.2.1 计算部分和显示部分设计的协调 178
8.2.2 内部累加器acc,寄存器reg,结果暂存器ans的协调工作 178
8.2.5 分位显示的实现 179
8.2.7 除法器的单独设计 179
8.2.6 通信机制的使用 179
8.2.4 显示部分 179
8.2.3 数字的存放 179
8.3 VHDL语言实现通用计算器 180
8.3.1 除法器的设计 180
8.3.2 七段译码器的设计 188
8.3.3 数字按键的译码电路 189
8.3.4 运算数以及运算结果的显示过程 190
8.3.5 通用计算器的实体设计 193
8.3.6 通用计算器的构造体设计 193
8.3.7 通用计算器的仿真 204
8.4 本章小结 208
8.3.8 程序的下载并在实验台上实现 208
8.3.9 设计中的不足之处 208
第9章 VHDL语言在编码中的应用 210
9.1 通信中的差错控制编码 210
9.1.1 差错控制编码简介 210
9.1.2 CRC编码 211
9.1.3 卷积编码 214
9.2 CRC加卷积编码系统的要求和分析 215
9.2.1 CRC加卷积编码系统的具体要求 216
9.2.2 CRC加卷积编码的设计思路 216
9.3.1 CRC编码器的设计 218
9.3 VHDL语言实现CRC加卷积编码系统 218
9.3.2 整个编码器的设计 224
9.3.3 设计中的不足之处 233
9.3.4 设计过程中应该注意的地方 234
9.4 本章小结 234
第10章 VHDL语言中的存储器设计 236
10.1 存储器描述中的共性问题 236
10.1.1 存储器的数据类型 236
10.1.2 存储器的初始化 237
10.2 存储器设计的一般方法 237
10.2.1 ROM的设计 237
10.2.2 RAM的设计 239
10.3 FLEX系列芯片的特点 242
10.3.1 FLEX系列芯片简介 242
10.3.2 FLEX系列芯片的结构 244
10.4 引用LPM库实现存储器 251
10.4.1 关于LPM 251
10.4.2 引用LPM_ROM实现ROM 253
10.4.3 引用LPM_RAM_dq来实现交织器 257
10.4.4 引用LPM的优点 263
10.5 本章小结 263
11.1 创建文件时应注意的问题 265
第11章 在MAX+plusII下使用VHDL语言的常见问题 265
11.2 编程过程中应注意的问题 266
11.2.1 实体设计中应该注意的问题 266
11.2.2 构造体设计中应该注意的问题 267
11.3 编译过程中应注意的问题 268
11.4 其他应注意的问题 269
11.5 写在最后 269
附录A VHDL语言的保留字 270
附录B VHDL语言文法一览表 271
附录C 属性说明 282
附录D VHDL标准包集合文件 284
主要参考文献 312