第1章 数字系统硬件设计概述 1
1.1 传统的系统硬件设计方法 1
1.2 利用硬件描述语言的硬件电路设计方法 4
习题与思考题 9
第2章 数字系统的算法描述 10
2.1 数字系统算法流程图描述 10
2.1.1 算法流程图的符号及其描述方法 10
2.1.2 算法流程图描述数字系统实例 12
2.2 状态机及算法状态机图描述 15
2.2.1 状态机的分类及特点 15
2.2.2 算法状态机流程图的符号及描述方法 17
2.2.3 算法状态机图描述实例 18
2.2.4 算法流程图至状态图的变换方法 20
2.2.5 状态图至算法状态机图的变换方法 21
2.2.6 C语言流程图至算法状态机图的变换 23
习题与思考题 29
第3章 VHDL语言程序的基本结构 31
3.1 VHDL语言设计的基本单元及其构成 31
3.1.1 实体说明 31
3.1.2 构造体 34
3.2 VHDL语言构造体的子结构描述 36
3.2.1 BLOCK语句结构描述 36
3.2.2 PROCESS语句结构描述 38
3.2.3 SUBPROGRAM语句结构描述 40
3.3 包集合、库及配置 44
3.3.1 库 44
3.3.2 包集合 46
3.3.3 配置 48
习题与思考题 53
第4章 VHDL语言的数据类型与运算操作符 54
4.1 VHDL语言的客体及其分类 54
4.1.1 常数 54
4.1.2 变量 55
4.1.3 信号 56
4.1.4 信号和变量值代入的区别 56
4.1.5 文件 58
4.2 VHDL语言的数据类型 59
4.2.1 标准的数据类型 59
4.2.2 用户定义的数据类型 61
4.2.3 用户定义的子类型 65
4.2.4 数据类型的转换 65
4.2.5 数据类型的限定 66
4.2.6 IEEE标准“STD_LOGIC”和“STD_LOGIC_VECTOR” 67
4.3 VHDL语言的运算操作符 68
4.3.1 逻辑运算符 69
4.3.2 算术运算符 69
4.3.3 关系运算符 70
4.3.4 并置运算符 71
习题与思考题 72
第5章 VHDL语言构造体的描述方式 74
5.1 构造体的行为描述方式 74
5.1.1 代入语句 74
5.1.2 延时语句 76
5.1.3 多驱动器描述语句 77
5.1.4 GENERIC语句 79
5.2 构造体的寄存器传输(RTL)描述方式 81
5.2.1 RTL描述方式的特点 81
5.2.2 使用RTL描述方式应注意的问题 83
5.3 构造体的结构描述方式 87
5.3.1 构造体结构描述的基本框架 88
5.3.2 COMPONENT语句 91
5.3.3 COMPONENT_INSTANT语句 91
习题与思考题 92
第6章 VHDL语言的主要描述语句 93
6.1 顺序描述语句 93
6.1.1 WAIT语句 93
6.1.2 断言语句 97
6.1.3 信号代入语句 98
6.1.4 变量赋值语句 98
6.1.5 IF语句 99
6.1.6 CASE语句 101
6.1.7 LOOP语句 106
6.1.8 NEXT语句 108
6.1.9 EXIT语句 109
6.2 并发描述语句 110
6.2.1 进程语句 111
6.2.2 并发信号代入语句 111
6.2.3 条件信号代入语句 112
6.2.4 选择信号代入语句 113
6.2.5 并发过程调用语句 114
6.2.6 块语句 115
6.3 其它语句和有关规定的说明 119
6.3.1 命名规则和注解的标记 119
6.3.2 ATTRIBUTE(属性)描述与定义语句 120
6.3.3 GENERATE语句 140
习题与思考题 144
第7章 数值系统的状态模型 145
7.1 二态数值系统 145
7.2 三态数值系统 146
7.3 四态数值系统 146
7.4 九态数值系统 148
7.5 十二态数值系统 151
7.6 四十六态数值系统 152
习题与思考题 155
第8章 基本逻辑电路设计 156
8.1 组合逻辑电路设计 156
8.1.1 简单门电路 156
8.1.2 编、译码器与选择器 162
8.1.3 加法器与求补器 166
8.1.4 三态门与总线缓冲器 168
8.2 时序电路设计 172
8.2.1 时钟信号和复位信号 172
8.2.2 触发器 175
8.2.3 寄存器 181
8.2.4 计数器 186
8.3 存储器 193
8.3.1 存储器描述中的共性问题 193
8.3.2 ROM(只读存储器) 194
8.3.3 RAM(随机存储器) 195
8.3.4 FIFO(先进先出堆栈) 197
习题与思考题 201
第9章 仿真与逻辑综合 202
9.1 仿真 202
9.1.1 仿真输入信息的产生 202
9.1.2 仿真△ 208
9.1.3 仿真程序模块的书写 210
9.2 逻辑综合 212
9.2.1 约束条件 212
9.2.2 属性描述 213
9.2.3 工艺库 214
9.2.4 逻辑综合的基本步骤 215
习题与思考题 216
第10章 数字系统的实际设计技巧 217
10.1 数字系统优化的基本方法 217
10.1.1 相同电路的处理 217
10.1.2 运算顺序的改变 219
10.1.3 常数运算的运用 219
10.1.4 相同运算电路的使用 220
10.1.5 优化的必要性及其工程实际意义 223
10.2 数字系统设计中的工程实际问题 224
10.2.1 提高系统工作速度的方法 224
10.2.2 缩小电路规模和降低功耗的方法 231
10.2.3 系统误操作的成因及其消除方法 238
10.2.4 非同步信号的控制方法 247
10.2.5 典型状态机状态编码的选择 251
习题与思考题 257
第11章 洗衣机洗涤控制电路设计实例 258
11.1 洗衣机洗涤控制电路的性能要求 258
11.2 洗衣机洗涤控制电路的结构 258
11.3 洗衣机洗涤控制电路的算法状态机图描述 260
11.4 洗衣机洗涤控制电路的VHDL语言描述 265
习题与思考题 277
第12章 微处理器接口芯片设计实例 278
12.1 可编程并行接口芯片设计实例 278
12.1.1 8255的引脚与内部结构 278
12.1.2 8255的工作方式及其控制字 279
12.1.3 8255的结构设计 281
12.1.4 8255芯片的VHDL语言描述 281
12.1.5 8255芯片VHDL语言描述模块的仿真 286
12.2 SCI串行接口芯片设计实例 287
12.2.1 SCI的引脚与内部结构 287
12.2.2 串行数据传送的格式与同步控制机构 288
12.2.3 SCI芯片的VHDL语言描述 290
12.2.4 SCI芯片VHDL语言描述模块的仿真 295
12.3 键盘接口芯片KBC设计实例 296
12.3.1 KBC的引脚与内部结构 296
12.3.2 同步控制机构和查表变换 298
12.3.3 KBC芯片的VHDL语言描述 301
12.3.4 KBC芯片VHDL语言描述模块的仿真 306
习题与思考题 306
第13章 VHDL语言93版和87版的主要区别 308
13.1 VHDL语言93版的特点 308
13.2 87版到93版的移植问题 318
附录A 典型EDA开发工具介绍 319
A.1 简介 319
A.2 MAX+plus Ⅱ使用说明 320
A.2.1 MAX+plus Ⅱ概况 321
A.2.2 VHDL语言工程文件的建立和编辑 323
A.2.3 VHDL语言程序的编译 326
A.2.4 仿真 329
A.3 Xilinx可编程器件集成开发环境ISE的使用说明 334
A.3.1 ISE系统简介 334
A.3.2 新建工程 336
A.3.3 源代码的输入 339
A.3.4 设计与仿真 343
A.3.5 综合 348
A.3.6 时序约束 351
A.3.7 位置约束 354
A.3.8 下载与配置 355
附录B VHDL语言文法介绍 358
附录C 属性说明 369
附录D VHDL标准包集合文件 371
参考文献 401