第1章 绪论 1
1.1 EDA概述 1
1.1.1 EDA技术的发展历程 1
1.1.2 EDA技术的基本特征 1
1.1.3 EDA技术实现目标 1
1.1.4 硬件描述语言(HDL) 3
1.1.5 EDA技术的基本工具 4
1.1.6 EDA技术的基本设计思路 8
1.1.7 EDA设计开发流程 9
1.2.2 自顶向下的设计 13
1.2.1 自底向上的设计 13
1.2 数字系统硬件设计概述 13
1.1.8 EDA技术的发展趋势 13
1.2.3 自顶向下技术的设计流程及关键技术 14
1.2.4 设计描述风格模型 17
习题 18
第2章 VHDL的语言要素 19
2.1 VHDL的命名规则 19
2.1.1 数字型文字 19
2.1.2 字符串型文字 20
2.1.3 标识符 20
2.1.4 下标名 21
2.1.5 段名 21
2.2.1 VHDL的客体及其分类 22
2.1.6 注释 22
2.2 VHDL的数据类型及运算操作符 22
2.2.2 VHDL的数据类型 24
2.2.3 VHDL的运算操作符 33
习题 38
第3章 VHDL程序的基本结构 40
3.1 VHDL设计的基本单元及其构成 40
3.1.1 实体说明 41
3.1.2 构造体 43
3.2 VHDL构造体的子结构描述 44
3.2.1 BLOCK语句结构描述 44
3.2.2 进程(PROCESS)语句结构描述 46
3.2.3 子程序(SUBPROGRAM)语句结构描述 48
3.3 VHDL构造体描述的几种方法 50
3.3.1 行为描述 51
3.3.2 数据流描述 51
3.3.3 结构描述 52
3.4 库、包集合及配置 53
3.4.1 库 53
3.4.2 包集合 56
3.4.3 配置(CONFIGURATION) 58
习题 60
4.1.1 WAIT语句 62
第4章 VHDL的主要描述语句 62
4.1 顺序处理语句 62
4.1.2 断言(ASSERT)语句 66
4.1.3 信号赋值语句 66
4.1.4 变量赋值语句 67
4.1.5 IF语句 68
4.1.6 CASE语句 70
4.1.7 LOOP语句 74
4.1.8 NEXT语句 76
4.1.9 EXIT语句 77
4.2 并发处理语句 77
4.2.2 并发信号赋值(Concurrent Signal Assignment)语句 78
4.2.1 进程语句 78
4.2.3 条件信号赋值(Conditional Signal Assignment)语句 79
4.2.4 选择信号赋值(Selective Signal Assignment)语句 80
4.2.5 并发过程调用(Concurrent Procedure Call)语句 81
4.2.6 块语句 82
4.2.7 元件例化语句 84
4.2.8 生成语句 87
4.3 其它语句和说明 89
4.3.1 属性(ATTRIBUTE)描述与定义语句 89
4.3.2 文本文件操作 94
习题 96
5.1.1 简单门电路 97
第5章 基本逻辑电路设计 97
5.1 组合逻辑电路设计 97
5.1.2 编码器、译码器与选择器 101
5.1.3 加法器、求补器 107
5.1.4 三态门及总线缓冲器 110
5.2 时序电路设计 113
5.2.1 时钟信号和复位信号 113
5.2.2 触发器 116
5.2.3 寄存器 120
5.2.4 计数器 125
5.3.1 存储器描述中的一些共性问题 133
5.3 存储器 133
5.3.2 ROM(只读存储器) 134
5.3.3 RAM(随机存储器) 135
5.3.4 FIFO(先进先出堆栈) 136
5.4 有限状态机(FSM) 140
习题 149
第6章 可编程逻辑器件基础 152
6.1 概述 152
6.1.1 FPGA/CPLD的基本概念 152
6.1.2 可编程逻辑器件分类 153
6.1.3 FPGA/CPLD的基本逻辑单元 154
6.1.4 FPGA/CPLD的基本结构 157
6.1.5 FPGA和CPLD的比较 161
6.1.6 可编程元件 163
6.2 Xilinx公司的CPLD/FPGA系列产品 165
6.2.1 Xilinx公司的CPLD系列产品 165
6.2.2 Xilinx公司的FPGA系列产品 170
6.3 Altera公司的FPGA/CPLD系列产品 175
6.3.1 Altera公司的高密度FPGA 175
6.3.2 Altera公司的低成本FPGA 183
6.3.3 Altera公司的CPLD器件 186
6.4 Lattice公司的FPGA/CPLD器件 188
6.4.1 Lattice公司的CPLD器件 189
6.4.2 Lattice公司的FPGA器件 195
第7章 仿真及逻辑综合 197
7.1 仿真 197
7.1.1 仿真△ 197
7.1.2 仿真方法 199
7.1.3 测试(平台)程序的设计方法 199
7.1.4 仿真输入信息的产生 203
7.1.5 仿真结果的处理 206
7.2 逻辑综合 207
7.2.1 约束条件 208
7.2.2 属性描述 208
7.2.3 工艺库 209
7.2.4 逻辑综合的基本步骤 210
7.3 设计实现 211
7.3.1 设计实现初步 211
7.3.2 设计实现与逻辑综合的区分 213
7.3.3 面向CPLD器件的实现 213
7.4 优化设计 216
7.4.1 流水线设计 216
7.4.2 资源共享 217
7.4.3 预进位加法器 217
习题 219
8.1.2 Quartus II软件的工具及功能简介 220
8.1.1 Quartus II软件的特点 220
8.1 Quartus II软件综述 220
第8章 CPLD/FPGA综合开发平台 220
8.1.3 Quartus II软件的用户界面 222
8.2 创建工程 224
8.3 设计输入 225
8.3.1 设计输入方式 226
8.3.2 设计规划 226
8.3.3 设计输入文件实例 226
8.3.4 设计约束 227
8.4 综合 230
8.4.1 使用Quartus II软件集成综合 231
8.4.2 控制综合 231
8.4.3 具体操作步骤 235
8.4.4 第三方综合工具 236
8.5 布局布线 237
8.5.1 设置布局布线参数 237
8.5.2 布局布线具体操作步骤 240
8.5.3 增量布局布线 241
8.5.4 反标保留分配 242
8.6 仿真 242
8.6.1 指定仿真器设置 243
8.6.2 建立矢量源文件 244
8.6.3 具体仿真流程 247
8.7 编程与配置 248
8.6.4 第三方仿真工具 248
8.7.1 建立编程文件 249
8.7.2 器件编程和配置 250
8.8 MAX+plus II过渡到Quartus II 252
8.8.1 转换MAX+plus II设计 252
8.8.2 编辑工程 256
8.8.3 编译 259
8.8.4 时序分析 262
8.8.5 仿真 265
第9章 VHDL设计实践与实验 268
9.1 MAX+plusII软件的基本操作与应用实验 268
9.2.1 数据比较器 286
9.2 基本电路实验 286
9.2.2 多路数据选择器 287
9.2.3 编码器 288
9.2.4 译码器 289
9.2.5 二进制码转换成BCD码 289
9.2.6 7段数码管显示译码 290
9.2.7 计数器 290
9.2.8 多功能寄存器 291
9.2.9 巴克码发生器 292
9.3 综合设计型实验 293
9.3.1 多功能数字钟实验 293
9.3.2 智力竞赛抢答器设计 294
9.3.3 电子琴设计 295
9.3.4 电子乒乓球游戏系统 296
9.3.5 数字密码锁设计 297
9.3.6 数字电压表设计 298
9.3.7 任意波形发生器设计 301
9.3.8 量程自动转换的数字式频率计 302
9.3.9 电梯自动控制器 303
9.3.10 交通灯控制器 304
9.3.11 16×16点阵汉字显示综合实验 304
附录Ⅰ EDA-V型硬件开发系统介绍 306
附录Ⅱ 部分实验VHDL描述参考 314
参考文献 327