第一部分 电路设计 1
第1章 引言 2
1.1 关于VHDL 2
1.2 设计流程 2
1.3 EDA工具 3
1.4 从VHDL代码到电路的转化 4
1.5 设计实例 6
第2章 VHDL代码结构 9
2.1 VHDL代码基本单元 9
2.2 库声明 10
2.3 实体 11
2.4 构造体 12
2.5 例题 13
2.6 习题 16
第3章 数据类型 19
3.1 预定义的数据类型 19
3.2 用户定义的数据类型 22
3.3 子类型 23
3.4 数组 24
3.5 端口数组 26
3.6 记录类型 27
3.7 有符号数和无符号数 28
3.8 数据类型转换 29
3.9 小结 30
3.10 例题 31
3.11 习题 35
第4章 运算操作符和属性 37
4.1 运算操作符 37
4.2 属性 40
4.3 用户自定义属性 42
4.4 操作符扩展 43
4.5 通用属性语句 43
4.6 设计实例 44
4.7 小结 48
4.8 习题 49
第5章 并发代码 51
5.1 并发执行和顺序执行 51
5.2 使用运算操作符 53
5.3 WHEN语句 54
5.4 GENERATE语句 63
5.5 块语句 65
5.6 习题 68
第6章 顺序代码 72
6.1 进程 72
6.2 信号和变量 74
6.3 IF语句 74
6.4 WAIT语句 78
6.5 CASE语句 80
6.6 LOOP语句 84
6.7 CASE语句和IF语句的比较 91
6.8 CASE语句和WHEN语句的比较 91
6.9 同步时序电路中的时钟问题 92
6.10 使用顺序代码设计组合逻辑电路 96
6.11 习题 98
第7章 信号和变量 103
7.1 常量 103
7.2 信号 103
7.3 变量 105
7.4 信号和变量的比较 106
7.5 寄存器的数量 112
7.6 习题 121
第8章 状态机 128
8.1 引言 128
8.2 设计风格#1 129
8.3 设计风格#2 136
8.4 状态机编码风格:二进制编码和独热编码 149
8.5 习题 150
第9章 典型电路设计分析 153
9.1 桶形移位寄存器 153
9.2 有符号数比较器和无符号数比较器 156
9.3 逐级进位和超前进位加法器 159
9.4 定点除法 162
9.5 自动售货机控制器 166
9.6 串行数据接收器 171
9.7 并/串变换器 173
9.8 一个7段显示器的应用例题 175
9.9 信号发生器 178
9.10 存储器设计 181
9.11 习题 186
第二部分 系统设计 191
第10章 包集和元件 192
10.1 概述 192
10.2 包集 193
10.3 元件 195
10.4 端口映射 201
10.5 GENERIC参数的映射 202
10.6 习题 208
第11章 函数和过程 209
11.1 函数 209
11.2 函数的存放 211
11.3 过程 219
11.4 过程的存放 221
11.5 函数与过程小结 224
11.6 断言语句 224
11.7 习题 224
第12章 系统设计实例分析 226
12.1 串-并型乘法器 226
12.2 并行乘法器 230
12.3 乘-累加电路 235
12.4 数字滤波器 238
12.5 神经网络 243
12.6 习题 249
附录A 可编程逻辑器件 251
附录B Xilinx ISE和ModelSim使用指南 259
附录C Altera MaxPlus Ⅱ和Advanced Synthesis Software使用指南 267
附录D Altera Quartus Ⅱ使用指南 277
VHDL保留字 285
参考文献 286