第1章 可编程逻辑器件简介 1
1.1可编程逻辑器件的发展历程 1
1.2可编程逻辑器件的基本结构 2
1.3可编程逻辑器件的特点及分类 3
1.4可编程逻辑器件的逻辑约定方法 5
第2章CPLD/FPGA的结构与特性 7
2.1 CPLD结构简介 7
2.1.1宏单元 7
2.1.2可编程I/O单元 8
2.1.3可编程连线阵列(PIA) 8
2.2基于乘积项的CPLD原理与结构 8
2.3墓于乘积项的CPLD逻辑实现方式 10
2.4基于查找表的FPGA原理与结构& 1 1
2.5基于查找表结构的FPGA逻辑实现方式 12
2.6 CPLD与FPGA的区别 13
2.6.1逻辑单元的区别 13
2.6.2互连方式的区别 14
2.6.3编程方式的区别 14
2.6.4编程方式及次数的区别 14
2.6.5集成度的区别 15
2.6.6使用方便性的区别 15
2.6.7工作速度的区别 15
2.6.8功耗的区别 15
2.6.9保密性的区别 15
第3章Xilinx公司的XC9500系列CPLD 17
3.1 XC9500系列CPLD结构及特性简介 18
3.1.1功能模块(FB) 19
3.1.2宏单元 20
3.1.3乘积项分配器 21
3.1.4 FastCONNECT开关矩阵 22
3.1.5 1/O模块 22
3.1.6其他特性 24
3.2 XC95108 CPLD的主要特点 25
第4章CPLD的设计流程与设计语言 28
4.1设计输入 28
4.1.1原理图设计方式 30
4.1.2 VHDL语言设计方式 30
4.1.3 Verilog HDL语言设计方式 31
4.1.4 Verilog HDL与VHDL的比较 31
4.2综合 31
4.3器件适配 32
4.4仿真 32
4.5编程下载 33
第5章CPLD学习开发器材介绍 34
5.1 Xilinx的集成开发软件Xilinx ISE 34
5.2 Keil C51 Windows集成开发环境 34
5.3 MCU&CPLD DEMO综合试验板 36
5.4 Xilinx并口下载器 42
5.5单片机USB程序下载器 42
5.6 9V高稳定专用稳压电源 43
第6章 开发软件Keil C51及Xilinx ISE的安装 44
6.1 Keil C51集成开发软件安装 44
6.2 Xilinx集成开发软件Xilinx ISE9.1i的安装 46
6.3 USBasp下载器软件的安装及使用 52
6.3.1 USBasp下载器软件的安装 52
6.3.2 USBasp下载器的使用 56
第7章 入门的第一个实验程序 59
7.1新建项目 59
7.2设计输入 65
7.3锁定引脚 66
7.4编译项目 69
7.5软件仿真 69
7.6编程下载 75
7.7应用 80
第8章Verilog HDL硬件描述语言 81
8.1 Verilog HDL模块的基本结构 81
8.1.1模块声明 82
8.1.2端口定义 82
8.1.3信号类型说明 83
8.1.4逻辑功能描述 83
8.2 Verilog HDL语法要素 85
8.2.1标识符与关键字 85
8.2.2常量、变量及数据类型 86
8.2.3运算符 89
8.2.4运算符的优先级 95
8.3 Verilog HDL的行为语句 95
8.3.1赋值语句 96
8.3.2过程语句 97
8.3.3块语句 99
8.3.4条件语句 101
8.3.5循环语句 102
8.3.6编译预处理 104
8.3.7任务和函数 105
8.4 Verilog HDL数字逻辑单元结构的设计 107
8.4.1结构描述方式 107
8.4.2数据流描述方式 112
8.4.3行为描述方式 112
第9章 基本逻辑门电路的实践 114
9.1缓冲器实践 114
9.1.1数据流描述设计的缓冲器 114
9.1.2门级结构描述设计的缓冲器 116
9.2反相器(非门)实践 116
9.2.1数据流描述设计的反相器 116
9.2.2门级结构描述设计的反相器 118
9.3与门实践 118
9.3.1数据流描述设计的与门 118
9.3.2门级结构描述设计的与门 120
9.4与非门实践 120
9.4.1数据流描述设计的与非门 120
9.4.2门级结构描述设计的与非门 122
9.5或门实践 122
9.5.1数据流描述设计的或门 122
9.5.2门级结构描述设计的或门 124
9.6或非门实践 124
9.6.1数据流描述设计的或非门 124
9.6.2门级结构描述设计的或非门 126
9.7异或门实践 126
9.7.1数据流描述设计的异或门 126
9.7.2门级结构描述设计的异或门 128
9.8异或非门实践 128
9.8.1数据流描述设计的异或非门 128
9.8.2门级结构描述设计的异或非门 130
9.9三态门实践 130
9.9.1数据流描述设计的三态门 130
9.9.2门级结构描述设计的三态门 132
第10章 组合逻辑电路的设计实验 133
10.1 2选1数据选择器 133
10.1.1 2选1数据选择器简介 133
10.1.2数据流描述方式设计的源代码 134
10.1.3行为描述方式设计的源代码 134
10.2 4选1数据选择器 135
10.2.1 4选1数据选择器简介&13 5
10.2.2数据流描述方式设计的源代码 136
10.2.3行为描述方式设计的源代码 136
10.3 2位二进制编码器(4-2编码器) 137
10.3.1 2位二进制编码器简介&13 7
10.3.2行为描述方式设计的源代码&13 8
10.4 3位二进制优先编码器(8-3优先编码器)&13 8
10.4.1 3位二进制优先编码器简介&13 8
10.4.2行为描述方式设计的源代码 140
10.5 3位二进制译码器(3-8线译码器) 140
10.5.1 3位二进制译码器简介 140
10.5.2行为描述方式设计的源代码 142
10.6 4位二进制译码器(4-16线译码器) 143
10.6.1 4位二进制译码器简介 143
10.6.2行为描述方式设计的源代码 144
10.7 4-10线译码器(BCD译码器) 145
10.7.1 4-10线译码器简介- 145
10.7.2行为描述方式设计的源代码 146
10.8 BCD-7段译码器实践 147
10.8.1 BCD-7段译码器简介 147
10.8.2行为描述方式设计的源代码 149
10.9半加器实践 150
10.9.1半加器简介 150
10.9.2门级结构描述的源代码 151
10.9.3数据流描述方式的源代码 151
10.9.4行为描述方式的源代码 151
10.10全加器实践 152
10.10.1 1位全加器简介 152
10.10.2门级结构描述的源代码 153
10.10.3数据流描述方式的源代码 154
10.10.4行为描述方式的源代码 154
第11章 触发器的实践 155
11.1 RS触发器 155
11.1.1 RS触发器简介 155
11.1.2 RS触发器的设计源代码 156
11.2 JK触发器 156
11.2.1 JK触发器简介 156
11.2.2 JK触发器的设计源代码 157
11.3带有复位的D触发器 158
11.3.1带有复位的D触发器简介 158
11.3.2带有复位的D触发器设计源代码 159
11.4带有复位的异步T触发器 160
11.4.1带有复位的异步T触发器简介 160
11.4.2带有复位的异步T触发器的设计源代码 161
11.5带有复位的同步T触发器 161
11.5.1带有复位的同步T触发器简介 161
11.5.2带有复位的同步T触发器设计源代码 162
第12章 时序逻辑电路的设计实验 163
12.1寄存器 163
12.1.1寄存器简介 163
12.1.2寄存器的设计源代码 165
12.2锁存器 165
12.2.1锁存器简介 165
12.2.2锁存器的设计源代码 166
12.2.3移位寄存器 167
12.3.1移位寄存器简介 167
12.3.2 4位移位寄存器的设计源代码 168
12.4计数器 168
12.4.1二进制异步加法计数器简介 168
12.4.2 4位二进制异步加法计数器的设计源代码 170
12.4.3十进制(任意进制)同步加法计数器简介 171
12.4.4十进制同步加法计数器的设计源代码 172
第13章用XC95108芯片进行多种设计实验 173
13.1发光管LEDO~LED7闪烁实验 173
13.1.1实验要求 173
13.1.2程序设计 173
13.2发光管LEDO~LED7的跑马灯实验 174
13.2.1实验要求 174
13.2.2程序设计 175
13.3数码管动态扫描显示实验 176
13.3.1实验要求 176
13.3.2程序设计 177
13.4 4人投票表决器实验 179
13.4.1实验要求 179
13.4.2程序设计 179
13.5蜂鸣器发声实验 180
13.5.1实验要求 180
13.5.2程序设计 181
13.6报警声实验 181
13.6.1实验要求 181
13.6.2程序设计 182
13.7简易电子琴实验 183
13.7.1实验要求 183
13.7.2原理设计 183
13.7.3程序设计 184
13.8自动演奏乐曲实验 185
13.8.1实验要求 185
13.8.2原理设计 186
13.8.3程序设计 187
13.9 D/A转换器实验 189
13.9.1实验要求 189
13.9.2程序设计 190
13.10 D/F转换器实验 191
13.10.1实验要求 191
13.10.2程序设计 191
13.11 RS232收发实验 193
13.11.1实验要求 193
13.11.2原理设计 193
13.11.3程序设计 194
13.12数字跑表实验 201
13.12.1实验要求 201
13.12.2程序设计 201
13.13数字电子钟实验 205
13.13.1实验要求 205
13.13.2原理设计 205
13.13.3程序设计 206
13.14交通信号灯实验 210
13.14.1实验要求 210
13.14.2程序设计 210
13.15 4位数字频率计实验 215
13.15.1实验要求 215
13.15.2程序设计 215
13.16驱动1602字符型液晶显示器实验 218
13.16.1实验要求 218
13.16.2程序设计 218
第14章CPLD与单片机的双向数据接口及应用 225
14.1 CPLD与单片机的双向数据接口连接及数据传输实验 225
14.1.1实验要求 225
14.1.2原理设计 225
14.1.3 CPLD程序设计 226
14.1.4单片机C程序设计 229
14.2长时间多曲自动演奏器设计与实验 230
14.2.1实验要求 230
14.2.2原理设计 230
14.2.3 CPLD程序设计 232
14.2.4单片机C程序设计 235
参考文献 242