第1章 PLD、CPLD与FPGA概述 1
1.1 可编程逻辑器件的发展进程 1
目录 1
1.2 可编程逻辑器件的分类 2
1.2.1 按集成度分类 2
1.2.2 按可编程原理分类 2
1.2.3 按结构特点分类 3
1.3 CPLD的基本结构 3
1.3.1 CPLD的基本结构 4
1.3.2 CPLD的编程工艺 8
1.4 FPGA简介 10
1.4.1 什么是门阵列 10
1.4.2 FPGA的基本结构与设计工艺 11
1.4.3 Xilinx公司的FPGA简介 12
1.4.4 FPGA的编程 17
1.5.1 逻辑单元比较 18
1.5 CPLD与FPGA的比较 18
1.5.2 互连资源 19
1.5.3 编程工艺 19
1.5.4 开发应用选择 19
1.6 器件厂商及其产品 21
1.6.1 Altera公司 21
1.6.2 Xilinx公司 21
1.6.3 其他公司 21
第2章 逻辑器件 23
2.1 Altera器件综述 23
2.2 Altera MAX7000系列CPLD/FPGA芯片 24
2.2.1 MAX7000系列器件简介 24
2.2.2 结构特点与功能描述 26
2.2.3 器件特性配置 32
2.2.4 器件编程特征 34
2.2.6 定时模型 35
2.2.5 器件测试 35
2.3.1 FLEX 10K系列器件简介 36
2.3 Altera FLEX10K系列CPLD/FPGA芯片 36
2.3.2 结构特点与功能描述 38
2.3.3 器件特性设定 53
2.3.4 器件配置与测试 55
2.3.5 定时模型 56
2.4 Altera APEX20K系列FPGA芯片 58
2.4.1 APEX系列器件简介 58
2.4.2 APEX20K系列概述 59
2.4.3 APEX20K系列的特点 59
2.4.4 APEX20K系列的结构描述 60
2.5 Xilinx XC9500系列FPGA芯片 73
2.5.1 XC9500系列CPLD器件 73
2.5.2 系列器件的结构 75
3.1.1 MAX+PLUS Ⅱ的功能和特点 83
第3章 初探CPLD/FPGA设计工具——MAX+PLUS Ⅱ 83
3.1 MAX+PLUS Ⅱ简介 83
3.1.2 软件的版本 85
3.1.3 系统要求 85
3.1.4 软件的安装 85
3.1.5 MAX+PLUS Ⅱ的操作环境 86
3.1.6 MAX+PLUS Ⅱ的设计方法 87
3.2 图形输入的设计过程 90
3.2.1 项目建立与图形输入 90
3.2.2 项目编译 95
3.2.3 项目检验 96
3.2.4 目标器件选择与管脚锁定 101
3.2.5 器件编程/配置 104
3.3 工具条和常用菜单选项说明 105
3.3.1 菜单栏 105
3.3.2 工具栏 110
3.3.3 状态栏 112
第4章 深入了解CPLD/FPGA设计工具——MAX+PLUS Ⅱ 113
4.1 图形的层次化设计和BUS使用 113
4.1.1 层次化设计 113
4.1.2 BUS使用 115
4.2 语言描述输入法 117
4.3 混合设计输入 120
4.4 使用LPM及FLEX10K中的RAM 121
4.4.1 LPM的使用 121
4.4.2 FLEX10K中的RAM 123
4.5 创建用户符号库 126
4.5.1 制作兆功能模块(Mega_Function)符号 126
4.6 编译控制 131
4.6.1 编译顶层系统文件 131
4.6.2 启用设计规则检查工具 136
4.6.3 编译后生成的报告文件 140
4.6.4 分析资源占用情况 142
第5章 VHDL硬件描述语言(一) 146
5.1 常用硬件描述语言 147
5.2 VHDL基本结构 148
5.2.1 实体说明 149
5.2.2 构造体 153
5.3 VHDL语言要素 156
5.3.1 VHDL文字规则 156
5.3.2 VHDL数据对象 157
5.3.3 VHDL数据类型 163
5.3.4 VHDL运算符 170
5.4 VHDL顺序语句 176
5.4.1 赋值语句 176
5.4.2 分支控制语句 176
5.4.3 循环控制语句 183
5.4.4 同步控制语句 187
5.4.5 其他语句 189
5.5 VHDL并发语句 190
5.5.1 并行信号赋值语句 191
5.5.2 进程语句 193
5.5.3 元件例化语句 194
5.5.4 并发过程调用语句 197
5.5.5 块语句 197
5.5.6 生成语句 199
第6章 VHDL硬件描述语言(二) 201
6.1 子程序 201
6.1.1 函数 201
6.1.2 过程 205
6.1.3 子程序重载 206
6.2 库、程序包、配置及其他 207
6.2.1 库 207
6.2.2 程序包 209
6.2.3 配置 211
6.2.4 属性描述 215
6.3 VHDL构造体的描述风格 222
6.3.1 行为描述 222
6.3.2 数据流描述 223
6.3.3 结构描述 228
6.4 VHDL语言的仿真与逻辑综合 231
6.4.1 VHDL语言的仿真 231
6.4.2 VHDL语言的逻辑综合 234
6.5 VHDL语言93版与87版的区别 236
6.5.1 93版对规范的修订 236
6.5.2 87版到93版的移植问题 244
第7章 基本逻辑单元的VHDL实现 245
7.1 组合逻辑电路的VHDL实现 245
7.1.1 简单门电路 245
7.1.2 译码器、编码器和选择器 251
7.1.3 三态门和总线缓冲器 257
7.1.4 组合逻辑电路VHDL实现的一般方法 259
7.2 时序逻辑电路的VHDL实现 260
7.2.1 锁存器 260
7.2.2 触发器 263
7.2.3 计数器 266
7.3 状态机 271
7.3.1 状态机的基本结构和功能 271
7.3.2 状态机的VHDL模型 271
7.3.3 状态机的应用举例 277
第8章 存储器实例设计 284
8.1 存储器原理 284
8.2 移位寄存器设计 285
8.2.1 双向移位寄存器 286
8.2.2 环形移位寄存器 287
8.2.3 M序列发生器 289
8.3.1 ROM 291
8.3 ROM和RAM 291
8.3.2 RAM 293
8.4 先进先出队列(FIFO) 296
第9章 算术运算电路设计 301
9.1 数值的表示 301
9.1.1 进位计数制 301
9.1.2 二进制表示 301
9.1.3 二—十进制编码 302
9.2 一位全加器和一位全减器 302
9.2.1 一位全加器 302
9.2.2 一位全减器 303
9.3 N位加法器 305
9.3.1 串行进位加法器 305
9.3.2 N位超前进位加法器 307
9.3.3 利用算术运算包实现加法 309
9.4.1 用加法器实现减法器 311
9.4 N位减法器 311
9.4.2 利用算术运算包实现减法 312
9.5 乘法器 313
9.5.1 组合逻辑乘法器 313
9.5.2 时序逻辑乘法器 314
9.5.3 混合逻辑乘法器 320
9.6 除法器 325
第10章 数字系统设计方法 329
10.1 概述 329
10.1.1 数字系统的基本概念 329
10.1.2 数字系统的基本模型 329
10.1.3 数字系统设计方法 330
10.2 数字系统设计的一般步骤 331
10.2.1 需求分析 332
10.2.3 子系统划分的原则 333
10.2.2 数字系统的设计任务 333
10.3 数字系统的描述方法 334
10.3.1 算法流程图 334
10.3.2 算法状态机(ASM图) 336
第11章 视频颜色空间转换芯片设计 338
11.1 视频颜色空间的转换原理 338
11.1.1 颜色空间的转换的基本概念 338
11.1.2 颜色空间转换的定点运算实现 340
11.2 系统设计 341
1 1.2.1 设计要求 341
11.2.2 系统结构和模块划分 341
11.2.3 流水线结构设计 342
11.3 系统实现 342
11.3.1 乘法器模块的实现 342
11.3.2 主体模块的实现 343
11.3.3 顶层模块设计 353
11.4.1 逻辑综合选项设定 355
11.4 逻辑综合选项设定和系统仿真 355
11.4.2 波形仿真 356
11.4.3 最高时钟频率仿真 357
11.4.4 提高系统速度的方法 357
第12章 键盘接口电路和LED显示电路设计 359
12.1 键盘接口电路 359
12.1.1 行列式键盘原理 359
12.1.2 系统结构和模块划分 360
12.1.3 键盘扫描电路 361
12.1.4 键盘译码电路和按键标志产生电路 362
12.1.5 时钟产生模块 368
12.1.6 键盘接口电路顶层电路实现 370
12.2 LED显示管理电路 372
12.2.1 LED显示管理电路原理 372
12.2.3 扫描信号发生器 373
12.2.2 系统结构和模块划分 373
12.2.4 显示缓存器 375
12.2.5 多路选通器 376
12.2.6 七段译码器 377
12.2.7 闪烁模块 378
12.2.8 时钟发生器 380
12.2.9 LED显示管理顶层电路实现 383
13.1.1 常用测频方法 387
13.1 频率测量方法和原理 387
第13章 数字频率计 387
13.1.2 直接计数测频法 388
13.2 系统分析和设计 388
13.2.1 设计要求 388
13.2.2 系统分析 389
13.2.3 系统结构和模块划分 390
13.3 量程估计模块 390
13.3.1 量程估计原理 390
13.3.2 7位BCD计数器 391
13.3.3 量程估计功能的实现 394
13.4 计数时钟和闸门产生模块 397
13.5 周期测量计数器模块 401
13.6 除法器模块 403
13.6.1 除法器原理 403
13.6.2 7位BCD减法器 404
13.6.3 7位BCD减法计数器 407
13.6.4 除法器实现 409
13.7 小数点产生模块 414
13.8 数字频率计的顶层电路实现 416
第14章 电子表 420
14.1 电子表的系统分析和设计 420
14.1.1 设计要求 420
14.1.2 用户界面设计 420
14.1.3 系统结构和模块划分 421
14.2.2 106分频计数器的实现和仿真 422
14.2 计时器 422
14.2.1 计时器电路结构 422
14.2.3 计时器的实现和仿真 423
14.3 状态机 426
14.3.1 状态机的模块分析 426
14.3.2 校时和设闹状态机 427
14.3.3 闹钟和整点报时状态机 435
14.4 闹钟寄存器 437
14.5 铃声管理模块 438
14.5.1 铃声管理模块分析 438
14.5.2 VHDL实现 439
14.5.3 仿真 442
14.6 电子表顶层电路的实现 442
14.6.1 顶层电路结构 442
14.6.2 VHDL实现 443
14.6.3 仿真 446