第1章 数字系统设计概论 1
1.1数字系统与数字器件 1
1.2构建数字系统的途径 2
1.3可编程逻辑器件与EDA技术 4
1.3.1可编程逻辑器件 4
1.3.2EDA技术 5
1.4数字系统的设计方法与设计过程 8
1.4.1数字系统设计的一般方法 8
1.4.2数字系统的“自顶向下”(Top—Down)设计方法 8
1.4.3PLD系统的典型设计流程 9
1.5PLD技术的发展 10
1.5.1早期的PLD 10
1.5.2通用型简单PLD(SPLD) 10
1.5.3CPLD/FPGA器件 11
1.5.4SOPC发展阶段 11
1.6主要CPLD厂商简介 13
习题 14
第2章 可编程逻辑器件基础 15
2.1PLD基本构成原理与基本结构 15
2.1.1数字电路的基本构成 15
2.1.2PLD的构成原理与基本结构 16
2.1.3PLD的逻辑符号表示 17
2.2可编程逻辑器件的编程元件 19
2.2.1熔丝和反熔丝开关元件的编程原理 19
2.2.2浮栅存储元件的结构与工作原理 20
2.2.3SRAM编程单元的结构 23
2.3PLD的分类与特性 23
2.3.1按器件集成度划分 23
2.3.2按编程次数划分 24
2.3.3按编程配置特性划分 24
2.3.4按器件结构类型划分 25
2.3.5复杂可编程器件的基本分类 26
2.4可编程只读存储器PROM的结构与特性 26
2.5可编程逻辑阵列PLA的结构与特性 28
2.6可编程阵列逻辑PAL的结构与特性 29
2.6.1PAL器件的基本结构 29
2.6.2PAL器件的输出结构 31
2.6.3PAL器件的命名规则 33
2.6.4PAL16L8简介 33
2.7通用阵列逻辑GAL的结构与特性 35
2.7.1GAL器件的结构与分类 35
2.7.2常用GAL器件及其主要参数 36
2.7.3典型GAL器件GAL16V8的结构 36
2.7.4GAL器件的输出逻辑宏单元OLMC 38
2.7.5GAL器件的持性 39
2.8PLD器件的编程方法与应用 41
2.8.1PLD编程初步 41
2.8.2SPLD的开发步骤 41
习题 43
第3章 复杂可编程逻辑器件简介 44
3.1复杂可编程逻辑器件CPLD简介 44
3.2现场可编程逻辑阵列FPGA简介 45
3.3典型CPLD/FPGA的基本结构 46
3.3.1Altera公司CPLD的基本结构 46
3.3.2Xilinx公司FPGA的基本结构 53
3.4CPLD与FPGA的异同与特点 57
3.4.1CPLD与FPGA的相同点 57
3.4.2CPLD与FPGA的差别 58
3.4.3CPLD与FPGA的特点 59
3.5CPLD与FPGA的生产厂家、产品介绍及开发软件 59
3.5.1Altera公司 59
3.5.2Xilinx公司 61
3.5.3Lattice公司 63
3.5.4CPLD/FPGA开发软件概况 65
习题 68
第4章 Altera的CPLD器件 69
4.1AlteraCPLD器件概述 69
4.1.1AlteraCPLD器件的功能与特点 69
4.1.2AlteraCPLD器件系列 71
4.1.3AlteraCPLD开发软件 74
4.2MAX7000系列器件简介 76
4.2.1概述 76
4.2.2MAX7000系列器件的性能与特点 77
4.2.3MAX7000系列器件的结构 79
4.2.4MAX7000系列器件的特性设定 85
4.2.5MAX7000系列器件的编程测试 86
4.2.6MAX7000系列器件的定时模型 87
4.3FLEX6000系列器件简介 88
4.3.1概述 88
4.3.2FLEX6000系列器件的性能与特点 88
4.3.3FLEX6000系列器件的结构 90
4.3.4FLEX6000系列器件特性的设定 99
4.3.5FLEX6000系列器件的编程测试 99
4.3.6FLEX6000系列器件的定时模型 100
4.4FLEX10K系列器件简介 102
4.4.1概述 102
4.4.2FLEX10K系列器件的性能与特点 103
4.4.3FLEX10K系列器件的结构 105
4.4.4FLEX10K系列器件特性的设定 117
4.4.5FLEX10K系列器件的编程与测试 118
4.4.6FLEX10K系列器件的定时模型 119
4.5APEX20K系列器件简介 120
4.5.1概述 120
4.5.2APEX20K系列器件的性能与特点 120
4.5.3APEX20K系列器件的结构 122
4.5.4APEX20K系列器件的特性设定 134
4.5.5APEX20K系列器件的编程配置与测试 136
4.5.6APEX20K系列器件的定时模型 136
4.6AlteraCPLD新产品简介 137
4.6.1APEXⅡ器件系列 137
4.6.2APEX20KC器件系列 138
4.7Altera器件的边界扫描测试 138
4.7.1边界扫描测试概述 138
4.7.2IEEE1149.1BST的结构 140
4.7.3边界扫描寄存器 142
4.7.4JTAGBST的操作控制 143
4.7.5JTAG边界扫描测试原则 144
习题 144
第5章 硬件描述语言 146
5.1概述 146
5.1.1什么是硬件描述语言 146
5.1.2HDL语言的主要特征 147
5.1.3HDL设计方法与流程 148
5.2超高速集成电路硬件描述语言VHDL简介 150
5.2.1VHDL的发展变迁 150
5.2.2VHDL的特性 150
5.2.3VHDL的描述能力 151
5.2.412位寄存器的VHDL设计范例 152
5.3硬件描述语言VerilogHDL简介 152
5.3.1VerilogHDL的产生与发展 152
5.3.2VerilogHDL和VHDL的比较 152
5.3.3VerilogHDL应用情况 154
5.3.412位寄存器的VerilogHDL设计范例 154
5.4其他硬件电路描述语言简介 155
5.4.1ABEL—HDL 155
5.4.2AHDL 155
5.5Altera的硬件描述语言AHDL 155
5.5.1AHDL概述 155
5.5.2AHDL的基本元素 157
5.5.3AHDL设计的结构组成 165
5.5.4AHDL设计中的段(Section) 167
5.5.5AHDL的语句(Statement) 181
5.5.6MAX+PLUSⅡ中的AHDL模板 184
5.5.7AHDL设计举例 185
5.5.8AHDL设计建议 196
习题 199
第6章 Altera的CPLD开发系统 200
6.1概述 200
6.1.1MAX+PLUSⅡ版本简介 200
6.1.2运行MAX+PLUSⅡ对PC机的要求 201
6.1.3MAX+PLUSⅡ学生版的安装过程 201
6.1.4MAX+PLUSⅡ功能特性概述 203
6.1.5MAX+PLUSⅡ的一般设计过程 204
6.2MAX+PLUS的设计输入方法 204
6.2.1常用设计输入方法 204
6.2.2MAX+PLUSⅡ的优点 205
6.3MAX+PLUSⅡ的设计输入 205
6.3.1图形输入方法 205
6.3.2图形编辑方法的使用 206
6.4波形仿真 209
6.4.1波形编辑界面的进入 209
6.4.2波形仿真的一些设置 212
6.5文本编辑输入 213
6.5.1文本编辑输入中模板(Templates)的使用 214
6.5.2文本输入的编译 215
6.6底层编辑 216
6.6.1器件的指定 216
6.6.2管脚分配 216
6.7波形输入及符号编辑 217
6.7.1波形输入编辑 217
6.7.2用波形输入法编辑四位加法器 219
6.7.3时序电路的波形输入 219
6.7.4符号编辑 220
6.8图形输入、文本输入、波形输入的综合应用 221
6.8.1模块生成方法 221
6.8.2波形编辑和文本编辑形成的模块在图形编辑时的使用 225
6.9MAX+PLUSⅡ的高级使用 226
6.9.1使用LPM宏单元库 226
6.9.2参数化模块在文本编辑中的使用 229
6.10CPLD中内嵌RAM块EAB的使用 230
6.10.1PMROM在图形编辑中的使用 230
6.10.2LPMRAM的使用 238
6.11自定义参数化模块的方法 239
6.12QuartusⅡCPLD开发系统简介 240
6.12.1QuartusⅡ的特性 240
6.12.2QuartusⅡ的设计输入 241
6.12.3利用QuartusⅡ2.0进行数字钟设计 241
习题 254
第7章 CPLD器件的配置与编程下载 255
7.1概述 255
7.1.1器件编程分类 255
7.1.2器件的工作状态 255
7.2编程下载操作步骤 256
7.2.1打开编程窗口 256
7.2.2利用Altera编程器对MAX系列器件进行编程 256
7.2.3通过JTAG实现在系统编程 257
7.2.4对多个器件同时进行设置编程 258
7.2.5利用Byteblaster电缆配置FLEX系列器件 258
7.3AlteraCPLD器件的配置与下载 259
7.3.1配置类型 259
7.3.2Byteblaster配制电缆接口电路 269
习题 271
第8章 CPLD应用设计 272
8.1CPLD频率计的设计 272
8.2CPLD器件在人机接口中的应用 282
8.3CPLD在微机系统中的应用 286
8.4CPLD器件在通信中的应用 295
8.5FIR数字滤波器设计 303
8.5.1FIR结构和设计算法 303
8.5.2设计输入 305
8.6交通信号的控制系统设计 315
8.6.1系统的功能要求 315
8.6.2系统算法设计 316
8.6.3设计输入 316
习题 320
附录一常用CPLD器件的引脚 321
附录二CPLD实验系统简介 324
附录三CPLDEE—4实验开发系统简介 339
附录四CPLDDN下载软件简介 343
参考文献 348